On 9/15/2016 12:19 PM, Rene Rivera wrote:
On Thu, Sep 15, 2016 at 11:04 AM, Edward Diener
wrote: 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 not AFAICS. 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.