summaryrefslogtreecommitdiffstats
path: root/lld/wasm/Writer.cpp
diff options
context:
space:
mode:
authorSam Clegg <sbc@chromium.org>2019-03-13 21:29:20 +0000
committerSam Clegg <sbc@chromium.org>2019-03-13 21:29:20 +0000
commita688a42cdda4a71e6e23d5acc47d85d47fa3b0e8 (patch)
tree6fe0d8bdf5835cf2eba8aa3c3dc11a092e565dc0 /lld/wasm/Writer.cpp
parentbb1aced80dd6b6044455f0e7b74c595b94122c06 (diff)
downloadbcm5719-llvm-a688a42cdda4a71e6e23d5acc47d85d47fa3b0e8.tar.gz
bcm5719-llvm-a688a42cdda4a71e6e23d5acc47d85d47fa3b0e8.zip
[WebAssembly] Improve support for "needed" list in dylink section
This change adds basic support for shared library dependencies via the dylink section. See https://github.com/WebAssembly/tool-conventions/pull/77 Differential Revision: https://reviews.llvm.org/D59237 llvm-svn: 356102
Diffstat (limited to 'lld/wasm/Writer.cpp')
-rw-r--r--lld/wasm/Writer.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/lld/wasm/Writer.cpp b/lld/wasm/Writer.cpp
index 12b526d3777..42affb4168a 100644
--- a/lld/wasm/Writer.cpp
+++ b/lld/wasm/Writer.cpp
@@ -28,6 +28,7 @@
#include "llvm/Support/Format.h"
#include "llvm/Support/FormatVariadic.h"
#include "llvm/Support/LEB128.h"
+#include "llvm/Support/Path.h"
#include <cstdarg>
#include <map>
@@ -502,7 +503,9 @@ void Writer::createDylinkSection() {
writeUleb128(OS, MemAlign, "MemAlign");
writeUleb128(OS, IndirectFunctions.size(), "TableSize");
writeUleb128(OS, 0, "TableAlign");
- writeUleb128(OS, 0, "Needed"); // TODO: Support "needed" shared libraries
+ writeUleb128(OS, Symtab->SharedFiles.size(), "Needed");
+ for (auto *SO : Symtab->SharedFiles)
+ writeStr(OS, llvm::sys::path::filename(SO->getName()), "so name");
}
// Create the custom "linking" section containing linker metadata.
OpenPOWER on IntegriCloud