ld testsuite use of notarget

Maciej W. Rozycki macro@mips.com
Tue Jul 10 16:52:00 GMT 2018
On Tue, 10 Jul 2018, Alan Modra wrote:

> 2) Tests might be used as a template for a new test, carrying over
>    notarget and/or xfail.  Inappropriate notarget entries are silent.

 Well, not anymore, after my commit 8a8c916960b0 ("LD/testsuite: 
run_dump_test: Report UNSUPPORTED for excluded targets").  Now you get 
UNSUPPORTED, which is not quite silent, though you do need to reach for 
the .sum or .log file.

> diff --git a/ld/testsuite/ld-elf/hash.d b/ld/testsuite/ld-elf/hash.d
> index d31168c664..593d48739b 100644
> --- a/ld/testsuite/ld-elf/hash.d
> +++ b/ld/testsuite/ld-elf/hash.d
> @@ -2,7 +2,7 @@
>  #readelf: -d -s -D
>  #ld: -shared --hash-style=gnu
>  #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
> -#notarget: mips*-*-*
> +#xfail: mips*-*-*
>  
>  #...
>   +0x[0-9a-z]+ +\(GNU_HASH\) +0x[0-9a-z]+

 This is not a bug, we do not support the GNU hash for the MIPS target 
due to psABI restrictions on dynsym table ordering.  So I'd rather left 
it with #notarget for an accurate UNSUPPORTED result.

> diff --git a/ld/testsuite/ld-gc/pr20022.d b/ld/testsuite/ld-gc/pr20022.d
> index 6600f4a476..681c68c48b 100644
> --- a/ld/testsuite/ld-gc/pr20022.d
> +++ b/ld/testsuite/ld-gc/pr20022.d
> @@ -2,7 +2,7 @@
>  #ld: --gc-sections -e _start tmpdir/pr20022.so
>  #readelf: -SsW
>  #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi
> -#notarget: frv-*-linux* metag-*-linux* mips*-*-*
> +#xfail: frv-*-* metag-*-* mips*-*-*
>  # Skip on targets without dynamic relocations in .text section.
>  
>  #...

 I think this test case is broken, I fail to see from PR ld/20022 why it 
insists on using `.text' for relocated data rather than `.data' (and then 
it would work for all targets).  There's nothing specific to `.text' here 
AFAICT.

 Of course checking for:

.../ld/ld-new: non-dynamic relocations refer to dynamic symbol bar
.../ld/ld-new: failed to set dynamic section sizes: bad value

might be worth a separate test case if we don't already have one (I 
haven't checked).

> diff --git a/ld/testsuite/ld-scripts/defined4.d b/ld/testsuite/ld-scripts/defined4.d
> index 2f034cb8e0..cd3eb4ffe7 100644
> --- a/ld/testsuite/ld-scripts/defined4.d
> +++ b/ld/testsuite/ld-scripts/defined4.d
> @@ -2,7 +2,7 @@
>  #nm: -B
>  #source: defined4.s
>  #xfail: powerpc*-*-aix* rs6000-*-aix*
> -#notarget: mips*-*-* mmix-*-*
> +#xfail: mips*-*-* mmix-*-*
>  # We check that defined and defined1 have the same address.  MIPS targets
>  # use different address. MMIX puts defined and defined1 in text section.
>  

 Ack, this asks for a variant test for `mips*-*-*'.

> diff --git a/ld/testsuite/ld-scripts/fill.d b/ld/testsuite/ld-scripts/fill.d
> index 38b3f2d75b..07dca0b649 100644
> --- a/ld/testsuite/ld-scripts/fill.d
> +++ b/ld/testsuite/ld-scripts/fill.d
> @@ -3,18 +3,11 @@
>  #source: fill_2.s
>  #ld: -T fill.t
>  #objdump: -s -j .text
> -#notarget: ia64-*-*
> -#notarget: mips*-*-irix* mips*-*-linux* mips*-*-freebsd* mips*-*-gnu*
> -#notarget: mips*-*-kfreebsd* mips*-*-netbsd* mips*-*-openbsd* mips*-*-sysv4*
> -#notarget: tilegx*-*-*
> -#notarget: tilepro-*-*
> -#notarget: x86_64-*-cygwin x86_64-*-mingw* x86_64-*-pe*
> -#xfail: alpha*-*-*ecoff
> -#xfail: m32c-*-*
> -#xfail: sh-*-pe
> -#xfail: sparc*-*-coff
> -#xfail: tic30-*-coff tic4x-*-* tic54x-*-*
> -#xfail: z8k-*-*
> +#xfail: alpha*-*-*ecoff ia64-*-* m32c-*-* mips*-*-freebsd* mips*-*-gnu*
> +#xfail: mips*-*-irix* mips*-*-kfreebsd* mips*-*-linux* mips*-*-netbsd*
> +#xfail: mips*-*-openbsd* mips*-*-sysv4* sh-*-pe sparc*-*-coff
> +#xfail: tic30-*-coff tic4x-*-* tic54x-*-* tilegx*-*-* tilepro-*-*
> +#xfail: x86_64-*-cygwin x86_64-*-mingw* x86_64-*-pe* z8k-*-*
>  #
>  # See also fill16.d.  We use `notarget' for configurations unsupported
>  # here that are covered there, and `xfail' for configurations that work

 This is a variant test for `fill16.d'.  So I'd rather kept the 
distinction as noted in the comment, though we might use the new #skip 
tag instead.

 If you disagree and want to go ahead anyway, then we'll be losing what is 
IMO valuable information.  Please at least update the comment accordingly 
then.

> diff --git a/ld/testsuite/ld-scripts/fill16.d b/ld/testsuite/ld-scripts/fill16.d
> index 068af75eba..371f38e785 100644
> --- a/ld/testsuite/ld-scripts/fill16.d
> +++ b/ld/testsuite/ld-scripts/fill16.d
> @@ -3,14 +3,8 @@
>  #source: fill16_2.s
>  #ld: -T fill.t
>  #objdump: -s -j .text
> -#notarget: arm-*-coff
> -#notarget: i[3-7]86-*-coff
> -#xfail: alpha*-*-*ecoff
> -#xfail: m32c-*-*
> -#xfail: sh-*-pe
> -#xfail: sparc*-*-coff
> -#xfail: tic30-*-coff tic4x-*-* tic54x-*-*
> -#xfail: z8k-*-*
> +#xfail: alpha*-*-*ecoff arm-*-coff i[3-7]86-*-coff m32c-*-* sh-*-pe
> +#xfail: sparc*-*-coff tic30-*-coff tic4x-*-* tic54x-*-* z8k-*-*
>  #
>  # See also fill.d.  We use `notarget' for configurations unsupported
>  # here that are covered there, and `xfail' for configurations that work

 Analogously.

  Maciej



More information about the Binutils mailing list