
Hi, I'm trying to cross compile a simple program using libtorrent but falling foul of some settings in the boost build system. I am totally green at using boost so please excuse me if the answer is obvious. The problem is that the link line emitted by the boost build system appears to include a hard coded reference to a NATIVE lib (/usr/lib/ libdl.so) and not the one for the TARGET build system. Below is the output from the bjam command: BOOST_ROOT = /projects/externals/libtorrent/boost_1_43_0 OS = LINUX gcc.link bin/gcc-arm/debug/boost-source/link-static/threading-multi/ enum_if "${CROSS_COMPILE}gcc" -Wl,-R -Wl,"/usr/lib" -o "bin/gcc-arm/ debug/boost-source/link-static/threading-multi/enum_if" -Wl,--start- group "bin/gcc-arm/debug/boost-source/link-static/threading-multi/ enum_if.o" "../bin/gcc-arm/debug/boost-source/link-static/threading- multi/libtorrent.a" "/projects/externals/libtorrent/boost_1_43_0/ bin.v2/libs/thread/build/gcc-arm/debug/boost-source/link-static/ threading-multi/libboost_thread.a" "/projects/externals/libtorrent/ boost_1_43_0/bin.v2/libs/filesystem/build/gcc-arm/debug/boost-source/ link-static/threading-multi/libboost_filesystem.a" "/projects/ externals/libtorrent/boost_1_43_0/bin.v2/libs/system/build/gcc-arm/ debug/boost-source/link-static/threading-multi/libboost_system.a" "/ usr/lib/libdl.so" -Wl,-Bstatic -lssl -lcrypto -Wl,-Bdynamic -lrt - Wl,--end-group -g -pthread -export-dynamic /usr/lib/libdl.so: could not read symbols: File in wrong format collect2: ld returned 1 exit status ...failed updating 1 target... (CROSS_COMPILE has been set to the prefix for the toolset) I did add a <linkflags> entry to the GCC entry in usr-config.jam and sure enough this did appear in the emitted link line however /usr/lib was still there too and seemed to take precedence. Does anyone know what I have to do to remove this? Cheers, Mark.

Mark, I don't know the answer, but I'm keen to know the right approach as well (basically to preference user-installed libraries in /usr/local/lib over system libraries in /usr/lib). I have repeated run into the problem of /usr/lib coming first in the linker line. What I see is where boost_regex will compile against /usr/local/include ICU headers, but link to /usr/lib. My only solution has been to patch the boost_regex jamfile by moving /usr/local/lib in front of /usr/lib. Dane On Jul 9, 2010, at 10:48 AM, Mark Freeman wrote:
Hi,
I'm trying to cross compile a simple program using libtorrent but falling foul of some settings in the boost build system. I am totally green at using boost so please excuse me if the answer is obvious.
The problem is that the link line emitted by the boost build system appears to include a hard coded reference to a NATIVE lib (/usr/lib/libdl.so) and not the one for the TARGET build system. Below is the output from the bjam command:
BOOST_ROOT = /projects/externals/libtorrent/boost_1_43_0 OS = LINUX gcc.link bin/gcc-arm/debug/boost-source/link-static/threading-multi/enum_if
"${CROSS_COMPILE}gcc" -Wl,-R -Wl,"/usr/lib" -o "bin/gcc-arm/debug/boost-source/link-static/threading-multi/enum_if" -Wl,--start-group "bin/gcc-arm/debug/boost-source/link-static/threading-multi/enum_if.o" "../bin/gcc-arm/debug/boost-source/link-static/threading-multi/libtorrent.a" "/projects/externals/libtorrent/boost_1_43_0/bin.v2/libs/thread/build/gcc-arm/debug/boost-source/link-static/threading-multi/libboost_thread.a" "/projects/externals/libtorrent/boost_1_43_0/bin.v2/libs/filesystem/build/gcc-arm/debug/boost-source/link-static/threading-multi/libboost_filesystem.a" "/projects/externals/libtorrent/boost_1_43_0/bin.v2/libs/system/build/gcc-arm/debug/boost-source/link-static/threading-multi/libboost_system.a" "/usr/lib/libdl.so" -Wl,-Bstatic -lssl -lcrypto -Wl,-Bdynamic -lrt -Wl,--end-group -g -pthread -export-dynamic
/usr/lib/libdl.so: could not read symbols: File in wrong format collect2: ld returned 1 exit status ...failed updating 1 target...
(CROSS_COMPILE has been set to the prefix for the toolset)
I did add a <linkflags> entry to the GCC entry in usr-config.jam and sure enough this did appear in the emitted link line however /usr/lib was still there too and seemed to take precedence. Does anyone know what I have to do to remove this?
Cheers,
Mark.
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (2)
-
Dane Springmeyer
-
Mark Freeman