This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: Single ABI: C++11
- From: Jonathan Wakely <jwakely at redhat dot com>
- To: Cristian Morales Vega <cristian at samknows dot com>
- Cc: libstdc++ at gcc dot gnu dot org
- Date: Thu, 19 Jan 2017 15:12:22 +0000
- Subject: Re: Single ABI: C++11
- Authentication-results: sourceware.org; auth=none
- References: <CAGUfO+zuS3-0cTwQTQaOj76mukXA2N5rFVx9CoMZRvHYQ3STQQ@mail.gmail.com>
On 19/01/17 14:58 +0000, Cristian Morales Vega wrote:
The configure script, because of GLIBCXX_ENABLE_LIBSTDCXX_DUAL_ABI and
GLIBCXX_DEFAULT_ABI, doesn't let you have a single ABI with it being
the C++11/new one. Is this on purpose? There is any problem I'm not
aware of with using only the C++11 ABI?
No, it just isn't possible to configure that way yet. That's a bug:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65762
I understand there may be a desire to keep backwards compatibility,
but I am thinking about the case where you are building it for an
embedded device where the toolchain I create will be the only one to
ever be used to create binaries running on it. Since I only need one
ABI, why not to use the new one? (not that I have any specific problem
using the old one) What I need is to save space, so the dual ABI is
also not ideal.
Yes, that's the main reason it should be possible.
I also want to make the explicity-non-backwards-compatible
configuration --enable-symvers=gnu-versioned-namespace use the new ABI
(maybe unconditionally, maybe optionally, I'm not sure yet) and enable
various optimizations that can't be done otherwise without breaking
backwards compatibility, such as:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24693