Browse Source
Complement commit ffe54b3798 ("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.
gdb-8.1-branch
7 changed files with 97 additions and 8 deletions
@ -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 .* |
|||
@ -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 |
|||
@ -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 |
|||
@ -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 |
|||
Loading…
Reference in new issue