uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
98
pkgs/os-specific/linux/kernel-headers/default.nix
Normal file
98
pkgs/os-specific/linux/kernel-headers/default.nix
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
{ stdenvNoCC, lib, buildPackages, fetchurl, perl, elf-header
|
||||
, bison ? null, flex ? null, python ? null, rsync ? null
|
||||
}:
|
||||
|
||||
assert stdenvNoCC.hostPlatform.isAndroid ->
|
||||
(flex != null && bison != null && python != null && rsync != null);
|
||||
|
||||
let
|
||||
makeLinuxHeaders = { src, version, patches ? [] }: stdenvNoCC.mkDerivation {
|
||||
inherit src;
|
||||
|
||||
pname = "linux-headers";
|
||||
inherit version;
|
||||
|
||||
ARCH = stdenvNoCC.hostPlatform.linuxArch;
|
||||
|
||||
strictDeps = true;
|
||||
enableParallelBuilding = true;
|
||||
|
||||
# It may look odd that we use `stdenvNoCC`, and yet explicit depend on a cc.
|
||||
# We do this so we have a build->build, not build->host, C compiler.
|
||||
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||
# `elf-header` is null when libc provides `elf.h`.
|
||||
nativeBuildInputs = [
|
||||
perl elf-header
|
||||
] ++ lib.optionals stdenvNoCC.hostPlatform.isAndroid [
|
||||
flex bison python rsync
|
||||
];
|
||||
|
||||
extraIncludeDirs = lib.optional (with stdenvNoCC.hostPlatform; isPower && is32bit && isBigEndian) ["ppc"];
|
||||
|
||||
inherit patches;
|
||||
|
||||
hardeningDisable = lib.optional stdenvNoCC.buildPlatform.isDarwin "format";
|
||||
|
||||
makeFlags = [
|
||||
"SHELL=bash"
|
||||
# Avoid use of runtime build->host compilers for checks. These
|
||||
# checks only cared to work around bugs in very old compilers, so
|
||||
# these changes should be safe.
|
||||
"cc-version:=9999"
|
||||
"cc-fullversion:=999999"
|
||||
# `$(..)` expanded by make alone
|
||||
"HOSTCC:=$(CC_FOR_BUILD)"
|
||||
"HOSTCXX:=$(CXX_FOR_BUILD)"
|
||||
];
|
||||
|
||||
# Skip clean on darwin, case-sensitivity issues.
|
||||
buildPhase = lib.optionalString (!stdenvNoCC.buildPlatform.isDarwin) ''
|
||||
make mrproper $makeFlags
|
||||
'' + (if stdenvNoCC.hostPlatform.isAndroid then ''
|
||||
make defconfig
|
||||
make headers_install
|
||||
'' else ''
|
||||
make headers $makeFlags
|
||||
'');
|
||||
|
||||
checkPhase = ''
|
||||
make headers_check $makeFlags
|
||||
'';
|
||||
|
||||
# The following command requires rsync:
|
||||
# make headers_install INSTALL_HDR_PATH=$out $makeFlags
|
||||
# but rsync depends on popt which does not compile on aarch64 without
|
||||
# updateAutotoolsGnuConfigScriptsHook which is not enabled in stage2,
|
||||
# so we replicate it with cp. This also reduces bootstrap closure size.
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp -r usr/include $out
|
||||
find $out -type f ! -name '*.h' -delete
|
||||
''
|
||||
# Some builds (e.g. KVM) want a kernel.release.
|
||||
+ ''
|
||||
mkdir -p $out/include/config
|
||||
echo "${version}-default" > $out/include/config/kernel.release
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Header files and scripts for Linux kernel";
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
};
|
||||
in {
|
||||
inherit makeLinuxHeaders;
|
||||
|
||||
linuxHeaders = let version = "5.17"; in
|
||||
makeLinuxHeaders {
|
||||
inherit version;
|
||||
src = fetchurl {
|
||||
url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
|
||||
sha256 = "1cdi43x4c3l4chznh57gm55szycj4wjlxl1dss1ilnfvvmhyypsm";
|
||||
};
|
||||
patches = [
|
||||
./no-relocs.patch # for building x86 kernel headers on non-ELF platforms
|
||||
];
|
||||
};
|
||||
}
|
||||
7
pkgs/os-specific/linux/kernel-headers/no-relocs.patch
Normal file
7
pkgs/os-specific/linux/kernel-headers/no-relocs.patch
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
--- a/arch/x86/Makefile
|
||||
+++ b/arch/x86/Makefile
|
||||
@@ -231,3 +231,3 @@ endif
|
||||
archscripts: scripts_basic
|
||||
- $(Q)$(MAKE) $(build)=arch/x86/tools relocs
|
||||
+ $(Q)$(MAKE) $(build)=arch/x86/tools
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue