ld test asciz and ascii fails

Fix these fails:
alpha-dec-vms  +FAIL: ld-scripts/asciz
alpha-dec-vms  +FAIL: ld-scripts/ascii
i386-go32  +FAIL: ld-scripts/asciz
sh-coff  +FAIL: ld-scripts/asciz

It's better to positively select targets for .section support than to
try to exclude all targets that don't.  Make a new is_coff_format so
we can easily select such.

binutils/
	* testsuite/lib/binutils-common.exp (is_coff_format): New.
ld/
	* testsuite/ld-scripts/ascii.d: Use is_elf_format and
	is_coff_format to select targets, exclude ti coff.
	* testsuite/ld-scripts/asciz.d: Likewise.  Accept trailing zeros.
This commit is contained in:
Alan Modra
2023-02-17 13:50:18 +10:30
parent 75092c693d
commit 5f497256be
3 changed files with 20 additions and 5 deletions

View File

@@ -112,6 +112,21 @@ proc is_pecoff_format args {
return 0
}
# True if the object format is known to COFF or PE (but not ECOFF or XCOFF)
#
proc is_coff_format {} {
if { [is_pecoff_format]
|| [istarget *-*-coff*]
|| [istarget *-*-go32*]
|| [istarget *-*-msdosdjgpp*]
|| [istarget tic4x-*-*]
|| [istarget tic54x-*-*]
|| [istarget z8k-*-*] } {
return 1
}
return 0
}
proc is_som_format {} {
if { ![istarget hppa*-*-*] || [istarget hppa*64*-*-*] } {
return 0;

View File

@@ -1,8 +1,8 @@
#source: ascii.s
#ld: -T ascii.t
#objdump: -s -j .header
#notarget: [is_aout_format]
#skip: tic4x-*-* tic54x-*-* *-*-*ecoff *-*-macho *-*-aix*
#target: [is_elf_format] [is_coff_format]
#notarget: tic4x-*-* tic54x-*-*
.*: file format .*

View File

@@ -1,8 +1,8 @@
#source: asciz.s
#ld: -T asciz.t
#objdump: -s -j .data
#notarget: [is_aout_format]
#skip: tic4x-*-* tic54x-*-* *-*-*ecoff *-*-macho *-*-aix*
#target: [is_elf_format] [is_coff_format]
#notarget: tic4x-*-* tic54x-*-*
.*: file format .*
@@ -10,5 +10,5 @@ Contents of section .data:
.... 54686973 20697320 61207374 72696e67 This is a string
.... 00546869 73206973 20616e6f 74686572 .This is another
.... 0a537472 696e6700 006e6f71 756f7465 .String..noquote
.... 7300 s.
.... 7300[ 0]* s.*
#pass