mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-19 00:59:15 +08:00
LD/testsuite: Add 2**4 section alignment FILL script statement test
Complement commit ffe54b3798db ("Pad sections according to current script FILL.") and add a FILL script statement test for targets that impose the minimum alignment of more than 2**2 for the `.text' section. These targets include IA-64 targets, MIPS targets other than bare-metal ELF and VxWorks, TILE-Gx targets, TILEPro targets and X86-64 PE targets. Use the `notarget' tag for configuration triplets that are incompatible with the new test, but are supported by the existing FILL test, and `xfail' for ones that have issues due to section alignment or padding with both tests. Make a complementary change to the existing FILL test, removing the following test issues: arm-epoc-pe -FAIL: ld-scripts/fill mips-elf -XPASS: ld-scripts/fill mips-img-elf -XPASS: ld-scripts/fill mips-mti-elf -XPASS: ld-scripts/fill mips-sde-elf -XPASS: ld-scripts/fill mips-vxworks -XPASS: ld-scripts/fill mipsel-elf -XPASS: ld-scripts/fill mipsel-img-elf -XPASS: ld-scripts/fill mipsel-mti-elf -XPASS: ld-scripts/fill mipsel-vxworks -XPASS: ld-scripts/fill mipsisa32-elf -XPASS: ld-scripts/fill mipsisa32el-elf -XPASS: ld-scripts/fill mipsisa64-elf -XPASS: ld-scripts/fill mipsisa64el-elf -XPASS: ld-scripts/fill tilegx-linux -FAIL: ld-scripts/fill tilepro-elf -FAIL: ld-scripts/fill tx39-elf -XPASS: ld-scripts/fill ld/ * testsuite/ld-scripts/fill.d: Adjust `xfail' entries. Add `notarget' entries. Update comments. * testsuite/ld-scripts/fill16.d: New test. * testsuite/ld-scripts/fill16_0.s: New test source. * testsuite/ld-scripts/fill16_1.s: New test source. * testsuite/ld-scripts/fill16_2.s: New test source. * testsuite/ld-scripts/data.exp: Run the new test.
This commit is contained in:
10
ld/ChangeLog
10
ld/ChangeLog
@ -1,3 +1,13 @@
|
||||
2017-07-19 Maciej W. Rozycki <macro@imgtec.com>
|
||||
|
||||
* testsuite/ld-scripts/fill.d: Adjust `xfail' entries. Add
|
||||
`notarget' entries. Update comments.
|
||||
* testsuite/ld-scripts/fill16.d: New test.
|
||||
* testsuite/ld-scripts/fill16_0.s: New test source.
|
||||
* testsuite/ld-scripts/fill16_1.s: New test source.
|
||||
* testsuite/ld-scripts/fill16_2.s: New test source.
|
||||
* testsuite/ld-scripts/data.exp: Run the new test.
|
||||
|
||||
2017-07-19 Claudiu Zissulescu <claziss@synopsys.com>
|
||||
John Eric Martin <John.Martin@emmicro-us.com>
|
||||
|
||||
|
@ -29,3 +29,4 @@ if {[is_aout_format]} {
|
||||
|
||||
run_dump_test data
|
||||
run_dump_test fill
|
||||
run_dump_test fill16
|
||||
|
@ -3,20 +3,37 @@
|
||||
#source: fill_2.s
|
||||
#ld: -T fill.t
|
||||
#objdump: -s -j .text
|
||||
#xfail: ia64-*-* alpha-*-*ecoff m32c-*-* mips*-*-* sh-*-pe sparc*-*-coff
|
||||
#notarget: ia64-*-*
|
||||
#notarget: mips*-*-irix* mips*-*-linux* mips*-*-freebsd* mips*-*-gnu*
|
||||
#notarget: mips*-*-kfreebsd* mips*-*-netbsd* mips*-*-openbsd* mips*-*-sysv4*
|
||||
#notarget: tilegx*-*-*
|
||||
#notarget: tilepro-*-*
|
||||
#notarget: x86_64-*-cygwin x86_64-*-mingw* x86_64-*-pe*
|
||||
#xfail: alpha*-*-*ecoff
|
||||
#xfail: arm-epoc-pe
|
||||
#xfail: m32c-*-*
|
||||
#xfail: sh-*-pe
|
||||
#xfail: sparc*-*-coff
|
||||
#xfail: tic30-*-coff tic4x-*-* tic54x-*-*
|
||||
#xfail: x86_64-*-pe* x86_64-*-mingw* x86_64-*-cygwin z8k-*-*
|
||||
# Breaks on ia64 due to minimum alignment of code. The section alignment
|
||||
# could be increased to suit ia64 but then we'd break many coff targets
|
||||
# that don't support alignment other than 4 bytes.
|
||||
# alpha-linuxecoff always aligns code to 16 bytes.
|
||||
# m32c pads out code sections to 8 bytes.
|
||||
# mips aligns to 16 bytes
|
||||
#xfail: z8k-*-*
|
||||
#
|
||||
# See also fill16.d. We use `notarget' for configurations unsupported
|
||||
# here that are covered there, and `xfail' for configurations that work
|
||||
# in neither place. See below for details as to why individual
|
||||
# configurations are listed above.
|
||||
#
|
||||
# alpha-linuxecoff pads out code to 16 bytes.
|
||||
# arm-epoc-pe always pads out code to 512 bytes.
|
||||
# ia64 aligns code to minimum 16 bytes.
|
||||
# m32c pads out code sections with 4 NOPs (see `m32c_md_end').
|
||||
# mips aligns to minimum 16 bytes (except for bare-metal ELF and VxWorks).
|
||||
# sh-pe pads out code sections to 16 bytes
|
||||
# sparc-coff aligns to 8 bytes
|
||||
# tic30-coff aligns to 2 bytes
|
||||
# tic4x has 4 octet bytes
|
||||
# tic54x doesn't support .p2align
|
||||
# tilegx aligns code to minimum 8 bytes.
|
||||
# tilepro aligns code to minimum 8 bytes.
|
||||
# x86_64-pe aligns to 16 bytes
|
||||
# z8k-coff aligns to 2 bytes
|
||||
|
||||
|
43
ld/testsuite/ld-scripts/fill16.d
Normal file
43
ld/testsuite/ld-scripts/fill16.d
Normal file
@ -0,0 +1,43 @@
|
||||
#source: fill16_0.s
|
||||
#source: fill16_1.s
|
||||
#source: fill16_2.s
|
||||
#ld: -T fill.t
|
||||
#objdump: -s -j .text
|
||||
#notarget: arm-*-coff
|
||||
#notarget: i[3-7]86-*-coff
|
||||
#xfail: alpha*-*-*ecoff
|
||||
#xfail: arm-epoc-pe
|
||||
#xfail: m32c-*-*
|
||||
#xfail: sh-*-pe
|
||||
#xfail: sparc*-*-coff
|
||||
#xfail: tic30-*-coff tic4x-*-* tic54x-*-*
|
||||
#xfail: z8k-*-*
|
||||
#
|
||||
# See also fill.d. We use `notarget' for configurations unsupported
|
||||
# here that are covered there, and `xfail' for configurations that work
|
||||
# with neither place. See below for details as to why individual
|
||||
# configurations are listed above.
|
||||
#
|
||||
# alpha-linuxecoff pads out code to 16 bytes.
|
||||
# arm-epoc-pe always pads out code to 512 bytes.
|
||||
# arm-coff always aligns code to 4 bytes.
|
||||
# i386-coff always aligns code to 4 bytes.
|
||||
# m32c pads out code sections with 4 NOPs (see `m32c_md_end').
|
||||
# sh-pe pads out code sections to 16 bytes
|
||||
# sparc-coff aligns to 8 bytes
|
||||
# tic30-coff aligns to 2 bytes
|
||||
# tic4x has 4 octet bytes
|
||||
# tic54x doesn't support .p2align
|
||||
# z8k-coff aligns to 2 bytes
|
||||
|
||||
.*: file format .*
|
||||
|
||||
Contents of section .text:
|
||||
[0-9a-f]+ cafebabe cafebabe cafebabe cafebabe .*
|
||||
[0-9a-f]+ 01010101 01010101 01010101 01010101 .*
|
||||
[0-9a-f]+ 02020202 02020202 02020202 02020202 .*
|
||||
[0-9a-f]+ 12232323 23232323 23232323 23232323 .*
|
||||
[0-9a-f]+ 03030303 03030303 03030303 03030303 .*
|
||||
[0-9a-f]+ 00345600 00004567 000089ab (deadbeef|efbeadde) .*
|
||||
[0-9a-f]+ 00004567 000089ab 0000cdef 00004567 .*
|
||||
[0-9a-f]+ 000089ab 0000cdef 00000123 .*
|
6
ld/testsuite/ld-scripts/fill16_0.s
Normal file
6
ld/testsuite/ld-scripts/fill16_0.s
Normal file
@ -0,0 +1,6 @@
|
||||
.text
|
||||
.p2align 4, 0
|
||||
.byte 1,1,1,1
|
||||
.byte 1,1,1,1
|
||||
.byte 1,1,1,1
|
||||
.byte 1,1,1,1
|
6
ld/testsuite/ld-scripts/fill16_1.s
Normal file
6
ld/testsuite/ld-scripts/fill16_1.s
Normal file
@ -0,0 +1,6 @@
|
||||
.text
|
||||
.p2align 4, 0
|
||||
.byte 2,2,2,2
|
||||
.byte 2,2,2,2
|
||||
.byte 2,2,2,2
|
||||
.byte 2,2,2,2
|
6
ld/testsuite/ld-scripts/fill16_2.s
Normal file
6
ld/testsuite/ld-scripts/fill16_2.s
Normal file
@ -0,0 +1,6 @@
|
||||
.text
|
||||
.p2align 4, 0
|
||||
.byte 3,3,3,3
|
||||
.byte 3,3,3,3
|
||||
.byte 3,3,3,3
|
||||
.byte 3,3,3,3
|
Reference in New Issue
Block a user