diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2009-09-01 21:56:46 +0000 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2009-09-01 21:56:46 +0000 |
commit | 58e61617682239f5d20320066b1a79de127bcc61 (patch) | |
tree | 9d823bb53fe62c826937eee30731bec01dda3a8a /pkgs/build-support/kernel | |
parent | 043fe38f80db59dbc0d6283575892ea06a4b55c5 (diff) | |
download | nixlib-58e61617682239f5d20320066b1a79de127bcc61.tar nixlib-58e61617682239f5d20320066b1a79de127bcc61.tar.gz nixlib-58e61617682239f5d20320066b1a79de127bcc61.tar.bz2 nixlib-58e61617682239f5d20320066b1a79de127bcc61.tar.lz nixlib-58e61617682239f5d20320066b1a79de127bcc61.tar.xz nixlib-58e61617682239f5d20320066b1a79de127bcc61.tar.zst nixlib-58e61617682239f5d20320066b1a79de127bcc61.zip |
* addCoverageInstrumentation: factor out the code that keeps the build
tree under $out into a separate stdenv adapter named keepBuildTree. * makeModulesClosure: support building an initrd for a kernel that has been compiled with coverage instrumentation. svn path=/nixpkgs/trunk/; revision=16916
Diffstat (limited to 'pkgs/build-support/kernel')
-rw-r--r-- | pkgs/build-support/kernel/modules-closure.nix | 4 | ||||
-rw-r--r-- | pkgs/build-support/kernel/modules-closure.sh | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/pkgs/build-support/kernel/modules-closure.nix b/pkgs/build-support/kernel/modules-closure.nix index 7eac04819790..cc197edbef19 100644 --- a/pkgs/build-support/kernel/modules-closure.nix +++ b/pkgs/build-support/kernel/modules-closure.nix @@ -3,11 +3,13 @@ # the modules identified by `rootModules', plus their dependencies. # Also generate an appropriate modules.dep. -{stdenv, kernel, rootModules, module_init_tools, allowMissing ? false}: +{ stdenv, kernel, nukeReferences, rootModules +, module_init_tools, allowMissing ? false }: stdenv.mkDerivation { name = kernel.name + "-shrunk"; builder = ./modules-closure.sh; + buildInputs = [nukeReferences]; inherit kernel rootModules module_init_tools allowMissing; allowedReferences = ["out"]; } diff --git a/pkgs/build-support/kernel/modules-closure.sh b/pkgs/build-support/kernel/modules-closure.sh index 035893ebd69f..e75ef927baae 100644 --- a/pkgs/build-support/kernel/modules-closure.sh +++ b/pkgs/build-support/kernel/modules-closure.sh @@ -29,6 +29,11 @@ for module in $closure; do mkdir -p $(dirname $target) echo $module cp $module $target + # If the kernel is compiled with coverage instrumentation, it + # contains the paths of the *.gcda coverage data output files + # (which it doesn't actually use...). Get rid of them to prevent + # the whole kernel from being included in the initrd. + nuke-refs $target echo $target >> $out/insmod-list done |