summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorJörg Thalheim <Mic92@users.noreply.github.com>2021-05-11 09:46:01 +0100
committerGitHub <noreply@github.com>2021-05-11 09:46:01 +0100
commit6d1287860d46af5e1857ea427c86192ddaff929d (patch)
treefbb6cb8e6c10ff6b0feca18ea524bc8b11e51e41 /pkgs
parent7982550ac43ffb81dcff7a86d10508409a5737b4 (diff)
parent270ee17d414469783daccba718a20e31407c6729 (diff)
downloadnixpkgs-6d1287860d46af5e1857ea427c86192ddaff929d.tar
nixpkgs-6d1287860d46af5e1857ea427c86192ddaff929d.tar.gz
nixpkgs-6d1287860d46af5e1857ea427c86192ddaff929d.tar.bz2
nixpkgs-6d1287860d46af5e1857ea427c86192ddaff929d.tar.lz
nixpkgs-6d1287860d46af5e1857ea427c86192ddaff929d.tar.xz
nixpkgs-6d1287860d46af5e1857ea427c86192ddaff929d.tar.zst
nixpkgs-6d1287860d46af5e1857ea427c86192ddaff929d.zip
Merge pull request #113225 from mroi/patch-linux
linux: improve cross compilation with clang
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/os-specific/linux/kernel/generate-config.pl2
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix10
2 files changed, 8 insertions, 4 deletions
diff --git a/pkgs/os-specific/linux/kernel/generate-config.pl b/pkgs/os-specific/linux/kernel/generate-config.pl
index 6a2aec809a1..82e1cb66e2b 100644
--- a/pkgs/os-specific/linux/kernel/generate-config.pl
+++ b/pkgs/os-specific/linux/kernel/generate-config.pl
@@ -40,7 +40,7 @@ close ANSWERS;
 sub runConfig {
 
     # Run `make config'.
-    my $pid = open2(\*IN, \*OUT, "make -C $ENV{SRC} O=$buildRoot config SHELL=bash ARCH=$ENV{ARCH}");
+    my $pid = open2(\*IN, \*OUT, "make -C $ENV{SRC} O=$buildRoot config SHELL=bash ARCH=$ENV{ARCH} CC=$ENV{CC} HOSTCC=$ENV{HOSTCC} HOSTCXX=$ENV{HOSTCXX}");
 
     # Parse the output, look for questions and then send an
     # appropriate answer.
diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index 68a1fcdb0e6..b35c84513e6 100644
--- a/pkgs/os-specific/linux/kernel/generic.nix
+++ b/pkgs/os-specific/linux/kernel/generic.nix
@@ -128,12 +128,16 @@ let
 
     buildPhase = ''
       export buildRoot="''${buildRoot:-build}"
+      export HOSTCC=$CC_FOR_BUILD
+      export HOSTCXX=$CXX_FOR_BUILD
+      export HOSTAR=$AR_FOR_BUILD
+      export HOSTLD=$LD_FOR_BUILD
 
       # Get a basic config file for later refinement with $generateConfig.
-      make -C .  O="$buildRoot" $kernelBaseConfig \
+      make -C . O="$buildRoot" $kernelBaseConfig \
           ARCH=$kernelArch \
-          HOSTCC=${buildPackages.stdenv.cc.targetPrefix}gcc \
-          HOSTCXX=${buildPackages.stdenv.cc.targetPrefix}g++
+          HOSTCC=$HOSTCC HOSTCXX=$HOSTCXX HOSTAR=$HOSTAR HOSTLD=$HOSTLD \
+          CC=$CC OBJCOPY=$OBJCOPY OBJDUMP=$OBJDUMP READELF=$READELF
 
       # Create the config file.
       echo "generating kernel configuration..."