"William E. Kempf" <[EMAIL PROTECTED]> writes:

> John Maddock said:
>> I think I may be the one who broke a lot of the OpenBSD regression tests
>> by defining BOOST_HAS_PTHREADS in the OpenBSD platform configuration.
>> IMO this is correct (OpenBSD supports pthreads right?), but it causes a
>> problem: currently the gcc config unconditionally defines
>> BOOST_HAS_THREADS, basically because we didn't know what else to do (gcc
>> on *BSD doesn't define anything when you build with -pthread - basically
>> defining -pthread affects only the linker, so we can't detect when to
>> turn on threading support). This in turn is breaking a lot of libraries:
>> mainly those that depend upon smart pointers, which do internal thread
>> synchronisation, and therefore need the -pthread option in order to link
>> correctly.
>>
>> What should we do about this?
>>
>> Option 1:
>> ~~~~~~
>>
>> would putting:
>>
>>         flags gcc CFLAGS <threading>single : -DBOOST_DISABLE_THREADS ;
>>
>> fix the problem?
>>
>> Option 2:
>> ~~~~~~
>>
>> Add
>>
>>         flags gcc CFLAGS <threading>multi : -pthread -D_REENTRANT ;
>>
>> to the toolset, and stop defining BOOST_HAS_THREADS unconditionally for
>> gcc. This one may have all sorts of unexpected side effects on other
>> platforms though - even though philosophically it does seem the right
>> thing to do.
>>
>> Option 3:
>> ~~~~~~
>>
>> Make -pthread the default build option in the gcc toolset for *BSD
>> platforms
>>
>> ~~~~~~~~~~~
>
> Seems to me like this should be reversed.  Have the config headers
> unconditionally NOT define BOOST_HAS_THREADS, and have the Jam toolsets
> define it when threading is requested.  

I don't love that idea because it ties a very boost-specific define
into the core of Boost.Build, which is really supposed to be a general
build system.  How will people deal with the next such define for some
other library?

-- 
                       David Abrahams
   [EMAIL PROTECTED] * http://www.boost-consulting.com
Boost support, enhancements, training, and commercial distribution

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to