Subject: Re: [boost] [log] [asio] Conflicting default configs
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2015-03-31 13:23:25
On Tuesday 31 March 2015 09:14:30 Steven Watanabe wrote:
> On 03/30/2015 04:54 PM, Andrey Semashev wrote:
> > 1. Introduce an inline ABI namespace in Boost.ASIO, much like the one I
> > have in Boost.Log. The namespace name would depend on
> > BOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION and other macros that affect
> > binary compatibility. This would be my preferred solution, although I'm
> > not
> > sure how fast and easy it can be implemented.
> > 2. Remove symbol visibility enforcement from Boost.ASIO, or at least make
> > it optional. That way I could encapsulate my private copy of Boost.ASIO
> > in Boost.Log binaries.
> Both of these will tend to result in pointlessly
> duplicating ASIO.
Well, Boost.ASIO code is currently compiled into Boost.Log, so unless the user
links statically the duplication already exists.
> I don't think that libraries should set
> configuration options for other libraries.
What if the default config of the other library is not suitable? The reason
why I added config enforcement is because compiler-based TLS can prevent using
Boost.Log in dynamically loaded (i.e. with dlopen()) libraries. So with
default config Boost.Log binaries are inconsistent and not working in some
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk