* 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