[PATCH] ELF: Properly copy and strip Solaris binaries

Alan Modra amodra@gmail.com
Tue Jan 27 02:06:03 GMT 2026


The following is what is left over from
https://sourceware.org/pipermail/binutils/2025-December/146789.html

Please cast your eye over this HJ, it is mostly your patch.  Rainer,
if you commit your ld_supports_emul patch soon I'll update the
"ld -V -m" here before committing.

>From f9078e28c4160c9b9bfbbebabf6fbc26ee24f1b9 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Sat, 27 Dec 2025 09:00:08 +0800
Subject: PR 33718 objcopy and strip of Solaris binaries

non-SHF_ALLOC SHT_SUNW_symsort and SHT_SUNW_symnsort sections aren't
removed when all symbols are removed.  Fix that.

binutils/
	* objcopy.c (is_strip_section_1): Handle SHT_SUNW_symsort and
	SHT_SUNW_symnsort sections.
	* testsuite/binutils-all/x86-64/solaris-objcopy.rd,
	* testsuite/binutils-all/x86-64/solaris-strip.rd,
	* testsuite/binutils-all/x86-64/solaris.so.bz2: New files.
	* testsuite/binutils-all/x86-64/x86-64.exp (run_solaris_test): New.
	Run the new test.
ld/
	* testsuite/ld-i386/solaris-1.d,
	* testsuite/ld-x86-64/solaris-1.d,
	* testsuite/ld-x86-64/solaris-1.s: New test.
	* testsuite/ld-i386/i386.exp: Run it.
	* testsuite/ld-x86-64/x86-64.exp: Likewise.

diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index fdd8bd11799..2098c7b5b3e 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -1346,8 +1346,39 @@ is_mergeable_note_section (bfd * abfd, asection * sec)
 /* See if a non-group section is being removed.  */
 
 static bool
-is_strip_section_1 (bfd *abfd ATTRIBUTE_UNUSED, asection *sec)
+is_strip_section_1 (bfd *abfd, asection *sec)
 {
+  if (strip_symbols == STRIP_ALL
+      && bfd_get_flavour (abfd) == bfd_target_elf_flavour
+      && elf_elfheader (abfd)->e_ident[EI_OSABI] == ELFOSABI_SOLARIS)
+    {
+      struct bfd_elf_section_data *e = elf_section_data (sec);
+      Elf_Internal_Shdr **sections = elf_elfsections (abfd);
+      switch (e->this_hdr.sh_type)
+	{
+	case SHT_SUNW_symsort:
+	case SHT_SUNW_symnsort:
+	  /* On Solaris, non-SHF_ALLOC SHT_SUNW_symsort and
+	     SHT_SUNW_symnsort sections are linked with a non-SHF_ALLOC
+	     SHT_SYMTAB section.  Since strip removes non-SHF_ALLOC
+	     SHT_SYMTAB section with STRIP_ALL, also remove non-SHF_ALLOC
+	     SHT_SUNW_symsort and SHT_SUNW_symnsort sections.  */
+	  if ((e->this_hdr.sh_flags & SHF_ALLOC) == 0
+	      && sections != NULL
+	      && e->this_hdr.sh_link < elf_numsections (abfd))
+	    {
+	      Elf_Internal_Shdr *l = sections[e->this_hdr.sh_link];
+	      if (l->sh_type == SHT_SYMTAB
+		  && (l->sh_flags & SHF_ALLOC) == 0)
+		return true;
+	    }
+	  break;
+
+	default:
+	  break;
+	}
+    }
+
   if (find_section_list (bfd_section_name (sec), false, SECTION_CONTEXT_KEEP)
       != NULL)
     return false;
diff --git a/binutils/testsuite/binutils-all/x86-64/solaris-objcopy.rd b/binutils/testsuite/binutils-all/x86-64/solaris-objcopy.rd
new file mode 100644
index 00000000000..72c522f9b2e
--- /dev/null
+++ b/binutils/testsuite/binutils-all/x86-64/solaris-objcopy.rd
@@ -0,0 +1,53 @@
+ELF Header:
+  Magic:   7f 45 4c 46 02 01 01 06 01 00 00 00 00 00 00 00 
+  Class:                             ELF64
+  Data:                              2's complement, little endian
+  Version:                           1 \(current\)
+  OS/ABI:                            UNIX - Solaris
+  ABI Version:                       1
+  Type:                              DYN \(Shared object file\)
+  Machine:                           Advanced Micro Devices X86-64
+  Version:                           0x1
+  Entry point address:               0x888
+  Start of program headers:          64 \(bytes into file\)
+  Start of section headers:          3080 \(bytes into file\)
+  Flags:                             0x0
+  Size of this header:               64 \(bytes\)
+  Size of program headers:           56 \(bytes\)
+  Number of program headers:         4
+  Size of section headers:           64 \(bytes\)
+  Number of section headers:         24
+  Section header string table index: 23
+
+Section Headers:
+  \[Nr\] Name              Type            Address          Off    Size   ES Flg Lk Inf Al
+  \[ 0\]                   NULL            0000000000000000 000000 000000 00      0   0  0
+  \[ 1\] .dynamic          DYNAMIC         0000000000000120 000120 000240 10   A  7   0  8
+  \[ 2\] .eh_frame_hdr     X86_64_UNWIND   0000000000000360 000360 000014 00   A  0   0  8
+  \[ 3\] .eh_frame         X86_64_UNWIND   0000000000000378 000378 000038 00   A  0   0  8
+  \[ 4\] .hash             HASH            00000000000003b0 0003b0 00005c 04   A  6   0  8
+  \[ 5\] .SUNW_ldynsym     SUNW_LDYNSYM    0000000000000410 000410 000048 18   A  7   3  8
+  \[ 6\] .dynsym           DYNSYM          0000000000000458 000458 0000f0 18   A  7   1  8
+  \[ 7\] .dynstr           STRTAB          0000000000000548 000548 00028c 00  AS  0   0  1
+  \[ 8\] .SUNW_dynsymsort  SUNW_symsort    00000000000007d8 0007d8 000018 04   A  5   0  8
+  \[ 9\] .SUNW_dynsymnsort SUNW_symnsort   00000000000007f0 0007f0 000020 04   A  5   0  8
+  \[10\] .SUNW_phname      SUNW_phname     0000000000000810 000810 000010 04   A  7   0  4
+  \[11\] .SUNW_reloc       RELA            0000000000000820 000820 000018 18   A  6   0  8
+  \[12\] .rela.plt         RELA            0000000000000838 000838 000018 18  AI  6  16  8
+  \[13\] .rodata           PROGBITS        0000000000000850 000850 000017 00   A  0   0  1
+  \[14\] .plt              PROGBITS        0000000000000868 000868 000020 10  AX  0   0  8
+  \[15\] .text             PROGBITS        0000000000000888 000888 000045 00  AX  0   0  1
+  \[16\] .got              PROGBITS        00000000001008d0 0008d0 000028 08  WA  0   0  8
+  \[17\] .bss              NOBITS          00000000001008f8 0008f8 000004 00  WA  0   0  4
+  \[18\] .SUNW_symtabsort  SUNW_symsort    0000000000000000 0008f8 000018 04     21   0  8
+  \[19\] .SUNW_symtabnsort SUNW_symnsort   0000000000000000 000910 000028 04     21   0  8
+  \[20\] .comment          PROGBITS        0000000000000000 000938 000013 01      0   0  1
+  \[21\] .symtab           SYMTAB          0000000000000000 000950 000150 18     22   5  8
+  \[22\] .strtab           STRTAB          0000000000000000 000aa0 00007d 00   S  0   0  1
+  \[23\] .shstrtab         STRTAB          0000000000000000 000b1d 0000ea 00   S  0   0  1
+Key to Flags:
+  W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\), I \(info\),
+  L \(link order\), O \(extra OS processing required\), G \(group\), T \(TLS\),
+  C \(compressed\), x \(unknown\), o \(OS specific\), E \(exclude\),
+  l \(large\), p \(processor specific\)
+#pass
diff --git a/binutils/testsuite/binutils-all/x86-64/solaris-strip.rd b/binutils/testsuite/binutils-all/x86-64/solaris-strip.rd
new file mode 100644
index 00000000000..f9bbe157fcf
--- /dev/null
+++ b/binutils/testsuite/binutils-all/x86-64/solaris-strip.rd
@@ -0,0 +1,49 @@
+ELF Header:
+  Magic:   7f 45 4c 46 02 01 01 06 01 00 00 00 00 00 00 00 
+  Class:                             ELF64
+  Data:                              2's complement, little endian
+  Version:                           1 \(current\)
+  OS/ABI:                            UNIX - Solaris
+  ABI Version:                       1
+  Type:                              DYN \(Shared object file\)
+  Machine:                           Advanced Micro Devices X86-64
+  Version:                           0x1
+  Entry point address:               0x888
+  Start of program headers:          64 \(bytes into file\)
+  Start of section headers:          2504 \(bytes into file\)
+  Flags:                             0x0
+  Size of this header:               64 \(bytes\)
+  Size of program headers:           56 \(bytes\)
+  Number of program headers:         4
+  Size of section headers:           64 \(bytes\)
+  Number of section headers:         20
+  Section header string table index: 19
+
+Section Headers:
+  \[Nr\] Name              Type            Address          Off    Size   ES Flg Lk Inf Al
+  \[ 0\]                   NULL            0000000000000000 000000 000000 00      0   0  0
+  \[ 1\] .dynamic          DYNAMIC         0000000000000120 000120 000240 10   A  7   0  8
+  \[ 2\] .eh_frame_hdr     X86_64_UNWIND   0000000000000360 000360 000014 00   A  0   0  8
+  \[ 3\] .eh_frame         X86_64_UNWIND   0000000000000378 000378 000038 00   A  0   0  8
+  \[ 4\] .hash             HASH            00000000000003b0 0003b0 00005c 04   A  6   0  8
+  \[ 5\] .SUNW_ldynsym     SUNW_LDYNSYM    0000000000000410 000410 000048 18   A  7   3  8
+  \[ 6\] .dynsym           DYNSYM          0000000000000458 000458 0000f0 18   A  7   1  8
+  \[ 7\] .dynstr           STRTAB          0000000000000548 000548 00028c 00  AS  0   0  1
+  \[ 8\] .SUNW_dynsymsort  SUNW_symsort    00000000000007d8 0007d8 000018 04   A  5   0  8
+  \[ 9\] .SUNW_dynsymnsort SUNW_symnsort   00000000000007f0 0007f0 000020 04   A  5   0  8
+  \[10\] .SUNW_phname      SUNW_phname     0000000000000810 000810 000010 04   A  7   0  4
+  \[11\] .SUNW_reloc       RELA            0000000000000820 000820 000018 18   A  6   0  8
+  \[12\] .rela.plt         RELA            0000000000000838 000838 000018 18  AI  6  16  8
+  \[13\] .rodata           PROGBITS        0000000000000850 000850 000017 00   A  0   0  1
+  \[14\] .plt              PROGBITS        0000000000000868 000868 000020 10  AX  0   0  8
+  \[15\] .text             PROGBITS        0000000000000888 000888 000045 00  AX  0   0  1
+  \[16\] .got              PROGBITS        00000000001008d0 0008d0 000028 08  WA  0   0  8
+  \[17\] .bss              NOBITS          00000000001008f8 0008f8 000004 00  WA  0   0  4
+  \[18\] .comment          PROGBITS        0000000000000000 0008f8 000013 01      0   0  1
+  \[19\] .shstrtab         STRTAB          0000000000000000 00090b 0000b7 00   S  0   0  1
+Key to Flags:
+  W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\), I \(info\),
+  L \(link order\), O \(extra OS processing required\), G \(group\), T \(TLS\),
+  C \(compressed\), x \(unknown\), o \(OS specific\), E \(exclude\),
+  l \(large\), p \(processor specific\)
+#pass
diff --git a/binutils/testsuite/binutils-all/x86-64/solaris.so.bz2 b/binutils/testsuite/binutils-all/x86-64/solaris.so.bz2
new file mode 100755
index 0000000000000000000000000000000000000000..8f80e875342353d04987fa0af25e40b110444fb4
GIT binary patch
literal 1433
zcmV;K1!np}T4*^jL0KkKS<yq-AOHpGfB*mg|Ns7Fe_Q|m-t_<X|8u$SL@<N|bU+It
zz`#OwXim@s+bdOufuPN{Q3*tiCY1I@l>JRMsp@*3kjOL#r~^Y!Pyh`805K0x0j8Qg
zO#?uBnh#I_^#+6qp%Y|G)Si)=fXFmyra)<?fB~ne=>Py4003wJXc`8LKnW2hq<WZ2
zdSpFNVjq<>+L~l~jXg~Un@|m@qeg%aA^;jR15E?ec_4a&O#lP{WND_Dm_{Z>CXF=6
z$iR#VfFnkk7@7tM(8$3Ij7$i?0Wcr~BTY2K!Z9*2G-;+rMg(9?0U9*O#LzHChDHcv
zVqiu934@M~LpWQ$PQ@OiZJSG%(O$ej@L-nS*37q=V`kSPCD=Bant^OWbO?+j2Ldff
z9RpGeU2-X;!z$N26c$g(+fU3GU11vHy?^aOkc?h6A)yUtTfBpm!)w{GXt~*>mydJg
zQa22W%g32ntzSqu!siY<n2jCY4D1;20e2?rFE(fX+0*+{%|@;aK~Wi#PWFfR9D#F=
zfjCmkh=DDR6k(WFvy)ACX*N_aFlJGQJyI1y@~y8XZzIR(qZ@OP!wLo6DDP-`oOnb;
zTbi@(@-ejV06-UlIbY?AX*%iUJz82TP(xiB%3_SO%BO<tX0`L=bOt!Y4g_*If)i%2
z5jl0=aVyr~)zi@A;o<eUSWqFR#nIxdt?iIsSX$)Y*slg`TKu8ITiar~LmFBb5gDQu
zXv-g~-E#5$F8)$L27^fmwWN+V`Vo2I^0fQyUMHE|YT>r{#2t)4aaeHJUN;by^`M3%
z185Mp@d*u}Y;6N*Y(r>Gq=vz;p%9Y1M3M(K=dH}GPG!Sv@32%XzXYW$ZHE#MC7>)%
zgrJ!7Z<&m`l^bAt8P}M>?0s|aF41RQu?@eo2COOD7sOa1gC!%4gE8@WD^U3ioa;-L
zjM_)8ts&;YBb4+SUKN20bXYhVkG6N33#Z%Nm5PB`ZLa05&M2!bU}0#Z*}WM|)X6IF
znHC4oIV%NUXwpHK^}<Nm)ApP}5jUL*Qbm7slE!V(kzx=)#Fqu24Qq*(OD~NXm}^?@
z7-Qu^4pQzdEu|XLX7sSKQF)Tc%Z`C)-IZ=;O4$#7HU477m}^AO0)JX;g>1P!3grr8
zID#0U5s(865yu>Di{lWM`6y5sG-X%y4GhqX+Ua2nXyAQY5iCN;m|M-v2A^NSl-bXu
z2tKAGu;JVl+r$X4d9aBXXSjAZ5OeeYs!;-Cv5m39;7se%CH8YNnuf?|>R`InF_0+f
zp+jt_;9(HsUt33gMQa1i*yguw_my1znZL*9R14z+NvImD*wLF@<!bY=Sxh-3%ZyQ{
z@KRq<a^&eaCC12mhPl`rcO=jSlImPmUMhOb0tt_!<)-2pA<-ZqauWcV5iH$9Ag%pY
z{9f*MFE7ZPU1g*xg(>C97*wz~Fg7Ge3PiHboT>?NkpSEaDQbu=NQ?_<(hEHT$gxKB
zP+<{?Wkw0h&rP9JGc<(-4@BjZMwfzeD2fQS>_fw<dF@)!gjsZ2Ca8w}4Q=9uID5C&
zhecU~`3;F^6=8iFIG$xyfnrvXs4T+@$i+lZVK~)KpHUQ3gI!%>ybg|-h+t8GMsXoX
zMyRp^2b3pCWF{1n0Ow*Xg4#3SNDK(d5U~}jj|Dn&NcHy;I#g{si!gds5Rh^y;V7Iu
z)T26zs5zE^972&ocu}<kBo-ki!7y-+0~l7dE-iwl-9iKeRRJll#H(T+P5S3fC$%sf
z>c|#kYz<PeH^vc|aUqy-tZ`QSytc^h%g`!{F=$8)5fAjs`=$ovAt9N#*JCRMWK%V4
nB`PYD)jqFa|3TEawxS<?gKgVmjXt02fAM!DQ-ui)6g`3fPfm%5

literal 0
HcmV?d00001

diff --git a/binutils/testsuite/binutils-all/x86-64/x86-64.exp b/binutils/testsuite/binutils-all/x86-64/x86-64.exp
index 162030e5aea..d0a4e89fd34 100644
--- a/binutils/testsuite/binutils-all/x86-64/x86-64.exp
+++ b/binutils/testsuite/binutils-all/x86-64/x86-64.exp
@@ -14,7 +14,79 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
 
-if {![istarget "x86_64-*-linux*"] || [is_remote host]} {
+if {![is_elf_format] || ![istarget "x86_64-*-*"] || [is_remote host]} {
+    return
+}
+
+proc run_solaris_test {tst obj objcopy_dump strip_dump} {
+    global srcdir
+    global subdir
+    global READELF
+    global OBJCOPY
+    global STRIP
+
+    set testname "$tst (objcopy)"
+    set copy tmpdir/copy.so
+    set cmd "$OBJCOPY $obj $copy"
+    send_log "$cmd\n"
+    verbose "$cmd" 1
+    catch "exec $cmd" got
+    if ![string match "" $got] then {
+	fail "$testname"
+	return
+    }
+    set cmd "$READELF -hSW $copy"
+    send_log "$cmd\n"
+    set got [remote_exec host "$cmd" "" "/dev/null" "tmpdir/solaris.out"]
+    if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
+	fail "$testname (reason: unexpected output)"
+	send_log "$got\n"
+	return
+    }
+    if { [regexp_diff tmpdir/solaris.out $srcdir/$subdir/$objcopy_dump] } then {
+	fail "$testname"
+	return
+    }
+    pass "$testname"
+
+    set testname "$tst (strip)"
+    set stripped tmpdir/stripped.so
+    set cmd "$STRIP $obj -o $stripped"
+    send_log "$cmd\n"
+    verbose "$cmd" 1
+    catch "exec $cmd" got
+    if ![string match "" $got] then {
+	fail "$testname"
+	return
+    }
+    set cmd "$READELF -hSW $stripped"
+    send_log "$cmd\n"
+    set got [remote_exec host "$cmd" "" "/dev/null" "tmpdir/solaris.out"]
+    if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
+	fail "$testname (reason: unexpected output)"
+	send_log "$got\n"
+	return
+    }
+    if { [regexp_diff tmpdir/solaris.out $srcdir/$subdir/$strip_dump] } then {
+	fail "$testname"
+	return
+    }
+    pass "$testname"
+}
+
+set t $srcdir/$subdir/solaris.so.bz2
+# We need to strip the ".bz2", but can leave the dirname.
+set test $subdir/[file tail $t]
+set testname [file rootname $test]
+verbose $testname
+set obj tmpdir/solaris.so
+if {[catch "system \"bzip2 -dc $t > $obj\""] != 0} {
+  untested "bzip2 -dc ($testname)"
+} else {
+    run_solaris_test $testname $obj solaris-objcopy.rd solaris-strip.rd
+}
+
+if {![istarget "x86_64-*-linux*"]} {
     return
 }
 
diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp
index 54c80604f24..c1fc8d1853b 100644
--- a/ld/testsuite/ld-i386/i386.exp
+++ b/ld/testsuite/ld-i386/i386.exp
@@ -104,12 +104,21 @@ if [istarget "*-*-go32*"] {
     }
 }
 
+if { [is_elf_format] } {
+    # Tests here need -melf_i386_sol2 support.
+    set status [catch "exec $LD -V -melf_i386_sol2" got]
+    if { $status == 0 } {
+	run_dump_test "solaris-1"
+    }
+}
+
 if { !([istarget "i?86-*-elf*"]
        || [istarget "i?86-*-linux*"]
        || [istarget "i?86-*-gnu*"]
        || [istarget "x86_64-*-elf*"]
        || [istarget "x86_64-*-linux*"]
        || [istarget "amd64-*-linux*"]) } {
+    set ASFLAGS "$saved_ASFLAGS"
     return
 }
 
diff --git a/ld/testsuite/ld-i386/solaris-1.d b/ld/testsuite/ld-i386/solaris-1.d
new file mode 100644
index 00000000000..881ea7d35e9
--- /dev/null
+++ b/ld/testsuite/ld-i386/solaris-1.d
@@ -0,0 +1,16 @@
+#source: ../ld-x86-64/solaris-1.s
+#as: --32
+#ld: -shared -m elf_i386_sol2 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
+#readelf: -hSW
+
+#...
+  Version:                           1 \(current\)
+  OS/ABI:                            UNIX - System V
+  ABI Version:                       0
+  Type:                              DYN \(Shared object file\)
+  Machine:                           Intel 80386
+  Version:                           0x1
+#...
+  \[[ 0-9]+\] .strtab           STRTAB          0+ [0-9a-f]+ [0-9a-f]+ 00   S  0   0  1
+  \[[ 0-9]+\] .shstrtab         STRTAB          0+ [0-9a-f]+ [0-9a-f]+ 00   S  0   0  1
+#...
diff --git a/ld/testsuite/ld-x86-64/solaris-1.d b/ld/testsuite/ld-x86-64/solaris-1.d
new file mode 100644
index 00000000000..7cdc9fd5129
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/solaris-1.d
@@ -0,0 +1,15 @@
+#as: --64
+#ld: -shared -m elf_x86_64_sol2 --hash-style=sysv -z max-page-size=0x200000 -z noseparate-code
+#readelf: -hSW
+
+#...
+  Version:                           1 \(current\)
+  OS/ABI:                            UNIX - System V
+  ABI Version:                       0
+  Type:                              DYN \(Shared object file\)
+  Machine:                           Advanced Micro Devices X86-64
+  Version:                           0x1
+#...
+  \[[ 0-9]+\] .strtab           STRTAB          0+ [0-9a-f]+ [0-9a-f]+ 00   S  0   0  1
+  \[[ 0-9]+\] .shstrtab         STRTAB          0+ [0-9a-f]+ [0-9a-f]+ 00   S  0   0  1
+#...
diff --git a/ld/testsuite/ld-x86-64/solaris-1.s b/ld/testsuite/ld-x86-64/solaris-1.s
new file mode 100644
index 00000000000..e28a3769c08
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/solaris-1.s
@@ -0,0 +1,7 @@
+	.data
+	.globl	foo
+	.type	foo, @object
+foo:
+	.dc.a  0
+	.size	foo, .-foo
+	.section	.note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp
index 5608c42a0db..5a1b63090d2 100644
--- a/ld/testsuite/ld-x86-64/x86-64.exp
+++ b/ld/testsuite/ld-x86-64/x86-64.exp
@@ -22,7 +22,7 @@
 # Test x86_64 linking; all types of relocs.  This tests the assembler and
 # tools like objdump as well as the linker.
 
-if { !([istarget "x86_64-*-elf*"] || [istarget "x86_64-*-linux*"]) } {
+if { ![istarget "x86_64-*-*"] } {
     return
 }
 
@@ -30,6 +30,19 @@ set emul "elf_x86_64"
 set saved_ASFLAGS "$ASFLAGS"
 set ASFLAGS "$ASFLAGS -mx86-used-note=no"
 
+if {[is_elf_format] } {
+    # Tests here need -melf_x86_64_sol2 support.
+    set status [catch "exec $LD -V -melf_x86_64_sol2" got]
+    if { $status == 0 } {
+	run_dump_test "solaris-1"
+    }
+}
+
+if { !([istarget "x86_64-*-elf*"] || [istarget "x86_64-*-linux*"]) } {
+    set ASFLAGS "$saved_ASFLAGS"
+    return
+}
+
 # List contains test-items with 3 items followed by 2 lists:
 # 0:name 1:ld early options 2:ld late options 3:assembler options
 # 4:filenames of assembler files 5: action and options. 6: name of output file

-- 
Alan Modra


More information about the Binutils mailing list