forked from OSchip/llvm-project
[ELF] Don't discard excluded section if -r is used
This conforms to GNU ld/gold behavior and fixes crash in case excluded section also has associated relocation section llvm-svn: 283214
This commit is contained in:
parent
40be15cfb0
commit
b90f3cf15b
|
@ -226,7 +226,7 @@ void elf::ObjectFile<ELFT>::initializeSections(
|
|||
if (Sections[I] == &InputSection<ELFT>::Discarded)
|
||||
continue;
|
||||
|
||||
if (Sec.sh_flags & SHF_EXCLUDE) {
|
||||
if (!Config->Relocatable && (Sec.sh_flags & SHF_EXCLUDE)) {
|
||||
Sections[I] = &InputSection<ELFT>::Discarded;
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -2,11 +2,18 @@
|
|||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
||||
# RUN: ld.lld -o %t1 %t
|
||||
# RUN: llvm-objdump -section-headers %t1 | FileCheck %s
|
||||
# RUN: ld.lld -r -o %t1 %t
|
||||
# RUN: llvm-objdump -section-headers %t1 | FileCheck --check-prefix=RELOCATABLE %s
|
||||
|
||||
# CHECK-NOT: .aaa
|
||||
# RELOCATABLE: .aaa
|
||||
|
||||
.globl _start
|
||||
_start:
|
||||
jmp _start
|
||||
|
||||
.section .aaa,"ae"
|
||||
.quad .bbb
|
||||
|
||||
.section .bbb,"a"
|
||||
.quad 0
|
||||
|
|
Loading…
Reference in New Issue