[PATCH, committed] AIX libstdc++ configure.host LD_FLAGS
Michael Haubenwallner
haubi@gentoo.org
Fri Oct 31 11:27:00 GMT 2014
On 10/30/2014 03:19 PM, David Edelsohn wrote:
> AIX has been unable to bootstrap since the match-and-simplify merge.
> Richard Biener and I tracked this back to a bad interaction between a
> GCC optimization and the AIX linker -G option to allow for SVR4-style
> runtime linking.
As the -G linker option is the equivalent of specifying the options
"-berok -brtl -bnortllib -bnosymbolic -bnoautoexp -bM:SRE", did you
track down which one exactly interacts with that GCC optimization?
Background is that I do rely on the "-brtl" linker flag actually, to
allow Linux-like filename-based sharedlib versioning, using plain text
"Import Files" as member of the libstdc++.so archive. We talked about
that years ago, and I do plan to redo "aix-soname" for gcc-trunk.
> The following patch removes the linker option from the libstdc++
> build. This will prevent runtime function interposition, e.g.
> overriding operator new, when using libstdc++, but that is rarely
> needed.
While I agree things like overriding operator new is rarely needed, I
doubt it is acceptable to prevent this deliberately on an otherwise
fully supportable platform. As far as I can see, even IBM is after
getting as many Linux-known features as possible into AIX...
Would it work to use sth. like "-G -bsymbolic" instead?
Thanks!
/haubi/
>
> This patch also uses the default atomic support
>
> Bootstrapped on powerpc-ibm-aix7.1.0.0
>
> 2014-10-30 David Edelsohn <dje.gcc@gmail.com>
>
> * configure.host (aix5+): New stanza.
> (aix4.3+): Do not use -G in link command.
>
> Index: configure.host
> ===================================================================
> --- configure.host (revision 216851)
> +++ configure.host (working copy)
> @@ -212,14 +212,20 @@
> # CPU-specifc, set those here too.
> # THIS TABLE IS SORTED. KEEP IT THAT WAY.
> case "${host_os}" in
> - aix4.[3456789]* | aix[56789]*)
> + aix[56789]*)
> + # Newer versions of AIX only support PowerPC architecture, so use
> + # atomic instructions directly.
> + os_include_dir="os/aix"
> + atomicity_dir="cpu/generic"
> + atomic_word_dir="os/aix"
> + ;;
> + aix4.[3456789]*)
> # We set os_include_dir to os/aix only on AIX 4.3 and newer, but
> # os/aix/atomicity.h works on earlier versions of AIX 4.*, so we
> # explicitly duplicate the directory for 4.[<3].
> os_include_dir="os/aix"
> atomicity_dir="os/aix"
> atomic_word_dir="os/aix"
> - OPT_LDFLAGS="-Wl,-G"
> ;;
> aix4.*)
> os_include_dir="os/generic"
>
More information about the Libstdc++
mailing list