diff --git a/make/linux-kernel.mk b/make/linux-kernel.mk index ae75ae5b..59163757 100644 --- a/make/linux-kernel.mk +++ b/make/linux-kernel.mk @@ -201,6 +201,12 @@ $(DL_DIR)/$(VMLINUZ_INITRD_SOURCE): # ----------------------------------------------------------------------------- +# Older versions break on gcc 10+ because of redefined symbols +define LINUX_DROP_YYLLOC + $(Q)grep -Z -l -r -E '^YYLTYPE yylloc;$$' $(BUILD_DIR)/$(KERNEL_DIR) \ + | xargs -0 -r $(SED) '/^YYLTYPE yylloc;$$/d' +endef + kernel.do_checkout: $(SOURCE_DIR)/$(NI_LINUX_KERNEL) $(CD) $(SOURCE_DIR)/$(NI_LINUX_KERNEL); \ git checkout $(KERNEL_BRANCH) @@ -230,6 +236,7 @@ kernel.do_prepare_tar: $(DL_DIR)/$(KERNEL_SOURCE) $(REMOVE)/$(KERNEL_DIR) $(UNTAR)/$(KERNEL_SOURCE) $(call APPLY_PATCHES,$(KERNEL_PATCH)) + $(LINUX_DROP_YYLLOC) kernel.do_compile: kernel.do_prepare $(MAKE) -C $(BUILD_DIR)/$(KERNEL_DIR) $(KERNEL_MAKE_VARS) modules $(KERNEL_MAKE_TARGETS)