aboutsummaryrefslogtreecommitdiff
path: root/gas/testsuite
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2016-02-15 11:11:46 +0000
committerNick Clifton <nickc@redhat.com>2016-02-15 11:11:46 +0000
commit9fb71ee49fc37163697e4f34e16097928eb83d66 (patch)
tree059842e2b43a163ceae1867632b98dc00014d133 /gas/testsuite
parent2b63aca39c2b0abbb410f7a5a60124ac5abf7438 (diff)
downloadgdb-9fb71ee49fc37163697e4f34e16097928eb83d66.zip
gdb-9fb71ee49fc37163697e4f34e16097928eb83d66.tar.gz
gdb-9fb71ee49fc37163697e4f34e16097928eb83d66.tar.bz2
Enhance GAS's .section directive so that it can take numeric values for the flags and type fields. (ELF only)
gas * doc/as.texinfo (.section): Document that numeric values can now be used for the flags and type fields of the ELF target's .section directive. Add notes about the restrictions on setting flags and types. * config/obj-elf.c (obj_elf_change_section): Allow known sections to be given processor specific section types. Allow processor and application specific flags of a section to be set after definition. (obj_elf_parse_section_letters): Handle parsing numeric values. (obj_elf_section_type): Handle parsing numeric values. (obj_elf_section): Allow numeric type values. * config/obj-elf.h (obj_elf_change_section): Update prototype. * testsuite/gas/elf/section10.d: New test. * testsuite/gas/elf/section10.s: Source file for new test. * testsuite/gas/elf/elf.exp: Run the new test. * testsuite/gas/i386/ilp32/x86-64-unwind.d: Remove dependency upon the description of the flags produced by readelf. * testsuite/gas/tic6x/scomm-directive-4.d: Likewise. * NEWS: Mention the new feature. bfd * elf-bfd.h (struct bfd_elf_special_section): Use unsigned values for length and type fields. Use a signed value for the suffix_length field. binutils* readelf.c (get_section_type_name): Add hex prefix to offsets printed for LOPROC and LOOS values. Ensure that a result is always returned for the V850 target, even when an unrecognised processor specific value is encountered. (process_section_headers): Display key values in the order in which they appear to the user. Add the "C (compressed)" value to the list. ld * testsuite/ld-i386/pr12718.d: Remove dependency upon the description of the flags produced by readelf. * testsuite/ld-i386/pr12921.d: Likewise. * testsuite/ld-i386/tlsbin-nacl.rd: Likewise. * testsuite/ld-i386/tlsbin.rd: Likewise. * testsuite/ld-i386/tlsbindesc-nacl.rd: Likewise. * testsuite/ld-i386/tlsbindesc.rd: Likewise. * testsuite/ld-i386/tlsdesc-nacl.rd: Likewise. * testsuite/ld-i386/tlsdesc.rd: Likewise. * testsuite/ld-i386/tlsgdesc-nacl.rd: Likewise. * testsuite/ld-i386/tlsgdesc.rd: Likewise. * testsuite/ld-i386/tlsnopic-nacl.rd: Likewise. * testsuite/ld-i386/tlsnopic.rd: Likewise. * testsuite/ld-i386/tlspic-nacl.rd: Likewise. * testsuite/ld-i386/tlspic.rd: Likewise. * testsuite/ld-s390/tlsbin.rd: Likewise. * testsuite/ld-s390/tlsbin_64.rd: Likewise. * testsuite/ld-s390/tlspic.rd: Likewise. * testsuite/ld-s390/tlspic_64.rd: Likewise. * testsuite/ld-sh/tlsbin-2.d: Likewise. * testsuite/ld-sh/tlspic-2.d: Likewise. * testsuite/ld-tic6x/common.d: Likewise. * testsuite/ld-tic6x/shlib-1.rd: Likewise. * testsuite/ld-tic6x/shlib-1b.rd: Likewise. * testsuite/ld-tic6x/shlib-1r.rd: Likewise. * testsuite/ld-tic6x/shlib-1rb.rd: Likewise. * testsuite/ld-tic6x/shlib-app-1.rd: Likewise. * testsuite/ld-tic6x/shlib-app-1b.rd: Likewise. * testsuite/ld-tic6x/shlib-app-1r.rd: Likewise. * testsuite/ld-tic6x/shlib-app-1rb.rd: Likewise. * testsuite/ld-tic6x/shlib-noindex.rd: Likewise. * testsuite/ld-tic6x/static-app-1.rd: Likewise. * testsuite/ld-tic6x/static-app-1b.rd: Likewise. * testsuite/ld-tic6x/static-app-1r.rd: Likewise. * testsuite/ld-tic6x/static-app-1rb.rd: Likewise. * testsuite/ld-x86-64/ilp32-4-nacl.d: Likewise. * testsuite/ld-x86-64/ilp32-4.d: Likewise. * testsuite/ld-x86-64/pr12718.d: Likewise. * testsuite/ld-x86-64/pr12921.d: Likewise. * testsuite/ld-x86-64/split-by-file-nacl.rd: Likewise. * testsuite/ld-x86-64/split-by-file.rd: Likewise. * testsuite/ld-x86-64/tlsbin-nacl.rd: Likewise. * testsuite/ld-x86-64/tlsbin.rd: Likewise. * testsuite/ld-x86-64/tlsbindesc-nacl.rd: Likewise. * testsuite/ld-x86-64/tlsbindesc.rd: Likewise. * testsuite/ld-x86-64/tlsdesc-nacl.rd: Likewise. * testsuite/ld-x86-64/tlsdesc.rd: Likewise. * testsuite/ld-x86-64/tlsgdesc-nacl.rd: Likewise. * testsuite/ld-x86-64/tlsgdesc.rd: Likewise. * testsuite/ld-x86-64/tlspic-nacl.rd: Likewise. * testsuite/ld-x86-64/tlspic.rd: Likewise. * testsuite/ld-xtensa/tlsbin.rd: Likewise. * testsuite/ld-xtensa/tlspic.rd: Likewise.
Diffstat (limited to 'gas/testsuite')
-rw-r--r--gas/testsuite/gas/elf/elf.exp1
-rw-r--r--gas/testsuite/gas/elf/section10.d36
-rw-r--r--gas/testsuite/gas/elf/section10.s35
-rw-r--r--gas/testsuite/gas/i386/ilp32/x86-64-unwind.d3
-rw-r--r--gas/testsuite/gas/rx/mvtacgu.d8
-rw-r--r--gas/testsuite/gas/tic6x/scomm-directive-4.d4
6 files changed, 77 insertions, 10 deletions
diff --git a/gas/testsuite/gas/elf/elf.exp b/gas/testsuite/gas/elf/elf.exp
index 1c94016..40dfd12 100644
--- a/gas/testsuite/gas/elf/elf.exp
+++ b/gas/testsuite/gas/elf/elf.exp
@@ -201,6 +201,7 @@ if { [is_elf_format] } then {
run_dump_test "section7"
run_dump_test "section8"
run_dump_test "section9"
+ run_dump_test "section10"
run_dump_test "dwarf2-1"
run_dump_test "dwarf2-2"
run_dump_test "dwarf2-3"
diff --git a/gas/testsuite/gas/elf/section10.d b/gas/testsuite/gas/elf/section10.d
new file mode 100644
index 0000000..aa5ca3c
--- /dev/null
+++ b/gas/testsuite/gas/elf/section10.d
@@ -0,0 +1,36 @@
+#readelf: -N --wide
+#name: numeric section flags and types
+# The RX port annoyingly reorders the sections so that they do not match the sequence expected below.
+#skip: rx-*-*
+
+#...
+[ ]*\[.*\][ ]+.text
+[ ]*PROGBITS.*
+[ ]*\[.*4000006\]: ALLOC, EXEC, OS \(.*4000000\)
+#...
+[ ]*\[.*\][ ]+sec1
+[ ]*PROGBITS.*
+[ ]*\[.*6000000\]: OS \(.*6000000\)
+[ ]*\[.*\][ ]+sec2
+[ ]*PROGBITS.*
+[ ]*\[0+00806\]: ALLOC, EXEC, COMPRESSED
+[ ]*\[<unknown>: 0x[0-9]+\], .*
+#...
+[ ]*\[.*\][ ]+sec3
+[ ]*PROGBITS.*
+[ ]*\[.*ffff030\]: MERGE, STRINGS,.* EXCLUDE, OS \(.*ff00000\), PROC \(.*[347]0000000\), UNKNOWN \(0+0ff000\)
+#...
+[ ]*\[.*\][ ]+sec4
+[ ]*LOOS\+0x11[ ].*
+[ ]*\[0+06\]: ALLOC, EXEC
+#...
+[ ]*\[.*\][ ]+sec5
+[ ]*LOUSER\+0x9[ ].*
+[ ]*\[.*fff0000\]:.* EXCLUDE, OS \(.*ff00000\), PROC \(.*[347]0000000\), UNKNOWN \(.*f0000\)
+[ ]*\[.*\][ ]+.data.foo
+[ ]*LOUSER\+0x7f000000[ ].*
+[ ]*\[0+003\]: WRITE, ALLOC
+[ ]*\[.*\][ ]+sec6
+[ ]*0000162e: <unknown>[ ].*
+[ ]*\[.*120004\]: EXEC, OS \(.*100000\), UNKNOWN \(.*20000\)
+#pass
diff --git a/gas/testsuite/gas/elf/section10.s b/gas/testsuite/gas/elf/section10.s
new file mode 100644
index 0000000..0576007
--- /dev/null
+++ b/gas/testsuite/gas/elf/section10.s
@@ -0,0 +1,35 @@
+ # Test numeric values for the section's flags field.
+ .section sec1, "0x06000000"
+ .word 1
+
+ # Make sure that a numeric value can be mixed with alpha values.
+ .section sec2, "a2048x"
+ .word 2
+
+ # Make sure that specifying further arguments to .sections is still supported
+ .section sec3, "0xfffff000MS", %progbits, 32
+ .word 3
+
+ # Make sure that extra flags can be set for well known sections as well.
+ .section .text, "0x04000006"
+ .word 4
+
+ # Test numeric values for the section's type field.
+ .section sec4, "ax", %0x60000011
+ .word 5
+
+ # Test both together, with a quoted type value.
+ .section sec5, "0xffff0000", "0x80000009"
+ .word 6
+
+ # Test that declaring an extended version of a known special section works.
+ .section .data.foo, "aw", %0xff000000
+ .word 7
+
+ # Check that .pushsection works as well.
+ .pushsection sec6, 2, "0x120004", %5678
+ .word 8
+
+ .popsection
+
+ # FIXME: We ought to check setting 64-bit flag values for 64-bit ELF targets...
diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-unwind.d b/gas/testsuite/gas/i386/ilp32/x86-64-unwind.d
index 4f6f155..0bac7a2 100644
--- a/gas/testsuite/gas/i386/ilp32/x86-64-unwind.d
+++ b/gas/testsuite/gas/i386/ilp32/x86-64-unwind.d
@@ -15,7 +15,4 @@ Section Headers:
\[ 6\] .symtab SYMTAB 00000000 [0-9a-f]+ 000050 10 7 5 4
\[ 7\] .strtab STRTAB 00000000 [0-9a-f]+ 000001 00 0 0 1
Key to Flags:
- W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\), l \(large\)
- I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
- O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
#pass
diff --git a/gas/testsuite/gas/rx/mvtacgu.d b/gas/testsuite/gas/rx/mvtacgu.d
index 96fe2ce..07053d0 100644
--- a/gas/testsuite/gas/rx/mvtacgu.d
+++ b/gas/testsuite/gas/rx/mvtacgu.d
@@ -6,7 +6,7 @@ dump\.o: file format .*
Disassembly of section \.text:
00000000 <\.text>:
- 0: fd 17 30 mvtacgu r0, a0
- 3: fd 17 3f mvtacgu r15, a0
- 6: fd 17 b0 mvtacgu r0, a1
- 9: fd 17 bf mvtacgu r15, a1
+ 0: fd 17 30 mvtacgu a0, r0
+ 3: fd 17 3f mvtacgu a0, r15
+ 6: fd 17 b0 mvtacgu a1, r0
+ 9: fd 17 bf mvtacgu a1, r15
diff --git a/gas/testsuite/gas/tic6x/scomm-directive-4.d b/gas/testsuite/gas/tic6x/scomm-directive-4.d
index 18497ec..7822e8f 100644
--- a/gas/testsuite/gas/tic6x/scomm-directive-4.d
+++ b/gas/testsuite/gas/tic6x/scomm-directive-4.d
@@ -16,9 +16,7 @@ Section Headers:
\[ 6\] \.symtab SYMTAB 00000000 [0-9a-f]+ 0000d0 10 7 5 4
\[ 7\] \.strtab STRTAB 00000000 [0-9a-f]+ 00001d 00 0 0 1
Key to Flags:
- W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
- I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
- O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
+#...
Symbol table '\.symtab' contains 13 entries:
Num: Value Size Type Bind Vis Ndx Name