forked from OSchip/llvm-project
[ELF] Allow discarding of .rela.plt
When linking the linux kernel on ppc64le ld.lld -EL -m elf64lppc -Bstatic --orphan-handling=warn --build-id -o .tmp_vmlinux1 -T ./arch/powerpc/kernel/vmlinux.lds --whole-archive built-in.a --no-whole-archive --start-group lib/lib.a --end-group ld.lld: error: discarding .rela.plt section is not allowed The linker script discards with the following matches *(.glink .iplt .plt .rela* .comment) Differential Revision: https://reviews.llvm.org/D54871 llvm-svn: 348258
This commit is contained in:
parent
7925d58eae
commit
15b6c453b8
|
@ -416,8 +416,7 @@ LinkerScript::computeInputSections(const InputSectionDescription *Cmd) {
|
|||
void LinkerScript::discard(ArrayRef<InputSection *> V) {
|
||||
for (InputSection *S : V) {
|
||||
if (S == In.ShStrTab || S == In.Dynamic || S == In.DynSymTab ||
|
||||
S == In.DynStrTab || S == In.RelaPlt || S == In.RelaDyn ||
|
||||
S == In.RelrDyn)
|
||||
S == In.DynStrTab || S == In.RelaDyn || S == In.RelrDyn)
|
||||
error("discarding " + S->Name + " section is not allowed");
|
||||
|
||||
// You can discard .hash and .gnu.hash sections by linker scripts. Since
|
||||
|
|
|
@ -22,11 +22,6 @@
|
|||
# RUN: FileCheck -check-prefix=DYNSTR %s
|
||||
# DYNSTR: discarding .dynstr section is not allowed
|
||||
|
||||
# RUN: echo "SECTIONS { /DISCARD/ : { *(.rela.plt) } }" > %t.script
|
||||
# RUN: not ld.lld -pie -o %t --script %t.script %t.o 2>&1 | \
|
||||
# RUN: FileCheck -check-prefix=RELAPLT %s
|
||||
# RELAPLT: discarding .rela.plt section is not allowed
|
||||
|
||||
# RUN: echo "SECTIONS { /DISCARD/ : { *(.rela.dyn) } }" > %t.script
|
||||
# RUN: not ld.lld -pie -o %t --script %t.script %t.o 2>&1 | \
|
||||
# RUN: FileCheck -check-prefix=RELADYN %s
|
||||
|
|
Loading…
Reference in New Issue