llvm/lld
Mitch Phillips 786c89fed3 [ELF][MTE] Add --android-memtag-* options to synthesize ELF notes
This ELF note is aarch64 and Android-specific. It specifies to the
dynamic loader that specific work should be scheduled to enable MTE
protection of stack and heap regions.

Current synthesis of the ".note.android.memtag" ELF note is done in the
Android build system. We'd like to move that to the compiler. This patch
adds the --memtag-stack, --memtag-heap, and --memtag-mode={async, sync,
none} flags to the linker, which synthesises the note for us.

Future changes will add -fsanitize=memtag* flags to clang which will
pass these through to lld.

Depends on D119381.

Differential Revision: https://reviews.llvm.org/D119384
2022-04-04 11:17:36 -07:00
..
cmake/modules
COFF [lld][COFF] Fix TypeServerSource lookup on GUID collisions 2022-04-02 10:09:07 +02:00
Common Cleanup codegen includes 2022-03-16 08:43:00 +01:00
docs [ELF] Default to --no-fortran-common 2022-03-30 09:12:09 -07:00
ELF [ELF][MTE] Add --android-memtag-* options to synthesize ELF notes 2022-04-04 11:17:36 -07:00
include/lld
MachO [lld/mac] Tweak a few comments 2022-04-01 19:32:07 -04:00
MinGW
test [ELF][MTE] Add --android-memtag-* options to synthesize ELF notes 2022-04-04 11:17:36 -07:00
tools/lld
utils
wasm [lld][WebAssembly] Fix crash accessing non-live __tls_base symbol 2022-03-17 13:59:45 -07:00
.clang-format
.clang-tidy
.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.