}
 
 setup_xfail "hppa*-*-*"
-setup_xfail "sh-*-coff*"
 setup_xfail "tic54x-*-*"
 clear_xfail "hppa*64*-*-hpux*" "hppa*-*-linux*" "hppa*-*-lites*"
 clear_xfail "hppa*-*-*n*bsd*" "hppa*-*-*elf*"
 if [is_elf_format] {
     objcopy_test_symbol_manipulation
     objcopy_test_elf_common_symbols
-
-    setup_xfail "hppa*-*-*"
-    setup_xfail "sh-*-coff*"
-    setup_xfail "tic54x-*-*"
-    clear_xfail "hppa*64*-*-hpux*" "hppa*-*-linux*" "hppa*-*-lites*"
-    clear_xfail "hppa*-*-*n*bsd*" "hppa*-*-*elf*"
     objcopy_test "ELF unknown section type" unknown.s object "" ""
-
     objcopy_test_readelf "ELF group 1" group.s
     objcopy_test_readelf "ELF group 2" group-2.s
     objcopy_test_readelf "ELF group 3" group-3.s
 run_dump_test "set-section-alignment"
 
 setup_xfail "hppa*-*-*"
-setup_xfail "sh-*-coff*"
 setup_xfail "spu-*-*"
 clear_xfail "hppa*64*-*-hpux*" "hppa*-*-linux*" "hppa*-*-lites*"
 clear_xfail "hppa*-*-*n*bsd*" "hppa*-*-*elf*"
 
 
 # This test fails on MIPS.  On the MIPS we must put foo in the dynamic
 # symbol table, which the test does not expect.
-setup_xfail "mips*-*-*"
+setup_xfail "mips*-*-irix*"
 build_exec "vers4" vers4.c vers4 "" "" "" "" vers4.sym
 
 build_exec "vers4a" vers4.c vers4a "-Wl,-export-dynamic" "" vers4a.ver vers4a.dsym vers4a.sym
 
 # Verify that --no-export-dynamic undoes the effect of --export-dynamic.
-setup_xfail "mips*-*-*"
+setup_xfail "mips*-*-irix*"
 build_exec "vers4b" vers4.c vers4b "-Wl,-export-dynamic -Wl,--no-export-dynamic" "" "" "" vers4.sym
 
 
 
 #ld: --gc-sections -e main tmpdir/pr19161-1.o tmpdir/pr19161-2.o
 #nm: --format=bsd
 #xfail: epiphany-*-* frv-*-* iq2000-*-* lm32-*-* m32c-*-*
-#xfail: mips64vr-*-* msp430-*-* powerpc*-*-eabivle rl78-*-* rx-*-* sh*-*-*
+#xfail: mips64vr-*-* msp430-*-* powerpc*-*-eabivle rl78-*-* rx-*-*
 
 #...
 0*[1-9a-f]+[0-9a-f]*[  ](d|D)[         ]_*__start_my_section
 
 # source: rgn-over8.s
 # ld: -T rgn-over8.t
 # objdump: -w -h
-# xfail: rx-*-* *-*-nacl*
+# xfail: rx-*-*
 #   FAILS on the RX because the linker has to set LMA == VMA for the
 #   Renesas loader.
-#   FAILs on NaCl targets because the linker extends the first segment
-#   to fill out the page, making its p_vaddr+p_memsz cover the sh_addr
-#   of .bss too, which makes BFD compute its LMA from the p_paddr of the
-#   text segment.
 
 .*:     file format .*
 
 
     setup_xfail hppa64-*-*
 } elseif { [is_pecoff_format] } {
     # Weak symbols are broken for most PE targets.
-    if { ![istarget i?86-*-*]
+    if { ![istarget aarch64-*-*]
+        && ![istarget i?86-*-*]
         && ![istarget sh-*-*]
         && ![istarget x86_64-*-*] } {
        setup_xfail *-*-*
 
     # error message is 8 instead of 9. On 64 bit s/390 this works
     # because of the new brasl instruction that doesn't need a literal
     # pool entry.
-    setup_xfail s390-*-*
+    # FIXME: this test has been an XPASS since 2021-04 (and maybe
+    # earlier, that's just where my logs went back to).  Testing the
+    # gcc version is a wild guess at what might have changed.
+    if ![at_least_gcc_version 11 0] {
+       setup_xfail s390-*-*
+    }
 
     # See comments above for Xtensa.
     setup_xfail xtensa*-*-linux*