On Fri, 6 Apr 2018, Jonathan Wakely wrote: > On 6 April 2018 at 12:48, Jonathan Wakely wrote: > > Currently --with-default-libstdcxx-abi doesn't alter the ABI of the > > shared lib when the dual-abi is enabled, just whether the initial > > value of the macro is 0 or 1. All the symbols in the library, and the > > type of exception thrown, are the same for every dual-abi build of the > > library. > > I mean every dual-abi build for a given release, of course. Because > the type of exception thrown changed between gcc 6 and gcc 7, so maybe > my position that the option doesn't affect the ABI of the .so is > untenable, given that it changed independent of that option :-\
All I can say is that for the SUSE distributions that use the old ABI by default but still provide GCC 7+ as optional choice and thus end up using the newest compiler runtime I'm taking the pragmatic approach of making --with-default-libstdcxx-abi=gcc4-compatible throw the old ABI ios_base::failure class via said patch. Currently there's no way to get the old ABI thrown besides disabling dual-ABI but that removes all the symbols that have been present since those distributions offered GCC 5 so isn't a good option. Which means the ABI break between GCC 5/6 and GCC 7 has to be reverted here. Of course I think the ABI break is even intolerable when the new ABI is the default. Ways to fix that have been discussed in the PR but a fix is of course taking time to implement and verify. Richard.