Closed ilp64 closed 4 years ago
Your C compiler is picking up headers for the native architecture, which can't possibly work. It appears that you either don't have a WASM-compatible C compiler, or the compiler doesn't have WASM-compatible system headers.
Note that macOS clang doesn't support WASM. You need to have a special compiler, like emscripten.
Are you able to compile libjpeg-turbo for WASM?
@khernyo Thanks for your replay!
I switched to linux and successfully compiled libjpeg-turbo following this issue.
But I still can't compile mozjpeg
, when run CC=emcc wasm-pack build
, I got following error:
[INFO]: Checking for the Wasm target...
info: downloading component 'rust-std' for 'wasm32-unknown-unknown'
info: installing component 'rust-std' for 'wasm32-unknown-unknown'
info: Defaulting to 500.0 MiB unpack ram
[INFO]: Compiling to Wasm...
Compiling libc v0.2.72
Compiling proc-macro2 v1.0.18
Compiling unicode-xid v0.2.1
Compiling wasm-bindgen-shared v0.2.64
Compiling log v0.4.8
Compiling syn v1.0.34
Compiling cfg-if v0.1.10
Compiling bumpalo v3.4.0
Compiling lazy_static v1.4.0
Compiling dunce v1.0.1
Compiling bytemuck v1.2.0
Compiling wasm-bindgen v0.2.64
Compiling arrayvec v0.5.1
Compiling rgb v0.8.20
Compiling jobserver v0.1.21
Compiling quote v1.0.7
Compiling cc v1.0.58
Compiling mozjpeg-sys v0.10.5
Compiling wasm-bindgen-backend v0.2.64
Compiling wasm-bindgen-macro-support v0.2.64
Compiling wasm-bindgen-macro v0.2.64
error[E0432]: unresolved import `libc::FILE`
--> /home/ma/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/mozjpeg-sys-0.10.5/src/lib.rs:7:9
|
7 | pub use libc::FILE;
| ^^^^^^^^^^ no `FILE` in the root
error: aborting due to previous error
For more information about this error, try `rustc --explain E0432`.
error: could not compile `mozjpeg-sys`.
To learn more, run the command again with --verbose.
Error: Compiling your crate to WebAssembly failed
Caused by: failed to execute `cargo build`: exited with exit code: 101
full command: "cargo" "build" "--lib" "--release" "--target" "wasm32-unknown-unknown"
I guess the libc
crate is incompatible with WASM, so it's impossible to compile mozjpeg
for WASM.
Thanks. I've hidden the FILE
in 808ade9d2a8070178efda17b5f79b02a5fdf81b7
Hi.
There are two FILE
usages left in mozjpeg-sys/src/lib.rs
.
733 pub fn jpeg_destroy_compress(cinfo: &mut jpeg_compress_struct);
734 pub fn jpeg_destroy_decompress(cinfo: &mut jpeg_decompress_struct);
735 pub fn jpeg_stdio_dest(cinfo: &mut jpeg_compress_struct, outfile: *mut FILE);
736 pub fn jpeg_stdio_src(cinfo: &mut jpeg_decompress_struct, infile: *mut FILE);
And I removed these two lines locally, then I got following error.
[INFO]: Checking for the Wasm target...
[INFO]: Compiling to Wasm...
Compiling libc v0.2.72
Compiling proc-macro2 v1.0.18
Compiling unicode-xid v0.2.1
Compiling log v0.4.8
Compiling wasm-bindgen-shared v0.2.64
Compiling syn v1.0.34
Compiling cfg-if v0.1.10
Compiling bumpalo v3.4.0
Compiling lazy_static v1.4.0
Compiling dunce v1.0.1
Compiling wasm-bindgen v0.2.64
Compiling bytemuck v1.2.0
Compiling arrayvec v0.5.1
Compiling rgb v0.8.20
Compiling jobserver v0.1.21
Compiling quote v1.0.7
Compiling cc v1.0.58
Compiling mozjpeg-sys v0.10.6 (/home/ma/rust_projects/mozjpeg-sys)
Compiling wasm-bindgen-backend v0.2.64
Compiling wasm-bindgen-macro-support v0.2.64
Compiling wasm-bindgen-macro v0.2.64
error: linking with `rust-lld` failed: exit code: 1
|
= note: "rust-lld" "-flavor" "wasm" "--no-threads" "-z" "stack-size=1048576" "--stack-first" "--allow-undefined" "--fatal-warnings" "--no-demangle" "--export-dynamic" "--no-entry" "-L" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/mozjpeg_sys.mozjpeg_sys.1qxp7sg0-cgu.0.rcgu.o" "-o" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/mozjpeg_sys.wasm" "--export=__heap_base" "--export=__data_end" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/mozjpeg_sys.1uebh1gze5pbx8oe.rcgu.o" "--gc-sections" "-O3" "-L" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps" "-L" "/home/ma/rust_projects/compressor/target/release/deps" "-L" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/build/mozjpeg-sys-16c788bf26d3e836/out" "-L" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib" "-l" "mozjpeg62" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libstd-02bfecf3c0e1b82c.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libpanic_abort-d01c3f06a596417f.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libdlmalloc-10d2fa5696801adb.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libhashbrown-5422d7062eda91da.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/librustc_std_workspace_alloc-cf4c390daeaf8bb5.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libbacktrace-3121804b3747d21d.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/librustc_demangle-b6020c2500f6176e.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libunwind-957b60ad69e842b7.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libcfg_if-b3572ba201c87b85.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/liblibc-d69e5cc09fe323c6.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/liballoc-149a6c16fedac334.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/librustc_std_workspace_core-4ee49b064f95fe57.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libcore-362cae5f4782ad99.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libcompiler_builtins-987ace0aa53b36d4.rlib" "--no-entry"
= note: rust-lld: error: /home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/build/mozjpeg-sys-16c788bf26d3e836/out/libmozjpeg62.a: archive has no index; run ranlib to add one
error: aborting due to previous error
error: could not compile `mozjpeg-sys`.
To learn more, run the command again with --verbose.
Error: Compiling your crate to WebAssembly failed
Caused by: failed to execute `cargo build`: exited with exit code: 101
full command: "cargo" "build" "--lib" "--release" "--target" "wasm32-unknown-unknown"
It looks like you need to export AR=emar
env variable.
Have you tried wasm32-unknown-emscripten
target?
It looks like you need to export
AR=emar
env variable.
I removed libc::free
in mozjpeg-rust
and run CC=emcc AR=emar wasm-pack build
, then I got this error
[INFO]: Checking for the Wasm target...
[INFO]: Compiling to Wasm...
Compiling libc v0.2.72
Compiling proc-macro2 v1.0.18
Compiling unicode-xid v0.2.1
Compiling syn v1.0.34
Compiling wasm-bindgen-shared v0.2.65
Compiling log v0.4.11
Compiling cfg-if v0.1.10
Compiling dunce v1.0.1
Compiling lazy_static v1.4.0
Compiling bumpalo v3.4.0
Compiling wasm-bindgen v0.2.65
Compiling bytemuck v1.2.0
Compiling arrayvec v0.5.1
Compiling rgb v0.8.20
Compiling jobserver v0.1.21
Compiling quote v1.0.7
Compiling cc v1.0.58
Compiling mozjpeg-sys v0.10.6 (/home/ma/rust_projects/mozjpeg-sys)
Compiling wasm-bindgen-backend v0.2.65
Compiling wasm-bindgen-macro-support v0.2.65
Compiling wasm-bindgen-macro v0.2.65
Compiling mozjpeg v0.8.19 (/home/ma/rust_projects/mozjpeg-rust)
warning: unnecessary `unsafe` block
--> /home/ma/rust_projects/mozjpeg-rust/src/compress.rs:322:13
|
322 | unsafe {
| ^^^^^^ unnecessary `unsafe` block
|
= note: `#[warn(unused_unsafe)]` on by default
warning: field is never read: `own_file`
--> /home/ma/rust_projects/mozjpeg-rust/src/decompress.rs:131:5
|
131 | own_file: Option<Box<File>>,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(dead_code)]` on by default
warning: 2 warnings emitted
Compiling compressor v0.1.0 (/home/ma/rust_projects/compressor)
error: linking with `rust-lld` failed: exit code: 1
|
= note: "rust-lld" "-flavor" "wasm" "--no-threads" "-z" "stack-size=1048576" "--stack-first" "--allow-undefined" "--fatal-warnings" "--no-demangle" "--export-dynamic" "--no-entry" "-L" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/compressor.compressor.qtbiztxe-cgu.0.rcgu.o" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/compressor.compressor.qtbiztxe-cgu.1.rcgu.o" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/compressor.compressor.qtbiztxe-cgu.10.rcgu.o" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/compressor.compressor.qtbiztxe-cgu.11.rcgu.o" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/compressor.compressor.qtbiztxe-cgu.12.rcgu.o" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/compressor.compressor.qtbiztxe-cgu.13.rcgu.o" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/compressor.compressor.qtbiztxe-cgu.14.rcgu.o" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/compressor.compressor.qtbiztxe-cgu.15.rcgu.o" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/compressor.compressor.qtbiztxe-cgu.2.rcgu.o" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/compressor.compressor.qtbiztxe-cgu.3.rcgu.o" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/compressor.compressor.qtbiztxe-cgu.4.rcgu.o" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/compressor.compressor.qtbiztxe-cgu.5.rcgu.o" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/compressor.compressor.qtbiztxe-cgu.6.rcgu.o" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/compressor.compressor.qtbiztxe-cgu.7.rcgu.o" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/compressor.compressor.qtbiztxe-cgu.8.rcgu.o" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/compressor.compressor.qtbiztxe-cgu.9.rcgu.o" "-o" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/compressor.wasm" "--export" "__wbindgen_describe_get_size" "--export" "get_size" "--export" "__externref_drop_slice" "--export" "__externref_heap_live_count" "--export" "__externref_table_alloc" "--export" "__externref_table_dealloc" "--export" "__wbindgen_exn_store" "--export" "__wbindgen_free" "--export" "__wbindgen_malloc" "--export" "__wbindgen_realloc" "--export=__heap_base" "--export=__data_end" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/compressor.sb5bij12he1wh56.rcgu.o" "--gc-sections" "-O3" "-L" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps" "-L" "/home/ma/rust_projects/compressor/target/release/deps" "-L" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/build/mozjpeg-sys-16c788bf26d3e836/out" "-L" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/libmozjpeg-6a399c066df6c3fe.rlib" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/librgb-72f7b5fdda4f821d.rlib" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/libbytemuck-7904ed8ffef3eacb.rlib" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/libarrayvec-916b0b8b0f3dab46.rlib" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/libmozjpeg_sys.rlib" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/libwasm_bindgen-37f7bf9d032ad006.rlib" "/home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/libcfg_if-0cb6543d268dad8b.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libstd-02bfecf3c0e1b82c.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libpanic_abort-d01c3f06a596417f.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libdlmalloc-10d2fa5696801adb.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libhashbrown-5422d7062eda91da.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/librustc_std_workspace_alloc-cf4c390daeaf8bb5.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libbacktrace-3121804b3747d21d.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/librustc_demangle-b6020c2500f6176e.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libunwind-957b60ad69e842b7.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libcfg_if-b3572ba201c87b85.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/liblibc-d69e5cc09fe323c6.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/liballoc-149a6c16fedac334.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/librustc_std_workspace_core-4ee49b064f95fe57.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libcore-362cae5f4782ad99.rlib" "/home/ma/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-unknown-unknown/lib/libcompiler_builtins-987ace0aa53b36d4.rlib" "--no-entry"
= note: rust-lld: error: /home/ma/rust_projects/compressor/target/wasm32-unknown-unknown/release/deps/libmozjpeg_sys.rlib(jerror.o): undefined symbol: stderr
error: aborting due to previous error
error: could not compile `compressor`.
To learn more, run the command again with --verbose.
Error: Compiling your crate to WebAssembly failed
Caused by: failed to execute `cargo build`: exited with exit code: 101
full command: "cargo" "build" "--lib" "--release" "--target" "wasm32-unknown-unknown"
Have you tried
wasm32-unknown-emscripten
target?
I removed wasm-bindgen
and run RUST_BACKTRACE=1 cargo build --lib --release --target wasm32-unknown-emscripten --verbose
, then I got this error
Compiling libc v0.2.72
Running `rustc --crate-name build_script_build /home/ma/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/libc-0.2.72/build.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=2621de4f7cd57e9e -C extra-filename=-2621de4f7cd57e9e --out-dir /home/ma/rust_projects/compressor/target/release/build/libc-2621de4f7cd57e9e -L dependency=/home/ma/rust_projects/compressor/target/release/deps --cap-lints allow`
Compiling dunce v1.0.1
Running `rustc --crate-name dunce --edition=2018 /home/ma/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/dunce-1.0.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C metadata=4e7d26c154f5de8c -C extra-filename=-4e7d26c154f5de8c --out-dir /home/ma/rust_projects/compressor/target/release/deps -L dependency=/home/ma/rust_projects/compressor/target/release/deps --cap-lints allow`
Compiling bytemuck v1.2.0
Running `rustc --crate-name bytemuck --edition=2018 /home/ma/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/bytemuck-1.2.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C metadata=fd81e5e8f4bbec6c -C extra-filename=-fd81e5e8f4bbec6c --out-dir /home/ma/rust_projects/compressor/target/wasm32-unknown-emscripten/release/deps --target wasm32-unknown-emscripten -L dependency=/home/ma/rust_projects/compressor/target/wasm32-unknown-emscripten/release/deps -L dependency=/home/ma/rust_projects/compressor/target/release/deps --cap-lints allow`
Compiling arrayvec v0.5.1
Running `rustc --crate-name arrayvec --edition=2018 /home/ma/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/arrayvec-0.5.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=aa8a29eeee8e474a -C extra-filename=-aa8a29eeee8e474a --out-dir /home/ma/rust_projects/compressor/target/wasm32-unknown-emscripten/release/deps --target wasm32-unknown-emscripten -L dependency=/home/ma/rust_projects/compressor/target/wasm32-unknown-emscripten/release/deps -L dependency=/home/ma/rust_projects/compressor/target/release/deps --cap-lints allow`
Running `/home/ma/rust_projects/compressor/target/release/build/libc-2621de4f7cd57e9e/build-script-build`
Running `/home/ma/rust_projects/compressor/target/release/build/libc-2621de4f7cd57e9e/build-script-build`
Compiling rgb v0.8.20
Running `rustc --crate-name rgb --edition=2018 /home/ma/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/rgb-0.8.20/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 --cfg 'feature="as-bytes"' --cfg 'feature="bytemuck"' --cfg 'feature="default"' -C metadata=86028502349bca2c -C extra-filename=-86028502349bca2c --out-dir /home/ma/rust_projects/compressor/target/wasm32-unknown-emscripten/release/deps --target wasm32-unknown-emscripten -L dependency=/home/ma/rust_projects/compressor/target/wasm32-unknown-emscripten/release/deps -L dependency=/home/ma/rust_projects/compressor/target/release/deps --extern bytemuck=/home/ma/rust_projects/compressor/target/wasm32-unknown-emscripten/release/deps/libbytemuck-fd81e5e8f4bbec6c.rmeta --cap-lints allow`
Running `rustc --crate-name libc /home/ma/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/libc-0.2.72/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=5669e8ad95e16877 -C extra-filename=-5669e8ad95e16877 --out-dir /home/ma/rust_projects/compressor/target/release/deps -L dependency=/home/ma/rust_projects/compressor/target/release/deps --cap-lints allow --cfg freebsd11 --cfg libc_priv_mod_use --cfg libc_union --cfg libc_const_size_of --cfg libc_align --cfg libc_core_cvoid --cfg libc_packedN`
Running `rustc --crate-name libc /home/ma/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/libc-0.2.72/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=2f3ad601bf73bd52 -C extra-filename=-2f3ad601bf73bd52 --out-dir /home/ma/rust_projects/compressor/target/wasm32-unknown-emscripten/release/deps --target wasm32-unknown-emscripten -L dependency=/home/ma/rust_projects/compressor/target/wasm32-unknown-emscripten/release/deps -L dependency=/home/ma/rust_projects/compressor/target/release/deps --cap-lints allow --cfg freebsd11 --cfg libc_priv_mod_use --cfg libc_union --cfg libc_const_size_of --cfg libc_align --cfg libc_core_cvoid --cfg libc_packedN`
Compiling jobserver v0.1.21
Running `rustc --crate-name jobserver --edition=2018 /home/ma/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/jobserver-0.1.21/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C metadata=f4f4f1fc8cbea659 -C extra-filename=-f4f4f1fc8cbea659 --out-dir /home/ma/rust_projects/compressor/target/release/deps -L dependency=/home/ma/rust_projects/compressor/target/release/deps --extern libc=/home/ma/rust_projects/compressor/target/release/deps/liblibc-5669e8ad95e16877.rmeta --cap-lints allow`
Compiling cc v1.0.58
Running `rustc --crate-name cc --edition=2018 /home/ma/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/cc-1.0.58/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 --cfg 'feature="jobserver"' --cfg 'feature="parallel"' -C metadata=46f70238f4808da0 -C extra-filename=-46f70238f4808da0 --out-dir /home/ma/rust_projects/compressor/target/release/deps -L dependency=/home/ma/rust_projects/compressor/target/release/deps --extern jobserver=/home/ma/rust_projects/compressor/target/release/deps/libjobserver-f4f4f1fc8cbea659.rmeta --cap-lints allow`
Compiling mozjpeg-sys v0.10.6 (/home/ma/rust_projects/mozjpeg-sys)
Running `rustc --crate-name build_script_build --edition=2018 /home/ma/rust_projects/mozjpeg-sys/src/build.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C opt-level=3 -C metadata=e825e3c256835a65 -C extra-filename=-e825e3c256835a65 --out-dir /home/ma/rust_projects/compressor/target/release/build/mozjpeg-sys-e825e3c256835a65 -L dependency=/home/ma/rust_projects/compressor/target/release/deps --extern cc=/home/ma/rust_projects/compressor/target/release/deps/libcc-46f70238f4808da0.rlib --extern dunce=/home/ma/rust_projects/compressor/target/release/deps/libdunce-4e7d26c154f5de8c.rlib`
Running `/home/ma/rust_projects/compressor/target/release/build/mozjpeg-sys-e825e3c256835a65/build-script-build`
Running `rustc --crate-name mozjpeg_sys --edition=2018 /home/ma/rust_projects/mozjpeg-sys/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type staticlib --crate-type cdylib --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=9745ce23b180ffe6 --out-dir /home/ma/rust_projects/compressor/target/wasm32-unknown-emscripten/release/deps --target wasm32-unknown-emscripten -L dependency=/home/ma/rust_projects/compressor/target/wasm32-unknown-emscripten/release/deps -L dependency=/home/ma/rust_projects/compressor/target/release/deps --extern libc=/home/ma/rust_projects/compressor/target/wasm32-unknown-emscripten/release/deps/liblibc-2f3ad601bf73bd52.rlib -L native=/home/ma/rust_projects/compressor/target/wasm32-unknown-emscripten/release/build/mozjpeg-sys-71352d705d4e5fb0/out -l static=mozjpeg62`
thread 'rustc' panicked at 'src/librustc_codegen_ssa/back/linker.rs:893: building dynamic library is unsupported on Emscripten', src/librustc_middle/util/bug.rs:37:26
stack backtrace:
0: backtrace::backtrace::libunwind::trace
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86
1: backtrace::backtrace::trace_unsynchronized
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66
2: std::sys_common::backtrace::_print_fmt
at src/libstd/sys_common/backtrace.rs:78
3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
at src/libstd/sys_common/backtrace.rs:59
4: core::fmt::write
at src/libcore/fmt/mod.rs:1069
5: std::io::Write::write_fmt
at src/libstd/io/mod.rs:1504
6: std::sys_common::backtrace::_print
at src/libstd/sys_common/backtrace.rs:62
7: std::sys_common::backtrace::print
at src/libstd/sys_common/backtrace.rs:49
8: std::panicking::default_hook::{{closure}}
at src/libstd/panicking.rs:198
9: std::panicking::default_hook
at src/libstd/panicking.rs:218
10: rustc_driver::report_ice
11: std::panicking::rust_panic_with_hook
at src/libstd/panicking.rs:515
12: std::panicking::begin_panic
13: rustc_middle::util::bug::opt_span_bug_fmt::{{closure}}
14: rustc_middle::ty::context::tls::with_opt::{{closure}}
15: rustc_middle::ty::context::tls::with_opt
16: rustc_middle::util::bug::opt_span_bug_fmt
17: rustc_middle::util::bug::bug_fmt
18: <rustc_codegen_ssa::back::linker::EmLinker as rustc_codegen_ssa::back::linker::Linker>::build_dylib
19: rustc_codegen_ssa::back::link::link_natively
20: rustc_session::utils::<impl rustc_session::session::Session>::time
21: <rustc_codegen_llvm::LlvmCodegenBackend as rustc_codegen_ssa::traits::backend::CodegenBackend>::link
22: rustc_interface::queries::Linker::link
23: rustc_interface::interface::run_compiler_in_existing_thread_pool
24: scoped_tls::ScopedKey<T>::set
25: rustc_ast::attr::with_globals
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
error: internal compiler error: unexpected panic
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.44.1 (c7087fe00 2020-06-17) running on x86_64-unknown-linux-gnu
note: compiler flags: -C opt-level=3 --crate-type staticlib --crate-type cdylib --crate-type lib
note: some of the compiler flags provided by cargo are hidden
query stack during panic:
end of query stack
error: could not compile `mozjpeg-sys`.
Caused by:
process didn't exit successfully: `rustc --crate-name mozjpeg_sys --edition=2018 /home/ma/rust_projects/mozjpeg-sys/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type staticlib --crate-type cdylib --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=9745ce23b180ffe6 --out-dir /home/ma/rust_projects/compressor/target/wasm32-unknown-emscripten/release/deps --target wasm32-unknown-emscripten -L dependency=/home/ma/rust_projects/compressor/target/wasm32-unknown-emscripten/release/deps -L dependency=/home/ma/rust_projects/compressor/target/release/deps --extern libc=/home/ma/rust_projects/compressor/target/wasm32-unknown-emscripten/release/deps/liblibc-2f3ad601bf73bd52.rlib -L native=/home/ma/rust_projects/compressor/target/wasm32-unknown-emscripten/release/build/mozjpeg-sys-71352d705d4e5fb0/out -l static=mozjpeg62` (exit code: 101)
"building dynamic library is unsupported on Emscripten" is a Cargo issue: https://github.com/rust-lang/cargo/issues/8496
You need to update to Rust 1.45 for this to work.
Thank you!
It works.
I updated rust to 1.45 and removed line 234 ffi::jpeg_stdio_src(&mut self.cinfo, fh)
in mozjpeg-rust/src/decompress.rs
, compiled successfully.
Hi.
I got following error when running
wasm-pack build --scope xxx
. Could you please give me some tips?system infomation
clang infomation
rustc infomation
Cargo.toml