AIX_WEAK_SUPPORT
authorAlan Modra <amodra@gmail.com>
Fri, 14 Jul 2023 01:16:50 +0000 (10:46 +0930)
committerAlan Modra <amodra@gmail.com>
Fri, 14 Jul 2023 02:13:52 +0000 (11:43 +0930)
Making target code depend on a host define like _AIX52 is never
correct, so out it goes.  Also, sort some config.bfd entries a little
to make it more obvious there is a config difference between aix5.1
and aix5.2.  These two changes should make no difference to anything
in binutils.  The gas define of AIX_WEAK_SUPPORT on the other hand was
wrong, so fix that.  Finally, fix some testsuite fails on aix < 5.2 by
simply not running the tests.

include/
* coff/internal.h (C_WEAKEXT): Don't depend on _AIX52.
bfd/
* coffcode.h (coff_slurp_symbol_table): Don't depend on _AIX52.
(coff_classify_symbol): Likewise.
* config.bfd: Sort some entries.
gas/
* configure.ac (AIX_WEAK_SUPPORT): Don't set for aix5.[01].
* configure: Regenerate.
* testsuite/gas/ppc/aix.exp (xcoff-visibility-1*) Don't run
for aix < 5.2.

bfd/coffcode.h
bfd/config.bfd
gas/configure
gas/configure.ac
gas/testsuite/gas/ppc/aix.exp
include/coff/internal.h

index 62720255b7fb8705e69c2e2318e223c3f8b82ab2..f37d029ef75b2976c63a0ac341dfa1e99a0e3df4 100644 (file)
@@ -4695,7 +4695,7 @@ coff_slurp_symbol_table (bfd * abfd)
 #endif
 #ifdef RS6000COFF_C
            case C_HIDEXT:
-#if ! defined _AIX52 && ! defined AIX_WEAK_SUPPORT
+#ifndef AIX_WEAK_SUPPORT
            case C_AIX_WEAKEXT:
 #endif
 #endif
@@ -5021,7 +5021,7 @@ coff_classify_symbol (bfd *abfd,
 #endif
 #ifdef RS6000COFF_C
     case C_HIDEXT:
-#if ! defined _AIX52 && ! defined AIX_WEAK_SUPPORT
+#ifndef AIX_WEAK_SUPPORT
     case C_AIX_WEAKEXT:
 #endif
 #endif
index 954837033c8bbbb8ee0d1f9a79415edd9841f2a7..81ddbcd09c90816b8c229bdb9eaf9f22c057c5bd 100644 (file)
@@ -1098,18 +1098,6 @@ case "${targ}" in
     targ_selvecs="rs6000_xcoff64_aix_vec"
     want64=true
     ;;
-  powerpc-*-haiku*)
-    targ_defvec=powerpc_elf32_vec
-    targ_selvecs="rs6000_xcoff_vec powerpc_elf32_le_vec pef_vec pef_xlib_vec powerpc_xcoff_vec powerpc_boot_vec"
-    targ_cflags=-D__HAIKU_TARGET__
-    ;;
-#ifdef BFD64
-  powerpc64-*-aix5.[01])
-    targ_defvec=rs6000_xcoff64_aix_vec
-    targ_selvecs="rs6000_xcoff_vec"
-    want64=true
-    ;;
-#endif
   powerpc-*-aix[5-9]* | rs6000-*-aix[5-9]*)
     targ_cflags=-DAIX_WEAK_SUPPORT
     targ_defvec=rs6000_xcoff_vec
@@ -1117,6 +1105,11 @@ case "${targ}" in
     want64=true
     ;;
 #ifdef BFD64
+  powerpc64-*-aix5.[01])
+    targ_defvec=rs6000_xcoff64_aix_vec
+    targ_selvecs="rs6000_xcoff_vec"
+    want64=true
+    ;;
   powerpc64-*-aix[5-9]*)
     targ_cflags=-DAIX_WEAK_SUPPORT
     targ_defvec=rs6000_xcoff64_aix_vec
@@ -1176,6 +1169,11 @@ case "${targ}" in
     targ_selvecs="rs6000_xcoff_vec powerpc_elf32_le_vec powerpc_boot_vec"
     targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec"
     ;;
+  powerpc-*-haiku*)
+    targ_defvec=powerpc_elf32_vec
+    targ_selvecs="rs6000_xcoff_vec powerpc_elf32_le_vec pef_vec pef_xlib_vec powerpc_xcoff_vec powerpc_boot_vec"
+    targ_cflags=-D__HAIKU_TARGET__
+    ;;
   powerpc-*-kaos*)
     targ_defvec=powerpc_elf32_vec
     targ_selvecs="powerpc_elf32_le_vec powerpc_boot_vec"
index 70fd348c4d838aa58ca63b158f4fddd7b5e55938..86d90abf4e6ad59be09a4a508f70784bc3e20827 100755 (executable)
@@ -12107,6 +12107,8 @@ $as_echo "#define STRICTCOFF 1" >>confdefs.h
       microblaze*)
         ;;
 
+      ppc-*-aix5.[01]*)
+       ;;
       ppc-*-aix[5-9].*)
 
 $as_echo "#define AIX_WEAK_SUPPORT 1" >>confdefs.h
index 03728ffce4de1285696577b933c734bf53d01380..96eeb78db76c66466ee4a99d34054bb59d6c4c71 100644 (file)
@@ -272,6 +272,8 @@ for this_target in $target $canon_targets ; do
         ;;
 
 changequote(,)dnl
+      ppc-*-aix5.[01]*)
+       ;;
       ppc-*-aix[5-9].*)
 changequote([,])dnl
        AC_DEFINE(AIX_WEAK_SUPPORT, 1,
index 55aedc48654a8cf1ac1f835db8ff951aabae0812..76ffb224c086fd1eee2815f1b1771c1185e046cb 100644 (file)
@@ -88,8 +88,15 @@ if { [istarget "powerpc*-*-aix*"] || [istarget "rs6000-*-aix*"] } then {
     run_dump_test "xcoff-file-32"
     run_dump_test "xcoff-file-64"
 
-    run_dump_test "xcoff-visibility-1-32"
-    run_dump_test "xcoff-visibility-1-64"
+    if { [istarget {*-*-aix[6-9]*}]
+        || [istarget {*-*-aix5.[2-9]*}] } {
+       # The expected output of these tests depends on AIX_WEAK_SUPPORT.
+       # Without that weak syms do not have an aux entry and thus
+       # BFD_NOT_AT_END is not set.  I don't know if any of this is
+       # correct..
+       run_dump_test "xcoff-visibility-1-32"
+       run_dump_test "xcoff-visibility-1-64"
+    }
     run_dump_test "xcoff-visibility-2-32"
     run_dump_test "xcoff-visibility-2-64"
 }
index 92a0abfd4f1e9fce2de823bb338543ff33dc9dc8..7a566caa0576eced82a0488561c5a6d83c702a96 100644 (file)
@@ -352,7 +352,7 @@ struct internal_aouthdr
 
 #define C_NULL_VALUE   0x00de1e00    /* Value for a C_NULL deleted entry.  */
 
-#if defined _AIX52 || defined AIX_WEAK_SUPPORT
+#ifdef AIX_WEAK_SUPPORT
 #undef C_WEAKEXT
 #define C_WEAKEXT       C_AIX_WEAKEXT
 #endif