Hey, remember back when Rene Rivera said:
Is there a way to tell who is referencing those symbols? As it might not be Boost code but other runtime code. -- Something to try would be to compile an empty *.so. That is compile an empty source file and try doing a "-shared" link. If you get thread errors with an empty shared library, then the problem is that the GCC+AIX runtimes require threading. And I'll fix that on the toolset, and post a patch ;-)
I generated a .so with void foo (void); void foo (void) { int x(1); x++; } and, using the same compiler flags that Jam is, was able to build the .so without the link errors. Very strange. I started over with a clean copy of boost_1_31_0 and build using: bjam -sTOOLS=gcc stage With the same sort of errors: gcc-Link-action bin/boost/libs/date_time/build/libboost_date_time.so/gcc/release/shared-linkable-true/libboost_date_time-gcc-1_31.so bin/boost/libs/date_time/build/libboost_date_time.so/gcc/release/shared-linkable-true/libboost_date_time-gcc-1_31.imp ld: 0711-317 ERROR: Undefined symbol: .pthread_mutex_lock ld: 0711-317 ERROR: Undefined symbol: .pthread_mutex_unlock ld: 0711-317 ERROR: Undefined symbol: .pthread_mutex_init ld: 0711-317 ERROR: Undefined symbol: .pthread_mutex_destroy ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. collect2: ld returned 8 exit status LIBPATH=bin/boost/libs/date_time/build/libboost_date_time.so/gcc/release/shared-linkable-true:bin/boost/libs/date_time/build/libboost_date_time.so/gcc/release/shared-linkable-true:$LIBPATH export LIBPATH g++ -s -fPIC -shared -o "bin/boost/libs/date_time/build/libboost_date_time.so/gcc/release/shared-linkable-true/libboost_date_time-gcc-1_31.so" "bin/boost/libs/date_time/build/libboost_date_time.so/gcc/release/shared-linkable-true/greg_month.o" "bin/boost/libs/date_time/build/libboost_date_time.so/gcc/release/shared-linkable-true/greg_weekday.o" "bin/boost/libs/date_time/build/libboost_date_time.so/gcc/release/shared-linkable-true/date_generators.o" This is what got built into the stage directory: libboost_date_time-gcc-1_31.a libboost_date_time-gcc-d-1_31.a libboost_date_time-gcc-d.a libboost_date_time-gcc-mt-1_31.a libboost_date_time-gcc-mt-1_31.so* libboost_date_time-gcc-mt-d-1_31.a libboost_date_time-gcc-mt-d-1_31.so* libboost_date_time-gcc-mt-d.a libboost_date_time-gcc-mt-d.so* libboost_date_time-gcc-mt.a libboost_date_time-gcc-mt.so* libboost_date_time-gcc.a libboost_filesystem-gcc-1_31.a libboost_filesystem-gcc-d-1_31.a libboost_filesystem-gcc-d.a libboost_filesystem-gcc-mt-1_31.a libboost_filesystem-gcc-mt-1_31.so* libboost_filesystem-gcc-mt-d-1_31.a libboost_filesystem-gcc-mt-d-1_31.so* libboost_filesystem-gcc-mt-d.a libboost_filesystem-gcc-mt-d.so* libboost_filesystem-gcc-mt.a libboost_filesystem-gcc-mt.so* libboost_filesystem-gcc.a libboost_prg_exec_monitor-gcc-1_31.a libboost_prg_exec_monitor-gcc-d-1_31.a libboost_prg_exec_monitor-gcc-d.a libboost_prg_exec_monitor-gcc-mt-1_31.a libboost_prg_exec_monitor-gcc-mt-d-1_31.a libboost_prg_exec_monitor-gcc-mt-d.a libboost_prg_exec_monitor-gcc-mt.a libboost_prg_exec_monitor-gcc.a libboost_regex-gcc-1_31.a libboost_regex-gcc-d-1_31.a libboost_regex-gcc-d.a libboost_regex-gcc-mt-1_31.a libboost_regex-gcc-mt-1_31.so* libboost_regex-gcc-mt-d-1_31.a libboost_regex-gcc-mt-d-1_31.so* libboost_regex-gcc-mt-d.a libboost_regex-gcc-mt-d.so* libboost_regex-gcc-mt.a libboost_regex-gcc-mt.so* libboost_regex-gcc.a libboost_signals-gcc-1_31.a libboost_signals-gcc-d-1_31.a libboost_signals-gcc-d.a libboost_signals-gcc-mt-1_31.a libboost_signals-gcc-mt-1_31.so* libboost_signals-gcc-mt-d-1_31.a libboost_signals-gcc-mt-d-1_31.so* libboost_signals-gcc-mt-d.a libboost_signals-gcc-mt-d.so* libboost_signals-gcc-mt.a libboost_signals-gcc-mt.so* libboost_signals-gcc.a libboost_test_exec_monitor-gcc-1_31.a libboost_test_exec_monitor-gcc-d-1_31.a libboost_test_exec_monitor-gcc-d.a libboost_test_exec_monitor-gcc-mt-1_31.a libboost_test_exec_monitor-gcc-mt-d-1_31.a libboost_test_exec_monitor-gcc-mt-d.a libboost_test_exec_monitor-gcc-mt.a libboost_test_exec_monitor-gcc.a libboost_thread-gcc-mt-1_31.so* libboost_thread-gcc-mt-d-1_31.so* libboost_thread-gcc-mt-d.so* libboost_thread-gcc-mt.so* libboost_unit_test_framework-gcc-1_31.a libboost_unit_test_framework-gcc-d-1_31.a libboost_unit_test_framework-gcc-d.a libboost_unit_test_framework-gcc-mt-1_31.a libboost_unit_test_framework-gcc-mt-d-1_31.a libboost_unit_test_framework-gcc-mt-d.a libboost_unit_test_framework-gcc-mt.a libboost_unit_test_framework-gcc.a And just for reference:
g++ -v Reading specs from /opt/gcc-3.3.3/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.3/specs Configured with: ../gcc-3.3.3/configure --prefix=/opt/gcc-3.3.3 --disable-nls --disable-libgcj --disable-shared --enable-languages=c,c++ --with-as=/usr/bin/as --with-ld=/usr/bin/ld --enable-threads=aix Thread model: aix gcc version 3.3.3
Let me know if there is any other data I can get for you. -- Peter Jones [unix;vi;crypto;c++;4wd] (http://pmade.org) PGP [5137 173E 5BFA 8C63 8982 F035 FDBB 1636 7D69 C63F]