[lld] [lld][WebAssembly] Allow linker-synthetic symbols to be undefined when building shared libraries (PR #128223)

Derek Schuff via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 24 12:36:11 PST 2025


================
@@ -986,18 +988,23 @@ static void createOptionalSymbols() {
 
   WasmSym::dsoHandle = symtab->addOptionalDataSymbol("__dso_handle");
 
-  if (!ctx.arg.shared)
-    WasmSym::dataEnd = symtab->addOptionalDataSymbol("__data_end");
-
-  if (!ctx.isPic) {
-    WasmSym::stackLow = symtab->addOptionalDataSymbol("__stack_low");
-    WasmSym::stackHigh = symtab->addOptionalDataSymbol("__stack_high");
-    WasmSym::globalBase = symtab->addOptionalDataSymbol("__global_base");
-    WasmSym::heapBase = symtab->addOptionalDataSymbol("__heap_base");
-    WasmSym::heapEnd = symtab->addOptionalDataSymbol("__heap_end");
-    WasmSym::definedMemoryBase = symtab->addOptionalDataSymbol("__memory_base");
-    WasmSym::definedTableBase = symtab->addOptionalDataSymbol("__table_base");
-  }
+  auto addDataLayoutSymbol = [&](StringRef s) -> DefinedData * {
+    // Data layout symbols are either defined by the lld, or (in the case
----------------
dschuff wrote:

```suggestion
    // Data layout symbols are either defined by lld, or (in the case
```

https://github.com/llvm/llvm-project/pull/128223


More information about the llvm-commits mailing list