Boost logo

Boost-Build :

Subject: Re: [Boost-build] Uncertain cross compilation (arch=MIPS)
From: ×èíêîâ Àíäðåé (blackmesa_at_[hidden])
Date: 2008-11-05 09:47:54


1) Yes I can explain it in more details.

Objdump utility (as I saw it enters in binutils) can display object
format, i.e. elf32-little or elf32-tradlittlemips (of which consist
objects inside library *.a or *.lib). I do not know what these formats
mean especially strongly, but heard there are 'little' or 'big' endian
byte order.

Some times ago I built libboost_regex.a on MIPS target and successfully
tested it (I used modified gcc.mak instead of bjam). Objdump utility had
shown that libboost_regex.a had elf32-tradlittlemips format. That is why
I want to have libboost_serialization.a the same elf32-tradlittlemips
format.

2) I place bjam logs here:

http://narod.ru/disk/3597027000/Bjam_logs.tar.bz2.html

There are 2 folders in bjam_logs.tar.bz2 archive (for a change):

- Bjam logs (mipsel-linux-uclibc-gcc deleted from PATH, gcc is in the
PATH) - contains bjam logs generated after I delete
mipsel-linux-uclibc-gcc from PATH

- Bjam logs (mipsel-linux-uclibc-gcc is in the PATH, gcc is in the PATH)
- contains bjam logs generated after I place mipsel-linux-uclibc-gcc in
the PATH

Note: Before each bjam launch I deleted bin.v2 folder for cleanliness of
experiment.

3) Yes, I have compiler and other binutils installed alongside in the
same place (I mean native and cross versions both). I can type in
terminal (I also note: terminal starts from any folder)

"gcc --version"
or
"mipsel-linux-uclibc-gcc --version"

without problems. So I think we shouldn't blame GCC I have :)

==================================

I have to say bjam build libboost_serialization.a hardly - but I can't
link with this produced library :(
When I build my test_serialization.out program cross-linker reports:

mipsel-linux-uclibc-gcc -o test_cpp_mipsel.out
-L/mnt/local_storage/Work/gcc_test_folder/boost_debug_lib_here
test_cpp_mipsel.o -lboost_regex-gcc-d-1_36
-lboost_serialization-gcc-d-1_36 -lstdc++
/stuff/cross.mips32/lib/gcc/mipsel-linux-uclibc/3.4.6/../../../../mipsel-linux-uclibc/bin/ld:
skipping incompatible
/mnt/local_storage/Work/gcc_test_folder/boost_debug_lib_here/libboost_serialization-gcc-d-1_36.a
when searching for -lboost_serialization-gcc-d-1_36
/stuff/cross.mips32/lib/gcc/mipsel-linux-uclibc/3.4.6/../../../../mipsel-linux-uclibc/bin/ld:
cannot find -lboost_serialization-gcc-d-1_36

and so can not link test_serialization.out with libboost_serialization.a
:(

So the question itself :

why bjam ignore mipsel-linux-uclibc-gcc compiler I specified to it and
build strange library version ?
In other words, why bjam does not produce cross library for MIPSel ?

PS: big thanks 4 partnership :)


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk