commit | 21ea9d30df0cc1315137a8ff3c2158766664e6a4 | [log] [tgz] |
---|---|---|
author | Fangrui Song <i@maskray.me> | Wed Apr 24 13:16:02 2024 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Wed Apr 24 13:21:03 2024 -0700 |
tree | d74c8522648471c52f6aeb80b01bc738e44fbc24 | |
parent | 297a18edd38527bc558c37cee2d596aa6fff1212 [diff] |
[MC] Rename temporary symbols of empty name to ".L0 " (#89693) Temporary symbols generated for .eh_frame and .debug_line have an empty name, which appear in .symtab in the presence of RISC-V style linker relaxation and will not be discarded by ld/objcopy --discard-locals (-X). In contrast, GNU assembler's riscv port assigns a fake name ".L0 " (with a trailing space) to these symbols so that will be discarded by ld/objcopy --discard-locals. This patch matches the GNU behavior. Since Clang's RISC-V targets pass -X to ld, and GNU ld defaults to -X for RISC-V targets, these ".L0 " symbols will be discarded after linking by default, as expected by users. The llvm-symbolizer special case for RISC-V `SF_FormatSpecific` symbols https://reviews.llvm.org/D98669 needs to be adjusted. Note: `"":` in assembly currently crashes. GitOrigin-RevId: 96c45a7fa12619c3abd6b81effe4c80f0916b78b
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
.