diff options
Diffstat (limited to 'pkgs/os-specific/linux')
-rw-r--r-- | pkgs/os-specific/linux/klibc/default.nix | 34 | ||||
-rw-r--r-- | pkgs/os-specific/linux/uclibc/default.nix | 9 |
2 files changed, 37 insertions, 6 deletions
diff --git a/pkgs/os-specific/linux/klibc/default.nix b/pkgs/os-specific/linux/klibc/default.nix index 8bd911ee080..0a2747eb165 100644 --- a/pkgs/os-specific/linux/klibc/default.nix +++ b/pkgs/os-specific/linux/klibc/default.nix @@ -1,8 +1,11 @@ -{stdenv, fetchurl, perl, bison, mktemp, linuxHeaders}: +{stdenv, fetchurl, perl, bison, mktemp, linuxHeaders, linuxHeadersCross}: assert stdenv.isLinux; -let version = "1.5.15"; in +let + version = "1.5.15"; + baseMakeFlags = ["V=1" "prefix=$out" "SHLIBDIR=$out/lib"]; +in stdenv.mkDerivation { name = "klibc-${version}"; @@ -12,15 +15,36 @@ stdenv.mkDerivation { sha256 = "1x401wmjca6zkyikf9xz45b3wb1hnj0m2s9in1sg6xdhi3pk8lwb"; }; - makeFlags = ["V=1" "prefix=$out" "SHLIBDIR=$out/lib"]; + makeFlags = baseMakeFlags; + + inherit linuxHeaders; + + crossAttrs = { + name = "klibc-1.5.17"; + src = fetchurl { + url = "mirror://kernel/linux/libs/klibc/Testing/klibc-1.5.17.tar.bz2"; + sha256 = "1jmiszf9pdlzj9f72nkv50d7aqrzz12hrmw792xnd2lmn5nrfyx6"; + }; + + makeFlags = baseMakeFlags ++ [ "CROSS_COMPILE=${stdenv.cross.config}-" + "KLIBCARCH=${stdenv.cross.arch}" ]; + + patchPhase = '' + sed -i /KLIBCKERNELSRC/d scripts/Kbuild.install + ''; + + linuxHeaders = linuxHeadersCross; + }; + # The AEABI option concerns only arm systems, and does not affect the build for + # other systems. preBuild = '' sed -i /CONFIG_AEABI/d defconfig echo "CONFIG_AEABI=y" >> defconfig makeFlags=$(eval "echo $makeFlags") mkdir linux - cp -prsd ${linuxHeaders}/include linux/ + cp -prsd $linuxHeaders/include linux/ chmod -R u+w linux/include/ ''; # */ @@ -32,5 +56,5 @@ stdenv.mkDerivation { cp usr/dash/sh $dir/ ''; - buildInputs = [perl bison mktemp]; + buildNativeInputs = [ perl bison mktemp ]; } diff --git a/pkgs/os-specific/linux/uclibc/default.nix b/pkgs/os-specific/linux/uclibc/default.nix index 83de2ae38ef..445a7f90fb6 100644 --- a/pkgs/os-specific/linux/uclibc/default.nix +++ b/pkgs/os-specific/linux/uclibc/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, linuxHeaders, cross ? null, gccCross ? null}: +{stdenv, fetchurl, linuxHeaders, libiconv, cross ? null, gccCross ? null}: assert stdenv.isLinux; assert cross != null -> gccCross != null; @@ -31,12 +31,14 @@ stdenv.mkDerivation { sha256 = "0f1fpdwampbw7pf79i64ipj0azk4kbc9wl81ynlp19p92k4klz0h"; }; + # 'ftw' needed to build acl, a coreutils dependency configurePhase = '' make defconfig ${archMakeFlag} sed -e s@/usr/include@${linuxHeaders}/include@ \ -e 's@^RUNTIME_PREFIX.*@RUNTIME_PREFIX="/"@' \ -e 's@^DEVEL_PREFIX.*@DEVEL_PREFIX="/"@' \ -e 's@.*UCLIBC_HAS_WCHAR.*@UCLIBC_HAS_WCHAR=y@' \ + -e 's@.*UCLIBC_HAS_FTW.*@UCLIBC_HAS_FTW=y@' \ -e 's@.*UCLIBC_HAS_RPC.*@UCLIBC_HAS_RPC=y@' \ -e 's@.*DO_C99_MATH.*@DO_C99_MATH=y@' \ -e 's@.*UCLIBC_HAS_PROGRAM_INVOCATION_NAME.*@UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y@' \ @@ -59,6 +61,11 @@ stdenv.mkDerivation { (cd $out/include && ln -s $(ls -d ${linuxHeaders}/include/* | grep -v "scsi$") .) sed -i s@/lib/@$out/lib/@g $out/lib/libc.so ''; + + passthru = { + # Derivations may check for the existance of this attribute, to know what to link to. + inherit libiconv; + }; meta = { homepage = http://www.uclibc.org/; |