diff options
author | Weijia Wang <9713184+wegank@users.noreply.github.com> | 2024-01-27 04:17:36 +0100 |
---|---|---|
committer | Weijia Wang <9713184+wegank@users.noreply.github.com> | 2024-01-27 04:17:36 +0100 |
commit | 43545381393695f722344b085620937fa3367a8a (patch) | |
tree | e2b7bdf1f0d5453341a4619f8a63948c6e6b2f76 /pkgs/build-support | |
parent | 4757f0e68df99bc7177c68dcc7c523e391d213cf (diff) | |
parent | 741c01dfc130418b134d48dfbb68f9462f853e32 (diff) | |
download | nixlib-43545381393695f722344b085620937fa3367a8a.tar nixlib-43545381393695f722344b085620937fa3367a8a.tar.gz nixlib-43545381393695f722344b085620937fa3367a8a.tar.bz2 nixlib-43545381393695f722344b085620937fa3367a8a.tar.lz nixlib-43545381393695f722344b085620937fa3367a8a.tar.xz nixlib-43545381393695f722344b085620937fa3367a8a.tar.zst nixlib-43545381393695f722344b085620937fa3367a8a.zip |
Merge branch 'staging-next' into staging
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/build-graalvm-native-image/default.nix | 5 | ||||
-rw-r--r-- | pkgs/build-support/kernel/compress-firmware-xz.nix | 6 | ||||
-rw-r--r-- | pkgs/build-support/rust/lib/default.nix | 33 |
3 files changed, 25 insertions, 19 deletions
diff --git a/pkgs/build-support/build-graalvm-native-image/default.nix b/pkgs/build-support/build-graalvm-native-image/default.nix index 815c2bf14aae..f0e73901c8db 100644 --- a/pkgs/build-support/build-graalvm-native-image/default.nix +++ b/pkgs/build-support/build-graalvm-native-image/default.nix @@ -16,14 +16,13 @@ "-H:Name=${executable}" "-march=compatibility" "--verbose" - "-J-Dsun.stdout.encoding=UTF-8" - "-J-Dsun.stderr.encoding=UTF-8" ] # Extra arguments to be passed to the native-image , extraNativeImageBuildArgs ? [ ] # XMX size of GraalVM during build , graalvmXmx ? "-J-Xmx6g" , meta ? { } +, LC_ALL ? "en_US.UTF-8" , ... } @ args: @@ -45,6 +44,8 @@ in stdenv.mkDerivation ({ inherit dontUnpack jar; + env = { inherit LC_ALL; }; + nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ graalvmDrv glibcLocales removeReferencesTo ]; nativeImageBuildArgs = nativeImageBuildArgs ++ extraNativeImageBuildArgs ++ [ graalvmXmx ]; diff --git a/pkgs/build-support/kernel/compress-firmware-xz.nix b/pkgs/build-support/kernel/compress-firmware-xz.nix index cfb06a5c0f15..a69b31bb3bd0 100644 --- a/pkgs/build-support/kernel/compress-firmware-xz.nix +++ b/pkgs/build-support/kernel/compress-firmware-xz.nix @@ -15,6 +15,10 @@ runCommand "${firmware.name}-xz" args '' sh -c 'xz -9c -T1 -C crc32 --lzma2=dict=2MiB "${firmware}/$1" > "$1.xz"' --) (cd ${firmware} && find lib/firmware -type l) | while read link; do target="$(readlink "${firmware}/$link")" - ln -vs -- "''${target/^${firmware}/$out}.xz" "$out/$link.xz" + if [ -f $target ]; then + ln -vs -- "''${target/^${firmware}/$out}.xz" "$out/$link.xz" + else + ln -vs -- "''${target/^${firmware}/$out}" "$out/$link" + fi done '' diff --git a/pkgs/build-support/rust/lib/default.nix b/pkgs/build-support/rust/lib/default.nix index e70b8229d356..e09f913bfbd3 100644 --- a/pkgs/build-support/rust/lib/default.nix +++ b/pkgs/build-support/rust/lib/default.nix @@ -1,7 +1,8 @@ { lib , stdenv -, buildPackages -, targetPackages +, pkgsBuildHost +, pkgsBuildTarget +, pkgsTargetTarget }: rec { @@ -16,26 +17,26 @@ rec { # As a workaround for https://github.com/rust-lang/rust/issues/89626 use lld on pkgsStatic aarch64 shouldUseLLD = platform: platform.isAarch64 && platform.isStatic && !stdenv.isDarwin; - ccForBuild = "${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc"; - cxxForBuild = "${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}c++"; + ccForBuild = "${pkgsBuildHost.stdenv.cc}/bin/${pkgsBuildHost.stdenv.cc.targetPrefix}cc"; + cxxForBuild = "${pkgsBuildHost.stdenv.cc}/bin/${pkgsBuildHost.stdenv.cc.targetPrefix}c++"; linkerForBuild = ccForBuild; ccForHost = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"; cxxForHost = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++"; linkerForHost = if shouldUseLLD stdenv.targetPlatform && !stdenv.cc.bintools.isLLVM - then "${buildPackages.lld}/bin/ld.lld" + then "${pkgsBuildHost.llvmPackages.bintools}/bin/${stdenv.cc.targetPrefix}ld.lld" else ccForHost; - # Unfortunately we must use the dangerous `targetPackages` here + # Unfortunately we must use the dangerous `pkgsTargetTarget` here # because hooks are artificially phase-shifted one slot earlier # (they go in nativeBuildInputs, so the hostPlatform looks like # a targetPlatform to them). - ccForTarget = "${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc"; - cxxForTarget = "${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}c++"; - linkerForTarget = if shouldUseLLD targetPackages.stdenv.targetPlatform - && !targetPackages.stdenv.cc.bintools.isLLVM # whether stdenv's linker is lld already - then "${buildPackages.lld}/bin/ld.lld" + ccForTarget = "${pkgsTargetTarget.stdenv.cc}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}cc"; + cxxForTarget = "${pkgsTargetTarget.stdenv.cc}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}c++"; + linkerForTarget = if shouldUseLLD pkgsTargetTarget.stdenv.targetPlatform + && !pkgsTargetTarget.stdenv.cc.bintools.isLLVM # whether stdenv's linker is lld already + then "${pkgsBuildTarget.llvmPackages.bintools}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}ld.lld" else ccForTarget; rustBuildPlatform = stdenv.buildPlatform.rust.rustcTarget; @@ -56,9 +57,9 @@ rec { setEnv = '' env \ '' - # Due to a bug in how splicing and targetPackages works, in - # situations where targetPackages is irrelevant - # targetPackages.stdenv.cc is often simply wrong. We must omit + # Due to a bug in how splicing and pkgsTargetTarget works, in + # situations where pkgsTargetTarget is irrelevant + # pkgsTargetTarget.stdenv.cc is often simply wrong. We must omit # the following lines when rustTargetPlatform collides with # rustHostPlatform. + lib.optionalString (rustTargetPlatform != rustHostPlatform) '' @@ -74,8 +75,8 @@ rec { "CXX_${stdenv.buildPlatform.rust.cargoEnvVarTarget}=${cxxForBuild}" \ "CARGO_TARGET_${stdenv.buildPlatform.rust.cargoEnvVarTarget}_LINKER=${linkerForBuild}" \ "CARGO_BUILD_TARGET=${rustBuildPlatform}" \ - "HOST_CC=${buildPackages.stdenv.cc}/bin/cc" \ - "HOST_CXX=${buildPackages.stdenv.cc}/bin/c++" \ + "HOST_CC=${pkgsBuildHost.stdenv.cc}/bin/cc" \ + "HOST_CXX=${pkgsBuildHost.stdenv.cc}/bin/c++" \ ''; }; } // lib.mapAttrs (old: new: platform: |