I have a project where some targets use std::simd (which requires rust nightly to build). Although I have written in scalar solutions for the wasm32-unknown-unknown target, macroquad itself fails to run under these conditions.
error: linking with `rust-lld` failed: exit status: 1
|
= note: "rust-lld" "-flavor" "wasm" "--export" "main" "--export" "CONTEXT" "--export" "allocate_vec_u8" "--export" "crate_version" "--export" "file_loaded" "--export" "focus" "--export" "frame" "--export" "key_down" "--export" "key_press" "--export" "key_up" "--export" "mouse_down" "--export" "mouse_move" "--export" "mouse_up" "--export" "mouse_wheel" "--export" "on_clipboard_paste" "--export" "on_file_dropped" "--export" "on_files_dropped_finish" "--export" "on_files_dropped_start" "--export" "raw_mouse_move" "--export" "resize" "--export" "touch" "--export" "macroquad_audio_crate_version" "--export" "__getrandom_custom" "--export" "quad_url_crate_version" "--export" "sapp_jsutils_crate_version" "-z" "stack-size=1048576" "--stack-first" "--no-demangle" "--no-entry" "<105 object files omitted>" "<sysroot>/lib/rustlib/wasm32-unknown-unknown/lib/libpanic_abort-*.rlib" "/home/illegitimate-egg/src/butt-gravity/target/wasm32-unknown-unknown/debug/deps/{libegui_macroquad-da21c70b19037e42,libegui_miniquad-3b759a3d051da6fc,libquad_url-0267aff896de8f89,libsapp_jsutils-efd322c4c57aa6ab,libgetrandom-ee02072bdd90eb54,libegui-a9c675487172f863,libbitflags-ab399b013cc6b631,libepaint-bc8110fb15b5ada4,libnohash_hasher-b5450c324c198995,libprofiling-9711a6dae74a09ba,libahash-44548d19441bc1ef,libonce_cell-35ffb9219bf1ab6c,libzerocopy-8507f86eab4be2c4,libepaint_default_fonts-b91bda4129437a45,libab_glyph-d297c5b5156ea35d,libowned_ttf_parser-3e46d8a0f031374e,libttf_parser-769eecb1343ec423,libab_glyph_rasterizer-4b5814986408a572,libparking_lot-8021c01699c43619,libparking_lot_core-0524dbe7672775ce,libsmallvec-b82fc91668f31c66,liblock_api-805b65884da984d3,libscopeguard-f313b1d335eda75f,libecolor-ec8f2793442de3d2,libemath-cd4fcde900c5d80b,libphysical_constants-c3b520c825e90a9c,libmacroquad-fcf63f0c4b25b502,libfontdue-54a0b78b4cf3b5ae,libhashbrown-cfcd5373c0524b00,libfoldhash-57230a33641b5342,libequivalent-08b71d04ab950f97,liballocator_api2-faa51543a8376a54,libttf_parser-22f6ca3d1cc0c582,libimage-2bbd44769c3fcc08,libbytemuck-52b8f31f1b9d0516,libcolor_quant-08956c2ff4caf814,libbyteorder-f18882460b00e527,libpng-7941a579ce01bcb7,libbitflags-4e732593f9f39ae0,libflate2-f1a6c62c4c0a911d,libminiz_oxide-69247a887c382bcd,libfdeflate-85784fe069819ddb,libsimd_adler32-12c116083dbad50d,libcrc32fast-e48aef906c4672db,libcfg_if-769ea1d819b8bd06,libnum_traits-ee4c8ab8e8452a20,libquad_rand-9754a596bee29ed9,libglam-34185939aef21f05,libquad_snd-7488d9ce8ca61757,libminiquad-12217de891e6e5c7}.rlib" "<sysroot>/lib/rustlib/wasm32-unknown-unknown/lib/{libstd-*,libdlmalloc-*,libcfg_if-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*,liblibc-*,librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "-L" "<sysroot>/lib/rustlib/wasm32-unknown-unknown/lib/self-contained" "-o" "/home/illegitimate-egg/src/butt-gravity/target/wasm32-unknown-unknown/debug/deps/butt_gravity-b77fcc440ebc7108.wasm" "--gc-sections" "-O0"
= note: some arguments are omitted. use `--verbose` to show all linker arguments
= note: rust-lld: error: /home/illegitimate-egg/src/butt-gravity/target/wasm32-unknown-unknown/debug/deps/butt_gravity-b77fcc440ebc7108.b5hj17ue0oab1eyadaw1tcung.0ih3wy9.rcgu.o: undefined symbol: init_webgl
rust-lld: error: /home/illegitimate-egg/src/butt-gravity/target/wasm32-unknown-unknown/debug/deps/butt_gravity-b77fcc440ebc7108.b5hj17ue0oab1eyadaw1tcung.0ih3wy9.rcgu.o: undefined symbol: setup_canvas_size
rust-lld: error: /home/illegitimate-egg/src/butt-gravity/target/wasm32-unknown-unknown/debug/deps/butt_gravity-b77fcc440ebc7108.b5hj17ue0oab1eyadaw1tcung.0ih3wy9.rcgu.o: undefined symbol: canvas_width
rust-lld: error: /home/illegitimate-egg/src/butt-gravity/target/wasm32-unknown-unknown/debug/deps/butt_gravity-b77fcc440ebc7108.b5hj17ue0oab1eyadaw1tcung.0ih3wy9.rcgu.o: undefined symbol: canvas_height
rust-lld: error: /home/illegitimate-egg/src/butt-gravity/target/wasm32-unknown-unknown/debug/deps/butt_gravity-b77fcc440ebc7108.b5hj17ue0oab1eyadaw1tcung.0ih3wy9.rcgu.o: undefined symbol: dpi_scale
rust-lld: error: /home/illegitimate-egg/src/butt-gravity/target/wasm32-unknown-unknown/debug/deps/butt_gravity-b77fcc440ebc7108.b5hj17ue0oab1eyadaw1tcung.0ih3wy9.rcgu.o: undefined symbol: run_animation_loop
rust-lld: error: /home/illegitimate-egg/src/butt-gravity/target/wasm32-unknown-unknown/debug/deps/butt_gravity-b77fcc440ebc7108.b5hj17ue0oab1eyadaw1tcung.0ih3wy9.rcgu.o: undefined symbol: console_log
rust-lld: error: /home/illegitimate-egg/src/butt-gravity/target/wasm32-unknown-unknown/debug/deps/libquad_url-0267aff896de8f89.rlib(quad_url-0267aff896de8f89.quad_url.7ec12d201f4b3bdb-cgu.0.rcgu.o): undefined symbol: quad_url_link_open
rust-lld: error: /home/illegitimate-egg/src/butt-gravity/target/wasm32-unknown-unknown/debug/deps/libsapp_jsutils-efd322c4c57aa6ab.rlib(sapp_jsutils-efd322c4c57aa6ab.sapp_jsutils.46b9d17e9b3050e5-cgu.0.rcgu.o): undefined symbol: js_free_object
rust-lld: error: /home/illegitimate-egg/src/butt-gravity/target/wasm32-unknown-unknown/debug/deps/libsapp_jsutils-efd322c4c57aa6ab.rlib(sapp_jsutils-efd322c4c57aa6ab.sapp_jsutils.46b9d17e9b3050e5-cgu.0.rcgu.o): undefined symbol: js_create_string
rust-lld: error: /home/illegitimate-egg/src/butt-gravity/target/wasm32-unknown-unknown/debug/deps/libmacroquad-fcf63f0c4b25b502.rlib(macroquad-fcf63f0c4b25b502.macroquad.cedfe871b91df2bf-cgu.04.rcgu.o): undefined symbol: glBindTexture
rust-lld: error: /home/illegitimate-egg/src/butt-gravity/target/wasm32-unknown-unknown/debug/deps/libmacroquad-fcf63f0c4b25b502.rlib(macroquad-fcf63f0c4b25b502.macroquad.cedfe871b91df2bf-cgu.04.rcgu.o): undefined symbol: glCopyTexImage2D
rust-lld: error: /home/illegitimate-egg/src/butt-gravity/target/wasm32-unknown-unknown/debug/deps/libmacroquad-fcf63f0c4b25b502.rlib(macroquad-fcf63f0c4b25b502.macroquad.cedfe871b91df2bf-cgu.08.rcgu.o): undefined symbol: glFlush
rust-lld: error: /home/illegitimate-egg/src/butt-gravity/target/wasm32-unknown-unknown/debug/deps/libmacroquad-fcf63f0c4b25b502.rlib(macroquad-fcf63f0c4b25b502.macroquad.cedfe871b91df2bf-cgu.08.rcgu.o): undefined symbol: glFinish
rust-lld: error: /home/illegitimate-egg/src/butt-gravity/target/wasm32-unknown-unknown/debug/deps/libquad_snd-7488d9ce8ca61757.rlib(quad_snd-7488d9ce8ca61757.quad_snd.428ac05f3b91b725-cgu.0.rcgu.o): undefined symbol: audio_init
rust-lld: error: /home/illegitimate-egg/src/butt-gravity/target/wasm32-unknown-unknown/debug/deps/libminiquad-12217de891e6e5c7.rlib(miniquad-12217de891e6e5c7.miniquad.87bb3e8b6433ea54-cgu.1.rcgu.o): undefined symbol: glGetUniformLocation
rust-lld: error: /home/illegitimate-egg/src/butt-gravity/target/wasm32-unknown-unknown/debug/deps/libminiquad-12217de891e6e5c7.rlib(miniquad-12217de891e6e5c7.miniquad.87bb3e8b6433ea54-cgu.1.rcgu.o): undefined symbol: glGetIntegerv
rust-lld: error: /home/illegitimate-egg/src/butt-gravity/target/wasm32-unknown-unknown/debug/deps/libminiquad-12217de891e6e5c7.rlib(miniquad-12217de891e6e5c7.miniquad.87bb3e8b6433ea54-cgu.1.rcgu.o): undefined symbol: glGenFramebuffers
rust-lld: error: /home/illegitimate-egg/src/butt-gravity/target/wasm32-unknown-unknown/debug/deps/libminiquad-12217de891e6e5c7.rlib(miniquad-12217de891e6e5c7.miniquad.87bb3e8b6433ea54-cgu.1.rcgu.o): undefined symbol: glBindFramebuffer
rust-lld: error: /home/illegitimate-egg/src/butt-gravity/target/wasm32-unknown-unknown/debug/deps/libminiquad-12217de891e6e5c7.rlib(miniquad-12217de891e6e5c7.miniquad.87bb3e8b6433ea54-cgu.1.rcgu.o): undefined symbol: glFramebufferTexture2D
rust-lld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors)
I have a project where some targets use std::simd (which requires rust nightly to build). Although I have written in scalar solutions for the wasm32-unknown-unknown target, macroquad itself fails to run under these conditions.
I get some nice linker errors which I've copied below: