如何获得wasm-ld以遵守wasm-import-module属性

问题描述 投票:0回答:1

我正在使用LLVMSharp *库构建编译器,并且它会针对wasm32-unknown-unknown发出LLVM .bc模块文件。我正在尝试通过使用{ "wasm-import-module"="wasi_unstable" }属性标记这些函数值从WASI接口将函数导入其中。 (这应该等效于clang对__attribute__((import_module(<module_name>)))所做的操作;请参见here)。但是,当我将生成的.bc文件传递给wasm-ld(已安装Windows 64位9.0.0版本)时,生成的.wasm模块仍然从"env"导入了这些功能,这是行不通的。

是否有一些选项可以传递给wasm-ld以使其正确处理wasm-import-module,还是我需要走另一条路线?

*特别是,我正在使用LLVMSharp 5.0.0,它是最新的稳定版本。 LLVMSharp 8.0.0可能支持构建.wasm模块,但没有针对该版本的NuGet版本,并且Beta NuGet存在一些妨碍我升级的问题。这就是为什么我要走wasm-ld路线。

llvm webassembly wasi
1个回答
0
投票

wasm-ld应该支持此属性。首先要检查的是您的目标文件。

您可以使用llvm-readobj --syms将符号转储到目标文件中。您应该在符号上看到ImportModule: foo,其中foo是您在属性中指定的模块名称。

我似乎支持在wasm-ld中获得的支持:https://reviews.llvm.org/D45796

我相信此更改将在llvm 8.0之前实现,因此您将达到llvm 8.0或更高版本。

© www.soinside.com 2019 - 2024. All rights reserved.