http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47247

--- Comment #29 from vincenzo Innocente <vincenzo.innocente at cern dot ch> 
2012-05-10 07:53:37 UTC ---
we will try binutil 2.22
in any case the test case is simple (with boost 1.49)
notice how w/o linker-plugin NO symbol at all are generated for 
boost::exception_detail::clone_impl etc.

cat boostLto.cc
#include "boost/shared_ptr.hpp"

struct A {
  A(){}
  A(int j) : i(j){}
int i;
};

boost::shared_ptr<A> make(int i) {
   return boost::shared_ptr<A>(new A(i));
}


rm bha.so ; c++ -fno-use-linker-plugin -fvisibility-inlines-hidden -O2 -flto
-shared -fPIC -o bha.so boostLto.cc
-I/afs/cern.ch/cms/slc5_amd64_gcc470/external/boost/1.49.0/include
-Wl,-z,defs,-E ; nm -C bha.so | grep clone
0000000000000ce0 t deregister_tm_clones
0000000000000d10 t register_tm_clones
[vocms123] /build/vin/CMSSW_6_0_X_2012-05-07-1500/src $ rm bha.so ; c++
-fvisibility-inlines-hidden -O2 -flto -shared -fPIC -o bha.so boostLto.cc
-I/afs/cern.ch/cms/slc5_amd64_gcc470/external/boost/1.49.0/include
-Wl,-z,defs,-E ; nm -C bha.so | grep clone
                 U
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_weak_ptr>
>::~clone_impl()
                 U
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_weak_ptr>
>::~clone_impl()
                 U
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_weak_ptr>
>::~clone_impl()
                 w typeinfo for boost::exception_detail::clone_base
                 w typeinfo for
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_weak_ptr>
>
                 w typeinfo name for boost::exception_detail::clone_base
                 w typeinfo name for
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_weak_ptr>
>
                 U non-virtual thunk to
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_weak_ptr>
>::~clone_impl()
                 U non-virtual thunk to
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_weak_ptr>
>::~clone_impl()
                 U non-virtual thunk to
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_weak_ptr>
>::~clone_impl()
                 U non-virtual thunk to
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_weak_ptr>
>::~clone_impl()
0000000000001200 t deregister_tm_clones
0000000000001230 t register_tm_clones
[vocms123] /build/vin/CMSSW_6_0_X_2012-05-07-1500/src $ rm bha.so ; c++ -O2
-flto -shared -fPIC -o bha.so boostLto.cc
-I/afs/cern.ch/cms/slc5_amd64_gcc470/external/boost/1.49.0/include
-Wl,-z,defs,-E ; nm -C bha.so | grep clone0000000000001e00 t
_ZN5boost16exception_detail10clone_baseD0Ev.local.27.2724
0000000000001de0 t _ZN5boost16exception_detail10clone_baseD1Ev.local.40.2721
0000000000001de0 t _ZN5boost16exception_detail10clone_baseD2Ev.local.41.2807
0000000000002200 W
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_weak_ptr>
>::~clone_impl()
0000000000002170 W
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_weak_ptr>
>::~clone_impl()
0000000000002170 W
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_weak_ptr>
>::~clone_impl()
0000000000001f50 t
_ZNK5boost16exception_detail10clone_implINS0_19error_info_injectorINS_12bad_weak_ptrEEEE5cloneEv.local.14.2737
0000000000002000 t
_ZNK5boost16exception_detail10clone_implINS0_19error_info_injectorINS_12bad_weak_ptrEEEE7rethrowEv.local.16.2740
00000000000035a0 V typeinfo for boost::exception_detail::clone_base
00000000000035c0 V typeinfo for
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_weak_ptr>
>
00000000000023c0 V typeinfo name for boost::exception_detail::clone_base
0000000000002400 V typeinfo name for
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_weak_ptr>
>
0000000000003480 d _ZTVN5boost16exception_detail10clone_baseE.local.42.2718
00000000000033e0 d
_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_12bad_weak_ptrEEEEE.local.48.2728
0000000000002280 W non-virtual thunk to
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_weak_ptr>
>::~clone_impl()
00000000000021f0 W non-virtual thunk to
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_weak_ptr>
>::~clone_impl()
0000000000001ff0 t
_ZThn48_NK5boost16exception_detail10clone_implINS0_19error_info_injectorINS_12bad_weak_ptrEEEE5cloneEv.local.13.2747
00000000000020b0 t
_ZThn48_NK5boost16exception_detail10clone_implINS0_19error_info_injectorINS_12bad_weak_ptrEEEE7rethrowEv.local.15.2749
0000000000002270 W non-virtual thunk to
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_weak_ptr>
>::~clone_impl()
00000000000021e0 W non-virtual thunk to
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_weak_ptr>
>::~clone_impl()
0000000000001c60 t deregister_tm_clones
0000000000001c90 t register_tm_clones

Reply via email to