[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