[all-commits] [llvm/llvm-project] 0019b7: [wasm-ld] Refactor WasmSym from static globals to ...
Anutosh Bhat via All-commits
all-commits at lists.llvm.org
Sat May 10 13:02:20 PDT 2025
Branch: refs/heads/release/20.x
Home: https://github.com/llvm/llvm-project
Commit: 0019b7d0ae0bcc65af065542fcfb48ea0eb55d38
https://github.com/llvm/llvm-project/commit/0019b7d0ae0bcc65af065542fcfb48ea0eb55d38
Author: Anutosh Bhat <andersonbhat491 at gmail.com>
Date: 2025-05-10 (Sat, 10 May 2025)
Changed paths:
M lld/wasm/Config.h
M lld/wasm/Driver.cpp
M lld/wasm/InputChunks.cpp
M lld/wasm/MarkLive.cpp
M lld/wasm/OutputSections.cpp
M lld/wasm/Symbols.cpp
M lld/wasm/Symbols.h
M lld/wasm/SyntheticSections.cpp
M lld/wasm/Writer.cpp
Log Message:
-----------
[wasm-ld] Refactor WasmSym from static globals to per-link context (#134970)
Towards
This change moves WasmSym from a static global struct to an instance
owned by Ctx, allowing it to be reset cleanly between linker runs. This
enables safe support for multiple invocations of wasm-ld within the same
process
Changes done
- Converted WasmSym from a static struct to a regular struct with
instance members.
- Added a std::unique_ptr<WasmSym> wasmSym field inside Ctx.
- Reset wasmSym in Ctx::reset() to clear state between links.
- Replaced all WasmSym:: references with ctx.wasmSym->.
- Removed global symbol definitions from Symbols.cpp that are no longer
needed.
Clearing wasmSym in ctx.reset() ensures a clean slate for each link
invocation, preventing symbol leakage across runs—critical when using
wasm-ld/lld as a reentrant library where global state can cause subtle,
hard-to-debug errors.
---------
Co-authored-by: Vassil Vassilev <v.g.vassilev at gmail.com>
(cherry picked from commit 9cbbb74d370c09e13b8412f21dccb7d2c4afc6a4)
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list