aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog14
-rw-r--r--ld/ldexp.c1
-rw-r--r--ld/testsuite/ld-elf/loadaddr1.d2
-rw-r--r--ld/testsuite/ld-elf/loadaddr2.d2
-rw-r--r--ld/testsuite/ld-elf/overlay.d2
-rw-r--r--ld/testsuite/ld-i386/vxworks2.sd7
-rw-r--r--ld/testsuite/ld-powerpc/vxworks2.sd5
-rw-r--r--ld/testsuite/ld-spu/ovl.lnk2
-rw-r--r--ld/testsuite/ld-tic6x/dsbt-be.ld1
-rw-r--r--ld/testsuite/ld-tic6x/dsbt-inrange.ld1
-rw-r--r--ld/testsuite/ld-tic6x/dsbt-overflow.ld1
-rw-r--r--ld/testsuite/ld-tic6x/dsbt.ld1
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.
diff --git a/ld/ldexp.c b/ld/ldexp.c
index f6446dc..3ae86a2 100644
--- a/ld/ldexp.c
+++ b/ld/ldexp.c
@@ -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) }