llvm-project/lld
Sam Clegg 875ee937ae [lld][WebAssembly] Handle TLS symbols in older object file
In older versions of llvm (e.g. llvm 13), symbols were not individually
flagged as TLS.  In this case, the indent was to implicitly mark any
symbols defined in TLS segments as TLS.  However, we were not performing
this implicit conversion if the segment was explicitly marked as TLS

As it happens, llvm 13 was branched between the addition of the segment
flag and the addition of the symbol flag. See:

- segment flag added: https://reviews.llvm.org/D102202
- symbol flag added: https://reviews.llvm.org/D109426

Testing this is tricky because the assembler will imply the TLS status
of the symbol based on the segment its declared in, so we are forced to
use a yaml file here.

Fixes: https://github.com/emscripten-core/emscripten/issues/15891

Differential Revision: https://reviews.llvm.org/D118414
2022-01-27 17:27:09 -08:00
..
COFF Revert "Rename llvm::array_lengthof into llvm::size to match std::size from C++17" 2022-01-26 16:55:53 +01:00
Common Re-land [LLD] Remove global state in lldCommon 2022-01-20 14:53:26 -05:00
ELF [ELF] Parallelize computeIsPreemptible 2022-01-26 23:45:04 -08:00
MachO [lld-macho] Move order file and call graph sorting into SectionPriorities 2022-01-25 12:18:15 -05:00
MinGW Re-land [LLD] Remove global state in lldCommon 2022-01-20 14:53:26 -05:00
cmake/modules [CMake] Factor out config prefix finding logic 2022-01-07 20:16:18 +00:00
docs [ELF] Update help messages to prefer canonical name for some long options 2022-01-06 00:43:46 -08:00
include/lld Re-land [LLD] Remove global state in lldCommon 2022-01-20 14:53:26 -05:00
test [lld][WebAssembly] Handle TLS symbols in older object file 2022-01-27 17:27:09 -08:00
tools/lld Re-land [LLD] Remove global state in lldCommon 2022-01-20 14:53:26 -05:00
utils
wasm [lld][WebAssembly] Handle TLS symbols in older object file 2022-01-27 17:27:09 -08: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 [cmake] Make include(GNUInstallDirs) always below project(..) 2022-01-20 18:59:17 +00:00
CODE_OWNERS.TXT Add code owners of new MachO port 2020-09-02 19:32:12 -07:00
LICENSE.TXT
README.md [doc] Place sha256 in lld/README.md into backticks 2021-01-12 10:19:40 -08:00

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.