summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lib/systems/inspect.nix1
-rw-r--r--pkgs/os-specific/linux/systemd/default.nix9
-rw-r--r--pkgs/top-level/all-packages.nix4
3 files changed, 9 insertions, 5 deletions
diff --git a/lib/systems/inspect.nix b/lib/systems/inspect.nix
index 45c9360cc0f..fd4128c586d 100644
--- a/lib/systems/inspect.nix
+++ b/lib/systems/inspect.nix
@@ -38,6 +38,7 @@ rec {
 
     Kexecable    = map (family: { kernel = kernels.linux; cpu.family = family; })
                      [ "x86" "arm" "aarch64" "mips" ];
+    Efi          = map (family: { cpu.family = family; }) [ "x86" "arm" ];
   };
 
   matchAnyAttrs = patterns:
diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix
index 9085b1703c0..383e3c340e6 100644
--- a/pkgs/os-specific/linux/systemd/default.nix
+++ b/pkgs/os-specific/linux/systemd/default.nix
@@ -8,6 +8,7 @@
 , ninja, meson, python3Packages, glibcLocales
 , patchelf
 , getent
+, hostPlatform
 }:
 
 assert stdenv.isLinux;
@@ -71,10 +72,10 @@ in
       "-Dsystem-gid-max=499"
   #    "-Dtime-epoch=1"
 
-      (if stdenv.isArm then "-Dgnu-efi=false" else "-Dgnu-efi=true")
-      "-Defi-libdir=${gnu-efi}/lib"
-      "-Defi-includedir=${gnu-efi}/include/efi"
-      "-Defi-ldsdir=${gnu-efi}/lib"
+      (if stdenv.isArm || !hostPlatform.isEfi then "-Dgnu-efi=false" else "-Dgnu-efi=true")
+      "-Defi-libdir=${toString gnu-efi}/lib"
+      "-Defi-includedir=${toString gnu-efi}/include/efi"
+      "-Defi-ldsdir=${toString gnu-efi}/lib"
 
       "-Dsysvinit-path="
       "-Dsysvrcnd-path="
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 675ad092a30..6674eab36d6 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -8995,7 +8995,9 @@ with pkgs;
 
   gnu-config = callPackage ../development/libraries/gnu-config { };
 
-  gnu-efi = callPackage ../development/libraries/gnu-efi { };
+  gnu-efi = if hostPlatform.isEfi
+              then callPackage ../development/libraries/gnu-efi { }
+            else null;
 
   gnutls = callPackage
     (if stdenv.isDarwin