X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=include%2Fkernel.mk;h=02d0949a7210f0c0b8b72a1ffdad746b88b893d2;hb=1444e31a7bf54b796f8ef88e77fee255b959c6bb;hp=97bcfe3f0b7d47b771f09e20ff35af55ea1cbbe0;hpb=c3a0102195a2902f1964b667fb86031308c78f9d;p=oweals%2Fopenwrt.git diff --git a/include/kernel.mk b/include/kernel.mk index 97bcfe3f0b..02d0949a72 100644 --- a/include/kernel.mk +++ b/include/kernel.mk @@ -59,10 +59,16 @@ else LINUX_KERNEL:=$(KERNEL_BUILD_DIR)/vmlinux - LINUX_SOURCE:=linux-$(LINUX_VERSION).tar.xz - TESTING:=$(if $(findstring -rc,$(LINUX_VERSION)),/testing,) - ifeq ($(call qstrip,$(CONFIG_EXTERNAL_KERNEL_TREE))$(call qstrip,$(CONFIG_KERNEL_GIT_CLONE_URI)),) - LINUX_SITE:=@KERNEL/linux/kernel/v$(word 1,$(subst ., ,$(KERNEL_BASE))).x$(TESTING) + ifneq (,$(findstring -rc,$(LINUX_VERSION))) + LINUX_SOURCE:=linux-$(LINUX_VERSION).tar.gz + else + LINUX_SOURCE:=linux-$(LINUX_VERSION).tar.xz + endif + + ifneq (,$(findstring -rc,$(LINUX_VERSION))) + LINUX_SITE:=https://git.kernel.org/torvalds/t + else ifeq ($(call qstrip,$(CONFIG_EXTERNAL_KERNEL_TREE))$(call qstrip,$(CONFIG_KERNEL_GIT_CLONE_URI)),) + LINUX_SITE:=@KERNEL/linux/kernel/v$(word 1,$(subst ., ,$(KERNEL_BASE))).x else LINUX_UNAME_VERSION:=$(strip $(shell cat $(LINUX_DIR)/include/config/kernel.release 2>/dev/null)) endif @@ -71,7 +77,7 @@ else TARGET_MODULES_DIR:=$(LINUX_TARGET_DIR)/$(MODULES_SUBDIR) ifneq ($(TARGET_BUILD),1) - PKG_BUILD_DIR ?= $(KERNEL_BUILD_DIR)/$(PKG_NAME)$(if $(PKG_VERSION),-$(PKG_VERSION)) + PKG_BUILD_DIR ?= $(KERNEL_BUILD_DIR)/$(if $(BUILD_VARIANT),$(PKG_NAME)-$(BUILD_VARIANT)/)$(PKG_NAME)$(if $(PKG_VERSION),-$(PKG_VERSION)) endif endif @@ -98,6 +104,7 @@ endif KERNEL_MAKE = $(MAKE) $(KERNEL_MAKEOPTS) KERNEL_MAKE_FLAGS = \ + KCFLAGS="$(call iremap,$(BUILD_DIR),$(notdir $(BUILD_DIR)))" \ HOSTCFLAGS="$(HOST_CFLAGS) -Wall -Wmissing-prototypes -Wstrict-prototypes" \ CROSS_COMPILE="$(KERNEL_CROSS)" \ ARCH="$(LINUX_KARCH)" \ @@ -107,6 +114,7 @@ KERNEL_MAKE_FLAGS = \ KBUILD_BUILD_TIMESTAMP="$(KBUILD_BUILD_TIMESTAMP)" \ KBUILD_BUILD_VERSION="0" \ HOST_LOADLIBES="-L$(STAGING_DIR_HOST)/lib" \ + KBUILD_HOSTLDLIBS="-L$(STAGING_DIR_HOST)/lib" \ CONFIG_SHELL="$(BASH)" \ $(if $(findstring c,$(OPENWRT_VERBOSE)),V=1,V='') \ $(if $(PKG_BUILD_ID),LDFLAGS_MODULE=--build-id=0x$(PKG_BUILD_ID)) \ @@ -123,6 +131,11 @@ ifdef CONFIG_USE_SPARSE KERNEL_MAKEOPTS += C=1 CHECK=$(STAGING_DIR_HOST)/bin/sparse endif +ifneq ($(HOST_OS),Linux) + KERNEL_MAKEOPTS += CONFIG_STACK_VALIDATION= + export SKIP_STACK_VALIDATION:=1 +endif + PKG_EXTMOD_SUBDIRS ?= . define populate_module_symvers @@ -135,7 +148,10 @@ endef define collect_module_symvers for subdir in $(PKG_EXTMOD_SUBDIRS); do \ - grep -F $$$$(readlink -f $(PKG_BUILD_DIR)) $(PKG_BUILD_DIR)/$$$$subdir/Module.symvers >> $(PKG_BUILD_DIR)/Module.symvers.tmp; \ + realdir=$$$$(readlink -f $(PKG_BUILD_DIR)); \ + grep -F $(PKG_BUILD_DIR) $(PKG_BUILD_DIR)/$$$$subdir/Module.symvers >> $(PKG_BUILD_DIR)/Module.symvers.tmp; \ + [ "$(PKG_BUILD_DIR)" = "$$$$realdir" ] || \ + grep -F $$$$realdir $(PKG_BUILD_DIR)/$$$$subdir/Module.symvers >> $(PKG_BUILD_DIR)/Module.symvers.tmp; \ done; \ sort -u $(PKG_BUILD_DIR)/Module.symvers.tmp > $(PKG_BUILD_DIR)/Module.symvers; \ mv $(PKG_BUILD_DIR)/Module.symvers $(PKG_INFO_DIR)/$(PKG_NAME).symvers @@ -237,7 +253,7 @@ $(call KernelPackage/$(1)/config) exit 1; \ fi; \ done; - $(call ModuleAutoLoad,$(1),$$(1),$(filter-out 0-,$(word 1,$(AUTOLOAD))-),$(filter-out 0,$(word 2,$(AUTOLOAD))),$(wordlist 3,99,$(AUTOLOAD))) + $(call ModuleAutoLoad,$(1),$$(1),$(filter-out 0-,$(word 1,$(AUTOLOAD))-),$(filter-out 0,$(word 2,$(AUTOLOAD))),$(sort $(wordlist 3,99,$(AUTOLOAD)))) $(call KernelPackage/$(1)/install,$$(1)) endef $(if $(CONFIG_PACKAGE_kmod-$(1)), @@ -253,7 +269,8 @@ $(call KernelPackage/$(1)/config) endif $$(eval $$(call BuildPackage,kmod-$(1))) - $$(IPKG_kmod-$(1)): $$(wildcard $$(FILES)) + $$(IPKG_kmod-$(1)): $$(wildcard $$(call version_filter,$$(FILES))) + endef version_filter=$(if $(findstring @,$(1)),$(shell $(SCRIPT_DIR)/package-metadata.pl version_filter $(KERNEL_PATCHVER) $(1)),$(1))