1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2024-11-25 15:11:35 +00:00

Enable building full klibc as a kernelPackage

svn path=/nixpkgs/trunk/; revision=30009
This commit is contained in:
Shea Levy 2011-10-25 08:59:39 +00:00
parent e0e4770ec9
commit dd9e83b77f
2 changed files with 24 additions and 3 deletions

View file

@ -1,4 +1,13 @@
{stdenv, fetchurl, perl, bison, mktemp, linuxHeaders, linuxHeadersCross}: {
stdenv,
fetchurl,
perl,
bison,
mktemp,
linuxHeaders,
linuxHeadersCross,
kernel ? null
}:
assert stdenv.isLinux; assert stdenv.isLinux;
@ -20,7 +29,7 @@ stdenv.mkDerivation {
# So it cannot run the 'make headers_install' it wants to run. # So it cannot run the 'make headers_install' it wants to run.
# We don't install the headers, so klibc will not be useful as libc, but # We don't install the headers, so klibc will not be useful as libc, but
# usually in nixpkgs we only use the userspace tools comming with klibc. # usually in nixpkgs we only use the userspace tools comming with klibc.
prePatch = '' prePatch = stdenv.lib.optionalString (kernel == null) ''
sed -i -e /headers_install/d scripts/Kbuild.install sed -i -e /headers_install/d scripts/Kbuild.install
''; '';
@ -49,10 +58,18 @@ stdenv.mkDerivation {
echo "CONFIG_AEABI=y" >> defconfig echo "CONFIG_AEABI=y" >> defconfig
makeFlags=$(eval "echo $makeFlags") makeFlags=$(eval "echo $makeFlags")
'' + (if kernel == null then ''
mkdir linux mkdir linux
cp -prsd $linuxHeaders/include linux/ cp -prsd $linuxHeaders/include linux/
chmod -R u+w linux/include/ chmod -R u+w linux/include/
''; # */ '' else ''
tar xvf ${kernel.src}
mv linux* linux
cd linux
ln -sv ${kernel}/config .config
make prepare
cd ..
'');
# Install static binaries as well. # Install static binaries as well.
postInstall = '' postInstall = ''

View file

@ -5737,6 +5737,10 @@ let
inherit kernel perl; inherit kernel perl;
}; };
klibc = callPackage ../os-specific/linux/klibc {
linuxHeaders = glibc.kernelHeaders;
};
splashutils = splashutils =
if kernel.features ? fbConDecor then pkgs.splashutils else null; if kernel.features ? fbConDecor then pkgs.splashutils else null;