summary refs log tree commit diff
path: root/pkgs/os-specific/linux/kernel/manual-config.nix
diff options
context:
space:
mode:
authorAdam Joseph <adam@westernsemico.com>2023-07-25 14:42:49 -0700
committerAdam Joseph <adam@westernsemico.com>2023-07-28 12:32:03 -0700
commit93021f12c3bb97448bb40d75c29401d49333b531 (patch)
treeb9c3b738b1306e37fe5f38c81ae3c34cdbffd93a /pkgs/os-specific/linux/kernel/manual-config.nix
parent12a06dc2b8507b01c5ba96f94e8f4bf241df6a0d (diff)
downloadnixpkgs-93021f12c3bb97448bb40d75c29401d49333b531.tar
nixpkgs-93021f12c3bb97448bb40d75c29401d49333b531.tar.gz
nixpkgs-93021f12c3bb97448bb40d75c29401d49333b531.tar.bz2
nixpkgs-93021f12c3bb97448bb40d75c29401d49333b531.tar.lz
nixpkgs-93021f12c3bb97448bb40d75c29401d49333b531.tar.xz
nixpkgs-93021f12c3bb97448bb40d75c29401d49333b531.tar.zst
nixpkgs-93021f12c3bb97448bb40d75c29401d49333b531.zip
Revert "linuxManualConfig: unpack directly into $dev"
This reverts commit 7de3f08ce38aca9fddb5db7bcb7741fd389be9ef.
Diffstat (limited to 'pkgs/os-specific/linux/kernel/manual-config.nix')
-rw-r--r--pkgs/os-specific/linux/kernel/manual-config.nix28
1 files changed, 7 insertions, 21 deletions
diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix
index d4eff7b7e45..3480928aa5b 100644
--- a/pkgs/os-specific/linux/kernel/manual-config.nix
+++ b/pkgs/os-specific/linux/kernel/manual-config.nix
@@ -116,20 +116,6 @@ let
             hash = "sha256-bBOyJcP6jUvozFJU0SPTOf3cmnTQ6ZZ4PlHjiniHXLU=";
           });
 
-      preUnpack = ''
-        # The same preUnpack is used to build the configfile,
-        # which does not have $dev.
-        if [ -n "$dev" ]; then
-            mkdir -p $dev/lib/modules/${modDirVersion}
-            cd $dev/lib/modules/${modDirVersion}
-        fi
-      '';
-
-      postUnpack = ''
-        mv -Tv "$sourceRoot" source 2>/dev/null || :
-        export sourceRoot=$PWD/source
-      '';
-
       postPatch = ''
         sed -i Makefile -e 's|= depmod|= ${buildPackages.kmod}/bin/depmod|'
 
@@ -200,12 +186,6 @@ let
 
       buildFlags = [
         "KBUILD_BUILD_VERSION=1-NixOS"
-
-        # Set by default in the kernel since a73619a845d5,
-        # replicated here to apply to older versions.
-        # Makes __FILE__ relative to the build directory.
-        "KCPPFLAGS=-fmacro-prefix-map=$(sourceRoot)/="
-
         kernelConf.target
         "vmlinux"  # for "perf" and things like that
       ] ++ optional isModular "modules"
@@ -282,6 +262,7 @@ let
       ];
 
       postInstall = optionalString isModular ''
+        mkdir -p $dev
         cp vmlinux $dev/
         if [ -z "''${dontStrip-}" ]; then
           installFlagsArray+=("INSTALL_MOD_STRIP=1")
@@ -291,7 +272,12 @@ let
         unlink $out/lib/modules/${modDirVersion}/build
         unlink $out/lib/modules/${modDirVersion}/source
 
-        mkdir $dev/lib/modules/${modDirVersion}/build
+        mkdir -p $dev/lib/modules/${modDirVersion}/{build,source}
+
+        # To save space, exclude a bunch of unneeded stuff when copying.
+        (cd "$NIX_BUILD_TOP" && cd "$sourceRoot" &&
+         rsync --archive --prune-empty-dirs \
+            * $dev/lib/modules/${modDirVersion}/source/)
 
         cd $dev/lib/modules/${modDirVersion}/source