Oh wow. Yep, that's seems to be exactly what happened. I rebuilt gcc with linuxthreads enabled, here's the output after doing that: rich@rich-desktop:~/gumstix/gumstixLatest/build_arm_nofpu/staging_dir/bin$ ./arm-linux-gcc-4.1.1 -v Using built-in specs. Target: arm-linux-uclibcgnueabi Configured with: /home/rich/gumstix/gumstixLatest/toolchain_build_arm_nofpu/gcc-4.1.1/configure --prefix=/home/rich/gumstix/gumstixLatest/build_arm_nofpu/staging_dir --build=i386-pc-linux-gnu --host=i386-pc-linux-gnu --target=arm-linux-uclibcgnueabi --enable-languages=c,c++ --enable-shared --disable-__cxa_atexit --enable-target-optspace --with-gnu-ld --disable-nls --enable-threads --disable-multilib --with-float=soft --with-cpu=iwmmxt --with-arch=armv5te --with-tune=iwmmxt --without-fp Thread model: posix gcc version 4.1.1 The thread library seems to compile fine: rich@rich-desktop:~/boost_1_36_0$ bjam --toolset=gcc-arm -sNO_BZIP2=1 --variant=release --with-thread stage warning: Graph library does not contain optional GraphML reader. note: to enable GraphML support, set EXPAT_INCLUDE and EXPAT_LIBPATH to the note: directories containing the Expat headers and libraries, respectively. warning: skipping optional Message Passing Interface (MPI) library. note: to enable MPI support, add "using mpi ;" to user-config.jam. note: to suppress this message, pass "--without-mpi" to bjam. note: otherwise, you can safely ignore this message. Building Boost.Regex with the optional Unicode/ICU support disabled. Please refer to the Boost.Regex documentation for more information (don't panic: this is a strictly optional feature). ...patience... ...found 722 targets... ...updating 25 targets... MkDir1-quick-fix-for-unix stage MkDir1-quick-fix-for-unix stage/lib MkDir1-quick-fix-for-unix bin.v2 MkDir1-quick-fix-for-unix bin.v2/libs MkDir1-quick-fix-for-unix bin.v2/libs/thread MkDir1-quick-fix-for-unix bin.v2/libs/thread/build MkDir1-quick-fix-for-unix bin.v2/libs/thread/build/gcc-arm MkDir1-quick-fix-for-unix bin.v2/libs/thread/build/gcc-arm/release MkDir1-quick-fix-for-unix bin.v2/libs/thread/build/gcc-arm/release/threading-multi gcc.compile.c++ bin.v2/libs/thread/build/gcc-arm/release/threading-multi/thread.o gcc.compile.c++ bin.v2/libs/thread/build/gcc-arm/release/threading-multi/exceptions.o gcc.compile.c++ bin.v2/libs/thread/build/gcc-arm/release/threading-multi/once.o gcc.link.dll bin.v2/libs/thread/build/gcc-arm/release/threading-multi/libboost_thread-gcc-mt-1_36.so.1.36.0 common.copy stage/lib/libboost_thread-gcc-mt-1_36.so.1.36.0 ln-UNIX stage/lib/libboost_thread-gcc-mt-1_36.so ln-UNIX stage/lib/libboost_thread-gcc-mt.so MkDir1-quick-fix-for-unix bin.v2/libs/thread/build/gcc-arm/release/link-static MkDir1-quick-fix-for-unix bin.v2/libs/thread/build/gcc-arm/release/link-static/threading-multi gcc.compile.c++ bin.v2/libs/thread/build/gcc-arm/release/link-static/threading-multi/thread.o gcc.compile.c++ bin.v2/libs/thread/build/gcc-arm/release/link-static/threading-multi/exceptions.o gcc.compile.c++ bin.v2/libs/thread/build/gcc-arm/release/link-static/threading-multi/once.o gcc.archive bin.v2/libs/thread/build/gcc-arm/release/link-static/threading-multi/libboost_thread-gcc-mt-1_36.a common.copy stage/lib/libboost_thread-gcc-mt-1_36.a ln-UNIX stage/lib/libboost_thread-gcc-mt.a ...updated 25 targets... rich@rich-desktop:~/boost_1_36_0$ However, when I go to compile the thread.cpp example (I commented out the other examples in the Jamfile.v2) in ~/boost_1_36_0/libs/thread/example/, it errors out: rich@rich-desktop:~/boost_1_36_0/libs/thread/example$ bjam --toolset=gcc-arm --variant=release warning: Graph library does not contain optional GraphML reader. note: to enable GraphML support, set EXPAT_INCLUDE and EXPAT_LIBPATH to the note: directories containing the Expat headers and libraries, respectively. warning: skipping optional Message Passing Interface (MPI) library. note: to enable MPI support, add "using mpi ;" to user-config.jam. note: to suppress this message, pass "--without-mpi" to bjam. note: otherwise, you can safely ignore this message. Building Boost.Regex with the optional Unicode/ICU support disabled. Please refer to the Boost.Regex documentation for more information (don't panic: this is a strictly optional feature). ...patience... ...found 719 targets... ...updating 1 target... gcc.link ../../../bin.v2/libs/thread/example/gcc-arm/debug/threading-multi/thread ../../../bin.v2/libs/thread/example/gcc-arm/debug/threading-multi/thread.o: In function `__static_initialization_and_destruction_0': /home/rich/gumstix/gumstixLatest/build_arm_nofpu/staging_dir/lib/gcc/arm-linux-uclibcgnueabi/4.1.1/../../../../include/c++/4.1.1/iostream:76: undefined reference to `std::ios_base::Init::Init()' /home/rich/gumstix/gumstixLatest/build_arm_nofpu/staging_dir/lib/gcc/arm-linux-uclibcgnueabi/4.1.1/../../../../include/c++/4.1.1/iostream:76: undefined reference to `std::ios_base::Init::~Init()' ../../../bin.v2/libs/thread/example/gcc-arm/debug/threading-multi/thread.o: In function `main': /home/rich/boost_1_36_0/libs/thread/example/thread.cpp:31: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)' /home/rich/boost_1_36_0/libs/thread/example/thread.cpp:31: undefined reference to `std::basic_ostream<char, std::char_traits<char>
::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))' /home/rich/boost_1_36_0/libs/thread/example/thread.cpp:34: undefined reference to `__cxa_end_cleanup' /home/rich/boost_1_36_0/libs/thread/example/thread.cpp:35: undefined reference to `std::cout' /home/rich/boost_1_36_0/libs/thread/example/thread.cpp:35: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)' ../../../bin.v2/libs/thread/example/gcc-arm/debug/threading-multi/thread.o:(.ARM.extab+0x24): undefined reference to `__gxx_personality_v0' ../../../bin.v2/libs/thread/example/gcc-arm/debug/threading-multi/thread.o: In function `mutex': /home/rich/boost_1_36_0/libs/thread/example/../../../boost/thread/pthread/mutex.hpp:40: undefined reference to `__cxa_allocate_exception' /home/rich/boost_1_36_0/libs/thread/example/../../../boost/thread/pthread/mutex.hpp:40: undefined reference to `__cxa_throw' /home/rich/boost_1_36_0/libs/thread/example/../../../boost/thread/pthread/mutex.hpp:40: undefined reference to `__cxa_free_exception' /home/rich/boost_1_36_0/libs/thread/example/../../../boost/thread/pthread/mutex.hpp:42: undefined reference to `__cxa_end_cleanup' ../../../bin.v2/libs/thread/example/gcc-arm/debug/threading-multi/thread.o:(.ARM.extab.text._ZN5boost5mutexC1Ev[boost::mutex::mutex()]+0x0): undefined reference to `__gxx_personality_v0'
....etc... I didn't think you needed to see the rest of this. What do you think is the problem? It's referencing iostream.h ... my using command is defined as follows: using gcc : arm : /home/rich/gumstix/gumstixLatest/build_arm_nofpu/staging_dir/bin/arm-linux-gcc-4.1.1 : <cxxflags>-I/home/rich/gumstix/gumstixLatest/build_arm_nofpu/staging_dir/usr/include/ ; Thanks again, Rich -- There is nothing more practical than a good theory. James Maxwell