PR ld/21529: Use a linker script to limit output with the test case
authorMaciej W. Rozycki <macro@imgtec.com>
Fri, 14 Jul 2017 10:53:08 +0000 (11:53 +0100)
committerMaciej W. Rozycki <macro@imgtec.com>
Fri, 14 Jul 2017 10:53:08 +0000 (11:53 +0100)
Complement commit d9409498813c ("Add a testcase for PR ld/21529") and
use a linker script to prevent an inter-segment gap arranged by the
default linker script associated with some targets such as `rx-elf':

$ ld -e main -o tmpdir/dump-elf tmpdir/pr21529.o
$ readelf -l tmpdir/dump-elf
Elf file type is EXEC (Executable file)
Entry point 0x10000004
There are 2 program headers, starting at offset 52

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  LOAD           0x001000 0x10000000 0x10000000 0x00008 0x00008 R E 0x1000
  LOAD           0x001ffc 0xbffffffc 0xbffffffc 0x00004 0x00004 RW  0x1000

 Section to Segment mapping:
  Segment Sections...
   00     .text
   01     .stack
$

and converted to padding with the use of the binary BFD for output from
producing unreasonably large files.

ld/
* testsuite/ld-unique/pr21529.ld: New test linker script.
* testsuite/ld-unique/pr21529.d: Use it.

ld/ChangeLog
ld/testsuite/ld-unique/pr21529.d
ld/testsuite/ld-unique/pr21529.ld [new file with mode: 0644]

index c3219bf..425a46f 100644 (file)
@@ -1,3 +1,8 @@
+2016-07-14  Maciej W. Rozycki  <macro@imgtec.com>
+
+       * testsuite/ld-unique/pr21529.ld: New test linker script.
+       * testsuite/ld-unique/pr21529.d: Use it.
+
 2017-07-12  Alan Modra  <amodra@gmail.com>
 
        * po/bg.po: Update from translationproject.org/latest/ld/.
index 1bcd4fe..bc4763d 100644 (file)
@@ -1,4 +1,4 @@
-#ld: --oformat binary -e main
+#ld: --oformat binary -T pr21529.ld -e main
 #objdump: -s -b binary
 #xfail: aarch64*-*-* arm*-*-* hppa-*-* ia64-*-* nds32*-*-* score-*-*
 
diff --git a/ld/testsuite/ld-unique/pr21529.ld b/ld/testsuite/ld-unique/pr21529.ld
new file mode 100644 (file)
index 0000000..113e70b
--- /dev/null
@@ -0,0 +1,5 @@
+SECTIONS
+{
+  .text : { *(.text) }
+  /DISCARD/ : { *(*) }
+}