[ELF] Suppress "STT_SECTION symbol should be defined" on .eh_frame, .debug*, .zdebug...
authorFangrui Song <maskray@google.com>
Tue, 4 Jun 2019 13:41:29 +0000 (13:41 +0000)
committerFangrui Song <maskray@google.com>
Tue, 4 Jun 2019 13:41:29 +0000 (13:41 +0000)
commitdcba4828a9ead5f5b1fa27f0853823618075d0e0
tree6642d228aa73a83d3d3ecf51e0a548986b7bcfe7
parenta7f9f42d289525cf266674bde31716d24c39fee6
[ELF] Suppress "STT_SECTION symbol should be defined" on .eh_frame, .debug*, .zdebug* and .gcc_except_table

Summary:
With -r or --emit-relocs, we warn `STT_SECTION symbol should be defined`
on relocations to discarded section symbol. This was added as an error
in rLLD319404, but was not so effective before D61583 (it turned the
error to a warning).

Relocations from .eh_frame .debug* .zdebug* .gcc_except_table to
discarded .text are very common and somewhat expected. Don't warn/error
on them. As a reference, ld.bfd has a similar logic in
_bfd_elf_default_action_discarded() to allow these cases.

Delete invalid-undef-section-symbol.test because what it intended to
check is now covered by the updated comdat-discarded-reloc.s

Delete relocatable-eh-frame.s because we allow relocations from
.eh_frame as a special case now.

Reviewers: grimar, phosek, ruiu, espindola

Reviewed By: ruiu

Subscribers: emaste, arichardson, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D62840

llvm-svn: 362497
lld/ELF/InputSection.cpp
lld/test/ELF/Inputs/comdat-discarded-reloc.s
lld/test/ELF/comdat-discarded-reloc.s
lld/test/ELF/invalid-undef-section-symbol.test [deleted file]
lld/test/ELF/relocatable-eh-frame.s [deleted file]