pub fn create_metadata_file_for_wasm(
sess: &Session,
data: &[u8],
section_name: &str,
) -> Vec<u8> ⓘExpand description
Creates a simple WebAssembly object file, which is itself a wasm module,
that contains a custom section of the name section_name with contents
data.
NB: the object crate does not yet have support for writing the wasm
object file format. In lieu of that the wasm-encoder crate is used to
build a wasm file by hand.
The wasm object file format is defined at
https://github.com/WebAssembly/tool-conventions/blob/main/Linking.md
and mainly consists of a linking custom section. In this case the custom
section there is empty except for a version marker indicating what format
it’s in.
The main purpose of this is to contain a custom section with section_name,
which is then appended after linking.
As a further detail the object needs to have a 64-bit memory if wasm64 is
the target or otherwise it’s interpreted as a 32-bit object which is
incompatible with 64-bit ones.