diff --git a/pkgs/by-name/ni/nix-ld/package.nix b/pkgs/by-name/ni/nix-ld/package.nix index c53db6681ff0..dd659a0aeebc 100644 --- a/pkgs/by-name/ni/nix-ld/package.nix +++ b/pkgs/by-name/ni/nix-ld/package.nix @@ -17,6 +17,9 @@ rustPlatform.buildRustPackage rec { hash = "sha256-ULoitJD5bMu0pFvh35cY5EEYywxj4e2fYOpqZwKB1lk="; }; + # Submitted upstream: https://github.com/nix-community/nix-ld/pull/169 + patches = [ ./rust-1.88.patch ]; + useFetchCargoVendor = true; cargoHash = "sha256-cDbszVjZcomag0HZvXM+17SjDiGS07iPj78zgsXstHc="; diff --git a/pkgs/by-name/ni/nix-ld/rust-1.88.patch b/pkgs/by-name/ni/nix-ld/rust-1.88.patch new file mode 100644 index 000000000000..dac1fcfa1c8b --- /dev/null +++ b/pkgs/by-name/ni/nix-ld/rust-1.88.patch @@ -0,0 +1,33 @@ +diff --git a/src/arch.rs b/src/arch.rs +index a998697..45ec2cb 100644 +--- a/src/arch.rs ++++ b/src/arch.rs +@@ -140,7 +140,7 @@ cfg_match! { + target_arch = "x86_64" => { + pub const ENTRY_TRAMPOLINE: Option !> = Some(entry_trampoline); + +- #[naked] ++ #[unsafe(naked)] + unsafe extern "C" fn entry_trampoline() -> ! { + core::arch::naked_asm!( + "lea r10, [rip + {context}]", +@@ -159,7 +159,7 @@ cfg_match! { + target_arch = "aarch64" => { + pub const ENTRY_TRAMPOLINE: Option !> = Some(entry_trampoline); + +- #[naked] ++ #[unsafe(naked)] + unsafe extern "C" fn entry_trampoline() -> ! { + core::arch::naked_asm!( + "adrp x8, {context}", +diff --git a/src/sys.rs b/src/sys.rs +index 109d809..bf085d9 100644 +--- a/src/sys.rs ++++ b/src/sys.rs +@@ -181,6 +181,5 @@ pub fn new_slice_leak(size: usize) -> Option<&'static mut [u8]> { + + #[cfg(not(test))] + #[lang = "eh_personality"] +-#[no_mangle] + pub extern fn rust_eh_personality() { + }