diff --git a/pkgs/os-specific/linux/kernel/multithreaded-rsapubkey-asn1.patch b/pkgs/os-specific/linux/kernel/multithreaded-rsapubkey-asn1.patch new file mode 100644 index 000000000000..9f5790862b65 --- /dev/null +++ b/pkgs/os-specific/linux/kernel/multithreaded-rsapubkey-asn1.patch @@ -0,0 +1,45 @@ + +From Yang Shi <> +Subject [PATCH] crypto: rsa - fix a potential race condition in build +Date Fri, 2 Dec 2016 15:41:04 -0800 + + +When building kernel with RSA enabled with multithreaded, the below +compile failure might be caught: + +| /buildarea/kernel-source/crypto/rsa_helper.c:18:28: fatal error: rsapubkey-asn1.h: No such file or directory +| #include "rsapubkey-asn1.h" +| ^ +| compilation terminated. +| CC crypto/rsa-pkcs1pad.o +| CC crypto/algboss.o +| CC crypto/testmgr.o +| make[3]: *** [/buildarea/kernel-source/scripts/Makefile.build:289: crypto/rsa_helper.o] Error 1 +| make[3]: *** Waiting for unfinished jobs.... +| make[2]: *** [/buildarea/kernel-source/Makefile:969: crypto] Error 2 +| make[1]: *** [Makefile:150: sub-make] Error 2 +| make: *** [Makefile:24: __sub-make] Error 2 + +The header file is not generated before rsa_helper is compiled, so +adding dependency to avoid such issue. + +Signed-off-by: Yang Shi + +--- + crypto/Makefile | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/crypto/Makefile b/crypto/Makefile +index 99cc64a..8db39f9 100644 +--- a/crypto/Makefile ++++ b/crypto/Makefile +@@ -40,6 +40,7 @@ obj-$(CONFIG_CRYPTO_ECDH) += ecdh_generic.o + + $(obj)/rsapubkey-asn1.o: $(obj)/rsapubkey-asn1.c $(obj)/rsapubkey-asn1.h + $(obj)/rsaprivkey-asn1.o: $(obj)/rsaprivkey-asn1.c $(obj)/rsaprivkey-asn1.h ++$(obj)/rsa_helper.o: $(obj)/rsa_helper.c $(obj)/rsaprivkey-asn1.h + clean-files += rsapubkey-asn1.c rsapubkey-asn1.h + clean-files += rsaprivkey-asn1.c rsaprivkey-asn1.h + +-- +2.0.2 diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix index 7e49cf17090c..5562608effaa 100644 --- a/pkgs/os-specific/linux/kernel/patches.nix +++ b/pkgs/os-specific/linux/kernel/patches.nix @@ -41,6 +41,12 @@ in rec { + multithreaded_rsapubkey = + { + name = "multithreaded-rsapubkey-asn1.patch"; + patch = ./multithreaded-rsapubkey-asn1.patch; + }; + bridge_stp_helper = { name = "bridge-stp-helper"; patch = ./bridge-stp-helper.patch; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9b6f913e1ac0..7dc9d7e07899 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11010,6 +11010,7 @@ in linux_4_8 = callPackage ../os-specific/linux/kernel/linux-4.8.nix { kernelPatches = [ kernelPatches.bridge_stp_helper + kernelPatches.multithreaded_rsapubkey # See pkgs/os-specific/linux/kernel/cpu-cgroup-v2-patches/README.md # when adding a new linux version # !!! 4.7 patch doesn't apply, 4.8 patch not up yet, will keep checking @@ -11233,6 +11234,7 @@ in inherit (lib) overrideDerivation; kernel = callPackage ../os-specific/linux/kernel/linux-grsecurity.nix { kernelPatches = with self.kernelPatches; [ + kernelPatches.multithreaded_rsapubkey bridge_stp_helper modinst_arg_list_too_long ] ++ lib.optionals ((platform.kernelArch or null) == "mips")