Subject: Re: [boost] [uuid] PR to remove auto-linking to advapi32 when BOOST_ALL_NO_LIB is defined
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2016-09-15 12:45:21
On 09/15/16 19:04, Edward Diener wrote:
> I don't know how to resolve a PR for uuid (
> https://github.com/boostorg/uuid/pull/11 ).
I've added a comment to the PR.
> If a library exists only as
> a DLL and not as a static library should BOOST_ALL_NO_LIB still be
> considered in effect ?
> My viewpoint is 'no' but the person who created the PR believes that the
> BOOST_ALL_NO_LIB config macro should turn off any #pragma auto-linking
> in code even when their is no other way to use a library other than as a
> shared library.
I think it doesn't matter whether auto-linking drings in a static or a
shared library - you can't even tell at this point. My understanding
that the macro is supposed to turn auto-linking completely off.
That said, as I described in the comment, this may break things when a
reader-only library with external dependencies, such as Boost.UUID, is
used in a copmilable Boost library. When Boost libraries are built
BOOST_ALL_NO_LIB is always defined (presumably, to allow Boost.Build
manage dependencies itself?), so the external depenency of Boost.UUID
would be missing.
I think we should (a) decide if BOOST_ALL_NO_LIB needs to be defined
while building Boost and (b) if it does, provide a way for users to
disable auto-linking while it is still partially enabled in cases like
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk