Boost logo

Boost-Build :

From: Benjamin Kosnik (bkoz_at_[hidden])
Date: 2007-01-24 05:40:43


> MT build with gcc on Linux has two properties:
>
> 1. It's linked against -lpthread
> 2. It's compiled with -D_REENTRANT

Yeah. It's compiled with -pthread.

;)

> (1) matters only for shared libraries. I am not in position to say
> which of the above library have incompatible ABI changes due to _REENTRANT.
> I believe that program_options uses shared_ptr in interface, so MT and ST variants
> are not binary compatible. I believe some other libraries might also differ between
> MT and ST and it's easier to build two variants rather than guess which libraries
> need it and which don't.

I suppose if boost book was building, I could hack doxygen to do
collaboration graphs, and then we could know, and not guess... I guess
these dependencies aren't being accurately tracked?

It seems weird (and wasteful) to me that un-necessary libraries are
being built. Why aren't libs that have actual thread support opting in
to a -mt build?

Although all of these libs have -mt variants, only two (thread/regex)
have pthread symbols and four others
(serialization/wserialization/program_options/date_time) seem to use
bits from BOOST_HAS_THREADS. As you say, it's hard to tell what's
actually necessary.

best,
benjamin


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk