summary refs log tree commit diff
path: root/pkgs/os-specific/bsd
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2021-04-18 16:53:11 +0000
committerAlyssa Ross <hi@alyssa.is>2021-04-18 19:16:51 +0000
commitddcb48cc3d176bae330a3d9fd0dfcc4038f1085b (patch)
treee7917b7ca7b1b426989947bb6aa51f6561ee44a3 /pkgs/os-specific/bsd
parent37ac32a351f3ce93bd731e9fbf5f54f1c37829f1 (diff)
downloadnixpkgs-ddcb48cc3d176bae330a3d9fd0dfcc4038f1085b.tar
nixpkgs-ddcb48cc3d176bae330a3d9fd0dfcc4038f1085b.tar.gz
nixpkgs-ddcb48cc3d176bae330a3d9fd0dfcc4038f1085b.tar.bz2
nixpkgs-ddcb48cc3d176bae330a3d9fd0dfcc4038f1085b.tar.lz
nixpkgs-ddcb48cc3d176bae330a3d9fd0dfcc4038f1085b.tar.xz
nixpkgs-ddcb48cc3d176bae330a3d9fd0dfcc4038f1085b.tar.zst
nixpkgs-ddcb48cc3d176bae330a3d9fd0dfcc4038f1085b.zip
netbsd.sys: actually build the kernel
Before, we were only building the headers, firmware, and bootloader.

CONFIG could be overridden to use another pre-defined kernel, but
there's no way to pass a custom kernel configuration yet.

Tested booting the built kernel in a NetBSD VM.
Diffstat (limited to 'pkgs/os-specific/bsd')
-rw-r--r--pkgs/os-specific/bsd/netbsd/default.nix29
1 files changed, 26 insertions, 3 deletions
diff --git a/pkgs/os-specific/bsd/netbsd/default.nix b/pkgs/os-specific/bsd/netbsd/default.nix
index c94f00f4782..112a70917cf 100644
--- a/pkgs/os-specific/bsd/netbsd/default.nix
+++ b/pkgs/os-specific/bsd/netbsd/default.nix
@@ -433,12 +433,35 @@ let
     path = "sys";
     version = "8.0";
     sha256 = "123ilg8fqmp69bw6bs6nh98fpi1v2n9lamrzar61p27ji6sj7g0w";
+
+    CONFIG = "GENERIC";
+
     propagatedBuildInputs = [ include ];
-    nativeBuildInputs = [ makeMinimal install tsort lorder statHook uudecode ];
+    nativeBuildInputs = [
+      makeMinimal install tsort lorder statHook uudecode config genassym
+    ];
+
+    postConfigure = ''
+      pushd arch/$MACHINE/conf
+      config $CONFIG
+      popd
+    '';
+
+    makeFlags = [ "FIRMWAREDIR=$(out)/libdata/firmware" ];
+    hardeningDisable = [ "pic" ];
+    MKKMOD = "no";
+    NIX_CFLAGS_COMPILE = [ "-Wa,--no-warn" ];
+
+    postBuild = ''
+      make -C arch/$MACHINE/compile/$CONFIG $makeFlags
+    '';
+
+    postInstall = ''
+      cp arch/$MACHINE/compile/$CONFIG/netbsd $out
+    '';
+
     meta.platforms = lib.platforms.netbsd;
     extraPaths = [ common.src ];
-    MKKMOD = "no";
-    makeFlags = [ "FIRMWAREDIR=$(out)/libdata/firmware" ];
   };
 
   headers = symlinkJoin {