From d85502cffa5e41db6f2f2e1ba11d4285918dccdb Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sat, 17 Feb 2018 14:54:16 -0800 Subject: ld-elf/ehdr_start: Pass --build-id to ld ld-elf/ehdr_start fails with -z separate-code. Since there is no data LOAD segment before code LOAD segment: There are 2 program headers, starting at offset 64 Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align LOAD 0x200000 0x0000000000600000 0x0000000000600000 0x000010 0x000010 R E 0x200000 LOAD 0x400000 0x0000000000800000 0x0000000000800000 0x000008 0x000008 R 0x200000 Section to Segment mapping: Segment Sections... 00 .text 01 .rodata the program header isn't included in any LOAD segment. As the result, reference to __ehdr_start is resolved to zero. Pass --build-id to ld to add a data LOAD segment before code LOAD segment to put the program header in the data LOAD segment. PR ld/22845 * testsuite/ld-elf/ehdr_start.d: Pass --build-id to ld. --- ld/ChangeLog | 5 +++++ ld/testsuite/ld-elf/ehdr_start.d | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'ld') diff --git a/ld/ChangeLog b/ld/ChangeLog index 811741f..2f022ec 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,6 +1,11 @@ 2018-02-17 H.J. Lu PR ld/22845 + * testsuite/ld-elf/ehdr_start.d: Pass --build-id to ld. + +2018-02-17 H.J. Lu + + PR ld/22845 * testsuite/ld-elf/binutils.exp (tls_opts): Add tests for "-z noseparate-code" and "-z separate-code". diff --git a/ld/testsuite/ld-elf/ehdr_start.d b/ld/testsuite/ld-elf/ehdr_start.d index d538b66..14a85d0 100644 --- a/ld/testsuite/ld-elf/ehdr_start.d +++ b/ld/testsuite/ld-elf/ehdr_start.d @@ -1,5 +1,5 @@ #source: ehdr_start.s -#ld: -e _start +#ld: -e _start --build-id #nm: -n #target: *-*-linux* *-*-gnu* *-*-nacl* #xfail: frv-*-* -- cgit v1.1