Open3

WasmLinux: 目指せWasmユーザーランド

okuokuokuoku

現状のWasmLinuxではLinuxカーネルのみがWebAssemblyになっていて、ユーザーランド側のバイナリはネイティブコードから直接syscallを呼んでいる。というわけで、ユーザーランド側もWebAssemblyで供給する方法を模索したい。

okuokuokuoku

TableとMemoryをimportにする

特に何も指定しない場合、 wasm-ld はtableやmemoryをexport側に置く。これだと都合が悪いのでimportにしておく。

  --import-memory         Import the module's memory from the default module of "env" with the name "memory".
  --import-table          Import function table from the environment

--import-memory--import-table オプションがある。 ただし、この方法でmemoryやtableをアプリ側で確保するように変更したとしても 初期データのinstantiateにオフセットが効かない ため、手動で実施する必要がある。

→ clangに -shared を渡せばOKだった。警告は出るけど。

wasm-ld: warning: creating shared libraries, with -shared, is not yet stable