So, the #ifdef "workaround" was incorrectly placed, to start with!

This patch will "solve" it:
https://github.com/jlblancoc/mrpt/commit/c06ed1c384ba2e719c52f65a1a49bddcf7d261e5

But obviously, that's not the ideal solution because that's resigning
trying to fix de-serialization problems!

I didn't know that issue about "#pragma pack", it will be a problem.
Let me check it more in depth, but I'm sure the struct pack'ing is
taken for granted in some parts of the code. Actually, there's even
one unit test checking it...

Please, let me know whatever other unit tests don't pass in MIPS while
I think what to do with the pragmas.

BTW: Is there any macro to detect architectures with strict alignment rules?

JL


On Thu, Aug 21, 2014 at 5:10 PM, Jurica Stanojkovic
<jurica.stanojko...@imgtec.com> wrote:
> 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
>


-- 
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