On Mon, 2017-08-21 at 16:30 +0100, Jonathan Wakely wrote: > I proposed this ABI breaking change for the > --enable-symvers=gnu-versioned-namespace config and nobody replied: > https://gcc.gnu.org/ml/libstdc++/2016-10/msg00017.html > > This gets rid of the allocations in the move operations, allowing > "really empty" deques. Sorry for derailing this thread slightly, but are there more details about --enable-symvers than are found in the option description in https://gcc.gnu.org/onlinedocs/libstdc++/manual/configure.html ? It's not clear what the difference is between the different values (in particular "gnu" vs. "gnu-versioned-namespace"). Also, it's not clear what this means, if anything, for static libstdc++. Let us suppose I'm building my own GCC/binutils on GNU/Linux, and I will be compiling all my code (C/C++) and any 3rd party C++ libraries with that compiler, and I'll be linking all my programs and shared libraries with -static-libstdc++, and I've also used a linker map on my shared libraries to ensure that only the specific symbols that I want are published (thus no STL symbols from my -static-libstdc++ are visible to users of my shared library). I don't send any STL-typed data across the API of my shared library. Is the value of --enable-symvers potentially interesting/useful to me in this situation? Cheers!