summaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2023-02-11 08:36:24 +1030
committerAlan Modra <amodra@gmail.com>2023-02-11 16:43:54 +1030
commit0a3137ce4c4b38ee8b26c09824633b827fed4cb1 (patch)
tree37913b106916fe608c5fbfebd109f99dd0e8220c /ld
parent480ddaa9784c652b7c575e17799e0408ac4e5b01 (diff)
downloadbinutils-gdb-0a3137ce4c4b38ee8b26c09824633b827fed4cb1.tar.gz
objdump -D of bss sections and -s with -j
There is some inconsistency between the behaviour of objdump -D and objdump -s, both supposedly operating on all sections by default. objdump -s ignores bss sections, while objdump -D dissassembles the zeros. Fix this by making objdump -D ignore bss sections too. Furthermore, "objdump -s -j .bss" doesn't dump .bss as it should, since the user is specifically asking to look at all those zeros. This change does find some tests that used objdump -D with expected output in bss-style sections. I've updated all the msp430 tests that just wanted to find a non-empty section to look at section headers instead, making the tests slightly more stringent. The ppc xcoff and spu tests are fixed by adding -j options to objdump, which makes the tests somewhat more lenient. binutils/ * objdump.c (disassemble_section): Ignore sections without contents, unless overridden by -j. (dump_section): Allow -j to override the default of not displaying sections without contents. * doc/binutils.texi (objdump options): Update -D, -s and -j description. gas/ * testsuite/gas/ppc/xcoff-tls-32.d: Select wanted objdump sections with -j. * testsuite/gas/ppc/xcoff-tls-64.d: Likewise. ld/ * testsuite/ld-msp430-elf/main-bss-lower.d, * testsuite/ld-msp430-elf/main-bss-upper.d, * testsuite/ld-msp430-elf/main-const-lower.d, * testsuite/ld-msp430-elf/main-const-upper.d, * testsuite/ld-msp430-elf/main-text-lower.d, * testsuite/ld-msp430-elf/main-text-upper.d, * testsuite/ld-msp430-elf/main-var-lower.d, * testsuite/ld-msp430-elf/main-var-upper.d: Expect -wh output. * testsuite/ld-msp430-elf/msp430-elf.exp: Use objdump -wh rather than objdump -D or objdump -d with tests checking for non-empty given sections. * testsuite/ld-spu/ear.d, * testsuite/ld-spu/icache1.d, * testsuite/ld-spu/ovl.d, * testsuite/ld-spu/ovl2.d: Select wanted objdump sections.
Diffstat (limited to 'ld')
-rw-r--r--ld/testsuite/ld-msp430-elf/main-bss-lower.d2
-rw-r--r--ld/testsuite/ld-msp430-elf/main-bss-upper.d2
-rw-r--r--ld/testsuite/ld-msp430-elf/main-const-lower.d2
-rw-r--r--ld/testsuite/ld-msp430-elf/main-const-upper.d2
-rw-r--r--ld/testsuite/ld-msp430-elf/main-text-lower.d2
-rw-r--r--ld/testsuite/ld-msp430-elf/main-text-upper.d7
-rw-r--r--ld/testsuite/ld-msp430-elf/main-var-lower.d2
-rw-r--r--ld/testsuite/ld-msp430-elf/main-var-upper.d2
-rw-r--r--ld/testsuite/ld-msp430-elf/msp430-elf.exp80
-rw-r--r--ld/testsuite/ld-spu/ear.d2
-rw-r--r--ld/testsuite/ld-spu/icache1.d2
-rw-r--r--ld/testsuite/ld-spu/ovl.d2
-rw-r--r--ld/testsuite/ld-spu/ovl2.d2
13 files changed, 53 insertions, 56 deletions
diff --git a/ld/testsuite/ld-msp430-elf/main-bss-lower.d b/ld/testsuite/ld-msp430-elf/main-bss-lower.d
index 60074209e9d..489dddbe8d6 100644
--- a/ld/testsuite/ld-msp430-elf/main-bss-lower.d
+++ b/ld/testsuite/ld-msp430-elf/main-bss-lower.d
@@ -1,3 +1,3 @@
#...
-Disassembly of section .lower.bss:
+.* \.lower\.bss +0+14 .*
#pass
diff --git a/ld/testsuite/ld-msp430-elf/main-bss-upper.d b/ld/testsuite/ld-msp430-elf/main-bss-upper.d
index 2f6376a7b65..ad410e5b576 100644
--- a/ld/testsuite/ld-msp430-elf/main-bss-upper.d
+++ b/ld/testsuite/ld-msp430-elf/main-bss-upper.d
@@ -1,3 +1,3 @@
#...
-Disassembly of section .upper.bss:
+.* \.upper\.bss +0+14 .*
#pass
diff --git a/ld/testsuite/ld-msp430-elf/main-const-lower.d b/ld/testsuite/ld-msp430-elf/main-const-lower.d
index 8549961bf4f..0b639dac37b 100644
--- a/ld/testsuite/ld-msp430-elf/main-const-lower.d
+++ b/ld/testsuite/ld-msp430-elf/main-const-lower.d
@@ -1,3 +1,3 @@
#...
-Disassembly of section .lower.rodata:
+.* \.lower\.rodata +0+14 .*
#pass
diff --git a/ld/testsuite/ld-msp430-elf/main-const-upper.d b/ld/testsuite/ld-msp430-elf/main-const-upper.d
index c84d649c4e0..7dd078dd1bd 100644
--- a/ld/testsuite/ld-msp430-elf/main-const-upper.d
+++ b/ld/testsuite/ld-msp430-elf/main-const-upper.d
@@ -1,3 +1,3 @@
#...
-Disassembly of section .upper.rodata:
+.* \.upper\.rodata +0+14 .*
#pass
diff --git a/ld/testsuite/ld-msp430-elf/main-text-lower.d b/ld/testsuite/ld-msp430-elf/main-text-lower.d
index 446a305a22c..9f3442c362b 100644
--- a/ld/testsuite/ld-msp430-elf/main-text-lower.d
+++ b/ld/testsuite/ld-msp430-elf/main-text-lower.d
@@ -1,3 +1,3 @@
#...
-Disassembly of section .lower.text:
+.* \.lower\.text +0+38 .*
#pass
diff --git a/ld/testsuite/ld-msp430-elf/main-text-upper.d b/ld/testsuite/ld-msp430-elf/main-text-upper.d
index f7ae6af2701..712f5486c57 100644
--- a/ld/testsuite/ld-msp430-elf/main-text-upper.d
+++ b/ld/testsuite/ld-msp430-elf/main-text-upper.d
@@ -1,6 +1,3 @@
-
-.*: file format.*msp430.*
-
-
-Disassembly of section .upper.text:
#...
+.* \.upper\.text +0+38 .*
+#pass
diff --git a/ld/testsuite/ld-msp430-elf/main-var-lower.d b/ld/testsuite/ld-msp430-elf/main-var-lower.d
index f520cf5676d..7f214b53793 100644
--- a/ld/testsuite/ld-msp430-elf/main-var-lower.d
+++ b/ld/testsuite/ld-msp430-elf/main-var-lower.d
@@ -1,3 +1,3 @@
#...
-Disassembly of section .lower.data:
+.* \.lower\.data +0+14 .*
#pass
diff --git a/ld/testsuite/ld-msp430-elf/main-var-upper.d b/ld/testsuite/ld-msp430-elf/main-var-upper.d
index fc3d712c87a..9443f705585 100644
--- a/ld/testsuite/ld-msp430-elf/main-var-upper.d
+++ b/ld/testsuite/ld-msp430-elf/main-var-upper.d
@@ -1,3 +1,3 @@
#...
-Disassembly of section .upper.data:
+.* \.upper\.data +0+14 .*
#pass
diff --git a/ld/testsuite/ld-msp430-elf/msp430-elf.exp b/ld/testsuite/ld-msp430-elf/msp430-elf.exp
index 89c7f3951bc..0e1a1c94622 100644
--- a/ld/testsuite/ld-msp430-elf/msp430-elf.exp
+++ b/ld/testsuite/ld-msp430-elf/msp430-elf.exp
@@ -49,106 +49,106 @@ if { ![istarget "msp430*elf*"] } {
set msp430regionprefixtests {
{"Move main() to .upper.text" "-T msp430.ld --code-region=upper"
- "" "" {main-with-text-rodata.s} {{objdump -d main-text-upper.d}} "main-upper"}
+ "" "" {main-with-text-rodata.s} {{objdump -wh main-text-upper.d}} "main-upper"}
{"Move main() to .upper.text. No .lower.text in ld script" "-T msp430-no-lower.ld --code-region=upper"
- "" "" {main-with-text-rodata.s} {{objdump -d main-text-upper.d}} "main-upper"}
+ "" "" {main-with-text-rodata.s} {{objdump -wh main-text-upper.d}} "main-upper"}
{"Move main() to .lower.text" "-T msp430.ld --code-region=lower"
- "" "" {main-with-text-rodata.s} {{objdump -d main-text-lower.d}} "main-lower"}
+ "" "" {main-with-text-rodata.s} {{objdump -wh main-text-lower.d}} "main-lower"}
{"Move \"either\" main() to .lower.text" "-T msp430.ld --code-region=either"
- "" "" {main-with-text-rodata.s} {{objdump -d main-text-lower.d}} "main-either"}
+ "" "" {main-with-text-rodata.s} {{objdump -wh main-text-lower.d}} "main-either"}
{"Move glob_var to .upper.data" "-T msp430.ld --data-region=upper"
- "" "" {main-with-data-bss.s} {{objdump -D main-var-upper.d}} "main-var-upper"}
+ "" "" {main-with-data-bss.s} {{objdump -wh main-var-upper.d}} "main-var-upper"}
{"Move glob_var to .upper.data. No .lower.data in ld script" "-T msp430-no-lower.ld --data-region=upper"
- "" "" {main-with-data-bss.s} {{objdump -D main-var-upper.d}} "main-var-upper"}
+ "" "" {main-with-data-bss.s} {{objdump -wh main-var-upper.d}} "main-var-upper"}
{"Move glob_var to .lower.data" "-T msp430.ld --data-region=lower"
- "" "" {main-with-data-bss.s} {{objdump -D main-var-lower.d}} "main-var-lower"}
+ "" "" {main-with-data-bss.s} {{objdump -wh main-var-lower.d}} "main-var-lower"}
{"Move \"either\" glob_var to .lower.data" "-T msp430.ld --data-region=lower"
- "" "" {main-with-data-bss.s} {{objdump -D main-var-lower.d}} "main-var-lower"}
+ "" "" {main-with-data-bss.s} {{objdump -wh main-var-lower.d}} "main-var-lower"}
{"Move glob_zero to .upper.bss" "-T msp430.ld --data-region=upper"
- "" "" {main-with-data-bss.s} {{objdump -D main-bss-upper.d}} "main-bss-upper"}
+ "" "" {main-with-data-bss.s} {{objdump -wh main-bss-upper.d}} "main-bss-upper"}
{"Move glob_zero to .upper.bss. No .lower.bss in ld script." "-T msp430-no-lower.ld --data-region=upper"
- "" "" {main-with-data-bss.s} {{objdump -D main-bss-upper.d}} "main-bss-upper"}
+ "" "" {main-with-data-bss.s} {{objdump -wh main-bss-upper.d}} "main-bss-upper"}
{"Move glob_zero to .lower.bss" "-T msp430.ld --data-region=lower"
- "" "" {main-with-data-bss.s} {{objdump -D main-bss-lower.d}} "main-bss-lower"}
+ "" "" {main-with-data-bss.s} {{objdump -wh main-bss-lower.d}} "main-bss-lower"}
{"Move \"either\" glob_zero to .lower.bss" "-T msp430.ld --data-region=lower"
- "" "" {main-with-data-bss.s} {{objdump -D main-bss-lower.d}} "main-bss-lower"}
+ "" "" {main-with-data-bss.s} {{objdump -wh main-bss-lower.d}} "main-bss-lower"}
{"Move glob_const to .upper.rodata" "-T msp430.ld --data-region=upper"
- "" "" {main-with-text-rodata.s} {{objdump -D main-const-upper.d}} "main-const-upper"}
+ "" "" {main-with-text-rodata.s} {{objdump -wh main-const-upper.d}} "main-const-upper"}
{"Move glob_const to .upper.rodata. No .lower.rodata in ld script." "-T msp430-no-lower.ld --data-region=upper"
- "" "" {main-with-text-rodata.s} {{objdump -D main-const-upper.d}} "main-const-upper"}
+ "" "" {main-with-text-rodata.s} {{objdump -wh main-const-upper.d}} "main-const-upper"}
{"Move glob_const to .lower.rodata" "-T msp430.ld --data-region=lower"
- "" "" {main-with-text-rodata.s} {{objdump -D main-const-lower.d}} "main-const-lower"}
+ "" "" {main-with-text-rodata.s} {{objdump -wh main-const-lower.d}} "main-const-lower"}
{"Move \"either\" glob_const to .lower.rodata" "-T msp430.ld --data-region=lower"
- "" "" {main-with-text-rodata.s} {{objdump -D main-const-lower.d}} "main-const-lower"}
+ "" "" {main-with-text-rodata.s} {{objdump -wh main-const-lower.d}} "main-const-lower"}
}
set msp430regionprefixuniquesectiontests {
{"Move main() to .upper.text, with -ffunction/data-sections" "-T msp430.ld --code-region=upper"
- "" "" {main-with-text-rodata-unique-sec.s} {{objdump -d main-text-upper.d}} "main-upper"}
+ "" "" {main-with-text-rodata-unique-sec.s} {{objdump -wh main-text-upper.d}} "main-upper"}
{"Move main() to .upper.text. No .lower.text in ld script, with -ffunction/data-sections" "-T msp430-no-lower.ld --code-region=upper"
- "" "" {main-with-text-rodata-unique-sec.s} {{objdump -d main-text-upper.d}} "main-upper"}
+ "" "" {main-with-text-rodata-unique-sec.s} {{objdump -wh main-text-upper.d}} "main-upper"}
{"Move main() to .lower.text, with -ffunction/data-sections" "-T msp430.ld --code-region=lower"
- "" "" {main-with-text-rodata-unique-sec.s} {{objdump -d main-text-lower.d}} "main-lower"}
+ "" "" {main-with-text-rodata-unique-sec.s} {{objdump -wh main-text-lower.d}} "main-lower"}
{"Move \"either\" main() to .lower.text, with -ffunction/data-sections" "-T msp430.ld --code-region=either"
- "" "" {main-with-text-rodata-unique-sec.s} {{objdump -d main-text-lower.d}} "main-either"}
+ "" "" {main-with-text-rodata-unique-sec.s} {{objdump -wh main-text-lower.d}} "main-either"}
{"Move glob_var to .upper.data, with -ffunction/data-sections" "-T msp430.ld --data-region=upper"
- "" "" {main-with-data-bss-unique-sec.s} {{objdump -D main-var-upper.d}} "main-var-upper"}
+ "" "" {main-with-data-bss-unique-sec.s} {{objdump -wh main-var-upper.d}} "main-var-upper"}
{"Move glob_var to .upper.data. No .lower.data in ld script, with -ffunction/data-sections" "-T msp430-no-lower.ld --data-region=upper"
- "" "" {main-with-data-bss-unique-sec.s} {{objdump -D main-var-upper.d}} "main-var-upper"}
+ "" "" {main-with-data-bss-unique-sec.s} {{objdump -wh main-var-upper.d}} "main-var-upper"}
{"Move glob_var to .lower.data, with -ffunction/data-sections" "-T msp430.ld --data-region=lower"
- "" "" {main-with-data-bss-unique-sec.s} {{objdump -D main-var-lower.d}} "main-var-lower"}
+ "" "" {main-with-data-bss-unique-sec.s} {{objdump -wh main-var-lower.d}} "main-var-lower"}
{"Move \"either\" glob_var to .lower.data, with -ffunction/data-sections" "-T msp430.ld --data-region=lower"
- "" "" {main-with-data-bss-unique-sec.s} {{objdump -D main-var-lower.d}} "main-var-lower"}
+ "" "" {main-with-data-bss-unique-sec.s} {{objdump -wh main-var-lower.d}} "main-var-lower"}
{"Move glob_zero to .upper.bss, with -ffunction/data-sections" "-T msp430.ld --data-region=upper"
- "" "" {main-with-data-bss-unique-sec.s} {{objdump -D main-bss-upper.d}} "main-bss-upper"}
+ "" "" {main-with-data-bss-unique-sec.s} {{objdump -wh main-bss-upper.d}} "main-bss-upper"}
{"Move glob_zero to .upper.bss. No .lower.bss in ld script., with -ffunction/data-sections" "-T msp430-no-lower.ld --data-region=upper"
- "" "" {main-with-data-bss-unique-sec.s} {{objdump -D main-bss-upper.d}} "main-bss-upper"}
+ "" "" {main-with-data-bss-unique-sec.s} {{objdump -wh main-bss-upper.d}} "main-bss-upper"}
{"Move glob_zero to .lower.bss, with -ffunction/data-sections" "-T msp430.ld --data-region=lower"
- "" "" {main-with-data-bss-unique-sec.s} {{objdump -D main-bss-lower.d}} "main-bss-lower"}
+ "" "" {main-with-data-bss-unique-sec.s} {{objdump -wh main-bss-lower.d}} "main-bss-lower"}
{"Move \"either\" glob_zero to .lower.bss, with -ffunction/data-sections" "-T msp430.ld --data-region=lower"
- "" "" {main-with-data-bss-unique-sec.s} {{objdump -D main-bss-lower.d}} "main-bss-lower"}
+ "" "" {main-with-data-bss-unique-sec.s} {{objdump -wh main-bss-lower.d}} "main-bss-lower"}
{"Move glob_const to .upper.rodata, with -ffunction/data-sections" "-T msp430.ld --data-region=upper"
- "" "" {main-with-text-rodata-unique-sec.s} {{objdump -D main-const-upper.d}} "main-const-upper"}
+ "" "" {main-with-text-rodata-unique-sec.s} {{objdump -wh main-const-upper.d}} "main-const-upper"}
{"Move glob_const to .upper.rodata. No .lower.rodata in ld script., with -ffunction/data-sections" "-T msp430-no-lower.ld --data-region=upper"
- "" "" {main-with-text-rodata-unique-sec.s} {{objdump -D main-const-upper.d}} "main-const-upper"}
+ "" "" {main-with-text-rodata-unique-sec.s} {{objdump -wh main-const-upper.d}} "main-const-upper"}
{"Move glob_const to .lower.rodata, with -ffunction/data-sections" "-T msp430.ld --data-region=lower"
- "" "" {main-with-text-rodata-unique-sec.s} {{objdump -D main-const-lower.d}} "main-const-lower"}
+ "" "" {main-with-text-rodata-unique-sec.s} {{objdump -wh main-const-lower.d}} "main-const-lower"}
{"Move \"either\" glob_const to .lower.rodata, with -ffunction/data-sections" "-T msp430.ld --data-region=lower"
- "" "" {main-with-text-rodata-unique-sec.s} {{objdump -D main-const-lower.d}} "main-const-lower"}
+ "" "" {main-with-text-rodata-unique-sec.s} {{objdump -wh main-const-lower.d}} "main-const-lower"}
}
set msp430eithershuffletests {
{"Move \"either\" main() to .upper.text when it doesn\'t fit in .lower.text"
"-T msp430-tiny-rom.ld --code-region=either --data-region=either" "" "" {main-with-text-rodata.s}
- {{objdump -d main-text-upper.d}} "either-to-upper-text"}
+ {{objdump -wh main-text-upper.d}} "either-to-upper-text"}
{"Move \"either\" glob_var_array to .upper.data when it doesn\'t fit in .lower.data"
"-T msp430-tiny-ram.ld --data-region=either" "" "" {main-with-data-bss.s}
- {{objdump -D main-var-upper.d}} "either-to-upper-data"}
+ {{objdump -wh main-var-upper.d}} "either-to-upper-data"}
{"Move \"either\" glob_bss_array to .upper.bss when it doesn\'t fit in .lower.bss"
"-T msp430-tiny-ram.ld --data-region=either" "" "" {main-with-data-bss.s}
- {{objdump -D main-bss-upper.d}} "either-to-upper-bss"}
+ {{objdump -wh main-bss-upper.d}} "either-to-upper-bss"}
{"Move \"either\" glob_const_array to .upper.rodata when it doesn\'t fit in .lower.rodata"
"-T msp430-tiny-rom.ld --code-region=either --data-region=either" "" "" {main-with-text-rodata.s}
- {{objdump -D main-const-upper.d}} "either-to-upper-const"}
+ {{objdump -wh main-const-upper.d}} "either-to-upper-const"}
{"Move \"either\" main() to .upper.text when it doesn\'t fit in .lower.text, with -ffunction/data-sections"
"-T msp430-tiny-rom.ld --code-region=either --data-region=either" "" "" {main-with-text-rodata-unique-sec.s}
- {{objdump -d main-text-upper.d}} "either-to-upper-text-unique-sec"}
+ {{objdump -wh main-text-upper.d}} "either-to-upper-text-unique-sec"}
{"Move \"either\" glob_var_array to .upper.data when it doesn\'t fit in .lower.data, with -ffunction/data-sections"
"-T msp430-tiny-ram.ld --data-region=either" "" "" {main-with-data-bss-unique-sec.s}
- {{objdump -D main-var-upper.d}} "either-to-upper-data-unique-sec"}
+ {{objdump -wh main-var-upper.d}} "either-to-upper-data-unique-sec"}
{"Move \"either\" glob_bss_array to .upper.bss when it doesn\'t fit in .lower.bss, with -ffunction/data-sections"
"-T msp430-tiny-ram.ld --data-region=either" "" "" {main-with-data-bss-unique-sec.s}
- {{objdump -D main-bss-upper.d}} "either-to-upper-bss-unique-sec"}
+ {{objdump -wh main-bss-upper.d}} "either-to-upper-bss-unique-sec"}
{"Move \"either\" glob_const_array to .upper.rodata when it doesn\'t fit in .lower.rodata, with -ffunction/data-sections"
"-T msp430-tiny-rom.ld --code-region=either --data-region=either" "" "" {main-with-text-rodata-unique-sec.s}
- {{objdump -D main-const-upper.d}} "either-to-upper-const-unique-sec"}
+ {{objdump -wh main-const-upper.d}} "either-to-upper-const-unique-sec"}
}
set msp430warntests {
diff --git a/ld/testsuite/ld-spu/ear.d b/ld/testsuite/ld-spu/ear.d
index df5546fb60f..8c6435e5366 100644
--- a/ld/testsuite/ld-spu/ear.d
+++ b/ld/testsuite/ld-spu/ear.d
@@ -1,5 +1,5 @@
#as:
-#objdump: -Dr
+#objdump: -Dr -j.text -j.data -j.toe -j.data.blah
#name: ear
.*: +file format .*
diff --git a/ld/testsuite/ld-spu/icache1.d b/ld/testsuite/ld-spu/icache1.d
index 27dc99e41be..a4c8c5a5bfe 100644
--- a/ld/testsuite/ld-spu/icache1.d
+++ b/ld/testsuite/ld-spu/icache1.d
@@ -1,6 +1,6 @@
#source: icache1.s
#ld: --soft-icache --num-lines=4 --non-ia-text --auto-overlay=tmpdir/icache1.lnk --auto-relink
-#objdump: -D
+#objdump: -D -j.text -j.data -j.bss -j.ovl.init -j.ovly1 -j.ovly2 -j.ovly3 -j.ovly4 -j.ovly5 -j.ovly6 -j.ovly7 -j.ovly8
.* elf32-spu
diff --git a/ld/testsuite/ld-spu/ovl.d b/ld/testsuite/ld-spu/ovl.d
index cbf7573a642..a0372a0e2fd 100644
--- a/ld/testsuite/ld-spu/ovl.d
+++ b/ld/testsuite/ld-spu/ovl.d
@@ -1,6 +1,6 @@
#source: ovl.s
#ld: -N -T ovl1.lnk -T ovl.lnk --emit-relocs
-#objdump: -D -r
+#objdump: -D -r -j.text -j.ov_a1 -j.ov_a2 -j.data -j.toe -j.note.spu_name
.*elf32-spu
diff --git a/ld/testsuite/ld-spu/ovl2.d b/ld/testsuite/ld-spu/ovl2.d
index b1e344c456a..b8570c069d1 100644
--- a/ld/testsuite/ld-spu/ovl2.d
+++ b/ld/testsuite/ld-spu/ovl2.d
@@ -1,6 +1,6 @@
#source: ovl2.s
#ld: -N -T ovl2.lnk -T ovl.lnk --emit-relocs
-#objdump: -D -r
+#objdump: -D -r -j.text -j.ov_a1 -j.ov_a2 -j.data -j.toe -j.nonalloc -j.note.spu_name
.*elf32-spu