This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH 2/2] 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-16 Palmer Dabbelt <palmer@dabbelt.com>
* 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/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 | 5 ++++-
gas/testsuite/gas/all/sleb128-5.d | 4 ++++
gas/testsuite/gas/all/sleb128-7.d | 4 ++++
gas/testsuite/gas/elf/section11.d | 4 +++-
8 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/gas/testsuite/gas/all/align.d b/gas/testsuite/gas/all/align.d
index dec2168aa6f0..eb08d8ddcda7 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 b5b0bebbf35a..38df380991b3 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 1e581c2695b0..08a9be178cc6 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.
+#skip : riscv*-*-*
.*: .*
diff --git a/gas/testsuite/gas/all/sleb128-2.d b/gas/testsuite/gas/all/sleb128-2.d
index cce0b4c0334a..afffbed2a673 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.
+#skip : riscv*-*-*
.*: .*
diff --git a/gas/testsuite/gas/all/sleb128-4.d b/gas/testsuite/gas/all/sleb128-4.d
index 89b956530186..7a881cc4c77e 100644
--- a/gas/testsuite/gas/all/sleb128-4.d
+++ b/gas/testsuite/gas/all/sleb128-4.d
@@ -1,6 +1,9 @@
#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.
+#skip: msp430*-*-* riscv*-*-*
.*: .*
diff --git a/gas/testsuite/gas/all/sleb128-5.d b/gas/testsuite/gas/all/sleb128-5.d
index 0accfb5a6e88..1ed21344ce16 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.
+#skip : riscv*-*-*
.*: .*
diff --git a/gas/testsuite/gas/all/sleb128-7.d b/gas/testsuite/gas/all/sleb128-7.d
index 6fcbdefe6e93..62c545843f20 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.
+#skip: riscv*-*-*
.*: .*
diff --git a/gas/testsuite/gas/elf/section11.d b/gas/testsuite/gas/elf/section11.d
index c1043db7a0b5..878a483fe830 100644
--- a/gas/testsuite/gas/elf/section11.d
+++ b/gas/testsuite/gas/elf/section11.d
@@ -2,7 +2,9 @@
#readelf: -S --wide
#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.
+#skip: rx-*-* riscv*-*-*
#...
\[ .\] .text[ ]+PROGBITS[ ]+0+00 0+[0-9a-f]+ 0+0(1|4|5) 00 AX 0 0 16
--
2.13.6