diff options
author | Nick Clifton <nickc@redhat.com> | 2016-02-15 11:11:46 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2016-02-15 11:11:46 +0000 |
commit | 9fb71ee49fc37163697e4f34e16097928eb83d66 (patch) | |
tree | 059842e2b43a163ceae1867632b98dc00014d133 /gas/testsuite | |
parent | 2b63aca39c2b0abbb410f7a5a60124ac5abf7438 (diff) | |
download | gdb-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.exp | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/elf/section10.d | 36 | ||||
-rw-r--r-- | gas/testsuite/gas/elf/section10.s | 35 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/ilp32/x86-64-unwind.d | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/rx/mvtacgu.d | 8 | ||||
-rw-r--r-- | gas/testsuite/gas/tic6x/scomm-directive-4.d | 4 |
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 |