mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-10-02 21:10:08 +00:00
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]
(cherry picked from commit 1e77d0b975)
This commit is contained in:
committed by
Franz Pletz
parent
33778fff83
commit
1822bcbd78
@@ -28,7 +28,7 @@ stdenv.mkDerivation {
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types";
|
||||
|
||||
buildInputs = [ patchelf cdrkit makeWrapper dbus ];
|
||||
buildInputs = [ patchelf cdrkit makeWrapper dbus ] ++ kernel.moduleBuildDependencies;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
|
||||
@@ -49,6 +49,9 @@ let
|
||||
inherit (stdenv.lib)
|
||||
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 = ''
|
||||
#!${stdenv.shell} -e
|
||||
mkdir -p $4
|
||||
@@ -85,7 +88,7 @@ let
|
||||
(isModular || (config.isDisabled "FIRMWARE_IN_KERNEL"));
|
||||
in (optionalAttrs isModular { outputs = [ "out" "dev" ]; }) // {
|
||||
passthru = {
|
||||
inherit version modDirVersion config kernelPatches configfile;
|
||||
inherit version modDirVersion config kernelPatches configfile moduleBuildDependencies;
|
||||
};
|
||||
|
||||
inherit src;
|
||||
|
||||
@@ -24,7 +24,7 @@ let
|
||||
|
||||
patches = [ ./const.patch ./install_prefix.patch ];
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook ];
|
||||
nativeBuildInputs = [ autoreconfHook ] ++ optional (kernel != null) kernel.moduleBuildDependencies;
|
||||
|
||||
hardeningDisable = [ "pic" ];
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
buildInputs = [
|
||||
cmake zlib luajit ncurses perl jsoncpp libb64 openssl curl jq gcc
|
||||
];
|
||||
] ++ optional (kernel != null) kernel.moduleBuildDependencies;
|
||||
|
||||
hardeningDisable = [ "pic" ];
|
||||
|
||||
|
||||
@@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
|
||||
name = "tp-smapi-${version}";
|
||||
};
|
||||
|
||||
nativeBuildInputs = kernel.moduleBuildDependencies;
|
||||
|
||||
hardeningDisable = [ "pic" ];
|
||||
|
||||
makeFlags = [
|
||||
|
||||
@@ -7,6 +7,8 @@ stdenv.mkDerivation {
|
||||
"fortify" "pic" "stackprotector"
|
||||
];
|
||||
|
||||
nativeBuildInputs = kernel.moduleBuildDependencies;
|
||||
|
||||
makeFlags = [
|
||||
"-C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
|
||||
"INSTALL_MOD_PATH=$(out)"
|
||||
|
||||
@@ -38,6 +38,8 @@ let
|
||||
|
||||
patches = extraPatches;
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook nukeReferences ]
|
||||
++ optional (kernel != null) kernel.moduleBuildDependencies;
|
||||
buildInputs = [ autoreconfHook nukeReferences ]
|
||||
++ optionals buildKernel [ spl ]
|
||||
++ optionals buildUser [ zlib libuuid python attr ];
|
||||
|
||||
Reference in New Issue
Block a user