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