llvm-project/lld
Jez Ng d515575714 [lld-macho][reland] Add support for N_INDR symbols
This is similar to the `-alias` CLI option, but it gives finer-grained
control in that it allows the aliased symbols to be treated as private
externs.

While working on this, I realized that our `-alias` handling did not
cover the cases where the aliased symbol is a common or dylib symbol,
nor the case where we have an undefined that gets treated specially and
converted to a defined later on. My N_INDR handling neglects this too
for now; I've added checks and TODO messages for these.

`N_INDR` symbols cropped up as part of our attempt to link swift-stdlib.

Reviewed By: #lld-macho, thakis, thevinster

Differential Revision: https://reviews.llvm.org/D133825
2022-09-15 22:57:15 -04:00
..
COFF lld: Include name of output file in "failed to write output" diag 2022-09-14 14:57:47 -04:00
Common [lld] Change vector to SmallVector. NFC 2022-07-30 18:11:21 -07:00
ELF lld: Include name of output file in "failed to write output" diag 2022-09-14 14:57:47 -04:00
MachO [lld-macho][reland] Add support for N_INDR symbols 2022-09-15 22:57:15 -04:00
MinGW [LLD][MinGW] Add --[no-]guard-cf and --[no-]guard-longjmp 2022-09-09 09:55:40 +03:00
cmake/modules [CMake] Avoid `LLVM_BINARY_DIR` when other more specific variable are better-suited, part 2 2022-09-14 15:48:58 -04:00
docs [lld-macho][reland] Add support for N_INDR symbols 2022-09-15 22:57:15 -04:00
include/lld/Common [ELF] Add makeThreadLocal/makeThreadLocalN and remove InputFile::localSymStorage 2022-08-04 11:09:40 -07:00
test [lld-macho][reland] Add support for N_INDR symbols 2022-09-15 22:57:15 -04:00
tools/lld [LLD][ELF] Add FORCE_LLD_DIAGNOSTICS_CRASH to force LLD to crash 2022-07-05 09:43:09 +01:00
utils
wasm lld: Include name of output file in "failed to write output" diag 2022-09-14 14:57:47 -04:00
.clang-format
.clang-tidy NFC: .clang-tidy: Inherit configs from parents to improve maintainability 2021-06-08 08:25:59 -07:00
.gitignore
CMakeLists.txt Revert "[cmake] Use `CMAKE_INSTALL_LIBDIR` too" 2022-08-18 22:46:32 -04:00
CODE_OWNERS.TXT
LICENSE.TXT
README.md

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.