b4f0bcff0f
Fix e9b2edb491
41 lines
1.7 KiB
Nix
41 lines
1.7 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
buildPackages,
|
|
extraMakeFlags ? [ ],
|
|
}:
|
|
# Absolute paths for compilers avoid any PATH-clobbering issues.
|
|
[
|
|
#
|
|
# We use the unwrapped compiler, because the clang-wrapper doesn't like -target.
|
|
"CC=${lib.getExe stdenv.cc.cc}"
|
|
# The wrapper for ld.lld breaks linking the kernel. We use the unwrapped linker as workaround. See:
|
|
# https://github.com/NixOS/nixpkgs/issues/321667
|
|
"LD=${lib.getExe' stdenv.cc.bintools.bintools "${stdenv.cc.targetPrefix}ld"}"
|
|
"AR=${lib.getExe' stdenv.cc "${stdenv.cc.targetPrefix}ar"}"
|
|
"NM=${lib.getExe' stdenv.cc "${stdenv.cc.targetPrefix}nm"}"
|
|
"STRIP=${lib.getExe' stdenv.cc.bintools.bintools "${stdenv.cc.targetPrefix}strip"}"
|
|
"OBJCOPY=${lib.getExe' stdenv.cc "${stdenv.cc.targetPrefix}objcopy"}"
|
|
"OBJDUMP=${lib.getExe' stdenv.cc "${stdenv.cc.targetPrefix}objdump"}"
|
|
"READELF=${lib.getExe' stdenv.cc "${stdenv.cc.targetPrefix}readelf"}"
|
|
"HOSTCC=${lib.getExe' buildPackages.stdenv.cc "${buildPackages.stdenv.cc.targetPrefix}cc"}"
|
|
"HOSTCXX=${lib.getExe' buildPackages.stdenv.cc "${buildPackages.stdenv.cc.targetPrefix}c++"}"
|
|
"HOSTAR=${lib.getExe' buildPackages.stdenv.cc.bintools "${buildPackages.stdenv.cc.targetPrefix}ar"}"
|
|
"HOSTLD=${lib.getExe' buildPackages.stdenv.cc.bintools "${buildPackages.stdenv.cc.targetPrefix}ld"}"
|
|
"ARCH=${stdenv.hostPlatform.linuxArch}"
|
|
"CROSS_COMPILE=${stdenv.cc.targetPrefix}"
|
|
]
|
|
# Add the built in headers the kernel needs
|
|
++ lib.optionals (stdenv.cc.isClang) (
|
|
let
|
|
clangLib = lib.getLib stdenv.cc.cc;
|
|
majorVer = lib.versions.major clangLib.version;
|
|
in
|
|
[
|
|
"CFLAGS_MODULE=-I${clangLib}/lib/clang/${majorVer}/include"
|
|
"CFLAGS_KERNEL=-I${clangLib}/lib/clang/${majorVer}/include"
|
|
]
|
|
)
|
|
++ (stdenv.hostPlatform.linux-kernel.makeFlags or [ ])
|
|
++ extraMakeFlags
|