commit | 8807cc54913ebd5fe546d7cda55d515a903f04c2 | [log] [tgz] |
---|---|---|
author | YunQiang Su <syq@debian.org> | Wed May 08 17:30:14 2024 +0800 |
committer | Copybara-Service <copybara-worker@google.com> | Wed May 08 02:36:48 2024 -0700 |
tree | bccf915eab397959eb573b9cb88fc20126ad828e | |
parent | 6f1e4a59f16cacaa368f04b8d5365326ab9a25c9 [diff] |
MIPS: Use pcrel|sdata4 for eh_frame (#91291) Gas uses encoding DW_EH_PE_absptr for PIC, and gnu ld converts it to DW_EH_PE_sdata4|DW_EH_PE_pcrel. LLD doesn't have this workarounding, thus complains ``` relocation R_MIPS_32 cannot be used against local symbol; recompile with -fPIC relocation R_MIPS_64 cannot be used against local symbol; recompile with -fPIC ``` So, let's generates asm/obj files with `DW_EH_PE_sdata4|DW_EH_PE_pcrel` encoding. In fact, GNU ld supports such OBJs well. For N64, maybe we should use sdata8, while GNU ld doesn't support it well, and in fact sdata4 is enough now. So we just ignore the `Large` for `MCObjectFileInfo::initELFMCObjectFileInfo`. Maybe we should switch back to sdata8 once GNU LD supports it well. Fixes: #58377. GitOrigin-RevId: 8f21294897befee48f9f72734ea1b0ad4c920aa0
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
.