Hi @tqchen @jroesch and others, I was working for embedding TVM Rust runtime for WASM target (see [here](https://github.com/leonwanghui/ms-backend-wasm/tree/master/wasm-backend-tvm) for the details), but came across some problems when building test-wasm32 crate.
## Error elaboration Firstly I need to clarify that I can build and run the [test-wasm32](https://github.com/apache/incubator-tvm/tree/master/rust/runtime/tests/test_wasm32) package successfully, but what I wanted is to build the `lib` rather than `bin` type of package, so I changed several lines in original `main.rs` and copy it to `lib.rs`: ```rust extern "C" { static __tvm_module_ctx: i32; } #[no_mangle] unsafe fn __get_tvm_module_ctx() -> i32 { // Refer a symbol in the libtest_wasm32.a to make sure that the link of the // library is not optimized out. __tvm_module_ctx } extern crate ndarray; #[macro_use] extern crate tvm_runtime; use ndarray::Array; use tvm_runtime::{DLTensor, Module as _, SystemLibModule}; #[no_mangle] pub extern "C" fn run() { // try static let mut a = Array::from_vec(vec![1f32, 2., 3., 4.]); let mut b = Array::from_vec(vec![1f32, 0., 1., 0.]); let mut c = Array::from_vec(vec![0f32; 4]); let e = Array::from_vec(vec![2f32, 2., 4., 4.]); let mut a_dl: DLTensor = (&mut a).into(); let mut b_dl: DLTensor = (&mut b).into(); let mut c_dl: DLTensor = (&mut c).into(); let syslib = SystemLibModule::default(); let add = syslib .get_function("default_function") .expect("main function not found"); call_packed!(add, &mut a_dl, &mut b_dl, &mut c_dl).unwrap(); println!("{:?}", c_dl.data); assert!(c.all_close(&e, 1e-8f32)); } ``` But when I tried to compile the library, some errors occurred: ``` undefined symbol: __tvm_module_ctx ``` I was guessing something required to modified when changing the type from `bin` to `lib`, but I have no idea what to do about it because of missing the context, would be appreciated it if anyone could take a look. --- [Visit Topic](https://discuss.tvm.ai/t/how-to-test-wasm32-target-on-rust-runtime-binding/6947/1) to respond. You are receiving this because you enabled mailing list mode. To unsubscribe from these emails, [click here](https://discuss.tvm.ai/email/unsubscribe/9c74a4a30df682e66d0752e36e6911e9a859b8bb50d99e9c8b9b96ba50d0eb45).