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

Michael Haubenwallner <[email protected]>
Newsgroups gmane.comp.gnu.libtool.patches
Message-ID <1458579711-19903-4-git-send-email-michael.haubenwallner@ssi-schaefer.com>
* 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.