summaryrefslogtreecommitdiff
blob: a9ea0467a5aab8e848b6d6ddad7fb4b4b0ef7e9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
commit 2dfd834840a9de8ce3866af1cf8f3aff9b1a15e8
Author: Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
Date:   Wed Mar 2 15:06:48 2016 +0100

    AIX: Stop exporting any _GLOBAL__ symbol.
    
    * 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.

--- configure
+++ configure
@@ -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
     export_symbols_cmds_CXX='$NM -gp $libobjs $convenience | $global_symbol_pipe | $EGREP -v " ($exclude_expsyms)$" | awk '\''{ kw = "" } /^([[CVWZ]]|[[BDLT]]\*) / { kw = " weak" } { print $ 3 kw }'\'' | sort -u > $export_symbols'
+    exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*|_GLOBAL__[FID]_.*'
     ;;
   pw32*)
     export_symbols_cmds_CXX=$ltdll_cmds