From 85017c40f4efce11edd77e0caac14aed0fd690eb Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sat, 27 Apr 2019 19:13:07 +0200 Subject: [PATCH] build: add a config option for enabling a testing version of the target kernel If the target supports a newer kernel version that is not used by default yet, it can be enabled with this option Signed-off-by: Felix Fietkau --- config/Config-build.in | 9 +++++++++ include/kernel-version.mk | 7 +++++++ include/target.mk | 4 ++++ scripts/metadata.pm | 1 + scripts/target-metadata.pl | 17 ++++++++++++----- target/Config.in | 3 +++ target/linux/apm821xx/Makefile | 1 + target/linux/ath79/Makefile | 1 + target/linux/bcm53xx/Makefile | 1 + target/linux/brcm47xx/Makefile | 1 + target/linux/cns3xxx/Makefile | 1 + target/linux/gemini/Makefile | 1 + target/linux/imx6/Makefile | 1 + target/linux/ipq40xx/Makefile | 1 + target/linux/kirkwood/Makefile | 1 + target/linux/mpc85xx/Makefile | 1 + target/linux/octeon/Makefile | 1 + target/linux/sunxi/Makefile | 1 + target/linux/tegra/Makefile | 1 + target/linux/x86/Makefile | 1 + 20 files changed, 50 insertions(+), 5 deletions(-) diff --git a/config/Config-build.in b/config/Config-build.in index 6d749476db..5132497e1d 100644 --- a/config/Config-build.in +++ b/config/Config-build.in @@ -36,6 +36,15 @@ menu "Global build settings" comment "General build options" + config TESTING_KERNEL + bool "Use the testing kernel version" + depends on HAS_TESTING_KERNEL + default n + help + If the target supports a newer kernel version than the default, + you can use this config option to enable it + + config DISPLAY_SUPPORT bool "Show packages that require graphics support (local or remote)" default n diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 81ec2bd252..c978294ecf 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -2,6 +2,10 @@ LINUX_RELEASE?=1 +ifdef CONFIG_TESTING_KERNEL + KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER) +endif + LINUX_VERSION-4.9 = .172 LINUX_VERSION-4.14 = .115 LINUX_VERSION-4.19 = .38 @@ -23,6 +27,9 @@ else ifdef KERNEL_PATCHVER LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER))) endif +ifdef KERNEL_TESTING_PATCHVER + LINUX_TESTING_VERSION:=$(KERNEL_TESTING_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_TESTING_PATCHVER))) +endif endif split_version=$(subst ., ,$(1)) diff --git a/include/target.mk b/include/target.mk index d24bb9cd11..4f3bd43e6c 100644 --- a/include/target.mk +++ b/include/target.mk @@ -225,6 +225,9 @@ ifeq ($(DUMP),1) .SILENT: $(TMP_CONFIG) .PRECIOUS: $(TMP_CONFIG) + ifdef KERNEL_TESTING_PATCHVER + FEATURES += testing-kernel + endif ifneq ($(CONFIG_OF),) FEATURES += dt endif @@ -283,6 +286,7 @@ define BuildTargets/DumpCurrent echo 'Target-Optimization: $(if $(CFLAGS),$(CFLAGS),$(DEFAULT_CFLAGS))'; \ echo 'CPU-Type: $(CPU_TYPE)$(if $(CPU_SUBTYPE),+$(CPU_SUBTYPE))'; \ echo 'Linux-Version: $(LINUX_VERSION)'; \ + $(if $(LINUX_TESTING_VERSION),echo 'Linux-Testing-Version: $(LINUX_TESTING_VERSION)';) \ echo 'Linux-Release: $(LINUX_RELEASE)'; \ echo 'Linux-Kernel-Arch: $(LINUX_KARCH)'; \ $(if $(SUBTARGET),,$(if $(DEFAULT_SUBTARGET), echo 'Default-Subtarget: $(DEFAULT_SUBTARGET)'; )) \ diff --git a/scripts/metadata.pm b/scripts/metadata.pm index a338b8caad..d088332152 100644 --- a/scripts/metadata.pm +++ b/scripts/metadata.pm @@ -131,6 +131,7 @@ sub parse_target_metadata($) { /^Target-Optimization:\s*(.+)\s*$/ and $target->{cflags} = $1; /^CPU-Type:\s*(.+)\s*$/ and $target->{cputype} = $1; /^Linux-Version:\s*(.+)\s*$/ and $target->{version} = $1; + /^Linux-Testing-Version:\s*(.+)\s*$/ and $target->{testing_version} = $1; /^Linux-Release:\s*(.+)\s*$/ and $target->{release} = $1; /^Linux-Kernel-Arch:\s*(.+)\s*$/ and $target->{karch} = $1; /^Default-Subtarget:\s*(.+)\s*$/ and $target->{def_subtarget} = $1; diff --git a/scripts/target-metadata.pl b/scripts/target-metadata.pl index 123958799f..d183e943f6 100755 --- a/scripts/target-metadata.pl +++ b/scripts/target-metadata.pl @@ -42,6 +42,7 @@ sub target_config_features(@) { /^virtio$/ and $ret .= "\tselect VIRTIO_SUPPORT\n"; /^rootfs-part$/ and $ret .= "\tselect USES_ROOTFS_PART\n"; /^boot-part$/ and $ret .= "\tselect USES_BOOT_PART\n"; + /^testing-kernel$/ and $ret .= "\tselect HAS_TESTING_KERNEL\n"; } return $ret; } @@ -83,11 +84,14 @@ sub print_target($) { } my $v = kver($target->{version}); + my $tv = kver($target->{testing_version}); + $tv or $tv = $v; if (@{$target->{subtargets}} == 0) { $confstr = <{conf} bool "$target->{name}" - select LINUX_$v + select LINUX_$v if !TESTING_KERNEL + select LINUX_$tv if TESTING_KERNEL EOF } else { @@ -387,15 +391,18 @@ EOF my %kver; foreach my $target (@target) { - my $v = kver($target->{version}); - next if $kver{$v}; - $kver{$v} = 1; - print <{version}, $target->{testing_version}) { + next unless $tv; + my $v = kver($tv); + next if $kver{$v}; + $kver{$v} = 1; + print <, \ SUBTARGETS:=nand sata KERNEL_PATCHVER:=4.14 +KERNEL_TESTING_PATCHVER := 4.19 define Target/Description Build images for AppliedMicro APM821xx based boards. diff --git a/target/linux/ath79/Makefile b/target/linux/ath79/Makefile index 82f6317ac6..0ccc0bed1c 100644 --- a/target/linux/ath79/Makefile +++ b/target/linux/ath79/Makefile @@ -9,6 +9,7 @@ SUBTARGETS:=generic nand tiny FEATURES:=ramdisk KERNEL_PATCHVER:=4.14 +KERNEL_TESTING_PATCHVER := 4.19 include $(INCLUDE_DIR)/target.mk diff --git a/target/linux/bcm53xx/Makefile b/target/linux/bcm53xx/Makefile index 2af1c7e719..4171a04ee4 100644 --- a/target/linux/bcm53xx/Makefile +++ b/target/linux/bcm53xx/Makefile @@ -14,6 +14,7 @@ MAINTAINER:=Hauke Mehrtens CPU_TYPE:=cortex-a9 KERNEL_PATCHVER:=4.14 +KERNEL_TESTING_PATCHVER := 4.19 define Target/Description Build firmware images for Broadcom based BCM47xx/53xx routers with ARM CPU, *not* MIPS. diff --git a/target/linux/brcm47xx/Makefile b/target/linux/brcm47xx/Makefile index af91d8bada..b991770e12 100644 --- a/target/linux/brcm47xx/Makefile +++ b/target/linux/brcm47xx/Makefile @@ -14,6 +14,7 @@ SUBTARGETS:=generic mips74k legacy MAINTAINER:=Hauke Mehrtens KERNEL_PATCHVER:=4.14 +KERNEL_TESTING_PATCHVER := 4.19 define Target/Description Build firmware images for Broadcom based BCM47xx/53xx routers with MIPS CPU, *not* ARM. diff --git a/target/linux/cns3xxx/Makefile b/target/linux/cns3xxx/Makefile index abb1fccf32..785b06f596 100644 --- a/target/linux/cns3xxx/Makefile +++ b/target/linux/cns3xxx/Makefile @@ -15,6 +15,7 @@ CPU_SUBTYPE:=vfp MAINTAINER:=Felix Fietkau , \ Koen Vandeputte KERNEL_PATCHVER:=4.14 +KERNEL_TESTING_PATCHVER := 4.19 define Target/Description Build images for Cavium Networks Econa CNS3xxx based boards, diff --git a/target/linux/gemini/Makefile b/target/linux/gemini/Makefile index 304e515980..867e284714 100644 --- a/target/linux/gemini/Makefile +++ b/target/linux/gemini/Makefile @@ -14,6 +14,7 @@ CPU_TYPE:=fa526 MAINTAINER:=Roman Yeryomin KERNEL_PATCHVER:=4.14 +KERNEL_TESTING_PATCHVER := 4.19 define Target/Description Build firmware images for the StorLink/Cortina Gemini CS351x ARM FA526 CPU diff --git a/target/linux/imx6/Makefile b/target/linux/imx6/Makefile index 49e4487026..457e767c05 100644 --- a/target/linux/imx6/Makefile +++ b/target/linux/imx6/Makefile @@ -15,6 +15,7 @@ CPU_SUBTYPE:=neon MAINTAINER:=Luka Perkov KERNEL_PATCHVER:=4.14 +KERNEL_TESTING_PATCHVER := 4.19 include $(INCLUDE_DIR)/target.mk diff --git a/target/linux/ipq40xx/Makefile b/target/linux/ipq40xx/Makefile index ab7b174e40..2785b73ed1 100644 --- a/target/linux/ipq40xx/Makefile +++ b/target/linux/ipq40xx/Makefile @@ -10,6 +10,7 @@ MAINTAINER:=John Crispin # TODO: drop kmod-usb-dwc3-of-simple when migrating to 4.19 KERNEL_PATCHVER:=4.14 +KERNEL_TESTING_PATCHVER := 4.19 KERNELNAME:=zImage Image dtbs diff --git a/target/linux/kirkwood/Makefile b/target/linux/kirkwood/Makefile index 3eac246a42..adc7a496e1 100644 --- a/target/linux/kirkwood/Makefile +++ b/target/linux/kirkwood/Makefile @@ -14,6 +14,7 @@ CPU_TYPE:=xscale MAINTAINER:=Luka Perkov KERNEL_PATCHVER:=4.14 +KERNEL_TESTING_PATCHVER := 4.19 include $(INCLUDE_DIR)/target.mk diff --git a/target/linux/mpc85xx/Makefile b/target/linux/mpc85xx/Makefile index e08b00ab8e..9db478d87b 100644 --- a/target/linux/mpc85xx/Makefile +++ b/target/linux/mpc85xx/Makefile @@ -15,6 +15,7 @@ MAINTAINER:=Imre Kaloz SUBTARGETS:=generic p1020 p2020 KERNEL_PATCHVER:=4.14 +KERNEL_TESTING_PATCHVER := 4.19 KERNELNAME:=zImage diff --git a/target/linux/octeon/Makefile b/target/linux/octeon/Makefile index 6c0623cb9b..202ed39be7 100644 --- a/target/linux/octeon/Makefile +++ b/target/linux/octeon/Makefile @@ -14,6 +14,7 @@ CPU_TYPE:=octeonplus MAINTAINER:=John Crispin KERNEL_PATCHVER:=4.14 +KERNEL_TESTING_PATCHVER := 4.19 define Target/Description Build firmware images for Cavium Networks Octeon-based boards. diff --git a/target/linux/sunxi/Makefile b/target/linux/sunxi/Makefile index 8d09d4e939..aae7df1b44 100644 --- a/target/linux/sunxi/Makefile +++ b/target/linux/sunxi/Makefile @@ -15,6 +15,7 @@ SUBTARGETS:=cortexa8 cortexa7 cortexa53 MAINTAINER:=Zoltan HERPAI KERNEL_PATCHVER:=4.14 +KERNEL_TESTING_PATCHVER := 4.19 KERNELNAME:=zImage dtbs # A10: Cortex-A8 diff --git a/target/linux/tegra/Makefile b/target/linux/tegra/Makefile index 57cb902cfd..8a611e29ab 100644 --- a/target/linux/tegra/Makefile +++ b/target/linux/tegra/Makefile @@ -15,6 +15,7 @@ CPU_SUBTYPE := vfpv3 MAINTAINER := Tomasz Maciej Nowak KERNEL_PATCHVER := 4.14 +KERNEL_TESTING_PATCHVER := 4.19 include $(INCLUDE_DIR)/target.mk diff --git a/target/linux/x86/Makefile b/target/linux/x86/Makefile index 533c0e5248..509ccb47a2 100644 --- a/target/linux/x86/Makefile +++ b/target/linux/x86/Makefile @@ -14,6 +14,7 @@ SUBTARGETS:=generic legacy geode 64 MAINTAINER:=Felix Fietkau KERNEL_PATCHVER:=4.14 +KERNEL_TESTING_PATCHVER:=4.19 KERNELNAME:=bzImage