at master 1.8 kB view raw
1{ 2 lib, 3 stdenv, 4 buildPackages, 5 extraMakeFlags ? [ ], 6}: 7# Absolute paths for compilers avoid any PATH-clobbering issues. 8[ 9 # 10 # We use the unwrapped compiler, because the clang-wrapper doesn't like -target. 11 "CC=${lib.getExe stdenv.cc.cc}" 12 # The wrapper for ld.lld breaks linking the kernel. We use the unwrapped linker as workaround. See: 13 # https://github.com/NixOS/nixpkgs/issues/321667 14 "LD=${lib.getExe' stdenv.cc.bintools.bintools "${stdenv.cc.targetPrefix}ld"}" 15 "AR=${lib.getExe' stdenv.cc "${stdenv.cc.targetPrefix}ar"}" 16 "NM=${lib.getExe' stdenv.cc "${stdenv.cc.targetPrefix}nm"}" 17 "STRIP=${lib.getExe' stdenv.cc.bintools.bintools "${stdenv.cc.targetPrefix}strip"}" 18 "OBJCOPY=${lib.getExe' stdenv.cc "${stdenv.cc.targetPrefix}objcopy"}" 19 "OBJDUMP=${lib.getExe' stdenv.cc "${stdenv.cc.targetPrefix}objdump"}" 20 "READELF=${lib.getExe' stdenv.cc "${stdenv.cc.targetPrefix}readelf"}" 21 "HOSTCC=${lib.getExe' buildPackages.stdenv.cc "${buildPackages.stdenv.cc.targetPrefix}cc"}" 22 "HOSTCXX=${lib.getExe' buildPackages.stdenv.cc "${buildPackages.stdenv.cc.targetPrefix}c++"}" 23 "HOSTAR=${lib.getExe' buildPackages.stdenv.cc.bintools "${buildPackages.stdenv.cc.targetPrefix}ar"}" 24 "HOSTLD=${lib.getExe' buildPackages.stdenv.cc.bintools "${buildPackages.stdenv.cc.targetPrefix}ld"}" 25 "ARCH=${stdenv.hostPlatform.linuxArch}" 26 "CROSS_COMPILE=${stdenv.cc.targetPrefix}" 27] 28# Add the built in headers the kernel needs 29++ lib.optionals (stdenv.cc.isClang) ( 30 let 31 clangLib = lib.getLib stdenv.cc.cc; 32 majorVer = lib.versions.major clangLib.version; 33 in 34 [ 35 "CFLAGS_MODULE=-I${clangLib}/lib/clang/${majorVer}/include" 36 "CFLAGS_KERNEL=-I${clangLib}/lib/clang/${majorVer}/include" 37 ] 38) 39++ (stdenv.hostPlatform.linux-kernel.makeFlags or [ ]) 40++ extraMakeFlags