commit | 5c6ba3eb247da1a444d8b09ac474e6326598c6d3 | [log] [tgz] |
---|---|---|
author | Sam Clegg <sbc@chromium.org> | Fri Jan 19 21:45:30 2024 -0800 |
committer | Copybara-Service <copybara-worker@google.com> | Fri Jan 19 21:51:31 2024 -0800 |
tree | 421ea7f4e0bd87247b2dc94a7cec1abfe2741894 | |
parent | 5d08a946653cbbd5a7f9b2d19920bea798cb6111 [diff] |
[lld][WebAssembly] Fix regression in function signature checking (#78831) Followup to #78658, which caused a regression in emscripten. When a lazy symbol is added, which resolved and existing undefined symbol, we don't need/want to replace the undefined symbol with the lazy one. Instead we called extract, which replaces the undefined symbol with the defined one. The fact that we were first replacing the undefined symbol with a lazy one before extracting the archive member doesn't normally matter but, in the case of the function symbol, replacing the undefined symbol with a lazy symbol means that `addDefinedFunction` sees the existing symbol as lazy and simply replaces it. Note that this is consistent with both the ELF code in `Symbol::resolve(const LazySymbol &other)` and the wasm code prior to #78658, neither of which replace the existing symbol with the lazy one in this case. GitOrigin-RevId: 58d5a486ec641156dcf420d67e075dc0a766fc5e
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
.