Open mikeshepherd opened 3 months ago
I'm attempting to use nix-ld in my system, I have added it to my flake as described in the readme:
but when I run nixos-rebuild switch the build fails with compile errors in nix-ld
nixos-rebuild switch
@nix { "action": "setPhase", "phase": "unpackPhase" } Running phase: unpackPhase unpacking source archive /nix/store/gmf0lm6gyarlrgqvl2i9hjgdywlwyj9w-84khmnncb095j174g25zb1cq99i8lfi0-source source root is 84khmnncb095j174g25zb1cq99i8lfi0-source Executing cargoSetupPostUnpackHook Finished cargoSetupPostUnpackHook @nix { "action": "setPhase", "phase": "patchPhase" } Running phase: patchPhase Executing cargoSetupPostPatchHook Validating consistency between /build/84khmnncb095j174g25zb1cq99i8lfi0-source/Cargo.lock and /build/cargo-vendor-dir/Cargo.lock Finished cargoSetupPostPatchHook @nix { "action": "setPhase", "phase": "updateAutotoolsGnuConfigScriptsPhase" } Running phase: updateAutotoolsGnuConfigScriptsPhase @nix { "action": "setPhase", "phase": "configurePhase" } Running phase: configurePhase @nix { "action": "setPhase", "phase": "buildPhase" } Running phase: buildPhase Executing cargoBuildHook ++ env CC_X86_64_UNKNOWN_LINUX_GNU=/nix/store/ihhhd1r1a2wb4ndm24rnm83rfnjw5n0z-gcc-wrapper-12.3.0/bin/cc CXX_X86_64_UNKNOWN_LINUX_GNU=/nix/store/ihhhd1r1a2wb4ndm24rnm83rfnjw5n0z-gcc-wrapper-12.3.0/bin/c++ CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER=/nix/store/ihhhd1r1a2wb4ndm24rnm83rfnjw5n0z-gcc-wrapper-12.3.0/bin/cc CC_X86_64_UNKNOWN_LINUX_GNU=/nix/store/ihhhd1r1a2wb4ndm24rnm83rfnjw5n0z-gcc-wrapper-12.3.0/bin/cc CXX_X86_64_UNKNOWN_LINUX_GNU=/nix/store/ihhhd1r1a2wb4ndm24rnm83rfnjw5n0z-gcc-wrapper-12.3.0/bin/c++ CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER=/nix/store/ihhhd1r1a2wb4ndm24rnm83rfnjw5n0z-gcc-wrapper-12.3.0/bin/cc CARGO_BUILD_TARGET=x86_64-unknown-linux-gnu HOST_CC=/nix/store/ihhhd1r1a2wb4ndm24rnm83rfnjw5n0z-gcc-wrapper-12.3.0/bin/cc HOST_CXX=/nix/store/ihhhd1r1a2wb4ndm24rnm83rfnjw5n0z-gcc-wrapper-12.3.0/bin/c++ cargo build -j 12 --target x86_64-unknown-linux-gnu --frozen --profile release Compiling proc-macro2 v0.4.30 Compiling unicode-xid v0.1.0 Compiling syn v0.15.44 Compiling heapless v0.8.0 Compiling byteorder v1.5.0 Compiling cc v1.1.6 Compiling stable_deref_trait v1.2.0 Compiling plain v0.2.3 Compiling scroll v0.12.0 Compiling linux-raw-sys v0.6.4 Compiling constcat v0.5.0 Compiling log v0.4.22 Compiling cfg-match v0.2.1 Compiling embedded-io v0.6.1 Compiling hash32 v0.3.1 Compiling goblin v0.8.2 Compiling quote v0.6.13 Compiling nix-ld v2.0.0 (/build/84khmnncb095j174g25zb1cq99i8lfi0-source) Compiling default-env v0.1.1 error: `MaybeUninit::<T>::zeroed` is not yet stable as a const fn --> src/arch.rs:54:37 | 54 | pub const NIX_LD_SYSTEM_ENV: &str = concat!("NIX_LD_", NIX_SYSTEM); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: add `#![feature(const_maybe_uninit_zeroed)]` to the crate attributes to enable = note: this error originates in the macro `$crate::_concat_slices` which comes from the expansion of the macro `concat` (in Nightly builds, run with -Z macro-backtrace for more info) error: `MaybeUninit::<T>::zeroed` is not yet stable as a const fn --> src/arch.rs:55:50 | 55 | pub const NIX_LD_LIBRARY_PATH_SYSTEM_ENV: &str = concat!("NIX_LD_LIBRARY_PATH_", NIX_SYSTEM); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: add `#![feature(const_maybe_uninit_zeroed)]` to the crate attributes to enable = note: this error originates in the macro `$crate::_concat_slices` which comes from the expansion of the macro `concat` (in Nightly builds, run with -Z macro-backtrace for more info) error: `MaybeUninit::<T>::zeroed` is not yet stable as a const fn --> src/main.rs:34:41 | 34 | CStr::from_bytes_with_nul_unchecked(concat_slices!([u8]: | _________________________________________^ 35 | | default_env!("DEFAULT_NIX_LD", "/run/current-system/sw/share/nix-ld/lib/ld.so").as_bytes(), 36 | | b"\0" 37 | | )) | |_____^ | = help: add `#![feature(const_maybe_uninit_zeroed)]` to the crate attributes to enable = note: this error originates in the macro `$crate::_concat_slices` which comes from the expansion of the macro `concat_slices` (in Nightly builds, run with -Z macro-backtrace for more info) error: could not evaluate constant pattern --> src/main.rs:85:13 | 85 | NIX_LD_SYSTEM_ENV_BYTES => { | ^^^^^^^^^^^^^^^^^^^^^^^ error: could not evaluate constant pattern --> src/main.rs:91:13 | 91 | NIX_LD_LIBRARY_PATH_SYSTEM_ENV_BYTES => { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ warning: unreachable pattern --> src/main.rs:88:13 | 85 | NIX_LD_SYSTEM_ENV_BYTES => { | ----------------------- matches any value ... 88 | b"NIX_LD" => { | ^^^^^^^^^ unreachable pattern | = note: `#[warn(unreachable_patterns)]` on by default warning: unreachable pattern --> src/main.rs:91:13 | 85 | NIX_LD_SYSTEM_ENV_BYTES => { | ----------------------- matches any value ... 91 | NIX_LD_LIBRARY_PATH_SYSTEM_ENV_BYTES => { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable pattern warning: unreachable pattern --> src/main.rs:94:13 | 85 | NIX_LD_SYSTEM_ENV_BYTES => { | ----------------------- matches any value ... 94 | b"NIX_LD_LIBRARY_PATH" => { | ^^^^^^^^^^^^^^^^^^^^^^ unreachable pattern warning: unreachable pattern --> src/main.rs:97:13 | 85 | NIX_LD_SYSTEM_ENV_BYTES => { | ----------------------- matches any value ... 97 | b"LD_LIBRARY_PATH" => { | ^^^^^^^^^^^^^^^^^^ unreachable pattern warning: unreachable pattern --> src/main.rs:100:13 | 85 | NIX_LD_SYSTEM_ENV_BYTES => { | ----------------------- matches any value ... 100 | _ => {} | ^ unreachable pattern warning: `nix-ld` (bin "nix-ld") generated 5 warnings error: could not compile `nix-ld` (bin "nix-ld") due to 5 previous errors; 5 warnings emitted
Checking out the repository directly to the same commit that is in the flake.lock and compiling there works just fine
What branch are you running on? I only test this for nixos-unstable. If you are on nixos stable, it might be better to just use the version that is part of nixpkgs.
I'm attempting to use nix-ld in my system, I have added it to my flake as described in the readme:
flake.nix
``` inputs = { ... nixpkgs-for-nix-ld.url = "github:NixOS/nixpkgs/20f77aa09916374aa3141cbc605c955626762c9a"; nix-ld = { url = "github:Mic92/nix-ld"; inputs.nixpkgs.follows = "nixpkgs-for-nix-ld"; }; }; outputs = { nixpkgs, home-manager, self, nix-ld, ... }@inputs: ... modules = [ ... nix-ld.nixosModules.nix-ld { programs.nix-ld.dev.enable = true; } ]; ```flake.lock
``` "nix-ld": { "inputs": { "flake-compat": "flake-compat", "flake-utils": "flake-utils", "nixpkgs": [ "nixpkgs-for-nix-ld" ] }, "locked": { "lastModified": 1721411691, "narHash": "sha256-fN0NjkYcQrdVSvWlSnvdu8XD34q8tl84SEz5BOJYROA=", "owner": "Mic92", "repo": "nix-ld", "rev": "7a990656e51465a18ba70f49c2cf9c8d0947b4c9", "type": "github" }, "original": { "owner": "Mic92", "repo": "nix-ld", "type": "github" } }, ```but when I run
nixos-rebuild switch
the build fails with compile errors in nix-ldChecking out the repository directly to the same commit that is in the flake.lock and compiling there works just fine