From edc1cebc2f7baedf6479874db2848b45e22f4205 Mon Sep 17 00:00:00 2001 From: Dan Pasanen Date: Tue, 24 Jan 2017 15:46:13 -0600 Subject: [PATCH] kernel: clean up this madness * WARNING: this intentionally breaks the build on devices who are not setting BOARD_KERNEL_IMAGE_NAME and are still setting TARGET_USES_UNCOMPRESSED_KERNEL or TARGET_KERNEL_APPEND_DTB * The logic here is insanity and if all of this can be done by simply setting BOARD_KERNEL_IMAGE_NAME, why have all this extra cruft? * Use cases: - Set a kernel image name without "-dtb" on the end, you get a kernel. Nothing more. - Set a kernel image name with "-dtb" on the end, you get an kernel with an appended dt. - Set a kernel image name without "-dtb" on the end, and set BOARD_KERNEL_SEPARATED_DT. You get a kernel and a separated dt.img. - Set a kernel image name with "-dtb" on the end, and set BOARD_KERNEL_SEPARATED_DT. You're crazy. Change-Id: I5c3fc6eb727255684278ff562c0ee3faa7124b6b --- build/tasks/kernel.mk | 43 ++++++++++++++++++------------------------- 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/build/tasks/kernel.mk b/build/tasks/kernel.mk index dc7735e3..55357392 100644 --- a/build/tasks/kernel.mk +++ b/build/tasks/kernel.mk @@ -30,17 +30,19 @@ # TARGET_KERNEL_ARCH = Kernel Arch # TARGET_KERNEL_HEADER_ARCH = Optional Arch for kernel headers if # different from TARGET_KERNEL_ARCH -# TARGET_USES_UNCOMPRESSED_KERNEL = 'true' if Kernel is uncompressed, -# optional, defaults to false # TARGET_KERNEL_CROSS_COMPILE_PREFIX = Compiler prefix (e.g. arm-eabi-) # defaults to arm-linux-androidkernel- for arm # aarch64-linux-androidkernel- for arm64 # x86_64-linux-androidkernel- for x86 # -# BOARD_KERNEL_IMAGE_NAME = Built image name, optional, -# defaults to Image.gz on arm64 -# defaults to Image if TARGET_USES_UNCOMPRESSED_KERNEL -# defaults to zImage otherwise +# BOARD_KERNEL_IMAGE_NAME = Built image name +# for ARM use: zImage +# for ARM64 use: Image.gz +# for uncompressed use: Image +# If using an appended DT, append '-dtb' +# to the end of the image name. +# For example, for ARM devices, +# use zImage-dtb instead of zImage. # # KERNEL_TOOLCHAIN_PREFIX = Overrides TARGET_KERNEL_CROSS_COMPILE_PREFIX, # Set this var in shell to override @@ -96,25 +98,16 @@ ifeq ($(KERNEL_HEADER_DEFCONFIG),) KERNEL_HEADER_DEFCONFIG := $(KERNEL_DEFCONFIG) endif - -ifneq ($(BOARD_KERNEL_IMAGE_NAME),) - TARGET_PREBUILT_INT_KERNEL_TYPE := $(BOARD_KERNEL_IMAGE_NAME) -else - ifeq ($(TARGET_USES_UNCOMPRESSED_KERNEL),true) - TARGET_PREBUILT_INT_KERNEL_TYPE := Image - else - ifeq ($(KERNEL_ARCH),arm64) - TARGET_PREBUILT_INT_KERNEL_TYPE := Image.gz - else - TARGET_PREBUILT_INT_KERNEL_TYPE := zImage - endif - endif - ifeq ($(TARGET_KERNEL_APPEND_DTB),true) - TARGET_PREBUILT_INT_KERNEL_TYPE := $(TARGET_PREBUILT_INT_KERNEL_TYPE)-dtb - endif +ifeq ($(BOARD_KERNEL_IMAGE_NAME),) +$(error BOARD_KERNEL_IMAGE_NAME not defined.) endif - -TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/$(TARGET_PREBUILT_INT_KERNEL_TYPE) +ifneq ($(TARGET_USES_UNCOMPRESSED_KERNEL),) +$(error TARGET_USES_UNCOMPRESSED_KERNEL is deprecated.) +endif +ifneq ($(TARGET_KERNEL_APPEND_DTB),) +$(error TARGET_KERNEL_APPEND_DTB is deprecated.) +endif +TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/$(BOARD_KERNEL_IMAGE_NAME) # Clear this first to prevent accidental poisoning from env MAKE_FLAGS := @@ -296,7 +289,7 @@ $(KERNEL_CONFIG): $(KERNEL_OUT_STAMP) $(KERNEL_DEFCONFIG_SRC) $(KERNEL_ADDITIONA TARGET_KERNEL_BINARIES: $(KERNEL_OUT_STAMP) $(KERNEL_CONFIG) $(KERNEL_HEADERS_INSTALL_STAMP) @echo "Building Kernel" - $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(TARGET_PREBUILT_INT_KERNEL_TYPE) + $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(BOARD_KERNEL_IMAGE_NAME) $(hide) if grep -q 'CONFIG_OF=y' $(KERNEL_CONFIG) ; \ then \ echo "Building DTBs" ; \