
On Sat, Jan 29, 2011 at 6:47 PM, John Maddock <boost.regex@virgin.net> wrote:
[snip]
I think this is a real problem, but the solution is rather cumbersome - a Boost library header would then have to support:
1) Exporting from dll. 2) Importing to executable. 3) Importing to dll and re-exporting. 4) None of the above (static lib).
Looking at http://gcc.gnu.org/wiki/Visibility they suggest that 2 & 3 are the same, and both are __attribute__ ((visibility("default"))) on gcc. Sp my suggestion is that we fix the existing macros to do the right thing and change GCC's BOOST_SYMBOL_IMPORT to __attribute__ ((visibility("default"))).
Thoughts?
Thanks for raising this, John.
Hi, Please, read this message in discussion of symbol visibility macro: http://lists.boost.org/Archives/boost/2010/05/166764.php. It tries to explain why it's not desireable to re-export all the symbols from DSO by default. In short, the problem is a) binary compatibility, b) exaggerated symbols table. I guess it's clear what is b) bullet about. Some explanation about a) you can find in the message mentioned above. Regards