That's a bug that's been partly fixed in the latest cvs source - the -pthread flag should be -pthreads.
However that's not the end of it, because the std lib that ships with gcc on solaris has a problem with std::runtime_error when you build with -pthreads (basically the code doesn't link because the body of runtime_error::runtime_error is missing in the headers), I don't know what the solution to this is, other than to fix your std lib (or maybe use STLPort).
I have downloaded Boost and am trying to build the libraries on
Solaris
8 with g++ 2.95.3:
I ran into this problem just recently. I think John's diagnosis is incorrect. In fact, stdexcept includes the body of runtime_error just fine, and the class runtime_error exists. Part of the problem is that the gcc standard library, when compiled under -pthreads, typedefs std::string (and all the other default std::containers) differently from how it is defined under single-threaded compilation. The default allocator is defined to be: typedef __default_alloc_template<__NODE_ALLOCATOR_THREADS, 0> alloc; where __NODE_ALLOCATOR_THREADS is a #define which is true if threading is enabled, false otherwise. This in itself is still not the real problem. The problem is that the constructor of runtime_error, and all the other stdexcept classes, is not actually compiled under pthreads, because stdexcept has a #pragma interface "stdexcept" line in it which inhibits the compiler from emitting the bodies of these inline functions. Which it also does in non-threaded compiling mode, but in that mode the gcc writers have conveniently put the non-threaded definitions into the libstdc++, so your link works fine. I think there is a workaround: put #pragma implementation "stdexcept" in one of of your source files which includes <stdexcept>. This will cause those bodies to be emitted and your link should go fine. I haven't tested it myself for various local technical reasons, but I think it will work. Good luck, and let me know if it works! If it does, we should maybe propose that the boost Threads library include such definitions under gcc. George Heintzelman georgeh@aya.yale.edu