Hi Jose Luis,

Thank you for the quick response!

I can confirm that patches that you have proposed have resolved build issue on 
i386.

I am working on resolving build issues for mips and mipsel.

On mips and mipsel I have looked into
https://github.com/jlblancoc/mrpt/blob/master/libs/slam/src/slam/CMonteCarloLocalization2D_unittest.cpp

function void run_test_pf_localization(CPose2D &meanPose, CMatrixDouble33 &cov) 
on big endian is not doing anything,
but run_test_pf_localization is used in TEST(MonteCarlo2D, RunSampleDataset). 

#if MRPT_IS_BIG_ENDIAN
MRPT_TODO("Debug this issue in big endian platforms")
return; // Skip this test for now
#endif

That is causing the following error:
https://buildd.debian.org/status/fetch.php?pkg=mrpt&arch=mips&ver=1%3A1.2.1-1&stamp=1406312477

I will look further into function run_test_pf_localization.

There is also .h file:
https://github.com/jlblancoc/mrpt/blob/master/libs/base/include/mrpt/math/lightweight_geom_data.h

containing "#pragma pack(push,1)" directive for structures that have float and 
double arguments.

I think that this is causing unaligned access on architectures with strict 
alignment rules:
https://buildd.debian.org/status/fetch.php?pkg=mrpt&arch=mipsel&ver=1%3A1.2.1-1&stamp=1406169915

For mips* architecture double should be 8 byte aligned and float should be 4 
byte aligned.

Can we disable "#pragma pack(push,1)" in this file for architectures with 
strict alignment rules?

Any comments are welcome.

Thanks!
Jurica





________________________________________
From: Jose Luis Blanco [joseluisblan...@gmail.com]
Sent: 21 August 2014 01:44
To: Jurica Stanojkovic; 758...@bugs.debian.org
Subject: Re: Bug#758725: package mrpt_1:1.2.1-1 FTBFS on i386, amd64, mips*

Hi Jurica,

Please, hopefully these two patches can solve all named semaphore errors:

1) 
https://github.com/jlblancoc/mrpt/commit/9a878c0950edd8ca7de6f4584f920c4e0db05ecc
2) 
https://github.com/jlblancoc/mrpt/commit/289498fc34703c2fcf6b61e72c3311144e5fb570

Cheers,
JL


On Wed, Aug 20, 2014 at 7:40 PM, Jose Luis Blanco
<joseluisblan...@gmail.com> wrote:
> Thanks a lot for your interest in fixing this, Jurica!
> I'm the upstream maintainer of mrpt, and was becoming desperate trying
> to debug in mips* for my lack of experience in cross-buidling, qemu,
> etc.
>
> So, on the build errors in mips (and other big-endian platforms): I
> *suspect* that some errors may be caused by missing byte-reordering in
> serialization, via mrpt::utils::CStream and/or the affected classes
> methods named readFromStream() and writeToStream(), so that's where
> you could first look at while debugging in mips*. At least, that's
> what I suspect, but couldn't check it because can't debug in those
> platforms! :-(
>
> About the other errors in this present bug: Yes, I'll study them.
> In the meanwhile, you can avoid them by, instead of running "make
> test", running:
>
>  tests/test_mrpt_base --gtest_filter=-*CSemaphore*
>
> to run all tests in the lib mrpt-base, excepting those that give you problems.
> For the other test sets, you can also try, for example:
>
> make run_tests_mrpt_opengl
>
> and so on. Hit TAB after "make run_tests_mrpt_" to see the full list.
>
> Hope it helps!
>
> JL
>
> On Wed, Aug 20, 2014 at 6:12 PM, Jurica Stanojkovic
> <jurica.stanojko...@imgtec.com> wrote:
>> Package: mrpt
>> Version: 1:1.2.1-1
>> Severity: serious
>> Tags: sid
>> Justification: FTBFS
>> User: debian-mips-dev-disc...@lists.alioth.debian.org
>>
>> Hello,
>>
>> package mrpt_1:1.2.1-1 FTBFS on i386, amd64, mips* with the following
>> message, but was previously built successfully on i386, amd64:
>>
>> i386 log:
>>
>> [----------] 5 tests from Synch
>> [ RUN      ] Synch.CSemaphore_named_6t_1init
>> Exception in [auxiliary_thread_launcher_LIN/WIN]!!!:
>>
>>
>>  =============== MRPT EXCEPTION =============
>> mrpt::synch::CSemaphore::CSemaphore(unsigned int, unsigned int, const
>> string&), line 81:
>> Creating semaphore (name='mrpt-demo-sem1') raised error: Function not
>> implemented
>> mrpt::synch::CSemaphore::CSemaphore(unsigned int, unsigned int, const
>> string&), line 87:
>> /«PKGBUILDDIR»/libs/base/src/synch/CCriticalSection_unittest.cpp:53: Failure
>> Value of: false
>>   Actual: false
>> Expected: true
>> Thread didn't finished in timeout! While testing: CSemaphore named:
>> #threads=6, init count=1
>> [  FAILED  ] Synch.CSemaphore_named_6t_1init (5000 ms)
>> [ RUN      ] Synch.CSemaphore_named_10t_5init
>> Exception in [auxiliary_thread_launcher_LIN/WIN]!!!:
>>
>>
>>  =============== MRPT EXCEPTION =============
>> mrpt::synch::CSemaphore::CSemaphore(unsigned int, unsigned int, const
>> string&), line 81:
>> Creating semaphore (name='mrpt-demo-sem1') raised error: Function not
>> implemented
>> mrpt::synch::CSemaphore::CSemaphore(unsigned int, unsigned int, const
>> string&), line 87:
>> /«PKGBUILDDIR»/libs/base/src/synch/CCriticalSection_unittest.cpp:53: Failure
>> Value of: false
>>   Actual: false
>> Expected: true
>> Thread didn't finished in timeout! While testing: CSemaphore named:
>> #threads=10, init count=5
>> [  FAILED  ] Synch.CSemaphore_named_10t_5init (5000 ms)
>> [ RUN      ] Synch.CriticalSections_Simple
>> [       OK ] Synch.CriticalSections_Simple (1 ms)
>> [ RUN      ] Synch.CriticalSections_NoDoubleEnter
>> [       OK ] Synch.CriticalSections_NoDoubleEnter (1 ms)
>> [ RUN      ] Synch.CriticalSections_Multi
>> [       OK ] Synch.CriticalSections_Multi (1557 ms)
>> [----------] 5 tests from Synch (11560 ms total)
>>
>> ...
>>
>> [----------] Global test environment tear-down
>> [==========] 138 tests from 23 test cases ran. (11643 ms total)
>> [  PASSED  ] 136 tests.
>> [  FAILED  ] 2 tests, listed below:
>> [  FAILED  ] Synch.CSemaphore_named_6t_1init
>> [  FAILED  ] Synch.CSemaphore_named_10t_5init
>>
>>  2 FAILED TESTS
>> make[4]: *** [tests/CMakeFiles/run_tests_mrpt_base] Error 1
>> tests/CMakeFiles/run_tests_mrpt_base.dir/build.make:52: recipe for target
>> 'tests/CMakeFiles/run_tests_mrpt_base' failed
>> make[4]: Leaving directory '/«PKGBUILDDIR»/obj-i586-linux-gnu'
>> make[3]: *** [tests/CMakeFiles/run_tests_mrpt_base.dir/all] Error 2
>> CMakeFiles/Makefile2:5096: recipe for target
>> 'tests/CMakeFiles/run_tests_mrpt_base.dir/all' failed
>> make[3]: Leaving directory '/«PKGBUILDDIR»/obj-i586-linux-gnu'
>> make[2]: *** [tests/CMakeFiles/test.dir/rule] Error 2
>> CMakeFiles/Makefile2:5455: recipe for target
>> 'tests/CMakeFiles/test.dir/rule' failed
>> make[2]: Leaving directory '/«PKGBUILDDIR»/obj-i586-linux-gnu'
>> make[1]: *** [test] Error 2
>> Makefile:1665: recipe for target 'test' failed
>> make[1]: Leaving directory '/«PKGBUILDDIR»/obj-i586-linux-gnu'
>> dh_auto_test: make -j1 test ARGS+=-j1 returned exit code 2
>> make: *** [build-arch] Error 2
>> debian/rules:44: recipe for target 'build-arch' failed
>> dpkg-buildpackage: error: debian/rules build-arch gave error exit status 2
>>
>>
>> Could someone please help with this regression?
>>
>> I am working on resolving other build issues for mrpt package build on mips
>> and mipsel, but I can not resolve them until this regression gets resolved.
>>
>> Thanks!
>> Jurica
>>


--
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to