summary refs log tree commit diff
path: root/pkgs/build-support/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/build-support/kernel')
-rw-r--r--pkgs/build-support/kernel/modules-closure.nix3
-rw-r--r--pkgs/build-support/kernel/modules-closure.sh2
2 files changed, 3 insertions, 2 deletions
diff --git a/pkgs/build-support/kernel/modules-closure.nix b/pkgs/build-support/kernel/modules-closure.nix
index 86015a8b182..55377859b24 100644
--- a/pkgs/build-support/kernel/modules-closure.nix
+++ b/pkgs/build-support/kernel/modules-closure.nix
@@ -3,11 +3,12 @@
 # the modules identified by `rootModules', plus their dependencies.
 # Also generate an appropriate modules.dep.
 
-{stdenv, kernel, rootModules, module_init_tools}:
+{stdenv, kernel, rootModules, module_init_tools, allowMissing ? false}:
 
 stdenv.mkDerivation {
   name = kernel.name + "-shrunk";
   builder = ./modules-closure.sh;
   inherit kernel rootModules module_init_tools;
   allowedReferences = ["out"];
+  allowMissing = if allowMissing then "true" else "";
 }
diff --git a/pkgs/build-support/kernel/modules-closure.sh b/pkgs/build-support/kernel/modules-closure.sh
index d16ff46ecb9..44e816c4208 100644
--- a/pkgs/build-support/kernel/modules-closure.sh
+++ b/pkgs/build-support/kernel/modules-closure.sh
@@ -15,7 +15,7 @@ closure=
 for module in $rootModules; do
     echo "root module: $module"
     deps=$(modprobe --config /dev/null --set-version "$version" --show-depends "$module" \
-        | sed 's/^insmod //')
+    | sed 's/^insmod //') || if test -z "allowMissing"; then exit 1; fi
     #for i in $deps; do echo $i; done
     closure="$closure $deps"
 done