forked from OSchip/llvm-project
[lld][WebAssembly] Honor --no-export-dynamic even with -shared
Differential Revision: https://reviews.llvm.org/D66359 llvm-svn: 369276
This commit is contained in:
parent
f497da3041
commit
e8e914e640
|
@ -0,0 +1,18 @@
|
|||
; RUN: llc -relocation-model=pic -filetype=obj %s -o %t.o
|
||||
|
||||
; By default all `default` symbols should be exported
|
||||
; RUN: wasm-ld -shared -o %t.wasm %t.o
|
||||
; RUN: obj2yaml %t.wasm | FileCheck %s -check-prefix=DEFAULT
|
||||
; DEFAULT: foo
|
||||
|
||||
; Verify that `--no-export-dynamic` works with `-shared`
|
||||
; RUN: wasm-ld -shared --no-export-dynamic -o %t2.wasm %t.o
|
||||
; RUN: obj2yaml %t2.wasm | FileCheck %s -check-prefix=NO-EXPORT
|
||||
; NO-EXPORT-NOT: foo
|
||||
|
||||
target triple = "wasm32-unknown-emscripten"
|
||||
|
||||
define default i32 @foo() {
|
||||
entry:
|
||||
ret i32 0
|
||||
}
|
|
@ -313,8 +313,6 @@ static void readConfigs(opt::InputArgList &args) {
|
|||
config->emitRelocs = args.hasArg(OPT_emit_relocs);
|
||||
config->entry = getEntry(args);
|
||||
config->exportAll = args.hasArg(OPT_export_all);
|
||||
config->exportDynamic = args.hasFlag(OPT_export_dynamic,
|
||||
OPT_no_export_dynamic, false);
|
||||
config->exportTable = args.hasArg(OPT_export_table);
|
||||
errorHandler().fatalWarnings =
|
||||
args.hasFlag(OPT_fatal_warnings, OPT_no_fatal_warnings, false);
|
||||
|
@ -358,6 +356,10 @@ static void readConfigs(opt::InputArgList &args) {
|
|||
config->zStackSize =
|
||||
args::getZOptionValue(args, OPT_z, "stack-size", WasmPageSize);
|
||||
|
||||
// Default value of exportDynamic depends on `-shared`
|
||||
config->exportDynamic =
|
||||
args.hasFlag(OPT_export_dynamic, OPT_no_export_dynamic, config->shared);
|
||||
|
||||
if (auto *arg = args.getLastArg(OPT_features)) {
|
||||
config->features =
|
||||
llvm::Optional<std::vector<std::string>>(std::vector<std::string>());
|
||||
|
@ -381,7 +383,6 @@ static void setConfigs() {
|
|||
|
||||
if (config->shared) {
|
||||
config->importMemory = true;
|
||||
config->exportDynamic = true;
|
||||
config->allowUndefined = true;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue