
On Tue, Oct 05, 2004 at 03:05:13PM +0200, Markus Sch?pflin wrote:
When compiling the smart pointer tests with gcc 3.4.2 on Tru64, two tests fail with an error message. (See http://tinyurl.com/4jngu )
As far as I can see, the shared pointer implementation at some point includes the "pthread.h" system header file but gcc on Tru64 requires that -pthread must be specified on the command line when including this header file.
Markus, I believe what you're seeing is the problem that prompted the GCC developers to unconditionally define _REENTRANT even when -pthread is not given (and which breaks Boost for GCC 3.4), see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11953 Technically, Tru64's pthread.h doesn't require -pthread, it requires _REENTRANT. -pthread on Tru64 defines _REENTRANT, but if you want to include the file without having to use -pthread then just ensure _REENTRANT is defined. The solution that libstdc++ uses is to ensure _REENTRANT is defined before including pthread.h. That allows the file to be included without having to link to the pthread libs etc. (I think). Now if only they'd fix libstdc++ so _REENTRANT only gets defined on OSF, not on Linux and other platforms that don't require it! jon
included but gcc doesn't require the addition of -pthread in the command line on this platform.
This leads to the question whether it is ok to include "pthread.h" without specifying -pthread on the command line. Does anyone know an answer to this?
-- "Anybody who hates dogs and loves whiskey can't be all bad." - W.C. Fields