llvm-project/lld
Alvin Wong 0ce4f57052 [LLD][COFF] Reduce chance of symbol name collision with delay-load
Delay-loaded imports creats a load thunk with a symbol name. Before this
change, the name uses a `__imp_load_` prefix. On the other hand, normal
import uses the `__imp_` prefix for the import address pointer. If an
import symbol named `load_func` is imported normally and another named
`func` is imported using delay-load, this can cause a symbol name
collision.

This patch changes delay-load imports to use `__imp___load_` prefix.
Because it is less likely for normal imports to have a name starting in
`__load_` this should reduce the chance of a name collision.

Reviewed By: mstorsjo

Differential Revision: https://reviews.llvm.org/D134464
2022-10-03 10:58:45 +03:00
..
COFF [LLD][COFF] Reduce chance of symbol name collision with delay-load 2022-10-03 10:58:45 +03:00
Common [lld] Change vector to SmallVector. NFC 2022-07-30 18:11:21 -07:00
ELF [ELF] Replace some config->ekind with file->ekind. NFC 2022-10-02 21:27:41 -07:00
MachO [lld-macho] Do not error out on dead stripped duplicate symbols 2022-09-30 15:09:27 -07: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] Do not error out on dead stripped duplicate symbols 2022-09-30 15:09:27 -07:00
include/lld/Common [ELF] Add makeThreadLocal/makeThreadLocalN and remove InputFile::localSymStorage 2022-08-04 11:09:40 -07:00
test [LLD][COFF] Set OrdinalBase to 1 for export table 2022-10-03 10:58:44 +03: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] Don't include SetVector.h (NFC) 2022-09-17 13:36:15 -07: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.