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