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;

Reply via email to