Patchwork Ping: [PATCH] top-level libtool / configure.ac PIC support for AIX

login
register
mail settings
Submitter David Edelsohn
Date Sept. 8, 2012, 8:56 p.m.
Message ID <CAGWvny=YPLQTEYoU=ffx0Urv99e3_HrRgMSiMy0-_6gkU1Q4yg@mail.gmail.com>
Download mbox | patch
Permalink /patch/182591/
State New
Headers show

Comments

David Edelsohn - Sept. 8, 2012, 8:56 p.m.
As mentioned in

http://gcc.gnu.org/ml/gcc-patches/2012-08/msg01364.html

GCC now is performing optimizations in binds_local_p() that
necessitates adding -fPIC when compiling objects for shared libraries
on AIX.  The libtool patch has been accepted upstream.

-fPIC creates unique names for some weak symbols, causing spurious
miscompares addressed by the patch to top-level configure.ac.  The
libquadmath patch is another patch waiting for approval.

How do the requirements to regenerate configure interact with the
shared, top-level directories?  The only strange difference I saw in
GCC was the libatomic subdirectory, which had differences for AMTAR
although the same version of autoconf.

Bootstrapped and regression tested on powerpc-ibm-aix5.3.0.0 and
powerpc-ibm-aix7.1.0.0.

Thanks, David

        Merge upstream change.
        * libtool.m4 (_LT_COMPILER_PIC): Add -fPIC to GCC and GXX for AIX.

        * configure.ac: Add target-libquadmath to noconfigdirs for AIX.
        Add libgomp*.o to compare_exclusions for AIX.

        * configure: Regenerate
        * */configure: Regenerate

 AC_SUBST(compare_exclusions)

Patch

Index: libtool.m4
===================================================================
--- libtool.m4  (revision 191073)
+++ libtool.m4  (working copy)
@@ -3580,6 +3580,7 @@ 
        # AIX 5 now supports IA64 processor
        _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       fi
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
       ;;

     amigaos*)
@@ -3891,6 +3892,7 @@ 
        # AIX 5 now supports IA64 processor
        _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       fi
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
       ;;

     amigaos*)
Index: configure.ac
===================================================================
--- configure.ac        (revision 191073)
+++ configure.ac        (working copy)
@@ -527,6 +527,15 @@ 
     fi
 fi

+# Disable libquadmath for some systems.
+case "${target}" in
+  # libquadmath is unused on AIX and libquadmath build process use of
+  # LD_LIBRARY_PATH can break AIX bootstrap.
+  powerpc-*-aix* | rs6000-*-aix*)
+    noconfigdirs="$noconfigdirs target-libquadmath"
+    ;;
+esac
+
 # Disable libssp for some systems.
 case "${target}" in
   avr-*-*)
@@ -3187,6 +3196,7 @@ 
 case "$target" in
   hppa*64*-*-hpux*) ;;
   hppa*-*-hpux*) compare_exclusions="gcc/cc*-checksum\$(objext) | */libgcc/lib\
2funcs* | gcc/ada/*tools/*" ;;
+  powerpc*-ibm-aix*) compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/\
*tools/* | *libgomp*\$(objext)" ;;
 esac