https://bugs.llvm.org/show_bug.cgi?id=42933
Bug ID: 42933
Summary: LLD refuses to link discarded ELF PHDRs
Product: lld
Version: unspecified
Hardware: All
OS: Windows NT
Status: NEW
Severity: normal
Priority: P
Component: ELF
Assignee: unassignedb...@nondot.org
Reporter: f...@flametop.co.uk
CC: llvm-bugs@lists.llvm.org, peter.sm...@linaro.org
Created attachment 22359
--> https://bugs.llvm.org/attachment.cgi?id=22359&action=edit
Example linker script
The change:
https://reviews.llvm.org/rL311586
Petr Hosek, 2 years ago (August 23rd, 2017 7:44pm)
[ELF] Don't output headers into a segment if there's no space for them
Implemented the routine 'LinkerScript::allocateHeaders' and in its
documentation details a technique used to discard headers;
// When using the default layout, we check if the headers fit below the first
// allocated section. When using a linker script, we also check if the headers
// are covered by the output section. This allows omitting the headers by not
// leaving enough space for them in the linker script; this pattern is common
// in embedded systems.
We have an system that uses just such a technique via the attached linker
script.
Change:
https://reviews.llvm.org/rL326441
Rafael Espindola, a year ago (March 1st, 2018 3:25pm)
Don't allocate a header bellow address 0.
Appears to have intended to catch an underflow which could allocate the PHDRs
at a negative address. However, this change also catches the case of the
PHDRs being discarded from address zero as detailed in the technique above.
Attempting to link the attached simple test program with the attached 'user.ld'
linker script results in the error:
ld -nostdlib -T user.ld test.o
ld: error: could not allocate headers
Neither GNU LD or GOLD generate any error in this case.
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs