diff options
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 14 | ||||
-rw-r--r-- | ld/ldexp.c | 1 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/loadaddr1.d | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/loadaddr2.d | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/overlay.d | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/vxworks2.sd | 7 | ||||
-rw-r--r-- | ld/testsuite/ld-powerpc/vxworks2.sd | 5 | ||||
-rw-r--r-- | ld/testsuite/ld-spu/ovl.lnk | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-tic6x/dsbt-be.ld | 1 | ||||
-rw-r--r-- | ld/testsuite/ld-tic6x/dsbt-inrange.ld | 1 | ||||
-rw-r--r-- | ld/testsuite/ld-tic6x/dsbt-overflow.ld | 1 | ||||
-rw-r--r-- | ld/testsuite/ld-tic6x/dsbt.ld | 1 |
12 files changed, 19 insertions, 20 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 55efbbf..e0a6f72 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,19 @@ 2018-10-08 Alan Modra <amodra@gmail.com> + * ldexp.c (fold_name <SIZEOF_HEADERS>): Set link_info.load_phdrs. + * testsuite/ld-elf/loadaddr1.d: Pass -z noseparate-code. + * testsuite/ld-elf/loadaddr2.d: Likewise. + * testsuite/ld-i386/vxworks2.sd: Adjust expected output. + * testsuite/ld-powerpc/vxworks2.sd: Likewise. + * testsuite/ld-elf/overlay.d: Remove spu xfail. + * testsuite/ld-spu/ovl.lnk: Don't use SIZEOF_HEADERS. + * testsuite/ld-tic6x/dsbt-be.ld: Likewise. + * testsuite/ld-tic6x/dsbt-inrange.ld: Likewise. + * testsuite/ld-tic6x/dsbt-overflow.ld: Likewise. + * testsuite/ld-tic6x/dsbt.ld: Likewise. + +2018-10-08 Alan Modra <amodra@gmail.com> + * ldlang.c (insert_os_after): Clear ignore_first on assignment to dot, not any assignment. Clear ignore_first on output section statement contents too. @@ -692,6 +692,7 @@ fold_name (etree_type *tree) switch (tree->type.node_code) { case SIZEOF_HEADERS: + link_info.load_phdrs = 1; if (expld.phase != lang_first_phase_enum) { bfd_vma hdr_size = 0; diff --git a/ld/testsuite/ld-elf/loadaddr1.d b/ld/testsuite/ld-elf/loadaddr1.d index c4c5ed8..0e38b64 100644 --- a/ld/testsuite/ld-elf/loadaddr1.d +++ b/ld/testsuite/ld-elf/loadaddr1.d @@ -1,5 +1,5 @@ #source: loadaddr.s -#ld: -T loadaddr1.t -T loadaddr.t -z max-page-size=0x200000 +#ld: -T loadaddr1.t -T loadaddr.t -z max-page-size=0x200000 -z noseparate-code #readelf: -l --wide #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi diff --git a/ld/testsuite/ld-elf/loadaddr2.d b/ld/testsuite/ld-elf/loadaddr2.d index 577fb6a..5fbfa54 100644 --- a/ld/testsuite/ld-elf/loadaddr2.d +++ b/ld/testsuite/ld-elf/loadaddr2.d @@ -1,5 +1,5 @@ #source: loadaddr.s -#ld: -T loadaddr2.t -T loadaddr.t -z max-page-size=0x200000 +#ld: -T loadaddr2.t -T loadaddr.t -z max-page-size=0x200000 -z noseparate-code #readelf: -l --wide #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi diff --git a/ld/testsuite/ld-elf/overlay.d b/ld/testsuite/ld-elf/overlay.d index a258eda..00d25d5 100644 --- a/ld/testsuite/ld-elf/overlay.d +++ b/ld/testsuite/ld-elf/overlay.d @@ -1,7 +1,5 @@ # ld: -T overlay.t -u __load_start_text1 -u __load_start_text2 -u __load_stop_text1 -u __load_stop_text2 #readelf: -s -#xfail: spu-*-* -# The SPU adds its own LOAD segments, out of order, at the start of the program header table. #... [ ]+[0-9]+:[ ]+0*4000[ ]+0[ ]+NOTYPE[ ]+GLOBAL[ ]+DEFAULT[ ]+ABS __load_start_text1 diff --git a/ld/testsuite/ld-i386/vxworks2.sd b/ld/testsuite/ld-i386/vxworks2.sd index 4f56f2a..dc1a6e6 100644 --- a/ld/testsuite/ld-i386/vxworks2.sd +++ b/ld/testsuite/ld-i386/vxworks2.sd @@ -2,12 +2,7 @@ Elf file type is EXEC \(Executable file\) Entry point 0x80400 #... -Program Headers: - Type .* - PHDR .* -#... - LOAD .* 0x0007f000 0x0007f000 .* R E 0x1000 + LOAD .* 0x00080000 0x00080000 .* R E 0x1000 LOAD .* 0x00081000 0x00081000 .* RW 0x1000 DYNAMIC .* - #... diff --git a/ld/testsuite/ld-powerpc/vxworks2.sd b/ld/testsuite/ld-powerpc/vxworks2.sd index 2294cb6..04c678e 100644 --- a/ld/testsuite/ld-powerpc/vxworks2.sd +++ b/ld/testsuite/ld-powerpc/vxworks2.sd @@ -2,12 +2,7 @@ Elf file type is EXEC \(Executable file\) Entry point 0x80400 #... -Program Headers: - Type .* - PHDR .* -#... LOAD .* 0x00070000 0x00070000 .* R E 0x10000 LOAD .* 0x00090000 0x00090000 .* RW 0x10000 DYNAMIC .* - #... diff --git a/ld/testsuite/ld-spu/ovl.lnk b/ld/testsuite/ld-spu/ovl.lnk index 0015652..045f986 100644 --- a/ld/testsuite/ld-spu/ovl.lnk +++ b/ld/testsuite/ld-spu/ovl.lnk @@ -1,6 +1,6 @@ SECTIONS { - . = SIZEOF_HEADERS; + . = 0x100; .text : { *(.text) *(.stub) } .data : { *(.data) *(.ovtab) } .bss : { *(.bss) } diff --git a/ld/testsuite/ld-tic6x/dsbt-be.ld b/ld/testsuite/ld-tic6x/dsbt-be.ld index 40ba14c..b78d910 100644 --- a/ld/testsuite/ld-tic6x/dsbt-be.ld +++ b/ld/testsuite/ld-tic6x/dsbt-be.ld @@ -3,7 +3,6 @@ OUTPUT_FORMAT("elf32-tic6x-be", "elf32-tic6x-be", EXTERN (__c6xabi_DSBT_BASE); SECTIONS { - PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x0)); . = SEGMENT_START("text-segment", 0x0) + SIZEOF_HEADERS; . = 0x8000; .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } diff --git a/ld/testsuite/ld-tic6x/dsbt-inrange.ld b/ld/testsuite/ld-tic6x/dsbt-inrange.ld index 603f020..e5a2c87 100644 --- a/ld/testsuite/ld-tic6x/dsbt-inrange.ld +++ b/ld/testsuite/ld-tic6x/dsbt-inrange.ld @@ -1,7 +1,6 @@ EXTERN (__c6xabi_DSBT_BASE); SECTIONS { - PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x0)); . = SEGMENT_START("text-segment", 0x0) + SIZEOF_HEADERS; . = 0x8000; .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } diff --git a/ld/testsuite/ld-tic6x/dsbt-overflow.ld b/ld/testsuite/ld-tic6x/dsbt-overflow.ld index 3128a35..fecd865 100644 --- a/ld/testsuite/ld-tic6x/dsbt-overflow.ld +++ b/ld/testsuite/ld-tic6x/dsbt-overflow.ld @@ -1,7 +1,6 @@ EXTERN (__c6xabi_DSBT_BASE); SECTIONS { - PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x0)); . = SEGMENT_START("text-segment", 0x0) + SIZEOF_HEADERS; . = 0x8000; .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } diff --git a/ld/testsuite/ld-tic6x/dsbt.ld b/ld/testsuite/ld-tic6x/dsbt.ld index fdde8ba..83b93ff 100644 --- a/ld/testsuite/ld-tic6x/dsbt.ld +++ b/ld/testsuite/ld-tic6x/dsbt.ld @@ -3,7 +3,6 @@ OUTPUT_FORMAT("elf32-tic6x-le", "elf32-tic6x-le", EXTERN (__c6xabi_DSBT_BASE); SECTIONS { - PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x0)); . = SEGMENT_START("text-segment", 0x0) + SIZEOF_HEADERS; . = 0x8000; .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } |