Subject: Re: [boost] [uuid] PR to remove auto-linking to advapi32 when BOOST_ALL_NO_LIB is defined
From: Edward Diener (eldiener_at_[hidden])
Date: 2016-09-15 12:49:21
On 9/15/2016 12:19 PM, Rene Rivera wrote:
> On Thu, Sep 15, 2016 at 11:04 AM, Edward Diener <eldiener_at_[hidden]>
>> I don't know how to resolve a PR for uuid ( https://github.com/boostorg/uu
>> id/pull/11 ). 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.
>> What I am afraid of is breaking user code even if BOOST_ALL_NO_LIB is
>> defined by producing link errors. But perhaps I am wrong and this should be
>> considered justified when BOOST_ALL_NO_LIB is being used.
> I agree with the PR. Someone defining expects to have
> control of what they are linking. And they expect to get link errors for
> libs they need to link it. And it might be they are in the use case where
> they are creating a DLL/SO of their own and can incorporate external, in
> this case UUID, DLL code themselves.
But if they use the part of the code in the header file which needs to
link with a DLL/SO which has no static library, they will need to
specify that DLL/SO for the linker anyway, else they will have linker
errors. This will be the same if they create a DLL/SO of their own or
I can understand your saying that BOOST_ALL_NO_LIB should refer to all
cases, whether the library is a Boost library or not, whether the
library has a static library equiavalent or not. But I am wondering if
that is the official config macro intent.
The part of the PR with which I do agree is that if another DLL is being
used for WIN_CE then the autolinking pragma has to be corrected for that
situation. But whether or not the #pragma should be removed in favor of
config auto-linking I still do not know.