aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support
diff options
context:
space:
mode:
authorNathan Chancellor <nathan@kernel.org>2025-03-11 19:58:14 +0100
committerGitHub <noreply@github.com>2025-03-11 19:58:14 +0100
commit381599f1fe973afad3094e55ec99b1620dba7d8c (patch)
tree0b4c6e80fa67287ff1ae511ea65f91b8472a8ed4 /llvm/lib/Support
parent14176d10842dcb8697bc7bbce3a4e252d6f11986 (diff)
downloadllvm-381599f1fe973afad3094e55ec99b1620dba7d8c.zip
llvm-381599f1fe973afad3094e55ec99b1620dba7d8c.tar.gz
llvm-381599f1fe973afad3094e55ec99b1620dba7d8c.tar.bz2
[ELF] Allow KEEP within OVERLAY (#130661)
When attempting to add KEEP within an OVERLAY description, which the Linux kernel would like to do for ARCH=arm to avoid dropping the .vectors sections with '--gc-sections' [1], ld.lld errors with: ld.lld: error: ./arch/arm/kernel/vmlinux.lds:37: section pattern is expected >>> __vectors_lma = .; OVERLAY 0xffff0000 : AT(__vectors_lma) { .vectors { KEEP(*(.vectors)) } ... >>> ^ readOverlaySectionDescription() does not handle all input section description keywords, despite GNU ld's documentation stating that "The section definitions within the OVERLAY construct are identical to those within the general SECTIONS construct, except that no addresses and no memory regions may be defined for sections within an OVERLAY." Reuse the existing parsing in readInputSectionDescription(), which handles KEEP, allowing the Linux kernel's use case to work properly. [1]: https://lore.kernel.org/20250221125520.14035-1-ceggers@arri.de/
Diffstat (limited to 'llvm/lib/Support')
0 files changed, 0 insertions, 0 deletions