aix: Use $(AR) without -X32_64 to build FAT libraries.
authorClément Chigot <clement.chigot@atos.net>
Tue, 18 Aug 2020 12:05:33 +0000 (14:05 +0200)
committerDavid Edelsohn <dje.gcc@gmail.com>
Sun, 27 Sep 2020 16:43:29 +0000 (12:43 -0400)
AIX FAT libraries should be built with the version of AR chosen by configure.
The GNU Make $(AR) variable includes the AIX -X32_64 option needed
by the default Makefile rules to accept both 32 bit and 64 bit object files.
The -X32_64 option conflicts with ar archiving objects of the same name
used to build FAT libraries.

This patch changes the Makefile fragments for AIX FAT libraries to use $(AR),
but strips the -X32_64 option from the Make variable.

libgcc/ChangeLog:

2020-09-27  Clement Chigot  <clement.chigot@atos.net>

* config/rs6000/t-slibgcc-aix: Use $(AR) without -X32_64.

libatomic/ChangeLog:

2020-09-27  Clement Chigot  <clement.chigot@atos.net>

* config/t-aix: Use $(AR) without -X32_64.

libgomp/ChangeLog:

2020-09-27  Clement Chigot  <clement.chigot@atos.net>

* config/t-aix: Use $(AR) without -X32_64.

libstdc++-v3/ChangeLog:

2020-09-27  Clement Chigot  <clement.chigot@atos.net>

* config/os/aix/t-aix: Use $(AR) without -X32_64.

libgfortran/ChangeLog:

2020-09-27  Clement Chigot  <clement.chigot@atos.net>

* config/t-aix: Use $(AR) without -X32_64.

libatomic/config/t-aix
libgcc/config/rs6000/t-slibgcc-aix
libgfortran/config/t-aix
libgomp/config/t-aix
libstdc++-v3/config/os/aix/t-aix

index 0f37aaa15f3b85a3b3197e04af29149b0066e2b2..08607727574f3c376a43e9460c81ae6fbee0fc5f 100644 (file)
@@ -3,8 +3,9 @@ BITS=$(shell if test -z "`$(CC) -x c -E /dev/null -g3 -o - | grep 64BIT`" ; then
     echo '64'; else echo '32'; fi)
 #MAJOR=$(firstword $(subst :, ,$(libtool_VERSION)))
 MAJOR=1
+ARX=$(shell echo $(AR) | sed -e 's/-X[^ ]*//g')
 all-local:
-       ar -X$(BITS) rc .libs/$(PACKAGE).a ../ppc$(BITS)/$(PACKAGE)/.libs/$(PACKAGE).so.$(MAJOR)
-       ar -X$(BITS) rc ../pthread/$(PACKAGE)/.libs/$(PACKAGE).a ../pthread/ppc$(BITS)/$(PACKAGE)/.libs/$(PACKAGE).so.$(MAJOR)
+       $(ARX) -X$(BITS) rc .libs/$(PACKAGE).a ../ppc$(BITS)/$(PACKAGE)/.libs/$(PACKAGE).so.$(MAJOR)
+       $(ARX) -X$(BITS) rc ../pthread/$(PACKAGE)/.libs/$(PACKAGE).a ../pthread/ppc$(BITS)/$(PACKAGE)/.libs/$(PACKAGE).so.$(MAJOR)
 endif
 
index b3bdda6f9a80e6c338320aa43bdc7a6bb12fbfbd..a6c5ceebbe8b064ddc65490bd50eade7275ea9a7 100644 (file)
@@ -92,27 +92,28 @@ AR_FLAGS_FOR_TARGET = -X32_64
 ifeq ($(MULTIBUILDTOP),)
 BITS=$(shell if test -z "`$(CC) -x c -E /dev/null -g3 -o - | grep 64BIT`" ; then \
     echo '64'; else echo '32'; fi)
+ARX=$(shell echo $(AR) | sed -e 's/-X[^ ]*//g')
 all: all-multi
 ifeq ($(enable_shared),yes)
-       ar -X$(BITS) x ../ppc$(BITS)/libgcc/libgcc_s.a shr.o
-       ar -X$(BITS) rc ./libgcc_s.a shr.o
+       $(ARX) -X$(BITS) x ../ppc$(BITS)/libgcc/libgcc_s.a shr.o
+       $(ARX) -X$(BITS) rc ./libgcc_s.a shr.o
        rm -f shr.o
-       ar -X$(BITS) x ../pthread/ppc$(BITS)/libgcc/libgcc_s.a shr.o
-       ar -X$(BITS) rc ../pthread/libgcc/libgcc_s.a shr.o
+       $(ARX) -X$(BITS) x ../pthread/ppc$(BITS)/libgcc/libgcc_s.a shr.o
+       $(ARX) -X$(BITS) rc ../pthread/libgcc/libgcc_s.a shr.o
        rm -f shr.o
 endif
-       ar -X$(BITS) rc libgcc.a \
+       $(ARX) -X$(BITS) rc libgcc.a \
            $(addprefix ../ppc$(BITS)/libgcc/,$(libgcc-objects))
-       ar -X$(BITS) rc libgcc_eh.a \
+       $(ARX) -X$(BITS) rc libgcc_eh.a \
            $(addprefix ../ppc$(BITS)/libgcc/,$(libgcc-eh-objects))
-       ar -X$(BITS) rc ../pthread/libgcc/libgcc.a \
+       $(ARX) -X$(BITS) rc ../pthread/libgcc/libgcc.a \
            $(addprefix ../pthread/ppc$(BITS)/libgcc/,$(libgcc-objects))
-       ar -X$(BITS) rc ../pthread/libgcc/libgcc_eh.a \
+       $(ARX) -X$(BITS) rc ../pthread/libgcc/libgcc_eh.a \
            $(addprefix ../pthread/ppc$(BITS)/libgcc/,$(libgcc-eh-objects))
 ifeq ($(enable_gcov),yes)
-       ar -X$(BITS) rc libgcov.a \
+       $(ARX) -X$(BITS) rc libgcov.a \
            $(addprefix ../ppc$(BITS)/libgcc/,$(libgcov-objects))
-       ar -X$(BITS) rc ../pthread/libgcc/libgcov.a \
+       $(ARX) -X$(BITS) rc ../pthread/libgcc/libgcov.a \
            $(addprefix ../pthread/ppc$(BITS)/libgcc/,$(libgcov-objects))
 endif
        $(MAKE) install-leaf DESTDIR=$(gcc_objdir) \
index e398b15c9eb79c3c47549840b814de823e14163f..0e50501d10e4b9ed683004e3a17ba1cc787b2c5b 100644 (file)
@@ -3,9 +3,10 @@ BITS=$(shell if test -z "`$(CC) -x c -E /dev/null -g3 -o - | grep 64BIT`" ; then
     echo '64'; else echo '32'; fi)
 #MAJOR=$(firstword $(subst :, ,$(libtool_VERSION)))
 MAJOR=5
+ARX=$(shell echo $(AR) | sed -e 's/-X[^ ]*//g')
 all-local:
-       ar -X$(BITS) rc .libs/$(PACKAGE).a ../ppc$(BITS)/$(PACKAGE)/.libs/$(PACKAGE).so.$(MAJOR)
-       ar -X$(BITS) rc ../pthread/$(PACKAGE)/.libs/$(PACKAGE).a ../pthread/ppc$(BITS)/$(PACKAGE)/.libs/$(PACKAGE).so.$(MAJOR)
-       ar -X$(BITS) rc .libs/libcaf_single.a ../ppc$(BITS)/$(PACKAGE)/.libs/$(libcaf_single_la_OBJECTS:.lo=.o)
-       ar -X$(BITS) rc ../pthread/$(PACKAGE)/.libs/libcaf_single.a ../pthread/ppc$(BITS)/$(PACKAGE)/.libs/$(libcaf_single_la_OBJECTS:.lo=.o)
+       $(ARX) -X$(BITS) rc .libs/$(PACKAGE).a ../ppc$(BITS)/$(PACKAGE)/.libs/$(PACKAGE).so.$(MAJOR)
+       $(ARX) -X$(BITS) rc ../pthread/$(PACKAGE)/.libs/$(PACKAGE).a ../pthread/ppc$(BITS)/$(PACKAGE)/.libs/$(PACKAGE).so.$(MAJOR)
+       $(ARX) -X$(BITS) rc .libs/libcaf_single.a ../ppc$(BITS)/$(PACKAGE)/.libs/$(libcaf_single_la_OBJECTS:.lo=.o)
+       $(ARX) -X$(BITS) rc ../pthread/$(PACKAGE)/.libs/libcaf_single.a ../pthread/ppc$(BITS)/$(PACKAGE)/.libs/$(libcaf_single_la_OBJECTS:.lo=.o)
 endif
index c3bb6c0bce0abced9742a6b3d0ffa9764f47602f..35bff8bb019f6ee6fe157b93189946122c83ddf6 100644 (file)
@@ -1,9 +1,10 @@
 ifeq ($(MULTIBUILDTOP),)
 BITS=$(shell if test -z "`$(CC) -x c -E /dev/null -g3 -o - | grep 64BIT`" ; then \
     echo '64'; else echo '32'; fi)
+ARX=$(shell echo $(AR) | sed -e 's/-X[^ ]*//g')
 MAJOR=$(firstword $(subst :, ,$(libtool_VERSION)))
 all-local:
-       ar -X$(BITS) rc .libs/$(PACKAGE).a ../ppc$(BITS)/$(PACKAGE)/.libs/$(PACKAGE).so.$(MAJOR)
-       ar -X$(BITS) rc ../pthread/$(PACKAGE)/.libs/$(PACKAGE).a ../pthread/ppc$(BITS)/$(PACKAGE)/.libs/$(PACKAGE).so.$(MAJOR)
+       $(ARX) -X$(BITS) rc .libs/$(PACKAGE).a ../ppc$(BITS)/$(PACKAGE)/.libs/$(PACKAGE).so.$(MAJOR)
+       $(ARX) -X$(BITS) rc ../pthread/$(PACKAGE)/.libs/$(PACKAGE).a ../pthread/ppc$(BITS)/$(PACKAGE)/.libs/$(PACKAGE).so.$(MAJOR)
 endif
 
index 3e36bc8308e821e4363d2de11e0af5d973a802f2..14d2ac740ec6cfa141f6889ae319ce68771fd024 100644 (file)
@@ -2,11 +2,11 @@ ifeq ($(MULTIBUILDTOP),)
 BITS=$(shell if test -z "`$(CC) -x c -E /dev/null -g3 -o - | grep 64BIT`" ; then \
     echo '64'; else echo '32'; fi)
 MAJOR=$(firstword $(subst :, ,$(libtool_VERSION)))
-STOBJS=$(shell ar -X$(BITS) t ../ppc$(BITS)/$(PACKAGE)-v3/libsupc++/.libs/libsupc++.a)
+ARX=$(shell echo $(AR) | sed -e 's/-X[^ ]*//g')
+STOBJS=$(shell $(ARX) -X$(BITS) t ../ppc$(BITS)/$(PACKAGE)-v3/libsupc++/.libs/libsupc++.a)
 all-local:
-       ar -X$(BITS) rc src/.libs/$(PACKAGE).a ../ppc$(BITS)/$(PACKAGE)-v3/src/.libs/$(PACKAGE).so.$(MAJOR)
-       ar -X$(BITS) rc ../pthread/$(PACKAGE)-v3/src/.libs/$(PACKAGE).a ../pthread/ppc$(BITS)/$(PACKAGE)-v3/src/.libs/$(PACKAGE).so.$(MAJOR)
-       ar -X$(BITS) rc libsupc++/.libs/libsupc++.a ${addprefix ../ppc$(BITS)/$(PACKAGE)-v3/libsupc++/,$(STOBJS)}
-       ar -X$(BITS) rc ../pthread/$(PACKAGE)-v3/libsupc++/.libs/libsupc++.a ${addprefix ../pthread/ppc$(BITS)/$(PACKAGE)-v3/libsupc++/,$(STOBJS)}
+       $(ARX) -X$(BITS) rc src/.libs/$(PACKAGE).a ../ppc$(BITS)/$(PACKAGE)-v3/src/.libs/$(PACKAGE).so.$(MAJOR)
+       $(ARX) -X$(BITS) rc ../pthread/$(PACKAGE)-v3/src/.libs/$(PACKAGE).a ../pthread/ppc$(BITS)/$(PACKAGE)-v3/src/.libs/$(PACKAGE).so.$(MAJOR)
+       $(ARX) -X$(BITS) rc libsupc++/.libs/libsupc++.a ${addprefix ../ppc$(BITS)/$(PACKAGE)-v3/libsupc++/,$(STOBJS)}
+       $(ARX) -X$(BITS) rc ../pthread/$(PACKAGE)-v3/libsupc++/.libs/libsupc++.a ${addprefix ../pthread/ppc$(BITS)/$(PACKAGE)-v3/libsupc++/,$(STOBJS)}
 endif
-