commit | 8d3ee8a185cf46bca3c4334509b6730d4c907f2f | [log] [tgz] |
---|---|---|
author | Fangrui Song <i@maskray.me> | Thu Mar 14 09:51:27 2024 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Thu Mar 14 09:57:27 2024 -0700 |
tree | 339ace2d4b08fded0a8893f6b8282483fc47e427 | |
parent | b5f5aa94e8f716a7056f9509018bf7c20fea1104 [diff] |
[ELF] Eliminate symbols demoted due to /DISCARD/ discarded sections (#85167) #69295 demoted Defined symbols relative to discarded sections. If such a symbol is unreferenced, the desired behavior is to eliminate it from .symtab just like --gc-sections discarded definitions. Linux kernel's CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y configuration expects that the unreferenced `unused` is not emitted to .symtab (https://github.com/ClangBuiltLinux/linux/issues/2006). For relocations referencing demoted symbols, the symbol index restores to 0 like older lld (`R_X86_64_64 0` in `discard-section.s`). Fix #85048 GitOrigin-RevId: 8fe3e70e810b409dce36f6d415e86f0f9b1cf22d
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.
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
.