at v206 48 lines 1.3 kB view raw
1{ stdenv, fetchurl, kernelHeaders, kernel, perl }: 2 3let 4 version = "2.0.4"; 5 6 commonMakeFlags = [ 7 "prefix=$(out)" 8 "SHLIBDIR=$(out)/lib" 9 ]; 10in 11 12stdenv.mkDerivation { 13 name = "klibc-${version}-${kernel.version}"; 14 15 src = fetchurl { 16 url = "mirror://kernel/linux/libs/klibc/2.0/klibc-${version}.tar.xz"; 17 sha256 = "7f9a0850586def7cf4faeeb75e5d0f66e613674c524f6e77b0f4d93a26c801cb"; 18 }; 19 20 patches = [ ./no-reinstall-kernel-headers.patch ]; 21 22 nativeBuildInputs = [ perl ]; 23 24 makeFlags = commonMakeFlags ++ [ 25 "KLIBCARCH=${stdenv.platform.kernelArch}" 26 "KLIBCKERNELSRC=${kernelHeaders}" 27 ] ++ stdenv.lib.optional (stdenv.platform.kernelArch == "arm") "CONFIG_AEABI=y"; 28 29 crossAttrs = { 30 makeFlags = commonMakeFlags ++ [ 31 "KLIBCARCH=${stdenv.cross.platform.kernelArch}" 32 "KLIBCKERNELSRC=${kernelHeaders.crossDrv}" 33 "CROSS_COMPILE=${stdenv.cross.config}-" 34 ] ++ stdenv.lib.optional (stdenv.cross.platform.kernelArch == "arm") "CONFIG_AEABI=y"; 35 }; 36 37 # Install static binaries as well. 38 postInstall = '' 39 dir=$out/lib/klibc/bin.static 40 mkdir $dir 41 cp $(find $(find . -name static) -type f ! -name "*.g" -a ! -name ".*") $dir/ 42 cp usr/dash/sh $dir/ 43 44 for file in ${kernelHeaders}/include/*; do 45 ln -sv $file $out/lib/klibc/include 46 done 47 ''; 48}