Merge pull request #159925 from NickCao/kmods

linuxPackages.*: various fixes related to cross compilation
This commit is contained in:
Guillaume Girol 2022-03-13 20:15:31 +00:00 committed by GitHub
commit 446dda6d81
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
34 changed files with 83 additions and 75 deletions

View file

@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "sha256-csWowcRSgF5M74yv787MLSXOGXrkxnODCCgC5a3Nd7Y=";
};
makeFlags = [ "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" "INSTALL_MOD_PATH=$(out)" ];
makeFlags = kernel.makeFlags ++ [ "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" "INSTALL_MOD_PATH=$(out)" ];
nativeBuildInputs = kernel.moduleBuildDependencies;
meta = with lib; {

View file

@ -16,8 +16,8 @@ let
pname = "systemtap";
inherit version;
src = fetchgit { inherit url rev sha256; };
nativeBuildInputs = [ pkg-config cpio ];
buildInputs = [ elfutils gettext python3 python3.pkgs.setuptools ];
nativeBuildInputs = [ pkg-config cpio python3 python3.pkgs.setuptools ];
buildInputs = [ elfutils gettext ];
enableParallelBuilding = true;
};

View file

@ -12,7 +12,8 @@ stdenv.mkDerivation rec {
};
sourceRoot = "source/src";
makeFlags = [
nativeBuildInputs = kernel.moduleBuildDependencies;
makeFlags = kernel.makeFlags ++ [
"KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
];

View file

@ -18,7 +18,7 @@ stdenv.mkDerivation {
hardeningDisable = [ "pic" ];
nativeBuildInputs = kernel.moduleBuildDependencies;
makeFlags = [
makeFlags = kernel.makeFlags ++ [
"KERNELRELEASE=${kernel.modDirVersion}"
"KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
"INSTALL_MOD_PATH=$(out)"

View file

@ -12,11 +12,13 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = kernel.moduleBuildDependencies;
makeFlags = kernel.makeFlags ++ [
"KERNELPATH=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
];
hardeningDisable = [ "pic" ];
preBuild = ''
makeFlags="KERNELPATH=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
sed -i -e "s,INSTALL_MOD_DIR=,INSTALL_MOD_PATH=$out INSTALL_MOD_DIR=," \
-e /depmod/d Makefile
'';

View file

@ -13,16 +13,13 @@ stdenv.mkDerivation {
sha256 = "1laax93czalclg7cy9iq1r7hfh9jigh7igj06y9lski75ap2vhfq";
};
KERNELDIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
INSTALL_MOD_PATH = "\${out}";
makeFlags = kernel.makeFlags ++ [
"KERNELDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
"INSTALL_MOD_PATH=${placeholder "out"}"
];
buildPhase = ''
make modules
'';
installPhase = ''
make modules_install
'';
buildFlags = [ "modules" ];
installTargets = [ "modules_install" ];
nativeBuildInputs = kernel.moduleBuildDependencies;

View file

@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
sha256 = "sha256-vJQ10rG5FGbeEOqCUmH/pZ0P77kAW/MtUarywbtIyHw=";
};
nativeBuildInputs = kernel.moduleBuildDependencies;
hardeningDisable = [ "pic" ];
KERNEL_DIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";

View file

@ -13,8 +13,6 @@ stdenv.mkDerivation rec {
sha256 = "1l54j85540386a8aypqka7p5hy1b63cwmpsscv9rmmf10f78v8mm";
};
INSTALL_MOD_PATH = "\${out}";
postPatch = ''
sed 's/udevadm /true /' -i Makefile
sed 's/depmod /true /' -i Makefile
@ -38,10 +36,11 @@ stdenv.mkDerivation rec {
rm -r $out/lib/udev
'';
makeFlags = [
makeFlags = kernel.makeFlags ++ [
"KVERSION=${kernel.modDirVersion}"
"KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
"DESTDIR=${placeholder "out"}"
"INSTALL_MOD_PATH=${placeholder "out"}"
];
meta = with lib; {

View file

@ -11,6 +11,9 @@ stdenv.mkDerivation rec {
hardeningDisable = [ "pic" ];
makeFlags = kernel.makeFlags ++ [
"INSTALL_MOD_PATH=${placeholder "out"}"
];
KSRC = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
nativeBuildInputs = kernel.moduleBuildDependencies;
@ -18,10 +21,9 @@ stdenv.mkDerivation rec {
preBuild = "cd linux/igb_uio";
installPhase = ''
make -C ${KSRC} M=$(pwd) modules_install
make -C ${KSRC} M=$(pwd) modules_install $makeFlags
'';
INSTALL_MOD_PATH = placeholder "out";
enableParallelBuilding = true;
meta = with lib; {

View file

@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
hardeningDisable = [ "pic" ];
nativeBuildInputs = kernel.moduleBuildDependencies;
makeFlags = kernel.makeFlags;
# linux 3.12
NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration";
@ -27,7 +28,7 @@ stdenv.mkDerivation rec {
installPhase = ''
runHook preInstall
strip -S ena.ko
$STRIP -S ena.ko
dest=$out/lib/modules/${kernel.modDirVersion}/misc
mkdir -p $dest
cp ena.ko $dest/

View file

@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
buildInputs = [ kernel libdrm ];
makeFlags = [
makeFlags = kernel.makeFlags ++ [
"KVER=${kernel.modDirVersion}"
"KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
];

View file

@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
hardeningDisable = [ "pic" ];
makeFlags = [
makeFlags = kernel.makeFlags ++ [
"INSTALL_MOD_PATH=${placeholder "out"}"
];

View file

@ -19,7 +19,7 @@ in stdenv.mkDerivation rec {
nativeBuildInputs = kernel.moduleBuildDependencies;
makeFlags = [
makeFlags = kernel.makeFlags ++ [
"KERNEL_SOURCE_DIR=${kernel.dev}/${kerneldir}/build"
"INSTALL_MOD_PATH=$(out)"
];

View file

@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = kernel.moduleBuildDependencies;
makeFlags = [
makeFlags = kernel.makeFlags ++ [
"-C"
"${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
"M=$(sourceRoot)"

View file

@ -16,13 +16,12 @@ stdenv.mkDerivation {
sed -e 's@/lib/modules/\$(.*)@${kernel.dev}/lib/modules/${kernel.modDirVersion}@' -i src/mod/*/Makefile
'';
buildPhase = ''
make -C src/mod
'';
makeFlags = kernel.makeFlags ++ [
"-C src/mod"
"INSTALL_MOD_PATH=${placeholder "out"}"
];
installPhase = ''
make -C src/mod modules_install INSTALL_MOD_PATH=$out
'';
installTargets = "modules_install";
meta = with lib; {
homepage = "https://www.jool.mx/";

View file

@ -56,7 +56,7 @@ let
hasAttr getAttr optional optionals optionalString optionalAttrs maintainers platforms;
# Dependencies that are required to build kernel modules
moduleBuildDependencies = optional (lib.versionAtLeast version "4.14") libelf;
moduleBuildDependencies = [ perl ] ++ optional (lib.versionAtLeast version "4.14") libelf;
installkernel = writeTextFile { name = "installkernel"; executable=true; text = ''

View file

@ -9,16 +9,16 @@ stdenv.mkDerivation rec {
sha256 = "0hzksx2fw008jdsgfzpws9g7imy6ryw09ai5y0knvrmvr68nvj57";
};
buildInputs = kernel.moduleBuildDependencies;
nativeBuildInputs = kernel.moduleBuildDependencies;
hardeningDisable = [ "pic" ];
NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration";
preConfigure = ''
export KERNELDIR="${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
export INSTALL_MOD_PATH="$out"
'';
makeFlags = kernel.makeFlags ++ [
"KERNELDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
"INSTALL_MOD_PATH=${placeholder "out"}"
];
installTargets = [ "modules_install" ];

View file

@ -16,7 +16,7 @@ stdenv.mkDerivation {
nativeBuildInputs = kernel.moduleBuildDependencies;
makeFlags = [
makeFlags = kernel.makeFlags ++ [
"KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
"INSTALL_MOD_PATH=$(out)"
];

View file

@ -11,14 +11,17 @@ stdenv.mkDerivation rec {
sha256 = "sha256-o6yGiR+Y5SnX1johdi7fQWP5ts7HdDMqeju75UOhgik=";
};
nativeBuildInputs = kernel.moduleBuildDependencies;
makeFlags = kernel.makeFlags;
buildPhase = ''
make -C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build \
-j$NIX_BUILD_CORES M=$(pwd) modules
-j$NIX_BUILD_CORES M=$(pwd) modules $makeFlags
'';
installPhase = ''
make -C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build \
INSTALL_MOD_PATH=$out M=$(pwd) modules_install
INSTALL_MOD_PATH=$out M=$(pwd) modules_install $makeFlags
'';
meta = with lib; {

View file

@ -12,6 +12,7 @@ stdenv.mkDerivation {
sha256 = "0qjw8glfdmngfvbn1w63q128vxdz2jlabw13y140ga9i5ibl6vvk";
};
nativeBuildInputs = kernel.moduleBuildDependencies;
buildInputs = [ kmod zlib ];
hardeningDisable = [ "pic" ];
@ -36,6 +37,8 @@ stdenv.mkDerivation {
kmod=${kmod} substituteAllInPlace netatop.service
'';
makeFlags = kernel.makeFlags;
preInstall = ''
mkdir -p $out/lib/systemd/system $out/bin $out/sbin $out/share/man/man{4,8}
mkdir -p $out/lib/modules/${kernel.modDirVersion}/extra

View file

@ -15,7 +15,7 @@ stdenv.mkDerivation (common // {
nativeBuildInputs = kernel.moduleBuildDependencies;
buildFlags = [
makeFlags = kernel.makeFlags ++ [
"KERNELDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
];

View file

@ -27,11 +27,13 @@ in stdenv.mkDerivation rec {
# avoid using the Makefile directly -- it doesn't understand
# any kernel but the current.
# based on the ArchLinux pkgbuild: https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/r8168
makeFlags = kernel.makeFlags ++ [
"-C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
"M=$(PWD)/src"
"modules"
];
preBuild = ''
makeFlagsArray+=("-C${kernel.dev}/lib/modules/${kernel.modDirVersion}/build")
makeFlagsArray+=("M=$PWD/src")
makeFlagsArray+=("EXTRA_CFLAGS=-DCONFIG_R8168_NAPI -DCONFIG_R8168_VLAN -DCONFIG_ASPM -DENABLE_S5WOL -DENABLE_EEE")
makeFlagsArray+=("modules")
'';
enableParallelBuilding = true;

View file

@ -2,17 +2,16 @@
stdenv.mkDerivation rec {
name = "rtl8189es-${kernel.version}-${version}";
version = "2020-10-03";
version = "2021-10-01";
src = fetchFromGitHub {
owner = "jwrdegoede";
repo = "rtl8189ES_linux";
rev = "03ac413135a355b55b693154c44b70f86a39732e";
sha256 = "0wiikviwyvy6h55rgdvy7csi1zqniqg26p8x44rd6mhbw0g00h56";
rev = "be378f47055da1bae42ff6ec1d62f1a5052ef097";
sha256 = "sha256-+19q1Xux2BjquavY+s0UDzTubEt6BEUZ9XVDVmj36us=";
};
nativeBuildInputs = [ bc nukeReferences ];
buildInputs = kernel.moduleBuildDependencies;
nativeBuildInputs = [ bc nukeReferences ] ++ kernel.moduleBuildDependencies;
hardeningDisable = [ "pic" "format" ];
@ -23,13 +22,10 @@ stdenv.mkDerivation rec {
substituteInPlace ./Makefile --replace '$(MODDESTDIR)' "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/"
'';
makeFlags = [
"ARCH=${stdenv.hostPlatform.linuxArch}"
makeFlags = kernel.makeFlags ++ [
"KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
("CONFIG_PLATFORM_I386_PC=" + (if (stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isx86_64) then "y" else "n"))
("CONFIG_PLATFORM_ARM_RPI=" + (if (stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64) then "y" else "n"))
] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) [
"CROSS_COMPILE=${stdenv.cc.targetPrefix}"
];
preInstall = ''

View file

@ -19,7 +19,7 @@ in stdenv.mkDerivation rec {
nativeBuildInputs = kernel.moduleBuildDependencies ++ [ bc ];
makeFlags = [ "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ];
makeFlags = kernel.makeFlags ++ [ "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ];
enableParallelBuilding = true;

View file

@ -11,7 +11,8 @@ stdenv.mkDerivation {
sha256 = "0lk3ldff489ggbqmlfi4zvnp1cvxj1b06m0fhpzai82070klzzmj";
};
buildInputs = kernel.moduleBuildDependencies;
nativeBuildInputs = kernel.moduleBuildDependencies;
makeFlags = kernel.makeFlags;
hardeningDisable = [ "pic" ];

View file

@ -13,8 +13,8 @@ stdenv.mkDerivation rec {
hardeningDisable = [ "pic" ];
nativeBuildInputs = [ bc ];
buildInputs = kernel.moduleBuildDependencies;
nativeBuildInputs = [ bc ] ++ kernel.moduleBuildDependencies;
makeFlags = kernel.makeFlags;
prePatch = ''
substituteInPlace ./Makefile \

View file

@ -13,8 +13,8 @@ stdenv.mkDerivation rec {
hardeningDisable = [ "pic" ];
nativeBuildInputs = [ bc ];
buildInputs = kernel.moduleBuildDependencies;
nativeBuildInputs = [ bc ] ++ kernel.moduleBuildDependencies;
makeFlags = kernel.makeFlags;
prePatch = ''
substituteInPlace ./Makefile \

View file

@ -13,10 +13,10 @@ stdenv.mkDerivation rec {
hardeningDisable = [ "pic" ];
nativeBuildInputs = [ bc ];
buildInputs = kernel.moduleBuildDependencies;
nativeBuildInputs = [ bc ] ++ kernel.moduleBuildDependencies;
makeFlags = kernel.makeFlags;
prePatch = ''
prePatch = ''
substituteInPlace ./Makefile \
--replace /lib/modules/ "${kernel.dev}/lib/modules/" \
--replace '$(shell uname -r)' "${kernel.modDirVersion}" \

View file

@ -14,7 +14,8 @@ stdenv.mkDerivation {
hash = "sha256-PRzWXC1lre8gt1GfVdnaG836f5YK57P9a8tG20yef0w=";
};
makeFlags = [ "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ];
nativeBuildInputs = kernel.moduleBuildDependencies;
makeFlags = kernel.makeFlags ++ [ "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ];
enableParallelBuilding = true;

View file

@ -14,7 +14,8 @@ stdenv.mkDerivation {
sha256 = "0cvawyi1ksw9xkr8pzwipsl7b8hnmrb17w5cblyicwih8fqaw632";
};
makeFlags = [ "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ];
nativeBuildInputs = kernel.moduleBuildDependencies;
makeFlags = kernel.makeFlags ++ [ "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ];
enableParallelBuilding = true;

View file

@ -16,12 +16,9 @@ stdenv.mkDerivation rec {
preBuild = ''
substituteInPlace Makefile --replace "modules_install" "INSTALL_MOD_PATH=$out modules_install"
sed -i '/depmod/d' Makefile
export PATH=${kmod}/sbin:$PATH
'';
nativeBuildInputs = kernel.moduleBuildDependencies;
buildInputs = [ kmod ];
nativeBuildInputs = [ kmod ] ++ kernel.moduleBuildDependencies;
postInstall = ''
make install-utils PREFIX=$bin
@ -29,7 +26,7 @@ stdenv.mkDerivation rec {
outputs = [ "out" "bin" ];
makeFlags = [
makeFlags = kernel.makeFlags ++ [
"KERNELRELEASE=${kernel.modDirVersion}"
"KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
];

View file

@ -15,9 +15,9 @@ stdenv.mkDerivation rec {
buildInputs = [ kernel ];
buildPhase = ''
make BUILD_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build
'';
makeFlags = kernel.makeFlags ++ [
"BUILD_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
];
installPhase = ''
mkdir -p $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/veikk

View file

@ -11,10 +11,12 @@ stdenv.mkDerivation rec {
sha256 = "1wdb0phqg9rj9g9ycqdya0m7lx24kzjlh25yw0ifp898ddxrrr0c";
};
makeFlags = [ "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ];
makeFlags = kernel.makeFlags ++ [
"KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
"INSTALL_MOD_PATH=${placeholder "out"}"
];
nativeBuildInputs = kernel.moduleBuildDependencies;
INSTALL_MOD_PATH = placeholder "out";
installFlags = [ "DEPMOD=true" ];
meta = with lib; {

View file

@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = kernel.moduleBuildDependencies;
buildInputs = [ bluez ];
makeFlags = [
makeFlags = kernel.makeFlags ++ [
"-C"
"${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
"M=$(sourceRoot)"