deno: [upstream] Build failures on aarch64 Linux with glibc 2.26.1 on latest Rust compiler
I have been compiling Deno against glibc 2.26.1 (ubuntu 16.04) for increased compatibility, most notably AWS Lambda.
The release of deno_cache_dir
v0.5.0 depends on a later version which has forced an upgrade to Ubuntu 18.04 (glibc 2.30)
It fails with the following error:
#18 179.0 Compiling deno_cache_dir v0.5.0
#18 180.5 error: linking with `cc` failed: exit status: 1
#18 180.5 |
#18 180.5 = note: LC_ALL="C" PATH="/root/.rustup/toolchains/1.71.0-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-Wl,--version-script=/tmp/rustcRUJo55/list" "-Wl,--no-undefined-version" "/tmp/rustcRUJo55/symbols.o" "/deno/target/release/deps/deno_cache_dir-8cd1e1be67d058cd.deno_cache_dir.bf5665095537e8b5-cgu.0.rcgu.o" "/deno/target/release/deps/deno_cache_dir-8cd1e1be67d058cd.4qp5mhu02gfvfcfl.rcgu.o" "-Wl,--as-needed" "-L" "/deno/target/release/deps" "-L" "/deno/target/release/build/ring-6c8cedad92a22f15/out" "-L" "/root/.rustup/toolchains/1.71.0-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/deno/target/release/deps/libserde_json-e03c70682fa7e370.rlib" "/deno/target/release/deps/libryu-f5b0e8b3015522f8.rlib" "/deno/target/release/deps/libitoa-0d042663236bb011.rlib" "/deno/target/release/deps/liblog-fa937a2f3f3ab897.rlib" "/deno/target/release/deps/libparking_lot-d4926d1f42203871.rlib" "/deno/target/release/deps/libparking_lot_core-450cdaa49b2afb0a.rlib" "/deno/target/release/deps/libcfg_if-38889dd09f4a491e.rlib" "/deno/target/release/deps/libsmallvec-6d1aebb7a8998e19.rlib" "/deno/target/release/deps/liblock_api-d7d91fcb547223e4.rlib" "/deno/target/release/deps/libscopeguard-f50f1aef82cc20bf.rlib" "/deno/target/release/deps/libindexmap-e6bad887b381ff97.rlib" "/deno/target/release/deps/libequivalent-8cb2cf8bd8c60702.rlib" "/deno/target/release/deps/libhashbrown-5b842ca54ce03c1f.rlib" "/deno/target/release/deps/libdeno_media_type-0ef0bf74110a6814.rlib" "/deno/target/release/deps/libdata_url-090a63930aa396ce.rlib" "/deno/target/release/deps/libthiserror-02a335d27a569383.rlib" "/deno/target/release/deps/libring-5a3bcffb9fc73ee5.rlib" "/deno/target/release/deps/libspin-1129cfebe598ed67.rlib" "/deno/target/release/deps/libuntrusted-a5dcc30bcb4f8a25.rlib" "/deno/target/release/deps/libonce_cell-980fd0d198baddfa.rlib" "/deno/target/release/deps/liblibc-abb1a91c0c67b773.rlib" "/deno/target/release/deps/liburl-12800c7d33fe26d0.rlib" "/deno/target/release/deps/libidna-426e9ae2e2003357.rlib" "/deno/target/release/deps/libunicode_normalization-64d503e613bf6c92.rlib" "/deno/target/release/deps/libtinyvec-5655d95fed51f64c.rlib" "/deno/target/release/deps/libtinyvec_macros-cfde70f85c067b2a.rlib" "/deno/target/release/deps/libunicode_bidi-3264b114da7c7b69.rlib" "/deno/target/release/deps/libform_urlencoded-d0e256eac59b13e6.rlib" "/deno/target/release/deps/libpercent_encoding-b9b191ae89425e92.rlib" "/deno/target/release/deps/libserde-6c2a55a9c90e51d6.rlib" "/deno/target/release/deps/libanyhow-da72a87212c1a104.rlib" "/root/.rustup/toolchains/1.71.0-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libstd-49f405f32420fd6a.rlib" "/root/.rustup/toolchains/1.71.0-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libpanic_unwind-2b2d0fc0b0e1e1ec.rlib" "/root/.rustup/toolchains/1.71.0-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libobject-7cc15c5f0c23404e.rlib" "/root/.rustup/toolchains/1.71.0-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libmemchr-424f9a552277b8de.rlib" "/root/.rustup/toolchains/1.71.0-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libaddr2line-be9e9c3394ea9d59.rlib" "/root/.rustup/toolchains/1.71.0-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libgimli-650021992b21b3a2.rlib" "/root/.rustup/toolchains/1.71.0-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc_demangle-f3c8c0feb6f7f8aa.rlib" "/root/.rustup/toolchains/1.71.0-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libstd_detect-d7ab6e8d31d95747.rlib" "/root/.rustup/toolchains/1.71.0-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libhashbrown-29bef78daca585c7.rlib" "/root/.rustup/toolchains/1.71.0-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-0bb4fc54e64e1928.rlib" "/root/.rustup/toolchains/1.71.0-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libminiz_oxide-dcacb73e0fc82c6c.rlib" "/root/.rustup/toolchains/1.71.0-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libadler-5978245ddc0addd7.rlib" "/root/.rustup/toolchains/1.71.0-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libunwind-fd9fde115279cb3c.rlib" "/root/.rustup/toolchains/1.71.0-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libcfg_if-50edd0de903dc776.rlib" "/root/.rustup/toolchains/1.71.0-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/liblibc-74bb96f0ab3e26e0.rlib" "/root/.rustup/toolchains/1.71.0-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/liballoc-60a4032889f46560.rlib" "/root/.rustup/toolchains/1.71.0-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc_std_workspace_core-140890b14fd90465.rlib" "/root/.rustup/toolchains/1.71.0-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libcore-67fe04957e868f3a.rlib" "/root/.rustup/toolchains/1.71.0-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libcompiler_builtins-f261afcc57c36219.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/root/.rustup/toolchains/1.71.0-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib" "-o" "/deno/target/release/deps/libdeno_cache_dir-8cd1e1be67d058cd.so" "-Wl,--gc-sections" "-shared" "-Wl,-z,relro,-z,now" "-nodefaultlibs"
#18 180.5 = note: /usr/bin/ld: GFp_armcap_P: undefined version:
#18 180.5 /usr/bin/ld: failed to set dynamic section sizes: Bad value
This is certainly a low priority, but I can’t actually find the source for deno_cache_dir
outside of crates.io - is it hosted in this repo?
About this issue
- Original URL
- State: closed
- Created a year ago
- Comments: 24 (17 by maintainers)
Thanks for investigating this. I filed a ring issue to fix this: https://github.com/briansmith/ring/issues/1808. Plan to fix it soon.
This linker error arises due to using
ring
in acdylib
crate.deno_cache_dir
is a cdylib, so that’s why you get it here.I can reproduce this on x86_64 Linux in an Ubuntu 16.04 container without
deno_cache_dir
, by taking anyring
checkout, modifying itsCargo.toml
so that under[lib]
we havecrate-type = ["cdylib"]
then runningcargo build --target=aarch64-unknown-linux-gnu
(you’ll need the cross-linker installed and configured).I’ll try to minimize this a bit more then open a fresh issue on rust-lang/rust. I don’t think we have seen this bug before.
@mmastrac
Compiling with
RUSTFLAGS="-Ccodegen-units=1" RUST_BACKTRACE=full cargo build --release --locked --bin deno
I get the same error.@saethlin
My project is at LukeChannings/deno-arm64. You can reproduce it by reverting
Dockerfile.compile
fromFROM ubuntu:18.04
toFROM ubuntu:16.04
(usebuild.sh
).I’m compiling on an M1 MBP.
@LukeChannings A comment related Rust bug report suggests that using
lld
may be able to work around this.https://github.com/rust-lang/rust/issues/111888#issuecomment-1567421827
Hey Luke, cool to see you around.
The source is here https://github.com/denoland/deno_cache/tree/main/rs_lib