enable-symvers (was: Re: std::deque move constructor)
Paul Smith
paul@mad-scientist.net
Mon Aug 21 21:42:00 GMT 2017
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!
More information about the Gcc-help
mailing list