On Wed, Aug 06, 2014 at 12:33:42PM +0100, Joern Rennecke wrote: > On 6 August 2014 11:31, Richard Biener <richard.guent...@gmail.com> wrote: > > Ok, so the problematical case is > > > > struct X { std::string s; }; > > void foo (X&); > > Wouldn't it be even more troublesome with an application that dynloads > dsos depending on user input. > The install script might check if the dso with the right soname is present, > but then you still get dynamic linker errors when the user tries to > do something with the application, which could be an arbitrary time after > the upgrade.
Now, if you do the same with libstdc++.so.7, you have exactly the same issue (need to think what you do with SONAMEs of libraries built with C++), but furthermore whenever you get both libstdc++.so.6 and libstdc++.so.7 loaded into the same process, most probably nothing will work at all, there will be no mangling differences between so.6 and so.7 symbols, etc. Jakub