From 8dfa5d5a6389b7f0fdd7baaedc5f316f05debf63 Mon Sep 17 00:00:00 2001 From: Palmer Dabbelt Date: Tue, 17 Oct 2017 10:51:38 -0700 Subject: [PATCH] RISC-V: Mark unsupported gas testcases There are individual comments that explain why each test isn't supported, but the vast majority of them are due to RISC-V's aggressive linker relaxation. The SLEB test cases should eventually be supported, but the remaining ones probably won't ever be. 2017-10-18 Palmer Dabbelt * testsuite/gas/all/align.d: Mark as unsupported on RISC-V. testsuite/gas/all/relax.d: Likewise. testsuite/gas/all/sleb128-2.d: Likewise. testsuite/gas/all/sleb128-4.d: Likewise. testsuite/gas/all/sleb128-5.d: Likewise. testsuite/gas/all/sleb128-7.d: Likewise. testsuite/gas/elf/section11.d: Likewise. testsuite/gas/all/gas.exp (diff1.s): Likewise. --- gas/ChangeLog | 11 +++++++++++ gas/testsuite/gas/all/align.d | 4 +++- gas/testsuite/gas/all/gas.exp | 1 + gas/testsuite/gas/all/relax.d | 4 ++++ gas/testsuite/gas/all/sleb128-2.d | 4 ++++ gas/testsuite/gas/all/sleb128-4.d | 4 ++++ gas/testsuite/gas/all/sleb128-5.d | 4 ++++ gas/testsuite/gas/all/sleb128-7.d | 4 ++++ gas/testsuite/gas/elf/section11.d | 3 +++ 9 files changed, 38 insertions(+), 1 deletion(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index a38ffa3..cb90c99 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,14 @@ +2017-10-18 Palmer Dabbelt + + * testsuite/gas/all/align.d: Mark as unsupported on RISC-V. + testsuite/gas/all/relax.d: Likewise. + testsuite/gas/all/sleb128-2.d: Likewise. + testsuite/gas/all/sleb128-4.d: Likewise. + testsuite/gas/all/sleb128-5.d: Likewise. + testsuite/gas/all/sleb128-7.d: Likewise. + testsuite/gas/elf/section11.d: Likewise. + testsuite/gas/all/gas.exp (diff1.s): Likewise. + 2017-10-18 Nick Clifton PR gas/22304 diff --git a/gas/testsuite/gas/all/align.d b/gas/testsuite/gas/all/align.d index dec2168..eb08d8d 100644 --- a/gas/testsuite/gas/all/align.d +++ b/gas/testsuite/gas/all/align.d @@ -2,7 +2,9 @@ #name: align # The RX port will always replace zeros in any aligned area with NOPs, # even if the user requested that they filled with zeros. -#not-target: m32c-* rx-* +# RISC-V handles alignment via relaxation and therefor won't have object files +# with the expected alignment. +#not-target: m32c-* riscv*-* rx-* # Test the alignment pseudo-op. diff --git a/gas/testsuite/gas/all/gas.exp b/gas/testsuite/gas/all/gas.exp index 93e31da..6a68bcc 100644 --- a/gas/testsuite/gas/all/gas.exp +++ b/gas/testsuite/gas/all/gas.exp @@ -63,6 +63,7 @@ if { ![istarget alpha*-*-*vms*] && ![istarget microblaze-*-*] && ![istarget mn10300-*-*] && ![istarget msp430*-*-*] + && ![istarget riscv*-*-*] && ![istarget rl78-*-*] && ![istarget rx-*-*] } then { gas_test_error "diff1.s" "" "difference of two undefined symbols" diff --git a/gas/testsuite/gas/all/relax.d b/gas/testsuite/gas/all/relax.d index 1e581c2..27937fe 100644 --- a/gas/testsuite/gas/all/relax.d +++ b/gas/testsuite/gas/all/relax.d @@ -1,5 +1,9 @@ #objdump : -s -j .data -j "\$DATA\$" #name : relax .uleb128 +# RISC-V doesn't support .sleb operands that are the difference of two symbols +# because symbol values are not known until after linker relaxation has been +# performed. +#not-target : riscv*-*-* .*: .* diff --git a/gas/testsuite/gas/all/sleb128-2.d b/gas/testsuite/gas/all/sleb128-2.d index cce0b4c..377aa1f 100644 --- a/gas/testsuite/gas/all/sleb128-2.d +++ b/gas/testsuite/gas/all/sleb128-2.d @@ -1,5 +1,9 @@ #objdump : -s -j .data -j "\$DATA\$" #name : .sleb128 tests (2) +# RISC-V doesn't support .sleb operands that are the difference of two symbols +# because symbol values are not known until after linker relaxation has been +# performed. +#not-target : riscv*-*-* .*: .* diff --git a/gas/testsuite/gas/all/sleb128-4.d b/gas/testsuite/gas/all/sleb128-4.d index 89b9565..49eebbb 100644 --- a/gas/testsuite/gas/all/sleb128-4.d +++ b/gas/testsuite/gas/all/sleb128-4.d @@ -1,6 +1,10 @@ #objdump : -s -j .data -j "\$DATA\$" #name : .sleb128 tests (4) #skip: msp430*-*-* +# RISC-V doesn't support .sleb operands that are the difference of two symbols +# because symbol values are not known until after linker relaxation has been +# performed. +#not-target: riscv*-*-* .*: .* diff --git a/gas/testsuite/gas/all/sleb128-5.d b/gas/testsuite/gas/all/sleb128-5.d index 0accfb5..b8298f5 100644 --- a/gas/testsuite/gas/all/sleb128-5.d +++ b/gas/testsuite/gas/all/sleb128-5.d @@ -1,5 +1,9 @@ #objdump : -s -j .data -j "\$DATA\$" #name : .sleb128 tests (5) +# RISC-V doesn't support .sleb operands that are the difference of two symbols +# because symbol values are not known until after linker relaxation has been +# performed. +#not-target : riscv*-*-* .*: .* diff --git a/gas/testsuite/gas/all/sleb128-7.d b/gas/testsuite/gas/all/sleb128-7.d index 6fcbdef..84aa5f1 100644 --- a/gas/testsuite/gas/all/sleb128-7.d +++ b/gas/testsuite/gas/all/sleb128-7.d @@ -1,5 +1,9 @@ #objdump : -s -j .data -j "\$DATA\$" #name : .sleb128 tests (7) +# RISC-V doesn't support .sleb operands that are the difference of two symbols +# because symbol values are not known until after linker relaxation has been +# performed. +#not-target: riscv*-*-* .*: .* diff --git a/gas/testsuite/gas/elf/section11.d b/gas/testsuite/gas/elf/section11.d index c1043db..a92ad5a 100644 --- a/gas/testsuite/gas/elf/section11.d +++ b/gas/testsuite/gas/elf/section11.d @@ -3,6 +3,9 @@ #name: Disabling section padding # The RX port uses non standard section names. #skip: rx-*-* +# RISC-V handles alignment via linker relaxation, so object files don't have +# the expected alignment. +#not-target: riscv*-*-* #... \[ .\] .text[ ]+PROGBITS[ ]+0+00 0+[0-9a-f]+ 0+0(1|4|5) 00 AX 0 0 16 -- 2.7.4