Wasm32 support for Rust

2023-10-17 Thread Luca Castagnini
Hello,

I attach a diff to add Wasm32 toolchain target to the lang/rust port.

I have been developing (although at amateur level) for a while with Rust Wasm 
under OpenBSD and it seems OK.
The only caveats:
- link with clang from ports:
RUSTFLAGS="-C linker=/usr/local/bin/clang-13" wasm-pack build --target web --dev

- link wasm-pack with rust-ring from ports. To do the latter, I git clone 
wasm-pack and add to its Cargo.toml the following:
[patch.crates-io]
ring = { path = "/usr/local/share/ring-0.16.20" }

Cheers,
Luca



rust-wasm32.diff
Description: Binary data


Rust WebAssembly support

2022-09-07 Thread Luca Castagnini
Hi,

I was wondering if it would be possible to include in ports a package for Rust 
WebAssembly.
I made a first attempt at editing the current lang/rust/Makefile to produce an 
extra rust-wasm32 package. I am not too expert on makefiles and probably need a 
help to make it better.

So far the compilation seems to work under amd64 and I can compile a wasm test 
project with
RUSTFLAGS="-C linker=lld" cargo build --target wasm32-unknown-unknown

without the RUSTFLAGS variable I get a "rust-lld not found" error. 
linker=cflags works also. It could probably be solved by tuning rust's 
compilation config (under [target.wasm32-unknown-unknown]) but I haven't 
experimented much yet, I am a beginner at rust.

wasm-pack still gives me a segmentation fault, I will look at it next.

I attach the makefile, plist and descr.

Let me know if there is interest.

Ciao
Luca



Makefile
Description: Binary data
Provides WebAssembly toolchain (wasm32-unknown-unknown target)
lib/rustlib/
lib/rustlib/wasm32-unknown-unknown/
lib/rustlib/wasm32-unknown-unknown/lib/
lib/rustlib/wasm32-unknown-unknown/lib/libaddr2line-${LIBR_METADATA_WASM32_addr2line}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/libadler-${LIBR_METADATA_WASM32_adler}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/liballoc-${LIBR_METADATA_WASM32_alloc}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/libcfg_if-${LIBR_METADATA_WASM32_cfg_if}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/libcompiler_builtins-${LIBR_METADATA_WASM32_compiler_builtins}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/libcore-${LIBR_METADATA_WASM32_core}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/libdlmalloc-${LIBR_METADATA_WASM32_dlmalloc}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/libgetopts-${LIBR_METADATA_WASM32_getopts}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/libgimli-${LIBR_METADATA_WASM32_gimli}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/libhashbrown-${LIBR_METADATA_WASM32_hashbrown}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/liblibc-${LIBR_METADATA_WASM32_libc}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/libmemchr-${LIBR_METADATA_WASM32_memchr}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/libminiz_oxide-${LIBR_METADATA_WASM32_miniz_oxide}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/libobject-${LIBR_METADATA_WASM32_object}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/libpanic_abort-${LIBR_METADATA_WASM32_panic_abort}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/libpanic_unwind-${LIBR_METADATA_WASM32_panic_unwind}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/libproc_macro-${LIBR_METADATA_WASM32_proc_macro}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/librustc_demangle-${LIBR_METADATA_WASM32_rustc_demangle}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/librustc_std_workspace_alloc-${LIBR_METADATA_WASM32_rustc_std_workspace_alloc}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/librustc_std_workspace_core-${LIBR_METADATA_WASM32_rustc_std_workspace_core}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/librustc_std_workspace_std-${LIBR_METADATA_WASM32_rustc_std_workspace_std}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/libstd-${LIBR_METADATA_WASM32_std}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/libstd_detect-${LIBR_METADATA_WASM32_std_detect}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/libtest-${LIBR_METADATA_WASM32_test}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/libunicode_width-${LIBR_METADATA_WASM32_unicode_width}.rlib
lib/rustlib/wasm32-unknown-unknown/lib/libunwind-${LIBR_METADATA_WASM32_unwind}.rlib