[PATCH] ld: Just xfail riscv little endian targets for compressed1d.d test.

Nelson Chu nelson.chu@sifive.com
Fri Jan 15 14:47:55 GMT 2021


Ping!  :)

Thanks
Nelson

On Fri, Jan 8, 2021 at 8:04 PM Nelson Chu <nelson.chu@sifive.com> wrote:
>
> The sizes of compressed and uncompressed .debug_aranges are the same
> for the riscv big endian targets, but different for the little endian
> targets.  The compress rule is fine and isn't broken by riscv, just the
> original compressed1d.d fails by accident.  Ideally, we should fill the
> R_RISCV_ADD/SUB relocations when disabling relaxations in the assembler.
> But before that, Jim already had written an alternative test compressed1d-alt
> to relpace compressed1d.d for riscv, so we can only xfail the riscv little
> endian targets in the short-term.
>
> ld/
>     * testsuite/ld-elf/elf.exp (riscv_little_endian): Added.  Return true
>     if target is riscv little endian.  Otherwise, return false.
>     * testsuite/ld-elf/compressed1d.d: Only xfail the riscv little endian
>     targets by [riscv_little_endian].
> ---
>  ld/testsuite/ld-elf/compressed1d.d |  5 +++--
>  ld/testsuite/ld-elf/elf.exp        | 13 +++++++++++++
>  2 files changed, 16 insertions(+), 2 deletions(-)
>
> diff --git a/ld/testsuite/ld-elf/compressed1d.d b/ld/testsuite/ld-elf/compressed1d.d
> index df7ce34..9d891c1 100644
> --- a/ld/testsuite/ld-elf/compressed1d.d
> +++ b/ld/testsuite/ld-elf/compressed1d.d
> @@ -3,10 +3,11 @@
>  #ld: -r --compress-debug-sections=zlib-gnu
>  #readelf: -SW
>  #xfail: [uses_genelf]
> -#xfail: riscv*-*-*
> +#xfail: [riscv_little_endian]
>  # Not all ELF targets use the elf.em emulation...
>  # RISC-V has linker relaxations that delete code, so text label subtractions
> -# do not get resolved at assembly time, which results in a compressed section.
> +# do not get resolved at assembly time, which results in a compressed section
> +# for little endian targets; but it is uncompressed for big endian targets.
>
>  #failif
>  #...
> diff --git a/ld/testsuite/ld-elf/elf.exp b/ld/testsuite/ld-elf/elf.exp
> index 7179cec..e98bffc 100644
> --- a/ld/testsuite/ld-elf/elf.exp
> +++ b/ld/testsuite/ld-elf/elf.exp
> @@ -25,6 +25,19 @@ if ![is_elf_format] {
>      return
>  }
>
> +# Return true if target is riscv little endian.
> +# xfail the riscv little endain targets for the compressed1d1 test;
> +# The riscv big endian targets and others should pass.
> +proc riscv_little_endian { } {
> +    if { [istarget "riscv32-*-*"]
> +        || [istarget "riscv64-*-*"]
> +        || [istarget "riscv32le-*-*"]
> +        || [istarget "riscv64le-*-*"] } {
> +       return 1
> +    }
> +    return 0
> +}
> +
>  set old_ldflags $LDFLAGS
>  if { [istarget spu*-*-*] } {
>      set LDFLAGS "$LDFLAGS --local-store 0:0"
> --
> 2.7.4
>


More information about the Binutils mailing list