Giter Club home page Giter Club logo

Comments (9)

ilp64 avatar ilp64 commented on June 8, 2024 1

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.

kornelski avatar kornelski commented on June 8, 2024

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.

ilp64 avatar ilp64 commented on June 8, 2024

@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.

kornelski avatar kornelski commented on June 8, 2024

Thanks. I've hidden the FILE in 808ade9d2a8070178efda17b5f79b02a5fdf81b7

from mozjpeg-rust.

ilp64 avatar ilp64 commented on June 8, 2024

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.

kornelski avatar kornelski commented on June 8, 2024

It looks like you need to export AR=emar env variable.

from mozjpeg-rust.

kornelski avatar kornelski commented on June 8, 2024

Have you tried wasm32-unknown-emscripten target?

from mozjpeg-rust.

ilp64 avatar ilp64 commented on June 8, 2024

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.

kornelski avatar kornelski commented on June 8, 2024

"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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.