[PATCH v2] MIPS: Fix Irix gas testcases about pdr section
YunQiang Su
yunqiang.su@cipunited.com
Tue Nov 14 10:10:53 GMT 2023
1. Add -mpdr option to cases, which expect .pdr section existing.
Gas doesn't generate .pdr section for Irix objects by default.
See `int mips_flag_pdr` in tc-mips.c.
Add -mpdr into #as section:
mips/mips16-e.d, mips/mips16-f.d
mips/elf-rel26.d, mips16-hilo-match;
Add -mpdr if target is mips*-*-irix*:
elf/elf.exp.
2. Add irix-no-pdr.d testcase to make sure no .pdr section is
generated for Irix by default.
---
gas/testsuite/gas/elf/elf.exp | 4 ++++
gas/testsuite/gas/mips/elf-rel26.d | 2 +-
gas/testsuite/gas/mips/irix-no-pdr.d | 8 ++++++++
gas/testsuite/gas/mips/mips.exp | 6 ++++++
gas/testsuite/gas/mips/mips16-e.d | 2 +-
gas/testsuite/gas/mips/mips16-f.d | 2 +-
gas/testsuite/gas/mips/mips16-hilo-match.d | 2 +-
7 files changed, 22 insertions(+), 4 deletions(-)
create mode 100644 gas/testsuite/gas/mips/irix-no-pdr.d
diff --git a/gas/testsuite/gas/elf/elf.exp b/gas/testsuite/gas/elf/elf.exp
index c42cef8160e..d85fdddc841 100644
--- a/gas/testsuite/gas/elf/elf.exp
+++ b/gas/testsuite/gas/elf/elf.exp
@@ -208,6 +208,10 @@ if { [is_elf_format] } then {
riscv*-*-* {
set as_flags "$as_flags -march-attr"
}
+ mips*-*-irix* {
+ # Irix has no pdr section by default.
+ set as_flags "$as_flags -mpdr"
+ }
}
run_elf_list_test "section2" "$target_machine" "$as_flags" "-s" ""
}
diff --git a/gas/testsuite/gas/mips/elf-rel26.d b/gas/testsuite/gas/mips/elf-rel26.d
index aeb4e16d178..71fbe83d4b6 100644
--- a/gas/testsuite/gas/mips/elf-rel26.d
+++ b/gas/testsuite/gas/mips/elf-rel26.d
@@ -1,4 +1,4 @@
-#as: -mips32 -32 -EL -KPIC
+#as: -mips32 -32 -EL -KPIC -mpdr
#readelf: --relocs
#name: MIPS ELF reloc 26
diff --git a/gas/testsuite/gas/mips/irix-no-pdr.d b/gas/testsuite/gas/mips/irix-no-pdr.d
new file mode 100644
index 00000000000..7268e020c9f
--- /dev/null
+++ b/gas/testsuite/gas/mips/irix-no-pdr.d
@@ -0,0 +1,8 @@
+#objdump: -rst
+#name: Irix has no .pdr section
+#as: -32 -mips32
+#source: sync.s
+
+#failif
+.*\.pdr.*
+#pass
diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp
index 0611273cac6..dca0160597a 100644
--- a/gas/testsuite/gas/mips/mips.exp
+++ b/gas/testsuite/gas/mips/mips.exp
@@ -2174,4 +2174,10 @@ if { [istarget mips*-*-vxworks*] } {
run_dump_test "global-local-symtab-sort-n32${tmips}"
run_dump_test "global-local-symtab-sort-n64${tmips}"
}
+
+ # Gas doesn't generate .pdr section for Irix objects by default.
+ # See `int mips_flag_pdr` in tc-mips.c.
+ if [istarget *-*-irix*] {
+ run_dump_test "irix-no-pdr"
+ }
}
diff --git a/gas/testsuite/gas/mips/mips16-e.d b/gas/testsuite/gas/mips/mips16-e.d
index d64b882c81c..0f954e8e25c 100644
--- a/gas/testsuite/gas/mips/mips16-e.d
+++ b/gas/testsuite/gas/mips/mips16-e.d
@@ -1,6 +1,6 @@
#objdump: -rst --special-syms -mips16
#name: MIPS16 reloc
-#as: -32 -mips16
+#as: -32 -mips16 -mips1 -mpdr
# Check MIPS16 reloc processing
diff --git a/gas/testsuite/gas/mips/mips16-f.d b/gas/testsuite/gas/mips/mips16-f.d
index 9605b6f183e..0ed246cfbba 100644
--- a/gas/testsuite/gas/mips/mips16-f.d
+++ b/gas/testsuite/gas/mips/mips16-f.d
@@ -1,6 +1,6 @@
#objdump: -rst -mips16
#name: MIPS16 reloc 2
-#as: -32 -mips16
+#as: -32 -mips16 -mips32 -mpdr
# Check MIPS16 reloc processing
diff --git a/gas/testsuite/gas/mips/mips16-hilo-match.d b/gas/testsuite/gas/mips/mips16-hilo-match.d
index 76ad7b39cdd..7b42f6946c1 100644
--- a/gas/testsuite/gas/mips/mips16-hilo-match.d
+++ b/gas/testsuite/gas/mips/mips16-hilo-match.d
@@ -1,5 +1,5 @@
#objdump: -r
-#as: -mabi=32 -march=mips1
+#as: -mabi=32 -march=mips1 -mpdr
#name: MIPS16 mips16-hilo-match
.*: +file format .*mips.*
--
2.39.2
More information about the Binutils
mailing list