libtool-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 3/3] AIX: Stop exporting any _GLOBAL__ symbol.


From: Michael Haubenwallner
Subject: [PATCH 3/3] AIX: Stop exporting any _GLOBAL__ symbol.
Date: Mon, 21 Mar 2016 18:01:51 +0100

* m4/libtool.m4 (_LT_LINKER_SHLIBS): On AIX, GNU g++ generates
_GLOBAL__* symbols as, amongst others, landing pads for C++ exceptions.
These symbols must not be exported from shared libraries, or exception
handling may break for applications with runtime linking enabled.
---
 m4/libtool.m4 | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/m4/libtool.m4 b/m4/libtool.m4
index 131dd48..6039bea 100644
--- a/m4/libtool.m4
+++ b/m4/libtool.m4
@@ -5000,6 +5000,7 @@ m4_if([$1], [CXX], [
     # '[[BDLT]]*' with AIX nm in default mode (POSIX like)
     # '[[CVW]]'   with GNU nm in either BSD or POSIX mode
     _LT_TAGVAR(export_symbols_cmds, $1)='$NM -gp $libobjs $convenience | 
$global_symbol_pipe | $EGREP -v " ($exclude_expsyms)$" | awk '\''{ kw = "" } 
/^([[CVWZ]]|[[BDLT]]\*) / { kw = " weak" } { print $ 3 kw }'\'' | sort -u > 
$export_symbols'
+    _LT_TAGVAR(exclude_expsyms, $1)='_GLOBAL_OFFSET_TABLE_|_GLOBAL__.*'
     ;;
   pw32*)
     _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds
@@ -5446,6 +5447,7 @@ _LT_EOF
        # symbols only, and the '-p' flag disables sorting to improve
        # performance.  For the weak symbol handling see the CXX tag.
        _LT_TAGVAR(export_symbols_cmds, $1)='$NM -gp $libobjs $convenience | 
$global_symbol_pipe | $EGREP -v " ($exclude_expsyms)$" | awk '\''{ kw = "" } 
/^([[CVWZ]]|[[BDLT]]\*) / { kw = " weak" } { print $ 3 kw }'\'' | sort -u > 
$export_symbols'
+       _LT_TAGVAR(exclude_expsyms, $1)='_GLOBAL_OFFSET_TABLE_|_GLOBAL__.*'
        aix_use_runtimelinking=no
 
        # Test if we are trying to use run time linking or normal
-- 
2.4.6




reply via email to

[Prev in Thread] Current Thread [Next in Thread]