
On Mon, Apr 14, 2008 at 1:31 PM, Anthony Williams <anthony_w.geo@yahoo.com> wrote:
"Mat Marcus" <mat-lists@emarcus.org> writes:
On Mon, Apr 14, 2008 at 12:57 PM, Anthony Williams <anthony_w.geo@yahoo.com> wrote:
"Mat Marcus" <mat-lists@emarcus.org> writes:
1) Why doesn't the build system choose the threadapi=pthread by default in my configuration? (The default seems to be win32)
Because you're using msvc bjam to build using cygwin gcc. Apparently this build option is broken.
This begins to sound like the boost-build options and the header file configuration detection options are out of sync, as Steven suggested.
OK, one more thing to try: can you set <target-os>cygwin in your user-config.jam gcc setup?
using gcc : 4.2.0 : : <target-os>cygwin ;
The boost thread jamfile uses <target-os> to work out whether it's building for cygwin or native win32. It appears that <target-os> is not set correctly for you (which probably ought to be done in gcc.jam or somewhere like that), so explicitly setting it might work.
Anthony
Thanks for the suggestion. No change yet. 1) I added the parameter to my user-config.jam file using gcc : 4.2.0 : /opt/gcc-4.2.0/bin/g++.exe : <target-os>cygwin ; 2) I added it to my bjam invocation: Result: $ bjam --without-mpi gcc-4.2.0 libs/thread/build//boost_thread -d+2 target-os=cygwin 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: No python installation configured and autoconfiguration failed. See http://www.boost.org/libs/python/doc/building.html for configuration instructions or pass --without-python to suppress this message and silently skip all Boost.Python targets 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). MkDir1 bin.v2\libs\thread\build\gcc-4.2.0\debug\target-os-cygwin mkdir "bin.v2\libs\thread\build\gcc-4.2.0\debug\target-os-cygwin" MkDir1 bin.v2\libs\thread\build\gcc-4.2.0\debug\target-os-cygwin\threading-multi mkdir "bin.v2\libs\thread\build\gcc-4.2.0\debug\target-os-cygwin\threading-multi" gcc.compile.c++ bin.v2\libs\thread\build\gcc-4.2.0\debug\target-os-cygwin\threading-multi\thread.o "/opt/gcc-4.2.0/bin/g++.exe" -ftemplate-depth-128 -O0 -fno-inline -Wall -g -mthreads -DBOOST_ALL_NO_LIB=1 -DBOOST_THREAD_BUILD_DLL=1 -I"." -c -o "bin.v2\libs\thread\build\gcc-4.2.0\debug\target-os-cygwin\threading-multi\thread.o" "libs\thread\src\win32\thread.cpp" libs\thread\src\win32\thread.cpp: In function 'void boost::<unnamed>::run_thread_exit_callbacks()': libs\thread\src\win32\thread.cpp:147: error: 'heap_delete' is not a member of 'boost::detail' libs\thread\src\win32\thread.cpp:149: error: 'heap_delete' is not a member of 'boost::detail' libs\thread\src\win32\thread.cpp:159: error: 'heap_delete' is not a member of 'boost::detail' libs\thread\src\win32\thread.cpp: At global scope: libs\thread\src\win32\thread.cpp:170: error: no 'unsigned int boost::thread::thread_start_function(void*)' member function declared in class 'boost::thread' libs\thread\src\win32\thread.cpp: In member function 'void boost::thread::start_thread()': libs\thread\src\win32\thread.cpp:194: error: ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say '&boost::thread::thread_start_function' libs\thread\src\win32\thread.cpp:194: error: 'struct boost::detail::thread_data_base' has no member nam ...