[Boost-bugs] [Boost C++ Libraries] #12722: asio visibility pragmas bloat .dynstr segment

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