Skip to content

module does not export a function named cabi_realloc #87

Closed
@greyltc

Description

@greyltc

Hi, I'm trying to build the examples here for the wasm32-wasip2 target. The cli-command example works fine, but the http-proxy example fails while linking with module does not export a function named 'cabi_realloc', see below.

Should I expect cargo build --release --example http-proxy --target wasm32-wasip2 to work?

[user@box tmp]$ git clone https://github.com/bytecodealliance/wasi.git
Cloning into 'wasi'...
remote: Enumerating objects: 679, done.
remote: Counting objects: 100% (279/279), done.
remote: Compressing objects: 100% (122/122), done.
remote: Total 679 (delta 167), reused 226 (delta 139), pack-reused 400
Receiving objects: 100% (679/679), 403.22 KiB | 1.88 MiB/s, done.
Resolving deltas: 100% (277/277), done.
[user@box tmp]$ cd wasi/
[user@box wasi]$ CARGO_HOME=cargocache cargo build --release --example cli-command --target wasm32-wasip2
    Updating crates.io index
  Downloaded wit-bindgen-rt v0.23.0
  Downloaded bitflags v2.5.0
  Downloaded 2 crates (47.0 KB) in 0.39s
   Compiling wit-bindgen-rt v0.23.0
   Compiling bitflags v2.5.0
   Compiling wasi v0.13.0+wasi-0.2.0 (/tmp/wasi)
    Finished `release` profile [optimized] target(s) in 3.17s
[user@box wasi]$ wasmtime target/wasm32-wasip2/release/examples/cli_command.wasm 
Hello, WASI![user@box wasi]$ CARGO_HOME=cargocache cargo build --release --example http-proxy --target wasm32-wasip2
   Compiling wasi v0.13.0+wasi-0.2.0 (/tmp/wasi)
error: linking with `wasm-component-ld` failed: exit status: 1
  |
  = note: LC_ALL="C" PATH="/usr/lib64/rustlib/x86_64-unknown-linux-gnu/bin:/usr/lib64/rustlib/x86_64-unknown-linux-gnu/bin/self-contained:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/opt/rocm/bin:/opt/thinlinc/bin" VSLANG="1033" "wasm-component-ld" "-flavor" "wasm" "--rsp-quoting=posix" "--export" "wasi:http/incoming-handler@0.2.0#handle" "-z" "stack-size=1048576" "--stack-first" "--allow-undefined" "--no-demangle" "/tmp/wasi/target/wasm32-wasip2/release/examples/http_proxy-a425eb9e94bd484a.http_proxy.3b0757da2dc923d8-cgu.0.rcgu.o" "/tmp/wasi/target/wasm32-wasip2/release/examples/http_proxy-a425eb9e94bd484a.18grhl5o9fgcjr5d.rcgu.o" "-L" "/tmp/wasi/target/wasm32-wasip2/release/deps" "-L" "/tmp/wasi/target/release/deps" "-L" "/tmp/wasi/cargocache/registry/src/index.crates.io-6f17d22bba15001f/wit-bindgen-rt-0.23.0/src" "-L" "/usr/lib64/rustlib/wasm32-wasip2/lib" "/tmp/wasi/target/wasm32-wasip2/release/deps/libwasi-e839c33fab6d70a2.rlib" "/tmp/wasi/target/wasm32-wasip2/release/deps/libwit_bindgen_rt-25abd45c1112fb45.rlib" "/tmp/wasi/target/wasm32-wasip2/release/deps/libbitflags-0532528c0b7f10d6.rlib" "/usr/lib64/rustlib/wasm32-wasip2/lib/libstd-f405c0a7d7d0fd1d.rlib" "/usr/lib64/rustlib/wasm32-wasip2/lib/libpanic_abort-e75ad6669edc5fb6.rlib" "/usr/lib64/rustlib/wasm32-wasip2/lib/libwasi-796730c34055a22d.rlib" "/usr/lib64/rustlib/wasm32-wasip2/lib/librustc_demangle-a938a99ac6cd4035.rlib" "/usr/lib64/rustlib/wasm32-wasip2/lib/libstd_detect-833b0d7ab4b617de.rlib" "/usr/lib64/rustlib/wasm32-wasip2/lib/libhashbrown-e4e034f12760e71c.rlib" "/usr/lib64/rustlib/wasm32-wasip2/lib/librustc_std_workspace_alloc-050c6ecc02afca0e.rlib" "/usr/lib64/rustlib/wasm32-wasip2/lib/libminiz_oxide-69d2df61022e5404.rlib" "/usr/lib64/rustlib/wasm32-wasip2/lib/libadler-0e6b36716feb6fc7.rlib" "/usr/lib64/rustlib/wasm32-wasip2/lib/libunwind-8a32ef503944b03f.rlib" "/usr/lib64/rustlib/wasm32-wasip2/lib/libcfg_if-2911d934b8235556.rlib" "/usr/lib64/rustlib/wasm32-wasip2/lib/liblibc-185bdaabfff9e17a.rlib" "-l" "c" "/usr/lib64/rustlib/wasm32-wasip2/lib/liballoc-9cbe34ea85261d1b.rlib" "/usr/lib64/rustlib/wasm32-wasip2/lib/librustc_std_workspace_core-1161e14aada579f0.rlib" "/usr/lib64/rustlib/wasm32-wasip2/lib/libcore-eb4dbd4b51791325.rlib" "/usr/lib64/rustlib/wasm32-wasip2/lib/libcompiler_builtins-ec362bee3c68a315.rlib" "-l" "wit_bindgen_cabi_realloc" "-L" "/usr/lib64/rustlib/wasm32-wasip2/lib" "-L" "/usr/lib64/rustlib/wasm32-wasip2/lib/self-contained" "-o" "/tmp/wasi/target/wasm32-wasip2/release/examples/http_proxy-a425eb9e94bd484a.wasm" "--gc-sections" "--no-entry" "-O3"
  = note: error: failed to encode component
          
          Caused by:
              0: module does not export a function named `cabi_realloc`
          

error: could not compile `wasi` (example "http-proxy") due to 1 previous error

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions