summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/wasm/Driver.cpp2
-rw-r--r--lld/wasm/Writer.cpp6
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();
OpenPOWER on IntegriCloud