Boost logo

Boost :

Subject: [boost] Missing symbols when Compiling Boost on AIX 6.1
From: Axel Ismirlian (aismirl_at_[hidden])
Date: 2014-07-10 17:12:51


Hello everyone,

One of the errors that keeps popping up time and time again as I attempt to
compile boost on AIX is the following:

common.mkdir ../bin.v2/libs/asio/test/basic_datagram_socket_select.test
common.mkdir ../bin.v2/libs/asio/test/basic_datagram_socket_select.test/gcc-4.8.1
common.mkdir ../bin.v2/libs/asio/test/basic_datagram_socket_select.test/gcc-4.8.1/debug
common.mkdir ../bin.v2/libs/asio/test/basic_datagram_socket_select.test/gcc-4.8.1/debug/threading-multi
gcc.compile.c+
+ ../bin.v2/libs/asio/test/basic_datagram_socket_select.test/gcc-4.8.1/debug/threading-multi/basic_datagram_socket.o
gcc.link ../bin.v2/libs/asio/test/basic_datagram_socket_select.test/gcc-4.8.1/debug/threading-multi/basic_datagram_socket_select
ld: 0711-224 WARNING: Duplicate symbol: .init_unit_test_suite(int, char**)
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more
information.
ld: 0711-317 ERROR: Undefined symbol: .test_main(int, char**)
collect2: error: ld returned 8 exit status

    "g++" -o
"../bin.v2/libs/asio/test/basic_datagram_socket_select.test/gcc-4.8.1/debug/threading-multi/basic_datagram_socket_select"

"../bin.v2/libs/asio/test/basic_datagram_socket_select.test/gcc-4.8.1/debug/threading-multi/basic_datagram_socket.o"

"../bin.v2/libs/test/build/gcc-4.8.1/debug/link-static/threading-multi/libboost_test_exec_monitor.a"

"../bin.v2/libs/system/build/gcc-4.8.1/debug/threading-multi/libboost_system.so"

"../bin.v2/libs/regex/build/gcc-4.8.1/debug/threading-multi/libboost_regex.so"

"../bin.v2/libs/date_time/build/gcc-4.8.1/debug/threading-multi/libboost_date_time.so"
     -lrt -g -Wl,-brtl -Wl,-bnoipath -pthread

...failed
gcc.link ../bin.v2/libs/asio/test/basic_datagram_socket_select.test/gcc-4.8.1/debug/threading-multi/basic_datagram_socket_select...

So this particular error happens in every single asio test, but this kind
of error also happens across a few other libraries. I tried to set the gcc
flag that simply states that these type of linking errors should be
ignored, but many tests apparently still reference the symbol on AIX.
Additionally while debugging, I realized that the power linux platform also
keeps the symbols test_main undefined, but apparently manages to throw them
out in the executable. My main question is where in the building framework
are those symbols being thrown out? Or is the issue something bigger? Thank
you for reading.

Sincerely,
-Axel


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk