Subject: [Boost-bugs] [Boost C++ Libraries] #12722: asio visibility pragmas bloat .dynstr segment
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2017-01-04 18:05:19
#12722: asio visibility pragmas bloat .dynstr segment
----------------------+------------------------------
Reporter: mzeren@⦠| Type: Bugs
Status: new | Milestone: To Be Determined
Component: None | Version: Boost 1.58.0
Severity: Problem | Keywords:
----------------------+------------------------------
We have a dynamic library that uses asio internally. It does not use asio
in its public API. We compile this library with -fvisibility=hidden. When
upgrading from boost 1.55 to 1.61 we noticed about 100K worth of asio
symbols being added to the .dynstr segment of this library. This is an
unacceptable increase for our system.
After some research we found that this is due to:
{{{
commit: 382804a4325b0e3b90d07f6563f5c6fd13a38052
Author: Christopher Kohlhoff chris_at_[hidden]
Date: Sat Mar 21 00:28:43 2015
-----
Use default visibility everywhere.
-----
M include/boost/asio/detail/pop_options.hpp
M include/boost/asio/detail/push_options.hpp
M include/boost/asio/detail/service_registry.hpp
}}}
Which added #pragma GCC visibility push (default). Unfortunately the
pragma overrides our -fvisibility command line argument. This patch first
appears in Boost 1.58.
To use gcc visibility correctly asio should adopt the standard macro idiom
described in https://gcc.gnu.org/wiki/Visibility.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/12722> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:20 UTC