rust-cross / cargo-zigbuild

Compile Cargo project with zig as linker
MIT License
1.35k stars 50 forks source link

unable to find dynamic system library 'atomic' #252

Closed xutianyi1999 closed 1 month ago

xutianyi1999 commented 1 month ago

OS: Ubuntu 22.04 Rust: nightly-x86_64-unknown-linux-gnu cargo-zigbuild-0.18.4 ziglang-0.12.0

Build command: cargo zigbuild --release --target armv7-unknown-linux-gnueabihf

Error message

 error: unable to find dynamic system library 'atomic' using strategy 'no_fallback'. searched paths:
            /home/runner/work/fubuki-test/fubuki-test/target/armv7-unknown-linux-gnueabihf/release/deps/libatomic.so
            /home/runner/work/fubuki-test/fubuki-test/target/release/deps/libatomic.so
            /home/runner/work/fubuki-test/fubuki-test/target/armv7-unknown-linux-gnueabihf/release/build/libmimalloc-sys-ca91151723eed5d5/out/libatomic.so
            /home/runner/work/fubuki-test/fubuki-test/target/armv7-unknown-linux-gnueabihf/release/build/netstack-lwip-e8f8aeaad777c356/out/libatomic.so
            /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/libatomic.so
            /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabihf/lib/libatomic.so

All build message

libatomic link instruction

println!("cargo:rustc-link-lib=dylib=atomic");
messense commented 1 month ago

Nothing we can do here, zig has some known issue for atomic, for example https://github.com/ziglang/zig/issues/14889.

messense commented 1 month ago

FYI, your best chance of getting this fixed is fixing https://github.com/microsoft/mimalloc/issues/634.

messense commented 1 month ago

scratch that, it should be fixed in https://github.com/purpleprotocol/mimalloc_rust/blob/a9c410c248859d3f55fbb7d29a88f28cdf296f6b/libmimalloc-sys/build.rs#L58-L61 because armv7 and later does not require libatomic.