This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] LD/testsuite: Add 2**4 section alignment FILL script statement test


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=62a5222fdab2acdc129b7c7d3713e7f349e26029

commit 62a5222fdab2acdc129b7c7d3713e7f349e26029
Author: Maciej W. Rozycki <macro@imgtec.com>
Date:   Wed Jul 19 13:11:59 2017 +0100

    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.

Diff:
---
 ld/ChangeLog                       | 10 +++++++++
 ld/testsuite/ld-scripts/data.exp   |  1 +
 ld/testsuite/ld-scripts/fill.d     | 33 ++++++++++++++++++++++-------
 ld/testsuite/ld-scripts/fill16.d   | 43 ++++++++++++++++++++++++++++++++++++++
 ld/testsuite/ld-scripts/fill16_0.s |  6 ++++++
 ld/testsuite/ld-scripts/fill16_1.s |  6 ++++++
 ld/testsuite/ld-scripts/fill16_2.s |  6 ++++++
 7 files changed, 97 insertions(+), 8 deletions(-)

diff --git a/ld/ChangeLog b/ld/ChangeLog
index 00eada7..534204d 100644
--- a/ld/ChangeLog
+++ b/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>
 
diff --git a/ld/testsuite/ld-scripts/data.exp b/ld/testsuite/ld-scripts/data.exp
index 1bae4c1..3d8f270 100644
--- a/ld/testsuite/ld-scripts/data.exp
+++ b/ld/testsuite/ld-scripts/data.exp
@@ -29,3 +29,4 @@ if {[is_aout_format]} {
 
 run_dump_test data
 run_dump_test fill
+run_dump_test fill16
diff --git a/ld/testsuite/ld-scripts/fill.d b/ld/testsuite/ld-scripts/fill.d
index 8dd789b..4e42c70 100644
--- a/ld/testsuite/ld-scripts/fill.d
+++ b/ld/testsuite/ld-scripts/fill.d
@@ -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
 
diff --git a/ld/testsuite/ld-scripts/fill16.d b/ld/testsuite/ld-scripts/fill16.d
new file mode 100644
index 0000000..d1e369c
--- /dev/null
+++ b/ld/testsuite/ld-scripts/fill16.d
@@ -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          .*
diff --git a/ld/testsuite/ld-scripts/fill16_0.s b/ld/testsuite/ld-scripts/fill16_0.s
new file mode 100644
index 0000000..2723728
--- /dev/null
+++ b/ld/testsuite/ld-scripts/fill16_0.s
@@ -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
diff --git a/ld/testsuite/ld-scripts/fill16_1.s b/ld/testsuite/ld-scripts/fill16_1.s
new file mode 100644
index 0000000..261ea7e
--- /dev/null
+++ b/ld/testsuite/ld-scripts/fill16_1.s
@@ -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
diff --git a/ld/testsuite/ld-scripts/fill16_2.s b/ld/testsuite/ld-scripts/fill16_2.s
new file mode 100644
index 0000000..1ddd145
--- /dev/null
+++ b/ld/testsuite/ld-scripts/fill16_2.s
@@ -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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]