summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Clegg <sbc@chromium.org>2018-04-25 18:24:08 +0000
committerSam Clegg <sbc@chromium.org>2018-04-25 18:24:08 +0000
commit9067b46e1b6d6331a90a1b9875bbf3fbd82a15ac (patch)
treef35c6d0fff808bd72bae4be75102bb8de3bb316b
parent4264a3891657400913b1b8b59cb37157d9412619 (diff)
downloadbcm5719-llvm-9067b46e1b6d6331a90a1b9875bbf3fbd82a15ac.tar.gz
bcm5719-llvm-9067b46e1b6d6331a90a1b9875bbf3fbd82a15ac.zip
[WebAssebmly] Add Module name to WasmSymbol
Imports in a wasm module can have custom module name. This change adds the module name to the WasmSymbol structure so that the linker can preserve this module name. This is needed to fix: https://bugs.llvm.org/show_bug.cgi?id=37168 Differential Revision: https://reviews.llvm.org/D45797 llvm-svn: 330854
-rw-r--r--llvm/include/llvm/BinaryFormat/Wasm.h1
-rw-r--r--llvm/lib/Object/WasmObjectFile.cpp1
2 files changed, 2 insertions, 0 deletions
diff --git a/llvm/include/llvm/BinaryFormat/Wasm.h b/llvm/include/llvm/BinaryFormat/Wasm.h
index 700bcd8ca41..dc28a3ccbfb 100644
--- a/llvm/include/llvm/BinaryFormat/Wasm.h
+++ b/llvm/include/llvm/BinaryFormat/Wasm.h
@@ -145,6 +145,7 @@ struct WasmSymbolInfo {
StringRef Name;
uint8_t Kind;
uint32_t Flags;
+ StringRef Module; // For undefined symbols the module name of the import
union {
// For function or global symbols, the index in function or global index
// space.
diff --git a/llvm/lib/Object/WasmObjectFile.cpp b/llvm/lib/Object/WasmObjectFile.cpp
index 6eb0d05dfad..3e8f73dbd81 100644
--- a/llvm/lib/Object/WasmObjectFile.cpp
+++ b/llvm/lib/Object/WasmObjectFile.cpp
@@ -412,6 +412,7 @@ Error WasmObjectFile::parseLinkingSectionSymtab(const uint8_t *&Ptr,
wasm::WasmImport &Import = *ImportedFunctions[Info.ElementIndex];
FunctionType = &Signatures[Import.SigIndex];
Info.Name = Import.Field;
+ Info.Module = Import.Module;
}
break;
OpenPOWER on IntegriCloud