-pthread switch and binary compatibitity

2008-04-15 Thread John Maddock

Hi there,

Over at the Boost C++ libraries project we're trying to decide what is the
correct thing to do when code is compiled with -pthread or not.

The crux of the issue is this: if gcc/g++ is configured with the pthread
threading model, then are object files always binary compatible irrespective
of whether they are compiled with the -pthread command line option or not?

If the answer is yes, then is it commonplace to link object files compiled
with and without -pthread?

Basically we're trying to decide whether to try and ensure that object files
compiled with and without -pthread are always binary compatible, or whether
to turn threading support on *only* when -pthread is specified (and
_REENTRANT gets #defined).

Many thanks for your help,

John Maddock.



Re: -pthread switch and binary compatibitity

2008-04-16 Thread John Maddock

Ian Lance Taylor wrote:

"John Maddock" <[EMAIL PROTECTED]> writes:


The crux of the issue is this: if gcc/g++ is configured with the
pthread threading model, then are object files always binary
compatible irrespective of whether they are compiled with the
-pthread command line option or not? 


Yes, modulo the #define of _REENTRANT.


If the answer is yes, then is it commonplace to link object files
compiled with and without -pthread?


Yes.

In general, all the -pthread option does is turn on -D_REENTRANT
during compilation and -lpthread during linking.  There is some
cross-platform variation--different -D and -l options--but in no case
does -pthread lead to a different ABI.


OK thanks, that sounds pretty definitive :-)

John.