diff --git a/lib/systems/inspect.nix b/lib/systems/inspect.nix index 1dcb4af35e6..380c36c2b9b 100644 --- a/lib/systems/inspect.nix +++ b/lib/systems/inspect.nix @@ -19,6 +19,7 @@ rec { Linux = { kernel = kernels.linux; }; SunOS = { kernel = kernels.solaris; }; FreeBSD = { kernel = kernels.freebsd; }; + Hurd = { kernel = kernels.hurd; }; NetBSD = { kernel = kernels.netbsd; }; OpenBSD = { kernel = kernels.openbsd; }; Windows = { kernel = kernels.windows; }; @@ -27,7 +28,6 @@ rec { Arm32 = recursiveUpdate patterns.Arm patterns."32bit"; Arm64 = recursiveUpdate patterns.Arm patterns."64bit"; - }; predicates = mapAttrs' diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix index b94caeb5758..34272b45b8b 100644 --- a/lib/systems/parse.nix +++ b/lib/systems/parse.nix @@ -77,6 +77,7 @@ rec { { darwin = { execFormat = macho; families = { inherit unix; }; }; freebsd = { execFormat = elf; families = { inherit unix bsd; }; }; + hurd = { execFormat = elf; families = { inherit unix; }; }; linux = { execFormat = elf; families = { inherit unix; }; }; netbsd = { execFormat = elf; families = { inherit unix bsd; }; }; none = { execFormat = unknown; families = { inherit unix; }; }; @@ -113,7 +114,9 @@ rec { mkSkeletonFromList = l: { "2" = # We only do 2-part hacks for things Nix already supports if elemAt l 1 == "cygwin" - then { cpu = elemAt l 0; kernel = "windows"; abi = "cygnus"; } + then { cpu = elemAt l 0; kernel = "windows"; abi = "cygnus"; } + else if elemAt l 1 == "gnu" + then { cpu = elemAt l 0; kernel = "hurd"; abi = "gnu"; } else { cpu = elemAt l 0; kernel = elemAt l 1; }; "3" = # Awkwards hacks, beware! if elemAt l 1 == "apple" diff --git a/pkgs/development/compilers/gcc/4.8/default.nix b/pkgs/development/compilers/gcc/4.8/default.nix index 2d615e3b8e8..ee013809faf 100644 --- a/pkgs/development/compilers/gcc/4.8/default.nix +++ b/pkgs/development/compilers/gcc/4.8/default.nix @@ -226,7 +226,7 @@ stdenv.mkDerivation ({ libc_dev = stdenv.cc.libc_dev; postPatch = - if (stdenv.isGNU + if (stdenv.isHurd || (libcCross != null # e.g., building `gcc.crossDrv' && libcCross ? crossConfig && libcCross.crossConfig == "i586-pc-gnu") diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix index 93f46fdd0f6..872f78fcf37 100644 --- a/pkgs/development/compilers/gcc/4.9/default.nix +++ b/pkgs/development/compilers/gcc/4.9/default.nix @@ -230,7 +230,7 @@ stdenv.mkDerivation ({ libc_dev = stdenv.cc.libc_dev; postPatch = - if (stdenv.isGNU + if (stdenv.isHurd || (libcCross != null # e.g., building `gcc.crossDrv' && libcCross ? crossConfig && libcCross.crossConfig == "i586-pc-gnu") diff --git a/pkgs/development/compilers/gcc/5/default.nix b/pkgs/development/compilers/gcc/5/default.nix index 296b899830b..70cd0838390 100644 --- a/pkgs/development/compilers/gcc/5/default.nix +++ b/pkgs/development/compilers/gcc/5/default.nix @@ -247,7 +247,7 @@ stdenv.mkDerivation ({ ''; postPatch = - if (stdenv.isGNU + if (stdenv.isHurd || (libcCross != null # e.g., building `gcc.crossDrv' && libcCross ? crossConfig && libcCross.crossConfig == "i586-pc-gnu") diff --git a/pkgs/development/compilers/gcc/6/default.nix b/pkgs/development/compilers/gcc/6/default.nix index c23968d2126..1a95f476ada 100644 --- a/pkgs/development/compilers/gcc/6/default.nix +++ b/pkgs/development/compilers/gcc/6/default.nix @@ -229,7 +229,7 @@ stdenv.mkDerivation ({ hardeningDisable = [ "format" ]; postPatch = - if (stdenv.isGNU + if (stdenv.isHurd || (libcCross != null # e.g., building `gcc.crossDrv' && libcCross ? crossConfig && libcCross.crossConfig == "i586-pc-gnu") diff --git a/pkgs/development/compilers/gcc/snapshot/default.nix b/pkgs/development/compilers/gcc/snapshot/default.nix index 9c3b7a4e7df..cbb373eb3ed 100644 --- a/pkgs/development/compilers/gcc/snapshot/default.nix +++ b/pkgs/development/compilers/gcc/snapshot/default.nix @@ -230,7 +230,7 @@ stdenv.mkDerivation ({ hardeningDisable = [ "format" ]; postPatch = - if (stdenv.isGNU + if (stdenv.isHurd || (libcCross != null # e.g., building `gcc.crossDrv' && libcCross ? crossConfig && libcCross.crossConfig == "i586-pc-gnu") diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix index 0f9c4d7895d..ceca0432f3e 100644 --- a/pkgs/stdenv/generic/default.nix +++ b/pkgs/stdenv/generic/default.nix @@ -402,13 +402,10 @@ let # Utility flags to test the type of platform. inherit (hostPlatform) - isDarwin isLinux isSunOS isCygwin isFreeBSD isOpenBSD isi686 isx86_64 - is64bit isMips isBigEndian; + isDarwin isLinux isSunOS isHurd isCygwin isFreeBSD isOpenBSD + isi686 isx86_64 is64bit isMips isBigEndian; isArm = hostPlatform.isArm32; isAarch64 = hostPlatform.isArm64; - # Other code instead checks for anything using GNU userland, - # e.g. GNU/linux. This refers just to GNU Hurd. - isGNU = system == "i686-gnu"; # Whether we should run paxctl to pax-mark binaries. needsPax = isLinux;