ld-elf/ehdr_start: Pass --build-id to ld
authorH.J. Lu <hjl.tools@gmail.com>
Sat, 17 Feb 2018 22:54:16 +0000 (14:54 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Sat, 17 Feb 2018 22:54:40 +0000 (14:54 -0800)
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
ld/testsuite/ld-elf/ehdr_start.d

index 811741f45ab8e8fb50d254567ffe02f3894fe240..2f022ec7a789279fb4263e9672c03d1b071e7a40 100644 (file)
@@ -1,3 +1,8 @@
+2018-02-17  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/22845
+       * testsuite/ld-elf/ehdr_start.d: Pass --build-id to ld.
+
 2018-02-17  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR ld/22845
index d538b66d9d399a7c86148043285651cf3c3c9163..14a85d03e78f5525b12fd9574fe47212912c0081 100644 (file)
@@ -1,5 +1,5 @@
 #source: ehdr_start.s
-#ld: -e _start
+#ld: -e _start --build-id
 #nm: -n
 #target: *-*-linux* *-*-gnu* *-*-nacl*
 #xfail: frv-*-*