Comments (9)
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.
from mozjpeg-rust.
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?
from mozjpeg-rust.
@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.
from mozjpeg-rust.
Thanks. I've hidden the FILE
in 808ade9d2a8070178efda17b5f79b02a5fdf81b7
from mozjpeg-rust.
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"
from mozjpeg-rust.
It looks like you need to export AR=emar
env variable.
from mozjpeg-rust.
Have you tried wasm32-unknown-emscripten
target?
from mozjpeg-rust.
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)
from mozjpeg-rust.
"building dynamic library is unsupported on Emscripten" is a Cargo issue: rust-lang/cargo#8496
You need to update to Rust 1.45 for this to work.
from mozjpeg-rust.
Related Issues (15)
- DecompressScanlines::read_scanlines is unsound HOT 2
- Add some encoding examples HOT 3
- How to achieve same quality as libjpeg? HOT 6
- Add mozjpeg-rust as encoder to image crate HOT 1
- Decoding isn't reporting decode errors back to application HOT 7
- Encoding fails on macOS arm64 (bus error) HOT 5
- Ability to change subsampling mode HOT 1
- Equivalent of jpegtran -optimize HOT 2
- Please release a new version on Crates.io HOT 2
- Add ability to enable full JPEG baseline compatibility HOT 2
- mozjpeg can unwind through `extern "C" fn` boundary, which is UB HOT 2
- could not build staticlib HOT 6
- Ability to write icc profile HOT 2
- How to get error message? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mozjpeg-rust.