e38b74ba89
In `scripts/Makefile.modinst`, the code that generates the list of modules to install passes file names via the command line. When installing a grsecurity kernel, this list appears to exceed the shell's argument list limit, as in make[2]: execvp: /nix/store/[...]-bash-4.3-p46/bin/bash: Argument list too long The build does not fail, however, but the list of modules to be installed ends up being empty. Thus, the resulting kernel package output contains no modules, rendering it useless. We work around this by patching the makefile to use `find -exec` to process files. Why this would occur for grsecurity and not other kernels is unknown, most likely there's something *else* that is actually causing this behaviour, so this is a temporary fix until that cause is found. Fixes https://github.com/NixOS/nixpkgs/issues/20490
13 lines
491 B
Diff
13 lines
491 B
Diff
diff -ruN a/scripts/Makefile.modinst b/scripts/Makefile.modinst
|
|
--- a/scripts/Makefile.modinst 2016-11-15 07:49:06.000000000 +0100
|
|
+++ b/scripts/Makefile.modinst 2016-11-18 13:45:07.977270500 +0100
|
|
@@ -9,7 +9,7 @@
|
|
|
|
#
|
|
|
|
-__modules := $(sort $(shell grep -h '\.ko$$' /dev/null $(wildcard $(MODVERDIR)/*.mod)))
|
|
+__modules := $(shell find $(MODVERDIR) -name '*.mod' -exec grep -h '\.ko$$' '{}' \; | sort)
|
|
modules := $(patsubst %.o,%.ko,$(wildcard $(__modules:.ko=.o)))
|
|
|
|
PHONY += $(modules)
|