[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 2/2] AIX: Stop exporting any _GLOBAL__ symbol.
From: |
David Edelsohn |
Subject: |
Re: [PATCH 2/2] AIX: Stop exporting any _GLOBAL__ symbol. |
Date: |
Mon, 21 Mar 2016 13:56:34 -0400 |
On Wed, Mar 2, 2016 at 11:19 AM, Michael Haubenwallner
<address@hidden> wrote:
> * 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.
Yes, another corner case that needs to be excluded.
Thanks, David
> ---
> m4/libtool.m4 | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/m4/libtool.m4 b/m4/libtool.m4
> index 6134522..c8a878f 100644
> --- a/m4/libtool.m4
> +++ b/m4/libtool.m4
> @@ -5042,6 +5042,7 @@ m4_if([$1], [CXX], [
> _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
> case $host_os in
> aix[[4-9]]*)
> + _LT_TAGVAR(exclude_expsyms, $1)='_GLOBAL_OFFSET_TABLE_|_GLOBAL__.*'
> _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience |
> $global_symbol_pipe | $EGREP -v " ($exclude_expsyms)$" | awk '\''{ kw = "" }
> /^[[VWZ]] / { kw = " weak" } { print $ 3 kw }'\'' | sort -u > $export_symbols'
> ;;
> pw32*)
> @@ -5485,6 +5486,7 @@ _LT_EOF
> exp_sym_flag='-Bexport'
> no_entry_flag=
> else
> + _LT_TAGVAR(exclude_expsyms, $1)='_GLOBAL_OFFSET_TABLE_|_GLOBAL__.*'
> _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience |
> $global_symbol_pipe | $EGREP -v " ($exclude_expsyms)$" | awk '\''{ kw = "" }
> /^[[VWZ]] / { kw = " weak" } { print $ 3 kw }'\'' | sort -u > $export_symbols'
> aix_use_runtimelinking=no
>
> --
> 2.4.6
>
[PATCH 2/2] AIX: Stop exporting any _GLOBAL__ symbol., Michael Haubenwallner, 2016/03/02
- Re: [PATCH 2/2] AIX: Stop exporting any _GLOBAL__ symbol.,
David Edelsohn <=