aboutsummaryrefslogtreecommitdiff
path: root/lld
diff options
context:
space:
mode:
authorGuanzhong Chen <gzchen@google.com>2019-08-08 22:40:04 +0000
committerGuanzhong Chen <gzchen@google.com>2019-08-08 22:40:04 +0000
commitc5ccbf52ad9343da6768a6390de71b13f948defc (patch)
tree388dbe908d95c0fed36952545ad9bc3ec86cbf64 /lld
parent2689ed0f9de6972cc7b858810c432f03605cc6e1 (diff)
downloadllvm-c5ccbf52ad9343da6768a6390de71b13f948defc.zip
llvm-c5ccbf52ad9343da6768a6390de71b13f948defc.tar.gz
llvm-c5ccbf52ad9343da6768a6390de71b13f948defc.tar.bz2
[WebAssembly][lld] control __data_end export with config->shared
Summary: Emscripten expects `__data_end` to show up in PIC code as long as it's not linked with `--shared`. Currently, Emscripten breaks with latest LLVM because `__data_end` is controlled by `config->isPic` instead of `config->shared`.` Reviewers: tlively, sbc100 Reviewed By: sbc100 Subscribers: dschuff, jgravelle-google, aheejin, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65980 llvm-svn: 368361
Diffstat (limited to 'lld')
-rw-r--r--lld/wasm/Driver.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/lld/wasm/Driver.cpp b/lld/wasm/Driver.cpp
index 6485a6d..3ea069d 100644
--- a/lld/wasm/Driver.cpp
+++ b/lld/wasm/Driver.cpp
@@ -527,8 +527,10 @@ static void createOptionalSymbols() {
if (!config->relocatable)
WasmSym::dsoHandle = symtab->addOptionalDataSymbol("__dso_handle");
- if (!config->isPic) {
+ if (!config->shared)
WasmSym::dataEnd = symtab->addOptionalDataSymbol("__data_end");
+
+ if (!config->isPic) {
WasmSym::globalBase = symtab->addOptionalDataSymbol("__global_base");
WasmSym::heapBase = symtab->addOptionalDataSymbol("__heap_base");
}