about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLluís Batlle i Rossell <viric@viric.name>2016-05-06 18:07:55 +0200
committerLluís Batlle i Rossell <viric@viric.name>2016-05-06 18:11:03 +0200
commit53a45825523566b8c9c5ff135e8ff75e05558d85 (patch)
tree90aa4baf8e8f9367413f0ae6a1d7439887173294
parent5a0cde6c19dedd65d34617f48d7433b16862b67d (diff)
downloadnixlib-53a45825523566b8c9c5ff135e8ff75e05558d85.tar
nixlib-53a45825523566b8c9c5ff135e8ff75e05558d85.tar.gz
nixlib-53a45825523566b8c9c5ff135e8ff75e05558d85.tar.bz2
nixlib-53a45825523566b8c9c5ff135e8ff75e05558d85.tar.lz
nixlib-53a45825523566b8c9c5ff135e8ff75e05558d85.tar.xz
nixlib-53a45825523566b8c9c5ff135e8ff75e05558d85.tar.zst
nixlib-53a45825523566b8c9c5ff135e8ff75e05558d85.zip
Adding vmlinux to linux kernel 'dev' derivation.
It takes some extra 13MB (and in dev, not out), but allows perf to show kernel
symbols when profiling. I think it is worth it.

In my NixOS, I refer to it in the system derivation, for easy telling to perf
through /run/booted-system/vmlinux:

  system.extraSystemBuilderCmds = ''
    ln -s ${config.boot.kernelPackages.kernel.dev}/vmlinux $out/vmlinux
  '';
-rw-r--r--pkgs/os-specific/linux/kernel/manual-config.nix6
1 files changed, 5 insertions, 1 deletions
diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix
index 5f2bc2d2c55b..8da8f20eae27 100644
--- a/pkgs/os-specific/linux/kernel/manual-config.nix
+++ b/pkgs/os-specific/linux/kernel/manual-config.nix
@@ -109,6 +109,7 @@ let
       buildFlags = [
         "KBUILD_BUILD_VERSION=1-NixOS"
         platform.kernelTarget
+        "vmlinux"  # for "perf" and things like that
       ] ++ optional isModular "modules";
 
       installFlags = [
@@ -122,7 +123,10 @@ let
                           if platform.kernelTarget == "zImage" then "zinstall" else
                           "install") ];
 
-      postInstall = (optionalString installsFirmware ''
+      postInstall = ''
+        mkdir -p $dev
+        cp $buildRoot/vmlinux $dev/
+      '' + (optionalString installsFirmware ''
         mkdir -p $out/lib/firmware
       '') + (if (platform ? kernelDTB && platform.kernelDTB) then ''
         make $makeFlags "''${makeFlagsArray[@]}" dtbs