kernel 4.14 require libelf to compile modules.
[...] make modules -C /nix/store/h1vzl6bq4wif3m8dd1bw2p3fv4shjg3n-linux-4.14.9-dev/lib/modules/4.14.9/build EXTRA_CFLAGS=-Werror-implicit-function-declaration M=/tmp/nix-build-spl-kernel-2017-11-16-4.14.9.drv-0/source/build /nix/store/h1vzl6bq4wif3m8dd1bw2p3fv4shjg3n-linux-4.14.9-dev/lib/modules/4.14.9/source/Makefile:939: *** "Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel". Stop. This patch introduces kernel.moduleBuildDependencies to avoid the logic "stdenv.lib.optional (stdenv.lib.versionAtLeast kernel.version "4.14") libelf" in multiple places. [dezgeg did some minor tweaks on top]
This commit is contained in:
parent
77cc63950a
commit
1e77d0b975
@ -36,7 +36,7 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration";
|
NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration";
|
||||||
|
|
||||||
buildInputs = [ patchelf cdrkit makeWrapper dbus ];
|
buildInputs = [ patchelf cdrkit makeWrapper dbus ] ++ kernel.moduleBuildDependencies;
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
|
@ -49,6 +49,9 @@ let
|
|||||||
inherit (stdenv.lib)
|
inherit (stdenv.lib)
|
||||||
hasAttr getAttr optional optionalString optionalAttrs maintainers platforms;
|
hasAttr getAttr optional optionalString optionalAttrs maintainers platforms;
|
||||||
|
|
||||||
|
# Dependencies that are required to build kernel modules
|
||||||
|
moduleBuildDependencies = stdenv.lib.optional (stdenv.lib.versionAtLeast version "4.14") libelf;
|
||||||
|
|
||||||
installkernel = writeTextFile { name = "installkernel"; executable=true; text = ''
|
installkernel = writeTextFile { name = "installkernel"; executable=true; text = ''
|
||||||
#!${stdenv.shell} -e
|
#!${stdenv.shell} -e
|
||||||
mkdir -p $4
|
mkdir -p $4
|
||||||
@ -85,7 +88,7 @@ let
|
|||||||
(isModular || (config.isDisabled "FIRMWARE_IN_KERNEL"));
|
(isModular || (config.isDisabled "FIRMWARE_IN_KERNEL"));
|
||||||
in (optionalAttrs isModular { outputs = [ "out" "dev" ]; }) // {
|
in (optionalAttrs isModular { outputs = [ "out" "dev" ]; }) // {
|
||||||
passthru = {
|
passthru = {
|
||||||
inherit version modDirVersion config kernelPatches configfile;
|
inherit version modDirVersion config kernelPatches configfile moduleBuildDependencies;
|
||||||
};
|
};
|
||||||
|
|
||||||
inherit src;
|
inherit src;
|
||||||
|
@ -25,7 +25,7 @@ let
|
|||||||
|
|
||||||
patches = [ ./const.patch ./install_prefix.patch ];
|
patches = [ ./const.patch ./install_prefix.patch ];
|
||||||
|
|
||||||
nativeBuildInputs = [ autoreconfHook ];
|
nativeBuildInputs = [ autoreconfHook ] ++ optional (kernel != null) kernel.moduleBuildDependencies;
|
||||||
|
|
||||||
hardeningDisable = [ "pic" ];
|
hardeningDisable = [ "pic" ];
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
cmake zlib luajit ncurses perl jsoncpp libb64 openssl curl jq gcc
|
cmake zlib luajit ncurses perl jsoncpp libb64 openssl curl jq gcc
|
||||||
];
|
] ++ optional (kernel != null) kernel.moduleBuildDependencies;
|
||||||
|
|
||||||
hardeningDisable = [ "pic" ];
|
hardeningDisable = [ "pic" ];
|
||||||
|
|
||||||
|
@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
|
|||||||
name = "tp-smapi-${version}";
|
name = "tp-smapi-${version}";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = kernel.moduleBuildDependencies;
|
||||||
|
|
||||||
hardeningDisable = [ "pic" ];
|
hardeningDisable = [ "pic" ];
|
||||||
|
|
||||||
makeFlags = [
|
makeFlags = [
|
||||||
|
@ -7,6 +7,8 @@ stdenv.mkDerivation {
|
|||||||
"fortify" "pic" "stackprotector"
|
"fortify" "pic" "stackprotector"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = kernel.moduleBuildDependencies;
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
./fix_kerndir.patch
|
./fix_kerndir.patch
|
||||||
./fix_kbuild.patch
|
./fix_kbuild.patch
|
||||||
|
@ -38,7 +38,8 @@ let
|
|||||||
|
|
||||||
patches = extraPatches;
|
patches = extraPatches;
|
||||||
|
|
||||||
nativeBuildInputs = [ autoreconfHook nukeReferences ];
|
nativeBuildInputs = [ autoreconfHook nukeReferences ]
|
||||||
|
++ optional (kernel != null) kernel.moduleBuildDependencies;
|
||||||
buildInputs =
|
buildInputs =
|
||||||
optionals buildKernel [ spl ]
|
optionals buildKernel [ spl ]
|
||||||
++ optionals buildUser [ zlib libuuid python attr ]
|
++ optionals buildUser [ zlib libuuid python attr ]
|
||||||
|
Loading…
Reference in New Issue
Block a user