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 <nbd@nbd.name>
v19.07.3_mercusys_ac12_duma
Felix Fietkau 5 years ago
parent 9cb3a3255e
commit 85017c40f4

@ -36,6 +36,15 @@ menu "Global build settings"
comment "General build options" 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 config DISPLAY_SUPPORT
bool "Show packages that require graphics support (local or remote)" bool "Show packages that require graphics support (local or remote)"
default n default n

@ -2,6 +2,10 @@
LINUX_RELEASE?=1 LINUX_RELEASE?=1
ifdef CONFIG_TESTING_KERNEL
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif
LINUX_VERSION-4.9 = .172 LINUX_VERSION-4.9 = .172
LINUX_VERSION-4.14 = .115 LINUX_VERSION-4.14 = .115
LINUX_VERSION-4.19 = .38 LINUX_VERSION-4.19 = .38
@ -23,6 +27,9 @@ else
ifdef KERNEL_PATCHVER ifdef KERNEL_PATCHVER
LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER))) LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
endif endif
ifdef KERNEL_TESTING_PATCHVER
LINUX_TESTING_VERSION:=$(KERNEL_TESTING_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_TESTING_PATCHVER)))
endif
endif endif
split_version=$(subst ., ,$(1)) split_version=$(subst ., ,$(1))

@ -225,6 +225,9 @@ ifeq ($(DUMP),1)
.SILENT: $(TMP_CONFIG) .SILENT: $(TMP_CONFIG)
.PRECIOUS: $(TMP_CONFIG) .PRECIOUS: $(TMP_CONFIG)
ifdef KERNEL_TESTING_PATCHVER
FEATURES += testing-kernel
endif
ifneq ($(CONFIG_OF),) ifneq ($(CONFIG_OF),)
FEATURES += dt FEATURES += dt
endif endif
@ -283,6 +286,7 @@ define BuildTargets/DumpCurrent
echo 'Target-Optimization: $(if $(CFLAGS),$(CFLAGS),$(DEFAULT_CFLAGS))'; \ echo 'Target-Optimization: $(if $(CFLAGS),$(CFLAGS),$(DEFAULT_CFLAGS))'; \
echo 'CPU-Type: $(CPU_TYPE)$(if $(CPU_SUBTYPE),+$(CPU_SUBTYPE))'; \ echo 'CPU-Type: $(CPU_TYPE)$(if $(CPU_SUBTYPE),+$(CPU_SUBTYPE))'; \
echo 'Linux-Version: $(LINUX_VERSION)'; \ echo 'Linux-Version: $(LINUX_VERSION)'; \
$(if $(LINUX_TESTING_VERSION),echo 'Linux-Testing-Version: $(LINUX_TESTING_VERSION)';) \
echo 'Linux-Release: $(LINUX_RELEASE)'; \ echo 'Linux-Release: $(LINUX_RELEASE)'; \
echo 'Linux-Kernel-Arch: $(LINUX_KARCH)'; \ echo 'Linux-Kernel-Arch: $(LINUX_KARCH)'; \
$(if $(SUBTARGET),,$(if $(DEFAULT_SUBTARGET), echo 'Default-Subtarget: $(DEFAULT_SUBTARGET)'; )) \ $(if $(SUBTARGET),,$(if $(DEFAULT_SUBTARGET), echo 'Default-Subtarget: $(DEFAULT_SUBTARGET)'; )) \

@ -131,6 +131,7 @@ sub parse_target_metadata($) {
/^Target-Optimization:\s*(.+)\s*$/ and $target->{cflags} = $1; /^Target-Optimization:\s*(.+)\s*$/ and $target->{cflags} = $1;
/^CPU-Type:\s*(.+)\s*$/ and $target->{cputype} = $1; /^CPU-Type:\s*(.+)\s*$/ and $target->{cputype} = $1;
/^Linux-Version:\s*(.+)\s*$/ and $target->{version} = $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-Release:\s*(.+)\s*$/ and $target->{release} = $1;
/^Linux-Kernel-Arch:\s*(.+)\s*$/ and $target->{karch} = $1; /^Linux-Kernel-Arch:\s*(.+)\s*$/ and $target->{karch} = $1;
/^Default-Subtarget:\s*(.+)\s*$/ and $target->{def_subtarget} = $1; /^Default-Subtarget:\s*(.+)\s*$/ and $target->{def_subtarget} = $1;

@ -42,6 +42,7 @@ sub target_config_features(@) {
/^virtio$/ and $ret .= "\tselect VIRTIO_SUPPORT\n"; /^virtio$/ and $ret .= "\tselect VIRTIO_SUPPORT\n";
/^rootfs-part$/ and $ret .= "\tselect USES_ROOTFS_PART\n"; /^rootfs-part$/ and $ret .= "\tselect USES_ROOTFS_PART\n";
/^boot-part$/ and $ret .= "\tselect USES_BOOT_PART\n"; /^boot-part$/ and $ret .= "\tselect USES_BOOT_PART\n";
/^testing-kernel$/ and $ret .= "\tselect HAS_TESTING_KERNEL\n";
} }
return $ret; return $ret;
} }
@ -83,11 +84,14 @@ sub print_target($) {
} }
my $v = kver($target->{version}); my $v = kver($target->{version});
my $tv = kver($target->{testing_version});
$tv or $tv = $v;
if (@{$target->{subtargets}} == 0) { if (@{$target->{subtargets}} == 0) {
$confstr = <<EOF; $confstr = <<EOF;
config TARGET_$target->{conf} config TARGET_$target->{conf}
bool "$target->{name}" bool "$target->{name}"
select LINUX_$v select LINUX_$v if !TESTING_KERNEL
select LINUX_$tv if TESTING_KERNEL
EOF EOF
} }
else { else {
@ -387,15 +391,18 @@ EOF
my %kver; my %kver;
foreach my $target (@target) { foreach my $target (@target) {
my $v = kver($target->{version}); foreach my $tv ($target->{version}, $target->{testing_version}) {
next if $kver{$v}; next unless $tv;
$kver{$v} = 1; my $v = kver($tv);
print <<EOF; next if $kver{$v};
$kver{$v} = 1;
print <<EOF;
config LINUX_$v config LINUX_$v
bool bool
EOF EOF
}
} }
foreach my $def (sort keys %defaults) { foreach my $def (sort keys %defaults) {
print <<EOF; print <<EOF;

@ -2,6 +2,9 @@ source "tmp/.config-target.in"
# Kernel/Hardware features # Kernel/Hardware features
config HAS_TESTING_KERNEL
bool
config HAS_SPE_FPU config HAS_SPE_FPU
depends on powerpc depends on powerpc
select HAS_FPU select HAS_FPU

@ -14,6 +14,7 @@ MAINTAINER:=Chris Blake <chrisrblake93@gmail.com>, \
SUBTARGETS:=nand sata SUBTARGETS:=nand sata
KERNEL_PATCHVER:=4.14 KERNEL_PATCHVER:=4.14
KERNEL_TESTING_PATCHVER := 4.19
define Target/Description define Target/Description
Build images for AppliedMicro APM821xx based boards. Build images for AppliedMicro APM821xx based boards.

@ -9,6 +9,7 @@ SUBTARGETS:=generic nand tiny
FEATURES:=ramdisk FEATURES:=ramdisk
KERNEL_PATCHVER:=4.14 KERNEL_PATCHVER:=4.14
KERNEL_TESTING_PATCHVER := 4.19
include $(INCLUDE_DIR)/target.mk include $(INCLUDE_DIR)/target.mk

@ -14,6 +14,7 @@ MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de>
CPU_TYPE:=cortex-a9 CPU_TYPE:=cortex-a9
KERNEL_PATCHVER:=4.14 KERNEL_PATCHVER:=4.14
KERNEL_TESTING_PATCHVER := 4.19
define Target/Description define Target/Description
Build firmware images for Broadcom based BCM47xx/53xx routers with ARM CPU, *not* MIPS. Build firmware images for Broadcom based BCM47xx/53xx routers with ARM CPU, *not* MIPS.

@ -14,6 +14,7 @@ SUBTARGETS:=generic mips74k legacy
MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de> MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de>
KERNEL_PATCHVER:=4.14 KERNEL_PATCHVER:=4.14
KERNEL_TESTING_PATCHVER := 4.19
define Target/Description define Target/Description
Build firmware images for Broadcom based BCM47xx/53xx routers with MIPS CPU, *not* ARM. Build firmware images for Broadcom based BCM47xx/53xx routers with MIPS CPU, *not* ARM.

@ -15,6 +15,7 @@ CPU_SUBTYPE:=vfp
MAINTAINER:=Felix Fietkau <nbd@nbd.name>, \ MAINTAINER:=Felix Fietkau <nbd@nbd.name>, \
Koen Vandeputte <koen.vandeputte@ncentric.com> Koen Vandeputte <koen.vandeputte@ncentric.com>
KERNEL_PATCHVER:=4.14 KERNEL_PATCHVER:=4.14
KERNEL_TESTING_PATCHVER := 4.19
define Target/Description define Target/Description
Build images for Cavium Networks Econa CNS3xxx based boards, Build images for Cavium Networks Econa CNS3xxx based boards,

@ -14,6 +14,7 @@ CPU_TYPE:=fa526
MAINTAINER:=Roman Yeryomin <roman@advem.lv> MAINTAINER:=Roman Yeryomin <roman@advem.lv>
KERNEL_PATCHVER:=4.14 KERNEL_PATCHVER:=4.14
KERNEL_TESTING_PATCHVER := 4.19
define Target/Description define Target/Description
Build firmware images for the StorLink/Cortina Gemini CS351x ARM FA526 CPU Build firmware images for the StorLink/Cortina Gemini CS351x ARM FA526 CPU

@ -15,6 +15,7 @@ CPU_SUBTYPE:=neon
MAINTAINER:=Luka Perkov <luka@openwrt.org> MAINTAINER:=Luka Perkov <luka@openwrt.org>
KERNEL_PATCHVER:=4.14 KERNEL_PATCHVER:=4.14
KERNEL_TESTING_PATCHVER := 4.19
include $(INCLUDE_DIR)/target.mk include $(INCLUDE_DIR)/target.mk

@ -10,6 +10,7 @@ MAINTAINER:=John Crispin <john@phrozen.org>
# TODO: drop kmod-usb-dwc3-of-simple when migrating to 4.19 # TODO: drop kmod-usb-dwc3-of-simple when migrating to 4.19
KERNEL_PATCHVER:=4.14 KERNEL_PATCHVER:=4.14
KERNEL_TESTING_PATCHVER := 4.19
KERNELNAME:=zImage Image dtbs KERNELNAME:=zImage Image dtbs

@ -14,6 +14,7 @@ CPU_TYPE:=xscale
MAINTAINER:=Luka Perkov <luka@openwrt.org> MAINTAINER:=Luka Perkov <luka@openwrt.org>
KERNEL_PATCHVER:=4.14 KERNEL_PATCHVER:=4.14
KERNEL_TESTING_PATCHVER := 4.19
include $(INCLUDE_DIR)/target.mk include $(INCLUDE_DIR)/target.mk

@ -15,6 +15,7 @@ MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
SUBTARGETS:=generic p1020 p2020 SUBTARGETS:=generic p1020 p2020
KERNEL_PATCHVER:=4.14 KERNEL_PATCHVER:=4.14
KERNEL_TESTING_PATCHVER := 4.19
KERNELNAME:=zImage KERNELNAME:=zImage

@ -14,6 +14,7 @@ CPU_TYPE:=octeonplus
MAINTAINER:=John Crispin <john@phrozen.org> MAINTAINER:=John Crispin <john@phrozen.org>
KERNEL_PATCHVER:=4.14 KERNEL_PATCHVER:=4.14
KERNEL_TESTING_PATCHVER := 4.19
define Target/Description define Target/Description
Build firmware images for Cavium Networks Octeon-based boards. Build firmware images for Cavium Networks Octeon-based boards.

@ -15,6 +15,7 @@ SUBTARGETS:=cortexa8 cortexa7 cortexa53
MAINTAINER:=Zoltan HERPAI <wigyori@uid0.hu> MAINTAINER:=Zoltan HERPAI <wigyori@uid0.hu>
KERNEL_PATCHVER:=4.14 KERNEL_PATCHVER:=4.14
KERNEL_TESTING_PATCHVER := 4.19
KERNELNAME:=zImage dtbs KERNELNAME:=zImage dtbs
# A10: Cortex-A8 # A10: Cortex-A8

@ -15,6 +15,7 @@ CPU_SUBTYPE := vfpv3
MAINTAINER := Tomasz Maciej Nowak <tomek_n@o2.pl> MAINTAINER := Tomasz Maciej Nowak <tomek_n@o2.pl>
KERNEL_PATCHVER := 4.14 KERNEL_PATCHVER := 4.14
KERNEL_TESTING_PATCHVER := 4.19
include $(INCLUDE_DIR)/target.mk include $(INCLUDE_DIR)/target.mk

@ -14,6 +14,7 @@ SUBTARGETS:=generic legacy geode 64
MAINTAINER:=Felix Fietkau <nbd@nbd.name> MAINTAINER:=Felix Fietkau <nbd@nbd.name>
KERNEL_PATCHVER:=4.14 KERNEL_PATCHVER:=4.14
KERNEL_TESTING_PATCHVER:=4.19
KERNELNAME:=bzImage KERNELNAME:=bzImage

Loading…
Cancel
Save