summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'patches/aixrtl/2.4.4-expsym-c')
-rw-r--r--patches/aixrtl/2.4.4-expsym-c21
1 files changed, 21 insertions, 0 deletions
diff --git a/patches/aixrtl/2.4.4-expsym-c b/patches/aixrtl/2.4.4-expsym-c
new file mode 100644
index 0000000..cad960b
--- /dev/null
+++ b/patches/aixrtl/2.4.4-expsym-c
@@ -0,0 +1,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
+@@ -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.
+ export_symbols_cmds='$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='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*|_GLOBAL__[FID]_.*'
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal