llvm-capstone/lld
Fangrui Song 5d3b3188f7 Reland D61583 [ELF] Error on relocations to STT_SECTION symbols if the sections were discarded
This is implemented by creating Undefined (instead of Defined) for such
local STT_SECTION symbols. It allows us to catch errors when there are
relocations to such discarded sections (e.g. in PR41693, ld.bfd and gold
error but we don't). Updated comdat-discarded-error.s checks we emit
friendly error message.

For relocatable-eh-frame.s, ld.lld -r a.o a.o will now error
"STT_SECTION symbol should be defined" because the section .eh_frame
refers to is now an Undefined instead of a Defined.
So I have to change `error()` to `warn()` to retain the output.

rLLD361144 inadvertently enabled the error for --gdb-index
(in LLDDwarfObj<ELFT>::findAux()).

Relocations from .debug_info (not in comdat) to .text.* (in comdat) for
DW_AT_low_pc are common. If an .text.* was discarded, rLLD361144 would error,
which was unexpected. (Note, if we don't error as this patch does,
InputSection::relocateNonAlloc() will resolve such relocations).

llvm-svn: 361830
2019-05-28 14:34:28 +00:00
..
cmake/modules
COFF [COFF] De-virtualize Chunk and SectionChunk 2019-05-24 20:25:40 +00:00
Common Fail early if an output file is not writable 2019-03-11 16:30:55 +00:00
docs Add release note entries for recent typo correction changes 2019-05-28 14:04:48 +00:00
ELF Reland D61583 [ELF] Error on relocations to STT_SECTION symbols if the sections were discarded 2019-05-28 14:34:28 +00:00
include/lld [WebAssebmly] Add support for --wrap 2019-05-24 14:14:25 +00:00
lib Use llvm::stable_sort 2019-04-23 02:42:06 +00:00
MinGW [MinGW] Set the right updated option help for the updated pdb option. NFC 2019-05-18 04:20:31 +00:00
test Reland D61583 [ELF] Error on relocations to STT_SECTION symbols if the sections were discarded 2019-05-28 14:34:28 +00:00
tools/lld
unittests
utils Python 2/3 compatibility 2019-03-20 07:42:13 +00:00
wasm [WebAssembly] Relax signature checking for undefined functions that are not called directly 2019-05-24 22:45:08 +00:00
.arcconfig
.clang-format
.gitignore
CMakeLists.txt
CODE_OWNERS.TXT
LICENSE.TXT
README.md

LLVM Linker (lld)

This directory and its subdirectories contain source code for the LLVM Linker, a modular cross platform linker which is built as part of the LLVM compiler infrastructure project.

lld is open source software. You may freely distribute it under the terms of the license agreement found in LICENSE.txt.

Benchmarking

In order to make sure various developers can evaluate patches over the same tests, we create a collection of self contained programs.

It is hosted at https://s3-us-west-2.amazonaws.com/linker-tests/lld-speed-test.tar.xz

The current sha256 is 10eec685463d5a8bbf08d77f4ca96282161d396c65bd97dc99dbde644a31610f.