[PATCH] D90261: [lld][WebAssembly] Fix memory size in dylink section for -pie exectuables
Sam Clegg via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 27 16:06:10 PDT 2020
sbc100 updated this revision to Diff 301117.
sbc100 marked an inline comment as done.
sbc100 added a comment.
- feedback
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D90261/new/
https://reviews.llvm.org/D90261
Files:
lld/test/wasm/pie.ll
lld/wasm/Writer.cpp
Index: lld/wasm/Writer.cpp
===================================================================
--- lld/wasm/Writer.cpp
+++ lld/wasm/Writer.cpp
@@ -293,10 +293,10 @@
if (WasmSym::dataEnd)
WasmSym::dataEnd->setVirtualAddress(memoryPtr);
- log("mem: static data = " + Twine(memoryPtr - dataStart));
-
- if (config->shared) {
- out.dylinkSec->memSize = memoryPtr;
+ uint64_t staticDataSize = memoryPtr - dataStart;
+ log("mem: static data = " + Twine(staticDataSize));
+ if (config->isPic) {
+ out.dylinkSec->memSize = staticDataSize;
return;
}
@@ -323,7 +323,6 @@
Twine(maxMemorySetting));
memoryPtr = config->initialMemory;
}
- out.dylinkSec->memSize = memoryPtr;
out.memorySec->numMemoryPages =
alignTo(memoryPtr, WasmPageSize) / WasmPageSize;
log("mem: total pages = " + Twine(out.memorySec->numMemoryPages));
Index: lld/test/wasm/pie.ll
===================================================================
--- lld/test/wasm/pie.ll
+++ lld/test/wasm/pie.ll
@@ -1,5 +1,5 @@
; RUN: llc -relocation-model=pic -mattr=+mutable-globals -filetype=obj %s -o %t.o
-; RUN: wasm-ld --no-gc-sections --allow-undefined -pie -o %t.wasm %t.o
+; RUN: wasm-ld --no-gc-sections --allow-undefined --experimental-pic -pie -o %t.wasm %t.o
; RUN: obj2yaml %t.wasm | FileCheck %s
target triple = "wasm32-unknown-emscripten"
@@ -30,6 +30,15 @@
ret void
}
+; CHECK: Sections:
+; CHECK-NEXT: - Type: CUSTOM
+; CHECK-NEXT: Name: dylink
+; CHECK-NEXT: MemorySize: 16
+; CHECK-NEXT: MemoryAlignment: 2
+; CHECK-NEXT: TableSize: 1
+; CHECK-NEXT: TableAlignment: 0
+; CHECK-NEXT: Needed: []
+
; CHECK: - Type: IMPORT
; CHECK-NEXT: Imports:
; CHECK-NEXT: - Module: env
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D90261.301117.patch
Type: text/x-patch
Size: 1827 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201027/186a9184/attachment.bin>
More information about the llvm-commits
mailing list