diff options
| author | David Guibert <david.guibert@gmail.com> | 2017-12-28 09:11:36 +0100 |
|---|---|---|
| committer | Domen Kožar <domen@dev.si> | 2018-04-07 12:19:44 +0100 |
| commit | d64de62fcda6c18d1bcac133d033ab1150f4495c (patch) | |
| tree | f9108adb0c4437239277d5c4d3a27db5dea2395d | |
| parent | linux: Add 4.14 (diff) | |
| download | nixpkgs-d64de62fcda6c18d1bcac133d033ab1150f4495c.tar.gz | |
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]
| -rw-r--r-- | pkgs/applications/virtualization/virtualbox/guest-additions/default.nix | 2 | ||||
| -rw-r--r-- | pkgs/os-specific/linux/kernel/manual-config.nix | 9 | ||||
| -rw-r--r-- | pkgs/os-specific/linux/spl/default.nix | 4 | ||||
| -rw-r--r-- | pkgs/os-specific/linux/sysdig/default.nix | 2 | ||||
| -rw-r--r-- | pkgs/os-specific/linux/tp_smapi/default.nix | 2 | ||||
| -rw-r--r-- | pkgs/os-specific/linux/virtualbox/default.nix | 2 | ||||
| -rw-r--r-- | pkgs/os-specific/linux/zfs/default.nix | 2 |
7 files changed, 15 insertions, 8 deletions
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix index ed485ae48ef1..5d9bc10d14b1 100644 --- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix +++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix @@ -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 diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix index 83020ad35a2b..71a2754bfd05 100644 --- a/pkgs/os-specific/linux/kernel/manual-config.nix +++ b/pkgs/os-specific/linux/kernel/manual-config.nix @@ -1,4 +1,4 @@ -{ stdenv, runCommand, nettools, bc, perl, kmod, openssl, writeTextFile, ubootChooser }: +{ stdenv, runCommand, nettools, bc, perl, kmod, openssl, writeTextFile, ubootChooser, libelf }: let readConfig = configfile: import (runCommand "config.nix" {} '' @@ -40,6 +40,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 @@ -76,7 +79,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; @@ -217,7 +220,7 @@ stdenv.mkDerivation ((drvAttrs config stdenv.platform (kernelPatches ++ nativeKe enableParallelBuilding = true; - nativeBuildInputs = [ perl bc nettools openssl ] ++ optional (stdenv.platform.uboot != null) + nativeBuildInputs = [ perl bc nettools openssl libelf ] ++ optional (stdenv.platform.uboot != null) (ubootChooser stdenv.platform.uboot); hardeningDisable = [ "bindnow" "format" "fortify" "stackprotector" "pic" ]; diff --git a/pkgs/os-specific/linux/spl/default.nix b/pkgs/os-specific/linux/spl/default.nix index d0fa82c5f7a3..48901fce0c41 100644 --- a/pkgs/os-specific/linux/spl/default.nix +++ b/pkgs/os-specific/linux/spl/default.nix @@ -20,9 +20,7 @@ let inherit sha256; }; - patches = [ ./const.patch ./install_prefix.patch ]; - - nativeBuildInputs = [ autoreconfHook ]; + nativeBuildInputs = [ autoreconfHook ] ++ optional (kernel != null) kernel.moduleBuildDependencies; hardeningDisable = [ "pic" ]; diff --git a/pkgs/os-specific/linux/sysdig/default.nix b/pkgs/os-specific/linux/sysdig/default.nix index 7e337463ac1f..6ecfbf5d6f11 100644 --- a/pkgs/os-specific/linux/sysdig/default.nix +++ b/pkgs/os-specific/linux/sysdig/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { buildInputs = [ cmake zlib luajit ncurses perl jsoncpp libb64 openssl curl jq gcc - ]; + ] ++ optional (kernel != null) kernel.moduleBuildDependencies; hardeningDisable = [ "pic" ]; diff --git a/pkgs/os-specific/linux/tp_smapi/default.nix b/pkgs/os-specific/linux/tp_smapi/default.nix index 765305d0fdaf..df1ae3ad464b 100644 --- a/pkgs/os-specific/linux/tp_smapi/default.nix +++ b/pkgs/os-specific/linux/tp_smapi/default.nix @@ -13,6 +13,8 @@ stdenv.mkDerivation rec { name = "tp-smapi-${version}"; }; + nativeBuildInputs = kernel.moduleBuildDependencies; + hardeningDisable = [ "pic" ]; makeFlags = [ diff --git a/pkgs/os-specific/linux/virtualbox/default.nix b/pkgs/os-specific/linux/virtualbox/default.nix index 593c4400b7f4..de0f02fd10f2 100644 --- a/pkgs/os-specific/linux/virtualbox/default.nix +++ b/pkgs/os-specific/linux/virtualbox/default.nix @@ -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)" diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix index ea1b4d962b1d..b61fbf67e589 100644 --- a/pkgs/os-specific/linux/zfs/default.nix +++ b/pkgs/os-specific/linux/zfs/default.nix @@ -30,6 +30,8 @@ let patches = extraPatches; + nativeBuildInputs = [ autoreconfHook nukeReferences ] + ++ optional (kernel != null) kernel.moduleBuildDependencies; buildInputs = [ autoreconfHook nukeReferences ] ++ optionals buildKernel [ spl ] ++ optionals buildUser [ zlib libuuid python attr ]; |
