[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
This commit is contained in:
Guanzhong Chen 2019-08-08 22:40:04 +00:00
parent 2689ed0f9d
commit c5ccbf52ad
1 changed files with 3 additions and 1 deletions

View File

@ -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");
}