From 9067b46e1b6d6331a90a1b9875bbf3fbd82a15ac Mon Sep 17 00:00:00 2001 From: Sam Clegg Date: Wed, 25 Apr 2018 18:24:08 +0000 Subject: [PATCH] [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 --- llvm/include/llvm/BinaryFormat/Wasm.h | 1 + llvm/lib/Object/WasmObjectFile.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/llvm/include/llvm/BinaryFormat/Wasm.h b/llvm/include/llvm/BinaryFormat/Wasm.h index 700bcd8ca418..dc28a3ccbfbe 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 6eb0d05dfadd..3e8f73dbd810 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;