diff options
| author | Sam Clegg <sbc@chromium.org> | 2019-03-13 21:29:20 +0000 |
|---|---|---|
| committer | Sam Clegg <sbc@chromium.org> | 2019-03-13 21:29:20 +0000 |
| commit | a688a42cdda4a71e6e23d5acc47d85d47fa3b0e8 (patch) | |
| tree | 6fe0d8bdf5835cf2eba8aa3c3dc11a092e565dc0 /lld/wasm/Writer.cpp | |
| parent | bb1aced80dd6b6044455f0e7b74c595b94122c06 (diff) | |
| download | bcm5719-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.cpp | 5 |
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. |

