diff options
author | Guanzhong Chen <gzchen@google.com> | 2019-08-08 22:40:04 +0000 |
---|---|---|
committer | Guanzhong Chen <gzchen@google.com> | 2019-08-08 22:40:04 +0000 |
commit | c5ccbf52ad9343da6768a6390de71b13f948defc (patch) | |
tree | 388dbe908d95c0fed36952545ad9bc3ec86cbf64 /lld | |
parent | 2689ed0f9de6972cc7b858810c432f03605cc6e1 (diff) | |
download | llvm-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.cpp | 4 |
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"); } |