diff options
| -rw-r--r-- | lld/wasm/Driver.cpp | 2 | ||||
| -rw-r--r-- | lld/wasm/Writer.cpp | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/lld/wasm/Driver.cpp b/lld/wasm/Driver.cpp index 5601cec882c..66329ac130c 100644 --- a/lld/wasm/Driver.cpp +++ b/lld/wasm/Driver.cpp @@ -257,6 +257,8 @@ void LinkerDriver::link(ArrayRef<const char *> ArgsArr) { Config->Sysroot = Args.getLastArgValue(OPT_sysroot); errorHandler().Verbose = Args.hasArg(OPT_verbose); ThreadsEnabled = Args.hasFlag(OPT_threads, OPT_no_threads, true); + if (Config->Relocatable) + Config->EmitRelocs = true; Config->InitialMemory = args::getInteger(Args, OPT_initial_memory, 0); Config->GlobalBase = args::getInteger(Args, OPT_global_base, 1024); diff --git a/lld/wasm/Writer.cpp b/lld/wasm/Writer.cpp index 309b10cabc4..ddaed5b250c 100644 --- a/lld/wasm/Writer.cpp +++ b/lld/wasm/Writer.cpp @@ -226,7 +226,7 @@ void Writer::createGlobalSection() { writeGlobal(OS, Global); } - if (Config->Relocatable || Config->EmitRelocs) { + if (Config->EmitRelocs) { for (ObjFile *File : Symtab->ObjectFiles) { uint32_t GlobalIndex = File->NumGlobalImports(); for (const WasmGlobal &Global : File->getWasmObj()->globals()) { @@ -539,7 +539,7 @@ void Writer::createSections() { createDataSection(); // Custom sections - if (Config->EmitRelocs || Config->Relocatable) + if (Config->EmitRelocs) createRelocSections(); createLinkingSection(); if (!Config->StripDebug && !Config->StripAll) @@ -565,7 +565,7 @@ void Writer::calculateOffsets() { NumFunctions += WasmFile->functions().size(); // Global Index - if (Config->Relocatable || Config->EmitRelocs) { + if (Config->EmitRelocs) { File->GlobalIndexOffset = GlobalImports.size() - File->NumGlobalImports() + NumGlobals; NumGlobals += WasmFile->globals().size(); |

