| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 年前 | ||
[wasm-ld] Refactor WasmSym from static globals to per-link context (#134970) Towards #https://github.com/llvm/llvm-project/issues/134809#issuecomment-2787206873 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@gmail.com> | 1 年前 | |
| 8 个月前 | ||
[lld][WebAssembly] Use writePtrConst helper function (#166228) This is especially important for writing i32 values larger than 2gb which need to be encoded as negative SLEB vales in the binary. Without this change offsets over 2gb are wrongly encoded and cause validation errors. Fixes: https://github.com/emscripten-core/emscripten/issues/25706 | 8 个月前 | |
[lld][WebAssembly] Do not emit relocs against dead symbols (#129346) When emitting relocs with linked output (i.e. --emit-relocs) skip relocs against dead symbols (which do not appear in the output) and do not emit them. | 1 年前 | |
[lld][WebAssembly] Replace config-> with ctx.arg. Change the global variable reference to a member access of another variable ctx. In the future, we may pass through ctx to functions to eliminate global variables. Pull Request: https://github.com/llvm/llvm-project/pull/119835 | 1 年前 | |
[lld] Remove unused includes (NFC) (#141421) | 1 年前 | |
[lld][WebAssembly] Replace config-> with ctx.arg. Change the global variable reference to a member access of another variable ctx. In the future, we may pass through ctx to functions to eliminate global variables. Pull Request: https://github.com/llvm/llvm-project/pull/119835 | 1 年前 | |
[lld][WebAssembly] LTO: Use PIC reloc model with dynamic imports (#165342) | 9 个月前 | |
| 1 年前 | ||
[lld] Remove unused includes (NFC) (#141421) | 1 年前 | |
[lld][WebAssembly] Use C++17 nested namespace syntax in most places. NFC Like D131405, but for wasm-ld. Differential Revision: https://reviews.llvm.org/D145399 | 3 年前 | |
[wasm-ld] Refactor WasmSym from static globals to per-link context (#134970) Towards #https://github.com/llvm/llvm-project/issues/134809#issuecomment-2787206873 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@gmail.com> | 1 年前 | |
[lld][WebAssembly] Use C++17 nested namespace syntax in most places. NFC Like D131405, but for wasm-ld. Differential Revision: https://reviews.llvm.org/D145399 | 3 年前 | |
| 8 个月前 | ||
[lld] Remove unused includes (NFC) (#141421) | 1 年前 | |
[lld][WebAssembly] Do not emit relocs against dead symbols (#129346) When emitting relocs with linked output (i.e. --emit-relocs) skip relocs against dead symbols (which do not appear in the output) and do not emit them. | 1 年前 | |
[lld][WebAssembly] Use C++17 nested namespace syntax in most places. NFC Like D131405, but for wasm-ld. Differential Revision: https://reviews.llvm.org/D145399 | 3 年前 | |
[lld][WebAssembly] Move linker global state in to context object. NFC (#78629) See lld/ELF/Config.h | 2 年前 | |
[lld][WebAssembly] Fix non-pie dynamic-linking executable (#108146) The commit 22b7b84860d39da71964c9b329937f2ee1d875ba made the symbols provided by shared libraries "defined", and thus effectively made it impossible to generate non-pie dynamically linked executables using --unresolved-symbols=import-dynamic. This commit, based on https://github.com/llvm/llvm-project/pull/109249, fixes it by checking sym->isShared() explictly. (as a bonus, you don't need to rely on --unresolved-symbols=import-dynamic anymore.) Fixes https://github.com/llvm/llvm-project/issues/107387 | 1 年前 | |
[lld][WebAssembly] Use C++17 nested namespace syntax in most places. NFC Like D131405, but for wasm-ld. Differential Revision: https://reviews.llvm.org/D145399 | 3 年前 | |
| 1 年前 | ||
[lld][WebAssembly] Report undefined symbols in -shared/-pie builds (#75242) Previously we would ignore all undefined symbols when using -shared or -pie. All undefined symbols would be treated as imports regardless of whether those symbols we defined in any shared library. With this change we now track symbol in shared libraries and report undefined symbols in the main program by default. The old behavior is still available via the --unresolved-symbols=import-dynamic command line flag. This rationale for allowing this type of breaking change is that -pie and -shared are both still experimental will warn as such, unless --experimental-pic is passed. As part of this change the linker now models shared library symbols via new SharedFunctionSymbol and SharedDataSymbol types. I've also added a new --no-shlib-sigcheck option that bypassed the checking of functions signature in shared libraries. This is specifically required by emscripten the case where the imports/exports of shared libraries have been modified by via JS type legalization (this is only needed when targeting old JS engines where bigint is not yet available See https://github.com/emscripten-core/emscripten/issues/18198 | 2 年前 | |
[wasm-ld] Refactor WasmSym from static globals to per-link context (#134970) Towards #https://github.com/llvm/llvm-project/issues/134809#issuecomment-2787206873 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@gmail.com> | 1 年前 | |
[wasm-ld] Refactor WasmSym from static globals to per-link context (#134970) Towards #https://github.com/llvm/llvm-project/issues/134809#issuecomment-2787206873 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@gmail.com> | 1 年前 | |
[lld][WebAssembly] Use writePtrConst helper function (#166228) This is especially important for writing i32 values larger than 2gb which need to be encoded as negative SLEB vales in the binary. Without this change offsets over 2gb are wrongly encoded and cause validation errors. Fixes: https://github.com/emscripten-core/emscripten/issues/25706 | 8 个月前 | |
[lld][WebAssembly] Replace config-> with ctx.arg. Change the global variable reference to a member access of another variable ctx. In the future, we may pass through ctx to functions to eliminate global variables. Pull Request: https://github.com/llvm/llvm-project/pull/119835 | 1 年前 | |
[lld][WebAssembly] Fix check for implicitly exported mutable globals (#160966) This check is designed to avoid exporting mutable globals in the case when mutable globals are not available. However, it was being applied in all cases even when mutable globals was enabled. This error is particularly bad since mutable-globals have been enabled in default CPU for a while now, meaning that this condition should not be firing in the wild very often. | 10 个月前 | |
[lld][WebAssembly] Use C++17 nested namespace syntax in most places. NFC Like D131405, but for wasm-ld. Differential Revision: https://reviews.llvm.org/D145399 | 3 年前 | |
[lld] Remove unused local variables (NFC) (#138470) | 1 年前 | |
[WebAssembly] Second phase of implemented extended const proposal This change continues to lay the ground work for supporting extended const expressions in the linker. The included test covers object file reading and writing and the YAML representation. Differential Revision: https://reviews.llvm.org/D121349 | 4 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 年前 | ||
| 1 年前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 3 年前 | ||
| 1 年前 | ||
| 3 年前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 3 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 3 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 10 个月前 | ||
| 3 年前 | ||
| 1 年前 | ||
| 4 年前 |