commit | 58877f60ad6e933e923a1ba345b014454cc4e8d1 | [log] [tgz] |
---|---|---|
author | Jacek Caban <jacek@codeweavers.com> | Wed Jan 31 00:51:48 2024 +0100 |
committer | Copybara-Service <copybara-worker@google.com> | Tue Jan 30 16:07:11 2024 -0800 |
tree | 51f2ab8eec32af55a8b30234317e6bffd1b00c2e | |
parent | fd36f37ea73987848039cb985a34b059da50e800 [diff] |
[LLD][COFF] Align import directory chunk. (#80014) The loader can usually handle an unaligned import dir chunk, but It's not optimal and it's not what MSVC link.exe does. Windows refuses to load ARM64X binaries with unaligned import directory. aarch64 and arm64ec imports are shared in such binaries as much as possible. As long as they use the same set of functions from given import directory, both the directory and import addresses chunk are just shared. When used set of functions differs, ARM64X dynamic relocations are used to modify import dir to point to different names and import addresses for its EC view. I suspect that the loader expects some alignment on ARM64X dynamic relocation offset and may not be the case when relocated import dir is not aligned. GitOrigin-RevId: c8c3fe70ae09a48408ee15a256e52a4624e0291c
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
.