[binutils-gdb] LoongArch: Fix gas and ld test cases

liu & zhensong liuzhensong@sourceware.org
Tue Mar 12 09:38:32 GMT 2024


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=d8915f27ebb5a794c8ebbebe8ebf1374e2acf629

commit d8915f27ebb5a794c8ebbebe8ebf1374e2acf629
Author: Lulu Cai <cailulu@loongson.cn>
Date:   Thu Mar 7 11:09:14 2024 +0800

    LoongArch: Fix gas and ld test cases
    
    * After adding the old LE relax, all old LE relocations will have
      an R_LARCH_RELAX relocation. Fix the gas test case failure caused
      by the implementation of the old LE relax.
    
    * loongarch64-elf does not support pie and -z norelro options,
      removed in test files.

Diff:
---
 gas/testsuite/gas/loongarch/relocs_32.d            | 2 ++
 gas/testsuite/gas/loongarch/relocs_64.d            | 4 ++++
 ld/testsuite/ld-loongarch-elf/desc-le-norelax.d    | 2 +-
 ld/testsuite/ld-loongarch-elf/desc-le-relax.d      | 2 +-
 ld/testsuite/ld-loongarch-elf/ie-le-norelax.d      | 2 +-
 ld/testsuite/ld-loongarch-elf/ie-le-relax.d        | 2 +-
 ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp | 5 ++++-
 ld/testsuite/ld-loongarch-elf/macro_op_32.d        | 4 ++++
 8 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/gas/testsuite/gas/loongarch/relocs_32.d b/gas/testsuite/gas/loongarch/relocs_32.d
index 3e1bb62e263..96ef2800a51 100644
--- a/gas/testsuite/gas/loongarch/relocs_32.d
+++ b/gas/testsuite/gas/loongarch/relocs_32.d
@@ -30,8 +30,10 @@ Disassembly of section .text:
 			24: R_LARCH_GOT_LO12	.L1
   28:	14000004 	lu12i.w     	\$a0, 0
 			28: R_LARCH_TLS_LE_HI20	TLSL1
+			28: R_LARCH_RELAX	\*ABS\*
   2c:	03800085 	ori         	\$a1, \$a0, 0x0
 			2c: R_LARCH_TLS_LE_LO12	TLSL1
+			2c: R_LARCH_RELAX	\*ABS\*
   30:	1a000004 	pcalau12i   	\$a0, 0
 			30: R_LARCH_TLS_IE_PC_HI20	TLSL1
   34:	02c00005 	li.d        	\$a1, 0
diff --git a/gas/testsuite/gas/loongarch/relocs_64.d b/gas/testsuite/gas/loongarch/relocs_64.d
index 631137eb174..35dde02f7fc 100644
--- a/gas/testsuite/gas/loongarch/relocs_64.d
+++ b/gas/testsuite/gas/loongarch/relocs_64.d
@@ -48,12 +48,16 @@ Disassembly of section .text:
 			48: R_LARCH_GOT64_HI12	.L1
   4c:	14000004 	lu12i.w     	\$a0, 0
 			4c: R_LARCH_TLS_LE_HI20	TLSL1
+			4c: R_LARCH_RELAX	\*ABS\*
   50:	03800085 	ori         	\$a1, \$a0, 0x0
 			50: R_LARCH_TLS_LE_LO12	TLSL1
+			50: R_LARCH_RELAX	\*ABS\*
   54:	16000004 	lu32i.d     	\$a0, 0
 			54: R_LARCH_TLS_LE64_LO20	TLSL1
+			54: R_LARCH_RELAX	\*ABS\*
   58:	03000085 	lu52i.d     	\$a1, \$a0, 0
 			58: R_LARCH_TLS_LE64_HI12	TLSL1
+			58: R_LARCH_RELAX	\*ABS\*
   5c:	1a000004 	pcalau12i   	\$a0, 0
 			5c: R_LARCH_TLS_IE_PC_HI20	TLSL1
   60:	02c00005 	li.d        	\$a1, 0
diff --git a/ld/testsuite/ld-loongarch-elf/desc-le-norelax.d b/ld/testsuite/ld-loongarch-elf/desc-le-norelax.d
index 5a53245ad7f..43749f1b819 100644
--- a/ld/testsuite/ld-loongarch-elf/desc-le-norelax.d
+++ b/ld/testsuite/ld-loongarch-elf/desc-le-norelax.d
@@ -1,5 +1,5 @@
 #as:
-#ld: -z norelro -e0 --no-relax
+#ld: -e0 --no-relax
 #objdump: -dr
 #skip: loongarch32-*-*
 
diff --git a/ld/testsuite/ld-loongarch-elf/desc-le-relax.d b/ld/testsuite/ld-loongarch-elf/desc-le-relax.d
index 03b5535edf8..71a540fda30 100644
--- a/ld/testsuite/ld-loongarch-elf/desc-le-relax.d
+++ b/ld/testsuite/ld-loongarch-elf/desc-le-relax.d
@@ -1,5 +1,5 @@
 #as:
-#ld: -z norelro -e0
+#ld: -e0
 #objdump: -dr -M no-aliases
 #skip: loongarch32-*-*
 
diff --git a/ld/testsuite/ld-loongarch-elf/ie-le-norelax.d b/ld/testsuite/ld-loongarch-elf/ie-le-norelax.d
index 81d78ca3245..0221b495d68 100644
--- a/ld/testsuite/ld-loongarch-elf/ie-le-norelax.d
+++ b/ld/testsuite/ld-loongarch-elf/ie-le-norelax.d
@@ -1,5 +1,5 @@
 #as:
-#ld: -z norelro -e0 --no-relax
+#ld: -e0 --no-relax
 #objdump: -dr
 #skip: loongarch32-*-*
 
diff --git a/ld/testsuite/ld-loongarch-elf/ie-le-relax.d b/ld/testsuite/ld-loongarch-elf/ie-le-relax.d
index 03b5535edf8..71a540fda30 100644
--- a/ld/testsuite/ld-loongarch-elf/ie-le-relax.d
+++ b/ld/testsuite/ld-loongarch-elf/ie-le-relax.d
@@ -1,5 +1,5 @@
 #as:
-#ld: -z norelro -e0
+#ld: -e0
 #objdump: -dr -M no-aliases
 #skip: loongarch32-*-*
 
diff --git a/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp b/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp
index 161cc1a4d10..507b244869c 100644
--- a/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp
+++ b/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp
@@ -133,6 +133,10 @@ if [istarget "loongarch64-*-*"] {
     run_dump_test "desc-relax"
   }
 
+  if [check_pie_support] {
+    run_dump_test "pie_discard"
+  }
+
   run_dump_test "max_imm_b16"
   run_dump_test "max_imm_b21"
   run_dump_test "max_imm_b26"
@@ -145,7 +149,6 @@ if [istarget "loongarch64-*-*"] {
   run_dump_test "underflow_b21"
   run_dump_test "underflow_b26"
   run_dump_test "underflow_pcrel20"
-  run_dump_test "pie_discard"
   run_dump_test "desc-le-norelax"
   run_dump_test "desc-le-relax"
   run_dump_test "ie-le-norelax"
diff --git a/ld/testsuite/ld-loongarch-elf/macro_op_32.d b/ld/testsuite/ld-loongarch-elf/macro_op_32.d
index a7349aa8dc0..8fd69922c14 100644
--- a/ld/testsuite/ld-loongarch-elf/macro_op_32.d
+++ b/ld/testsuite/ld-loongarch-elf/macro_op_32.d
@@ -49,12 +49,16 @@ Disassembly of section .text:
 			3c: R_LARCH_RELAX	\*ABS\*
   40:	14000004 	lu12i.w     	\$a0, 0
 			40: R_LARCH_TLS_LE_HI20	TLS1
+			40: R_LARCH_RELAX	\*ABS\*
   44:	03800084 	ori         	\$a0, \$a0, 0x0
 			44: R_LARCH_TLS_LE_LO12	TLS1
+			44: R_LARCH_RELAX	\*ABS\*
   48:	1a000004 	pcalau12i   	\$a0, 0
 			48: R_LARCH_TLS_IE_PC_HI20	TLS1
+			48: R_LARCH_RELAX	\*ABS\*
   4c:	28800084 	ld.w        	\$a0, \$a0, 0
 			4c: R_LARCH_TLS_IE_PC_LO12	TLS1
+			4c: R_LARCH_RELAX	\*ABS\*
   50:	1a000004 	pcalau12i   	\$a0, 0
 			50: R_LARCH_TLS_LD_PC_HI20	TLS1
 			50: R_LARCH_RELAX	\*ABS\*


More information about the Binutils-cvs mailing list