This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: [RFC] C++1x breaking the ABI in one more place :(
- From: Christopher Jefferson <chris at bubblescope dot net>
- To: Paolo Carlini <paolo dot carlini at oracle dot com>
- Cc: libstdc++ <libstdc++ at gcc dot gnu dot org>, Ian Lance Taylor <iant at google dot com>, Jakub Jelinek <jakub at redhat dot com>, Jason Merrill <jason at redhat dot com>
- Date: Wed, 19 May 2010 19:30:05 +0100
- Subject: Re: [RFC] C++1x breaking the ABI in one more place :(
- References: <4BF42B5D.2000405@oracle.com>
On 19 May 2010, at 19:18, Paolo Carlini wrote:
> Hi,
>
> so I was finally getting around to adding the new C++1x member functions
> to std::time_get (also needed in order to implement the std::get_time
> free function) when I noticed that we should also add a new *virtual*
> function, do_get, and that breaks of course the ABI because, eg, on
> x86_64, the size of the object itself grows from 80 to 88...
>
> Off the top of my head, I can't imagine any trick we can play to avoid
> breaking the ABI when adding an additional virtual, but I admit not
> being such an expert in this area, and I'm looking for advice...
Putting the new file into an inline namespace would at least allow code using the old and new std::time_get to live together, although they couldn't be passed back and forth. I don't know how much people do that.
Chris