On 01/12/15 16:33 -0500, Jason Merrill wrote:
On 11/25/2015 11:58 AM, Moore, Catherine wrote:
-----Original Message-----
From: Richard Henderson [mailto:r...@redhat.com]
Sent: Friday, September 18, 2015 3:25 PM
To: Moore, Catherine; gcc-patches@gcc.gnu.org
Cc: ja...@redhat.com; Matthew Fortune
Subject: Re: [RFA] Compact EH Patch
Index: libgcc/libgcc-std.ver.in
==========================================================
=========
--- libgcc/libgcc-std.ver.in (revision 226409)
+++ libgcc/libgcc-std.ver.in (working copy)
@@ -1918,6 +1918,7 @@ GCC_4.6.0 {
__morestack_current_segment
__morestack_initial_sp
__splitstack_find
+ _Unwind_GetEhEncoding
}
%inherit GCC_4.7.0 GCC_4.6.0
@@ -1938,3 +1939,8 @@ GCC_4.7.0 {
%inherit GCC_4.8.0 GCC_4.7.0
GCC_4.8.0 {
}
+
+%inherit GCC_4.8.0 GCC_4.7.0
+GCC_4.8.0 {
+ __register_frame_info_header_bases
+}
You can't push new symbols into old versions. These have to go into the
version for the current gcc.
Index: libstdc++-v3/config/abi/pre/gnu.ver
==========================================================
=========
--- libstdc++-v3/config/abi/pre/gnu.ver (revision 226409)
+++ libstdc++-v3/config/abi/pre/gnu.ver (working copy)
@@ -1909,6 +1909,7 @@ CXXABI_1.3 {
__gxx_personality_v0;
__gxx_personality_sj0;
__gxx_personality_seh0;
+ __gnu_compact_pr2;
__dynamic_cast;
# *_type_info classes, ctor and dtor
Index: libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
==========================================================
=========
--- libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
(revision 226409)
+++ libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
(working copy)
@@ -200,6 +200,7 @@ CXXABI_2.0 {
__cxa_vec_new;
__gxx_personality_v0;
__gxx_personality_sj0;
+ __gnu_compact_pr2;
__dynamic_cast;
# std::exception_ptr
Likewise.
I'm getting ready to post the updates to this patch -- hopefully, I can still
get it in GCC 6.0.
I'm not sure how to tell what the current CXXABI is for these two files.
Should it be CXXABI_2.0 for both of these?
Jonathan, can you answer this question?
It's OK to add to CXXABI_2.0 for the gnu-versioned-namespace file,
when you configure libstdc++ to use the versioned namespaces you're
explicitly requesting no ABI compatibility, and everything gets the
same version.
For gnu.ver you need to create a new symbol version and add new
symbols in there. CXXABI_1.3.9 was present in GCC 5, so you need to
create CXXABI_1.3.10 for your new symbol.
CXXABI_1.3.10 {
__gnu_compact_pr2;
} CXXABI_1.3.9;