diff options
author | John Ericson <Ericson2314@yahoo.com> | 2017-08-24 11:35:04 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-24 11:35:04 -0400 |
commit | 3964990a3f091b69ecb2eac158066cec77c7d0cb (patch) | |
tree | 1d66260629428a1ff9a1f59294c3ca5c19506ab6 /pkgs/os-specific | |
parent | 5674da5aed5edcab01378a506707fb78574c5b75 (diff) | |
parent | 791ce593ce065cf074edf1509ff52ebc69136d9e (diff) | |
download | nixlib-3964990a3f091b69ecb2eac158066cec77c7d0cb.tar nixlib-3964990a3f091b69ecb2eac158066cec77c7d0cb.tar.gz nixlib-3964990a3f091b69ecb2eac158066cec77c7d0cb.tar.bz2 nixlib-3964990a3f091b69ecb2eac158066cec77c7d0cb.tar.lz nixlib-3964990a3f091b69ecb2eac158066cec77c7d0cb.tar.xz nixlib-3964990a3f091b69ecb2eac158066cec77c7d0cb.tar.zst nixlib-3964990a3f091b69ecb2eac158066cec77c7d0cb.zip |
Merge pull request #28519 from obsidiansystems/linux-headers-improve
linux-headers: Improve derivation, removing cross arg
Diffstat (limited to 'pkgs/os-specific')
-rw-r--r-- | pkgs/os-specific/linux/kernel-headers/4.4.nix | 44 |
1 files changed, 19 insertions, 25 deletions
diff --git a/pkgs/os-specific/linux/kernel-headers/4.4.nix b/pkgs/os-specific/linux/kernel-headers/4.4.nix index be6dd8472012..716ad799bc64 100644 --- a/pkgs/os-specific/linux/kernel-headers/4.4.nix +++ b/pkgs/os-specific/linux/kernel-headers/4.4.nix @@ -1,19 +1,16 @@ -{ stdenv, fetchurl, perl, cross ? null }: +{ stdenvNoCC, lib, buildPackages +, buildPlatform, hostPlatform +, fetchurl, perl +}: -assert cross == null -> stdenv.isLinux; +assert hostPlatform.isLinux; let - version = "4.4.10"; - - kernelHeadersBaseConfig = - if cross == null - then stdenv.platform.kernelHeadersBaseConfig - else cross.platform.kernelHeadersBaseConfig; - + inherit (hostPlatform.platform) kernelHeadersBaseConfig; in -stdenv.mkDerivation { +stdenvNoCC.mkDerivation { name = "linux-headers-${version}"; src = fetchurl { @@ -21,23 +18,20 @@ stdenv.mkDerivation { sha256 = "1kpjvvd9q9wwr3314q5ymvxii4dv2d27295bzly225wlc552xhja"; }; - targetConfig = if cross != null then cross.config else null; + targetConfig = if hostPlatform != buildPlatform then hostPlatform.config else null; - platform = - if cross != null then cross.platform.kernelArch else - if stdenv.system == "i686-linux" then "i386" else - if stdenv.system == "x86_64-linux" then "x86_64" else - if stdenv.system == "powerpc-linux" then "powerpc" else - if stdenv.isArm then "arm" else - if stdenv.platform ? kernelArch then stdenv.platform.kernelArch else - abort "don't know what the kernel include directory is called for this platform"; + platform = hostPlatform.platform.kernelArch or ( + if hostPlatform.system == "i686-linux" then "i386" else + if hostPlatform.system == "x86_64-linux" then "x86_64" else + if hostPlatform.system == "powerpc-linux" then "powerpc" else + if hostPlatform.isArm then "arm" else + abort "don't know what the kernel include directory is called for this platform"); - buildInputs = [perl]; + # It may look odd that we use `stdenvNoCC`, and yet explicit depend on a cc. + # We do this so we have a build->build, not build->host, C compiler. + nativeBuildInputs = [ buildPackages.stdenv.cc perl ]; - extraIncludeDirs = - if cross != null then - (if cross.arch == "powerpc" then ["ppc"] else []) - else if stdenv.system == "powerpc-linux" then ["ppc"] else []; + extraIncludeDirs = lib.optional hostPlatform.isPowerPC ["ppc"]; buildPhase = '' if test -n "$targetConfig"; then @@ -63,7 +57,7 @@ stdenv.mkDerivation { fi ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Header files and scripts for Linux kernel"; license = licenses.gpl2; platforms = platforms.linux; |