community/rust: rustc -C target-feature=+crt-static is broken since Alpine 3.13 (Rust 1.47.0)
I’m trying to build https://github.com/varjolintu/keepassxc-proxy-rust using cargo+rustc from aports as a static binary and find out that +crt-static
is broken since Alpine 3.13 (rustc 1.47.0).
I don’t know if the problem is in our patches or in upstream.
Steps to reproduce:
apk add cargo git
git clone https://github.com/varjolintu/keepassxc-proxy-rust.git
cd keepassxc-proxy-rust
RUSTFLAGS='-Ctarget-feature=+crt-static' cargo build -v
On Alpine Edge with rustc 1.53.0:
Click to expand full log…
process didn't exit successfully: `~/keepassxc-proxy-rust/target/debug/build/nix-8edd2676591088d4/build-script-build` (signal: 11, SIGSEGV: invalid memory reference)
process didn't exit successfully: `~/keepassxc-proxy-rust/target/debug/build/nix-8edd2676591088d4/build-script-build` (signal: 11, SIGSEGV: invalid memory reference)
RUSTFLAGS='-Ctarget-feature=+crt-static' cargo build -v
Compiling nix v0.11.0
Compiling void v1.0.2
Compiling cfg-if v0.1.5
Compiling libc v0.2.43
Compiling bitflags v1.0.3
Compiling byteorder v1.1.0
Running `rustc --crate-name build_script_build ~/.cargo/registry/src/github.com-1ecc6299db9ec823/nix-0.11.0/build.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 -C metadata=8edd2676591088d4 -C extra-filename=-8edd2676591088d4 --out-dir ~/keepassxc-proxy-rust/target/debug/build/nix-8edd2676591088d4 -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static`
Running `rustc --crate-name void ~/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=8daca5fba74dbef2 -C extra-filename=-8daca5fba74dbef2 --out-dir ~/keepassxc-proxy-rust/target/debug/deps -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static`
Running `rustc --crate-name libc ~/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.43/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="use_std"' -C metadata=106a2d5518a4852a -C extra-filename=-106a2d5518a4852a --out-dir ~/keepassxc-proxy-rust/target/debug/deps -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static`
Running `rustc --crate-name cfg_if ~/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-0.1.5/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 -C metadata=4872244e38910c2e -C extra-filename=-4872244e38910c2e --out-dir ~/keepassxc-proxy-rust/target/debug/deps -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static`
Running `rustc --crate-name bitflags ~/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.0.3/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --cfg 'feature="default"' -C metadata=b1240547550b3d58 -C extra-filename=-b1240547550b3d58 --out-dir ~/keepassxc-proxy-rust/target/debug/deps -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static`
Running `rustc --crate-name byteorder ~/.cargo/registry/src/github.com-1ecc6299db9ec823/byteorder-1.1.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=c8c4ef5b168b55ff -C extra-filename=-c8c4ef5b168b55ff --out-dir ~/keepassxc-proxy-rust/target/debug/deps -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static`
Running `~/keepassxc-proxy-rust/target/debug/build/nix-8edd2676591088d4/build-script-build`
error: failed to run custom build command for `nix v0.11.0`
Caused by:
process didn't exit successfully: ~/keepassxc-proxy-rust/target/debug/build/nix-8edd2676591088d4/build-script-build (signal: 11, SIGSEGV: invalid memory reference)
warning: build failed, waiting for other jobs to finish...
error: build failed
On Alpine 3.13 with rustc 1.47.0:
Click to expand full log…
ld: /usr/lib/gcc/x86_64-alpine-linux-musl/10.2.1/libgcc_eh.a(unwind-dw2.o): in function `__gthread_once':
/home/buildozer/aports/main/gcc/src/build/x86_64-alpine-linux-musl/libgcc/./gthr-default.h:700: undefined reference to `pthread_once'
collect2: error: ld returned 1 exit status
ld: /usr/lib/gcc/x86_64-alpine-linux-musl/10.2.1/libgcc_eh.a(unwind-dw2.o): in function `__gthread_once':
/home/buildozer/aports/main/gcc/src/build/x86_64-alpine-linux-musl/libgcc/./gthr-default.h:700: undefined reference to `pthread_once'
collect2: error: ld returned 1 exit status
RUSTFLAGS='-Ctarget-feature=+crt-static' cargo build -v
Compiling nix v0.11.0
Compiling bitflags v1.0.3
Compiling void v1.0.2
Compiling libc v0.2.43
Running `rustc --crate-name bitflags ~/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.0.3/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --cfg 'feature="default"' -C metadata=c87359a600611076 -C extra-filename=-c87359a600611076 --out-dir ~/keepassxc-proxy-rust/target/debug/deps -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static`
Running `rustc --crate-name build_script_build ~/.cargo/registry/src/github.com-1ecc6299db9ec823/nix-0.11.0/build.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 -C metadata=20fd7cb95f370935 -C extra-filename=-20fd7cb95f370935 --out-dir ~/keepassxc-proxy-rust/target/debug/build/nix-20fd7cb95f370935 -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static`
Running `rustc --crate-name libc ~/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.43/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="use_std"' -C metadata=c238e2dec5758177 -C extra-filename=-c238e2dec5758177 --out-dir ~/keepassxc-proxy-rust/target/debug/deps -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static`
Running `rustc --crate-name void ~/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=348efd14d4a047aa -C extra-filename=-348efd14d4a047aa --out-dir ~/keepassxc-proxy-rust/target/debug/deps -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static`
Compiling cfg-if v0.1.5
Running `rustc --crate-name cfg_if ~/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-0.1.5/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 -C metadata=1ff2b417549a82db -C extra-filename=-1ff2b417549a82db --out-dir ~/keepassxc-proxy-rust/target/debug/deps -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static`
Compiling byteorder v1.1.0
Running `rustc --crate-name byteorder ~/.cargo/registry/src/github.com-1ecc6299db9ec823/byteorder-1.1.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=c5f4275178e35ed9 -C extra-filename=-c5f4275178e35ed9 --out-dir ~/keepassxc-proxy-rust/target/debug/deps -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static`
error: linking with `cc` failed: exit code: 1
|
= note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-Wl,--eh-frame-hdr" "-L" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib" "~/keepassxc-proxy-rust/target/debug/build/nix-20fd7cb95f370935/build_script_build-20fd7cb95f370935.build_script_build.1y1bdzr3-cgu.0.rcgu.o" "~/keepassxc-proxy-rust/target/debug/build/nix-20fd7cb95f370935/build_script_build-20fd7cb95f370935.build_script_build.1y1bdzr3-cgu.1.rcgu.o" "~/keepassxc-proxy-rust/target/debug/build/nix-20fd7cb95f370935/build_script_build-20fd7cb95f370935.build_script_build.1y1bdzr3-cgu.2.rcgu.o" "~/keepassxc-proxy-rust/target/debug/build/nix-20fd7cb95f370935/build_script_build-20fd7cb95f370935.build_script_build.1y1bdzr3-cgu.3.rcgu.o" "~/keepassxc-proxy-rust/target/debug/build/nix-20fd7cb95f370935/build_script_build-20fd7cb95f370935.build_script_build.1y1bdzr3-cgu.4.rcgu.o" "~/keepassxc-proxy-rust/target/debug/build/nix-20fd7cb95f370935/build_script_build-20fd7cb95f370935.build_script_build.1y1bdzr3-cgu.5.rcgu.o" "~/keepassxc-proxy-rust/target/debug/build/nix-20fd7cb95f370935/build_script_build-20fd7cb95f370935.build_script_build.1y1bdzr3-cgu.6.rcgu.o" "-o" "~/keepassxc-proxy-rust/target/debug/build/nix-20fd7cb95f370935/build_script_build-20fd7cb95f370935" "~/keepassxc-proxy-rust/target/debug/build/nix-20fd7cb95f370935/build_script_build-20fd7cb95f370935.3uuin1k82oc9un48.rcgu.o" "-Wl,--gc-sections" "-static-pie" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs" "-L" "~/keepassxc-proxy-rust/target/debug/deps" "-L" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib" "-Wl,--start-group" "-Wl,-Bstatic" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libstd-06aec1a01d3ba7a9.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libpanic_unwind-42f35beaae597de5.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libminiz_oxide-fedab674ad3931ec.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libadler-a45d111ab0304635.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libobject-aa8f6fea9aa75332.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libaddr2line-fd57aba7862995b6.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libgimli-3d096ae25b8abdd6.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/librustc_demangle-dee41d539c484a5a.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libhashbrown-dafcbd54c5153fc5.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/librustc_std_workspace_alloc-ad3eaf532c29eec6.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libunwind-8668b1338b7ce19c.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libcfg_if-2a3d1db563feade4.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/liblibc-675e1ce4b9e93a1c.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/liballoc-6f33e873ffca5c66.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/librustc_std_workspace_core-cde0281597f50b5c.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libcore-8a71a9a278640f0c.rlib" "-Wl,--end-group" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libcompiler_builtins-5ee880047fff9647.rlib" "-Wl,-Bdynamic" "-lssp_nonshared" "-lgcc_eh"
= note: /usr/lib/gcc/x86_64-alpine-linux-musl/10.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/lib/gcc/x86_64-alpine-linux-musl/10.2.1/libgcc_eh.a(unwind-dw2.o): in function `__gthread_once':
/home/buildozer/aports/main/gcc/src/build/x86_64-alpine-linux-musl/libgcc/./gthr-default.h:700: undefined reference to `pthread_once'
collect2: error: ld returned 1 exit status
error: aborting due to previous error
error: could not compile nix.
Caused by:
process didn't exit successfully: rustc --crate-name build_script_build ~/.cargo/registry/src/github.com-1ecc6299db9ec823/nix-0.11.0/build.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 -C metadata=20fd7cb95f370935 -C extra-filename=-20fd7cb95f370935 --out-dir ~/keepassxc-proxy-rust/target/debug/build/nix-20fd7cb95f370935 -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static (exit code: 1)
warning: build failed, waiting for other jobs to finish...
error: build failed
On Alpine 3.12 with rustc 1.44.0:
Click to expand full log…
Finished dev [unoptimized + debuginfo] target(s) in 6.72s
Finished dev [unoptimized + debuginfo] target(s) in 6.72s
RUSTFLAGS='-Ctarget-feature=+crt-static' cargo build -v
Compiling nix v0.11.0
Compiling bitflags v1.0.3
Compiling libc v0.2.43
Compiling cfg-if v0.1.5
Compiling void v1.0.2
Compiling byteorder v1.1.0
Running `rustc --crate-name build_script_build ~/.cargo/registry/src/github.com-1ecc6299db9ec823/nix-0.11.0/build.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=86a15ea8c536e891 -C extra-filename=-86a15ea8c536e891 --out-dir ~/keepassxc-proxy-rust/target/debug/build/nix-86a15ea8c536e891 -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static`
Running `rustc --crate-name bitflags ~/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.0.3/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C debuginfo=2 --cfg 'feature="default"' -C metadata=8f3630e8b926ac12 -C extra-filename=-8f3630e8b926ac12 --out-dir ~/keepassxc-proxy-rust/target/debug/deps -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static`
Running `rustc --crate-name libc ~/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.43/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="use_std"' -C metadata=d6d7c5dca2d4c238 -C extra-filename=-d6d7c5dca2d4c238 --out-dir ~/keepassxc-proxy-rust/target/debug/deps -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static`
Running `rustc --crate-name cfg_if ~/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-0.1.5/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C debuginfo=2 -C metadata=7e925ca1d0e47c9e -C extra-filename=-7e925ca1d0e47c9e --out-dir ~/keepassxc-proxy-rust/target/debug/deps -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static`
Running `rustc --crate-name void ~/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=73f3dfac2f10a308 -C extra-filename=-73f3dfac2f10a308 --out-dir ~/keepassxc-proxy-rust/target/debug/deps -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static`
Running `rustc --crate-name byteorder ~/.cargo/registry/src/github.com-1ecc6299db9ec823/byteorder-1.1.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=792538a605734826 -C extra-filename=-792538a605734826 --out-dir ~/keepassxc-proxy-rust/target/debug/deps -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static`
Running `~/keepassxc-proxy-rust/target/debug/build/nix-86a15ea8c536e891/build-script-build`
Running `rustc --crate-name nix ~/.cargo/registry/src/github.com-1ecc6299db9ec823/nix-0.11.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C debuginfo=2 -C metadata=633ac2156b3043da -C extra-filename=-633ac2156b3043da --out-dir ~/keepassxc-proxy-rust/target/debug/deps -L dependency=~/keepassxc-proxy-rust/target/debug/deps --extern bitflags=~/keepassxc-proxy-rust/target/debug/deps/libbitflags-8f3630e8b926ac12.rmeta --extern cfg_if=~/keepassxc-proxy-rust/target/debug/deps/libcfg_if-7e925ca1d0e47c9e.rmeta --extern libc=~/keepassxc-proxy-rust/target/debug/deps/liblibc-d6d7c5dca2d4c238.rmeta --extern void=~/keepassxc-proxy-rust/target/debug/deps/libvoid-73f3dfac2f10a308.rmeta --cap-lints allow -Ctarget-feature=+crt-static`
Compiling keepassxc-proxy v0.1.0 (~/keepassxc-proxy-rust)
Running `rustc --crate-name keepassxc_proxy src/main.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=e0491aa9a3660457 -C extra-filename=-e0491aa9a3660457 --out-dir ~/keepassxc-proxy-rust/target/debug/deps -C incremental=~/keepassxc-proxy-rust/target/debug/incremental -L dependency=~/keepassxc-proxy-rust/target/debug/deps --extern byteorder=~/keepassxc-proxy-rust/target/debug/deps/libbyteorder-792538a605734826.rlib --extern nix=~/keepassxc-proxy-rust/target/debug/deps/libnix-633ac2156b3043da.rlib -Ctarget-feature=+crt-static`
Finished dev [unoptimized + debuginfo] target(s) in 6.72s
I don’t know how to force cargo/rustc to always print cc
arguments, so I created a simple wrapper script cc-log
:
#!/bin/sh
printf '%s\n' "$*" >> /tmp/cc.log
exec cc "$@"
…and build again with RUSTFLAGS='-Ctarget-feature=+crt-static -Clinker=/path/to/cc-log' cargo build -v
cc -Wl,--as-needed -Wl,-z,noexecstack -Wl,--eh-frame-hdr -m64 -L /usr/lib/rustlib/x86_64-alpine-linux-musl/lib ~/keepassxc-proxy-rust/target/debug/build/nix-86a15ea8c536e891/build_script_build-86a15ea8c536e891.build_script_build.dhgh3pug-cgu.0.rcgu.o ~/keepassxc-proxy-rust/target/debug/build/nix-86a15ea8c536e891/build_script_build-86a15ea8c536e891.build_script_build.dhgh3pug-cgu.1.rcgu.o ~/keepassxc-proxy-rust/target/debug/build/nix-86a15ea8c536e891/build_script_build-86a15ea8c536e891.build_script_build.dhgh3pug-cgu.2.rcgu.o ~/keepassxc-proxy-rust/target/debug/build/nix-86a15ea8c536e891/build_script_build-86a15ea8c536e891.build_script_build.dhgh3pug-cgu.3.rcgu.o ~/keepassxc-proxy-rust/target/debug/build/nix-86a15ea8c536e891/build_script_build-86a15ea8c536e891.build_script_build.dhgh3pug-cgu.4.rcgu.o -o ~/keepassxc-proxy-rust/target/debug/build/nix-86a15ea8c536e891/build_script_build-86a15ea8c536e891 ~/keepassxc-proxy-rust/target/debug/build/nix-86a15ea8c536e891/build_script_build-86a15ea8c536e891.41n3vb5mw653uc6h.rcgu.o -Wl,--gc-sections -pie -Wl,-zrelro -Wl,-znow -nodefaultlibs -L ~/keepassxc-proxy-rust/target/debug/deps -L /usr/lib/rustlib/x86_64-alpine-linux-musl/lib -Wl,--start-group -Wl,-Bstatic /usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libstd-4ce14655942c6f47.rlib /usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libpanic_unwind-11550197f781f830.rlib /usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libhashbrown-2ab0993c27d19786.rlib /usr/lib/rustlib/x86_64-alpine-linux-musl/lib/librustc_std_workspace_alloc-a179617334d70722.rlib /usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libbacktrace-e2f32b2af547d391.rlib /usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libbacktrace_sys-2d2042f63707ea50.rlib /usr/lib/rustlib/x86_64-alpine-linux-musl/lib/librustc_demangle-96a0c0ec9cc49502.rlib /usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libunwind-04a5b9a097660730.rlib /usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libcfg_if-0e96d43b42168240.rlib /usr/lib/rustlib/x86_64-alpine-linux-musl/lib/liblibc-6f63d3408a1c72a1.rlib /usr/lib/rustlib/x86_64-alpine-linux-musl/lib/liballoc-d260516aca78355d.rlib /usr/lib/rustlib/x86_64-alpine-linux-musl/lib/librustc_std_workspace_core-471ebd6b73b64ed8.rlib /usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libcore-d7b4f012a6bfbffe.rlib -Wl,--end-group /usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libcompiler_builtins-8ed302c585619808.rlib -lssp_nonshared -lgcc_eh -lc -lgcc -static -Wl,-Bdynamic
Diffs of cc
arguments beging used for building nix
crate:
--- rustc 1.44.0 (Alpine 3.12) - works
+++ rustc 1.47.0 (Alpine 3.13) - broken
cc
-m64
-Wl,--as-needed
-Wl,--eh-frame-hdr
-Wl,-z,noexecstack
-L
/usr/lib/rustlib/x86_64-alpine-linux-musl/lib
~/keepassxc-proxy-rust/target/debug/build/nix-xxxxxxxxxxxxxxxx/build_script_build-xxxxxxxxxxxxxxxx.build_script_build.yyyyyyyy-cgu.0.rcgu.o
~/keepassxc-proxy-rust/target/debug/build/nix-xxxxxxxxxxxxxxxx/build_script_build-xxxxxxxxxxxxxxxx.build_script_build.yyyyyyyy-cgu.1.rcgu.o
~/keepassxc-proxy-rust/target/debug/build/nix-xxxxxxxxxxxxxxxx/build_script_build-xxxxxxxxxxxxxxxx.build_script_build.yyyyyyyy-cgu.2.rcgu.o
~/keepassxc-proxy-rust/target/debug/build/nix-xxxxxxxxxxxxxxxx/build_script_build-xxxxxxxxxxxxxxxx.build_script_build.yyyyyyyy-cgu.3.rcgu.o
~/keepassxc-proxy-rust/target/debug/build/nix-xxxxxxxxxxxxxxxx/build_script_build-xxxxxxxxxxxxxxxx.build_script_build.yyyyyyyy-cgu.4.rcgu.o
+ ~/keepassxc-proxy-rust/target/debug/build/nix-xxxxxxxxxxxxxxxx/build_script_build-xxxxxxxxxxxxxxxx.build_script_build.yyyyyyyy-cgu.5.rcgu.o
+ ~/keepassxc-proxy-rust/target/debug/build/nix-xxxxxxxxxxxxxxxx/build_script_build-xxxxxxxxxxxxxxxx.build_script_build.yyyyyyyy-cgu.6.rcgu.o
-o
~/keepassxc-proxy-rust/target/debug/build/nix-xxxxxxxxxxxxxxxx/build_script_build-xxxxxxxxxxxxxxxx
~/keepassxc-proxy-rust/target/debug/build/nix-xxxxxxxxxxxxxxxx/build_script_build-xxxxxxxxxxxxxxxx.zzzzzzzzzzzzzzzz.rcgu.o
-Wl,--gc-sections
- -pie
+ -static-pie
-Wl,-zrelro
-Wl,-znow
-nodefaultlibs
-L
~/keepassxc-proxy-rust/target/debug/deps
-L
/usr/lib/rustlib/x86_64-alpine-linux-musl/lib
-Wl,--start-group
-Wl,-Bstatic
/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libstd-abcdefabcdefabcd.rlib
/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libpanic_unwind-abcdefabcdefabcd.rlib
+ /usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libminiz_oxide-abcdefabcdefabcd.rlib
+ /usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libadler-abcdefabcdefabcd.rlib
+ /usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libobject-abcdefabcdefabcd.rlib
+ /usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libaddr2line-abcdefabcdefabcd.rlib
+ /usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libgimli-abcdefabcdefabcd.rlib
/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/librustc_demangle-abcdefabcdefabcd.rlib
/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libhashbrown-abcdefabcdefabcd.rlib
/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/librustc_std_workspace_alloc-abcdefabcdefabcd.rlib
- /usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libbacktrace-abcdefabcdefabcd.rlib
- /usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libbacktrace_sys-abcdefabcdefabcd.rlib
/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libunwind-abcdefabcdefabcd.rlib
/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libcfg_if-abcdefabcdefabcd.rlib
/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/liblibc-abcdefabcdefabcd.rlib
/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/liballoc-abcdefabcdefabcd.rlib
/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/librustc_std_workspace_core-abcdefabcdefabcd.rlib
/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libcore-abcdefabcdefabcd.rlib
-Wl,--end-group
/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libcompiler_builtins-abcdefabcdefabcd.rlib
+ -Wl,-Bdynamic
-lssp_nonshared
-lgcc_eh
- -lc
- -lgcc
- -static
- -Wl,-Bdynamic
(only relevant part)
--- rustc 1.47.0 (Alpine 3.13) - broken
+++ rustc 1.53.0 (Alpine Edge) - broken
# omitted arguments are the same
-Wl,--end-group
/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libcompiler_builtins-abcdefabcdefabcd.rlib
-Wl,-Bdynamic
-lssp_nonshared
-lgcc_eh
+ -lc
+ -Wl,-Bstatic
+ -lgcc
+ -Wl,-Bdynamic
Another try, now with -Crelocation-model=static
:
Click to expand full log…
ld: attempted static link of dynamic object `/usr/lib/libc.so'
collect2: error: ld returned 1 exit status
ld: attempted static link of dynamic object `/usr/lib/libc.so'
collect2: error: ld returned 1 exit status
RUSTFLAGS="-Ctarget-feature=+crt-static -Crelocation-model=static" cargo build -v
Compiling nix v0.11.0
Compiling cfg-if v0.1.5
Compiling libc v0.2.43
Compiling bitflags v1.0.3
Compiling void v1.0.2
Compiling byteorder v1.1.0
Running `rustc --crate-name build_script_build ~/.cargo/registry/src/github.com-1ecc6299db9ec823/nix-0.11.0/build.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 -C metadata=8edd2676591088d4 -C extra-filename=-8edd2676591088d4 --out-dir ~/keepassxc-proxy-rust/target/debug/build/nix-8edd2676591088d4 -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static -Crelocation-model=static`
Running `rustc --crate-name libc ~/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.43/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="use_std"' -C metadata=106a2d5518a4852a -C extra-filename=-106a2d5518a4852a --out-dir ~/keepassxc-proxy-rust/target/debug/deps -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static -Crelocation-model=static`
Running `rustc --crate-name cfg_if ~/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-0.1.5/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 -C metadata=4872244e38910c2e -C extra-filename=-4872244e38910c2e --out-dir ~/keepassxc-proxy-rust/target/debug/deps -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static -Crelocation-model=static`
Running `rustc --crate-name bitflags ~/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.0.3/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --cfg 'feature="default"' -C metadata=b1240547550b3d58 -C extra-filename=-b1240547550b3d58 --out-dir ~/keepassxc-proxy-rust/target/debug/deps -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static -Crelocation-model=static`
Running `rustc --crate-name void ~/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=8daca5fba74dbef2 -C extra-filename=-8daca5fba74dbef2 --out-dir ~/keepassxc-proxy-rust/target/debug/deps -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static -Crelocation-model=static`
Running `rustc --crate-name byteorder ~/.cargo/registry/src/github.com-1ecc6299db9ec823/byteorder-1.1.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=c8c4ef5b168b55ff -C extra-filename=-c8c4ef5b168b55ff --out-dir ~/keepassxc-proxy-rust/target/debug/deps -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static -Crelocation-model=static`
error: linking with `cc` failed: exit status: 1
|
= note: "cc" "-m64" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-Wl,--as-needed" "-L" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib" "~/keepassxc-proxy-rust/target/debug/build/nix-8edd2676591088d4/build_script_build-8edd2676591088d4.build_script_build.6vd7vsxp-cgu.0.rcgu.o" "~/keepassxc-proxy-rust/target/debug/build/nix-8edd2676591088d4/build_script_build-8edd2676591088d4.build_script_build.6vd7vsxp-cgu.1.rcgu.o" "~/keepassxc-proxy-rust/target/debug/build/nix-8edd2676591088d4/build_script_build-8edd2676591088d4.build_script_build.6vd7vsxp-cgu.2.rcgu.o" "~/keepassxc-proxy-rust/target/debug/build/nix-8edd2676591088d4/build_script_build-8edd2676591088d4.build_script_build.6vd7vsxp-cgu.3.rcgu.o" "~/keepassxc-proxy-rust/target/debug/build/nix-8edd2676591088d4/build_script_build-8edd2676591088d4.build_script_build.6vd7vsxp-cgu.4.rcgu.o" "~/keepassxc-proxy-rust/target/debug/build/nix-8edd2676591088d4/build_script_build-8edd2676591088d4.build_script_build.6vd7vsxp-cgu.5.rcgu.o" "~/keepassxc-proxy-rust/target/debug/build/nix-8edd2676591088d4/build_script_build-8edd2676591088d4.build_script_build.6vd7vsxp-cgu.6.rcgu.o" "-o" "~/keepassxc-proxy-rust/target/debug/build/nix-8edd2676591088d4/build_script_build-8edd2676591088d4" "~/keepassxc-proxy-rust/target/debug/build/nix-8edd2676591088d4/build_script_build-8edd2676591088d4.40ka1h9i20cio1f2.rcgu.o" "-Wl,--gc-sections" "-static" "-no-pie" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs" "-L" "~/keepassxc-proxy-rust/target/debug/deps" "-L" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib" "-Wl,--start-group" "-Wl,-Bstatic" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libstd-34afa3620578e61f.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libpanic_unwind-a9bff9d2c6aee606.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libminiz_oxide-b6fa8ac8fff2da2b.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libadler-eb1608062ebcff68.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libobject-fd3e0d54a038b9a9.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libaddr2line-5ac639d60defb3a5.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libgimli-c3808cd42a7bcdf9.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libstd_detect-fba1bbf3bc5edbf2.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/librustc_demangle-c5813e4d324eb983.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libhashbrown-b5c125b992951f22.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/librustc_std_workspace_alloc-a7b4aa4f2efe685e.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libunwind-22772a502ce044fc.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libcfg_if-caa1112aef8d93e6.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/liblibc-9380a366e66a53c9.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/liballoc-b5da5d3bfdddf375.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/librustc_std_workspace_core-e1cbbe3706c873ae.rlib" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libcore-f6ce8bab5d963208.rlib" "-Wl,--end-group" "/usr/lib/rustlib/x86_64-alpine-linux-musl/lib/libcompiler_builtins-5f1480203e4754fb.rlib" "-Wl,-Bdynamic" "-lssp_nonshared" "-lgcc_eh" "-lc" "-Wl,-Bstatic" "-lgcc" "-Wl,-Bdynamic"
= note: /usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld: attempted static link of dynamic object `/usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../lib/libc.so'
collect2: error: ld returned 1 exit status
error: aborting due to previous error
error: could not compile nix
Caused by:
process didn't exit successfully: rustc --crate-name build_script_build ~/.cargo/registry/src/github.com-1ecc6299db9ec823/nix-0.11.0/build.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 -C metadata=8edd2676591088d4 -C extra-filename=-8edd2676591088d4 --out-dir ~/keepassxc-proxy-rust/target/debug/build/nix-8edd2676591088d4 -L dependency=~/keepassxc-proxy-rust/target/debug/deps --cap-lints allow -Ctarget-feature=+crt-static -Crelocation-model=static (exit status: 1)
warning: build failed, waiting for other jobs to finish...
error: build failed
--- rustc 1.53.0 without -Crelocation-model=static
+++ rustc 1.53.0 with -Crelocation-model=static
# omitted arguments are the same
-Wl,--gc-sections
- -static-pie
+ -static
+ -no-pie
-Wl,-zrelro
-Wl,-znow
-nodefaultlibs
# omitted arguments are the same
Similar issues: #11806 (closed)