Merge #115406: stdenv riscv64-linux: cross-compile boot

This commit is contained in:
Vladimír Čunát 2021-11-29 20:24:47 +01:00
commit 9bd3cf0063
No known key found for this signature in database
GPG Key ID: E747DF1F9575A3AA
3 changed files with 11 additions and 0 deletions

View File

@ -81,6 +81,8 @@ let
else if targetPlatform.system == "aarch64-linux" then "${sharedLibraryLoader}/lib/ld-linux-aarch64.so.1"
else if targetPlatform.system == "powerpc-linux" then "${sharedLibraryLoader}/lib/ld.so.1"
else if targetPlatform.isMips then "${sharedLibraryLoader}/lib/ld.so.1"
# `ld-linux-riscv{32,64}-<abi>.so.1`
else if targetPlatform.isRiscV then "${sharedLibraryLoader}/lib/ld-linux-riscv*.so.1"
else if targetPlatform.isDarwin then "/usr/lib/dyld"
else if targetPlatform.isFreeBSD then "/libexec/ld-elf.so.1"
else if lib.hasSuffix "pc-gnu" targetPlatform.config then "ld.so.1"

View File

@ -279,6 +279,10 @@ in
};
};
};
# `libtool` comes with obsolete config.sub/config.guess that don't recognize Risc-V.
extraNativeBuildInputs =
lib.optional (localSystem.isRiscV) prevStage.updateAutotoolsGnuConfigScriptsHook;
})

View File

@ -160,6 +160,11 @@ in with pkgs; rec {
# pkgs/stdenv/linux/default.nix for the details.
cp -d ${isl_0_20.out}/lib/libisl*.so* $out/lib
'' + lib.optionalString (stdenv.hostPlatform.isRiscV) ''
# libatomic is required on RiscV platform for C/C++ atomics and pthread
# even though they may be translated into native instructions.
cp -d ${bootGCC.out}/lib/libatomic.a* $out/lib
'' + ''
cp -d ${bzip2.out}/lib/libbz2.so* $out/lib