patches: Update for Bliss 11.2 Stable

Signed-off-by: Jackeagle <jackeagle102@gmail.com>
Change-Id: I6f7c6beee6581a349627f4f449f99f5c894e37e7
diff --git a/patches/vendor/bliss/0008-Revert-vendor-bliss-Move-some-kernel-definitions-to-.patch b/patches/vendor/bliss/0008-Revert-vendor-bliss-Move-some-kernel-definitions-to-.patch
new file mode 100644
index 0000000..caf67d9
--- /dev/null
+++ b/patches/vendor/bliss/0008-Revert-vendor-bliss-Move-some-kernel-definitions-to-.patch
@@ -0,0 +1,401 @@
+From f47a7f340355df09288b5c6aa293bc62d48da6c7 Mon Sep 17 00:00:00 2001
+From: Jackeagle <jackeagle102@gmail.com>
+Date: Sat, 17 Nov 2018 08:26:58 -0700
+Subject: [PATCH 8/9] Revert "vendor/bliss: Move some kernel definitions to
+ BoardConfigKernel"
+
+This reverts commit 3a8423358f51b6616622c881e04d82ba2f603984.
+---
+ build/tasks/kernel.mk       | 122 ++++++++++++++++++++++++++++++++----
+ config/BoardConfigBliss.mk  |   2 -
+ config/BoardConfigKernel.mk | 111 --------------------------------
+ 3 files changed, 111 insertions(+), 124 deletions(-)
+ delete mode 100644 config/BoardConfigKernel.mk
+
+diff --git a/build/tasks/kernel.mk b/build/tasks/kernel.mk
+index d0263d3..6057b9f 100644
+--- a/build/tasks/kernel.mk
++++ b/build/tasks/kernel.mk
+@@ -1,5 +1,4 @@
+ # Copyright (C) 2012 The CyanogenMod Project
+-#           (C) 2017 The LineageOS Project
+ #
+ # Licensed under the Apache License, Version 2.0 (the "License");
+ # you may not use this file except in compliance with the License.
+@@ -21,10 +20,17 @@
+ #
+ # These config vars are usually set in BoardConfig.mk:
+ #
++#   TARGET_KERNEL_SOURCE               = Kernel source dir, optional, defaults
++#                                        to kernel/$(TARGET_DEVICE_DIR)
+ #   TARGET_KERNEL_CONFIG               = Kernel defconfig
+ #   TARGET_KERNEL_VARIANT_CONFIG       = Variant defconfig, optional
+ #   TARGET_KERNEL_SELINUX_CONFIG       = SELinux defconfig, optional
+ #   TARGET_KERNEL_ADDITIONAL_CONFIG    = Additional defconfig, optional
++#   TARGET_KERNEL_ARCH                 = Kernel Arch
++#   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
+ #
+ #   TARGET_KERNEL_CLANG_COMPILE        = Compile kernel with clang, defaults to false
+ #
+@@ -41,6 +47,13 @@
+ #                                          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
++#                                          toolchain specified in BoardConfig.mk
++#   KERNEL_TOOLCHAIN                   = Path to toolchain, if unset, assumes
++#                                          TARGET_KERNEL_CROSS_COMPILE_PREFIX
++#                                          is in PATH
++#
+ #   KERNEL_CC                          = The C Compiler used. This is automatically set based
+ #                                          on whether the clang version is set, optional.
+ #
+@@ -49,6 +62,8 @@
+ #                                                      aarch64-linux-gnu- for arm64
+ #                                                      x86_64-linux-gnu- for x86
+ #
++#   USE_CCACHE                         = Enable ccache (global Android flag)
++#
+ #   NEED_KERNEL_MODULE_ROOT            = Optional, if true, install kernel
+ #                                          modules in root instead of vendor
+ #   NEED_KERNEL_MODULE_SYSTEM          = Optional, if true, install kernel
+@@ -56,7 +71,11 @@
+ 
+ ifneq ($(TARGET_NO_KERNEL),true)
+ 
++TARGET_AUTO_KDIR := $(shell echo $(TARGET_DEVICE_DIR) | sed -e 's/^device/kernel/g')
++
+ ## Externally influenced variables
++# kernel location - optional, defaults to kernel/<vendor>/<device>
++TARGET_KERNEL_SOURCE ?= $(TARGET_AUTO_KDIR)
+ KERNEL_SRC := $(TARGET_KERNEL_SOURCE)
+ # kernel configuration - mandatory
+ KERNEL_DEFCONFIG := $(TARGET_KERNEL_CONFIG)
+@@ -67,6 +86,13 @@ SELINUX_DEFCONFIG := $(TARGET_KERNEL_SELINUX_CONFIG)
+ KERNEL_OUT := $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ
+ KERNEL_CONFIG := $(KERNEL_OUT)/.config
+ 
++TARGET_KERNEL_ARCH := $(strip $(TARGET_KERNEL_ARCH))
++ifeq ($(TARGET_KERNEL_ARCH),)
++KERNEL_ARCH := $(TARGET_ARCH)
++else
++KERNEL_ARCH := $(TARGET_KERNEL_ARCH)
++endif
++
+ ifeq ($(KERNEL_ARCH),x86_64)
+ KERNEL_DEFCONFIG_ARCH := x86
+ else
+@@ -85,6 +111,19 @@ $(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 :=
++
++ifeq ($(KERNEL_ARCH),arm)
++  # Avoid "Unknown symbol _GLOBAL_OFFSET_TABLE_" errors
++  MAKE_FLAGS += CFLAGS_MODULE="-fno-pic"
++endif
++
++ifeq ($(KERNEL_ARCH),arm64)
++  # Avoid "unsupported RELA relocation: 311" errors (R_AARCH64_ADR_GOT_PAGE)
++  MAKE_FLAGS += CFLAGS_MODULE="-fno-pic"
++endif
++
+ ifneq ($(TARGET_KERNEL_ADDITIONAL_CONFIG),)
+ KERNEL_ADDITIONAL_CONFIG := $(TARGET_KERNEL_ADDITIONAL_CONFIG)
+ KERNEL_ADDITIONAL_CONFIG_SRC := $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_ADDITIONAL_CONFIG)
+@@ -96,6 +135,16 @@ else
+     KERNEL_ADDITIONAL_CONFIG_SRC := /dev/null
+ endif
+ 
++## Do be discontinued in a future version. Notify builder about target
++## kernel format requirement
++ifeq ($(BOARD_KERNEL_IMAGE_NAME),)
++ifeq ($(BOARD_USES_UBOOT),true)
++        $(error "Please set BOARD_KERNEL_IMAGE_NAME to uImage")
++else ifeq ($(BOARD_USES_UNCOMPRESSED_BOOT),true)
++        $(error "Please set BOARD_KERNEL_IMAGE_NAME to Image")
++endif
++endif
++
+ ifeq "$(wildcard $(KERNEL_SRC) )" ""
+     ifneq ($(TARGET_PREBUILT_KERNEL),)
+         HAS_PREBUILT_KERNEL := true
+@@ -114,6 +163,7 @@ ifeq "$(wildcard $(KERNEL_SRC) )" ""
+         $(warning * THIS IS DEPRECATED, AND WILL BE DISCONTINUED                *)
+         $(warning * Please configure your device to download the kernel         *)
+         $(warning * source repository to $(KERNEL_SRC))
++        $(warning * See http://wiki.cyanogenmod.org/w/Doc:_integrated_kernel_building)
+         $(warning * for more information                                        *)
+         $(warning ***************************************************************)
+         FULL_KERNEL_BUILD := false
+@@ -171,6 +221,27 @@ KERNEL_DEPMOD_STAGING_DIR := $(call intermediates-dir-for,PACKAGING,depmod_vendo
+ KERNEL_MODULE_MOUNTPOINT := vendor
+ endif
+ 
++TARGET_KERNEL_CROSS_COMPILE_PREFIX := $(strip $(TARGET_KERNEL_CROSS_COMPILE_PREFIX))
++ifneq ($(TARGET_KERNEL_CROSS_COMPILE_PREFIX),)
++KERNEL_TOOLCHAIN_PREFIX ?= $(TARGET_KERNEL_CROSS_COMPILE_PREFIX)
++else ifeq ($(KERNEL_ARCH),arm64)
++KERNEL_TOOLCHAIN_PREFIX ?= aarch64-linux-androidkernel-
++else ifeq ($(KERNEL_ARCH),arm)
++KERNEL_TOOLCHAIN_PREFIX ?= arm-linux-androidkernel-
++else ifeq ($(KERNEL_ARCH),x86)
++KERNEL_TOOLCHAIN_PREFIX ?= x86_64-linux-androidkernel-
++endif
++
++ifeq ($(KERNEL_TOOLCHAIN),)
++KERNEL_TOOLCHAIN_PATH := $(KERNEL_TOOLCHAIN_PREFIX)
++else
++ifneq ($(KERNEL_TOOLCHAIN_PREFIX),)
++KERNEL_TOOLCHAIN_PATH := $(KERNEL_TOOLCHAIN)/$(KERNEL_TOOLCHAIN_PREFIX)
++endif
++endif
++
++BUILD_TOP := $(shell pwd)
++
+ ifeq ($(TARGET_KERNEL_CLANG_COMPILE),true)
+     ifneq ($(TARGET_KERNEL_CLANG_VERSION),)
+         # Find the clang-* directory containing the specified version
+@@ -187,9 +258,38 @@ ifeq ($(TARGET_KERNEL_CLANG_COMPILE),true)
+     else ifeq ($(KERNEL_ARCH),x86)
+         KERNEL_CLANG_TRIPLE ?= CLANG_TRIPLE=x86_64-linux-gnu-
+     endif
++endif
++
++ifneq ($(USE_CCACHE),)
++    # Detect if the system already has ccache installed to use instead of the prebuilt
++    ccache := $(shell which ccache)
++
++    ifeq ($(ccache),)
++        ccache := $(BUILD_TOP)/prebuilts/misc/$(HOST_PREBUILT_TAG)/ccache/ccache
++        # Check that the executable is here.
++        ccache := $(strip $(wildcard $(ccache)))
++    endif
++endif
++
++ifeq ($(TARGET_KERNEL_CLANG_COMPILE),true)
++    KERNEL_CROSS_COMPILE := CROSS_COMPILE="$(KERNEL_TOOLCHAIN_PATH)"
+     ifeq ($(KERNEL_CC),)
+-        KERNEL_CC := CC="$(CCACHE_BIN) $(TARGET_KERNEL_CLANG_PATH)/clang"
++        KERNEL_CC := CC="$(ccache) $(TARGET_KERNEL_CLANG_PATH)/clang"
+     endif
++else
++    KERNEL_CROSS_COMPILE := CROSS_COMPILE="$(ccache) $(KERNEL_TOOLCHAIN_PATH)"
++endif
++
++# Needed for CONFIG_COMPAT_VDSO, safe to set for all arm64 builds
++ifeq ($(KERNEL_ARCH),arm64)
++   KERNEL_CROSS_COMPILE += CROSS_COMPILE_ARM32="arm-linux-androideabi-"
++endif
++
++ccache =
++
++ifeq ($(HOST_OS),darwin)
++  MAKE_FLAGS += C_INCLUDE_PATH=$(BUILD_TOP)/external/elfutils/libelf:/usr/local/opt/openssl/include
++  MAKE_FLAGS += LIBRARY_PATH=/usr/local/opt/openssl/lib
+ endif
+ 
+ ifeq ($(TARGET_KERNEL_MODULES),)
+@@ -205,7 +305,7 @@ $(KERNEL_ADDITIONAL_CONFIG_OUT): force_additional_config
+ $(KERNEL_CONFIG): $(KERNEL_DEFCONFIG_SRC) $(KERNEL_ADDITIONAL_CONFIG_OUT)
+ 	@echo "Building Kernel Config"
+ 	$(hide) mkdir -p $(KERNEL_OUT)
+-	$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG)
++	$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG)
+ 	$(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \
+ 			echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \
+ 			echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \
+@@ -223,21 +323,21 @@ TARGET_KERNEL_BINARIES: $(KERNEL_CONFIG)
+ 	$(hide) rm -rf $(KERNEL_MODULES_OUT)
+ 	$(hide) mkdir -p $(KERNEL_MODULES_OUT)
+ 	$(hide) rm -rf $(KERNEL_DEPMOD_STAGING_DIR)
+-	$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(BOARD_KERNEL_IMAGE_NAME)
++	$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(BOARD_KERNEL_IMAGE_NAME)
+ 	$(hide) if grep -q '^CONFIG_OF=y' $(KERNEL_CONFIG); then \
+ 			echo "Building DTBs"; \
+-			$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) dtbs; \
++			$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) dtbs; \
+ 		fi
+ 	$(hide) if grep -q '^CONFIG_MODULES=y' $(KERNEL_CONFIG); then \
+ 			echo "Building Kernel Modules"; \
+-			$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) modules; \
++			$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) modules; \
+ 		fi
+ 
+ .PHONY: INSTALLED_KERNEL_MODULES
+ INSTALLED_KERNEL_MODULES: depmod-host
+ 	$(hide) if grep -q '^CONFIG_MODULES=y' $(KERNEL_CONFIG); then \
+ 			echo "Installing Kernel Modules"; \
+-			$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) modules_install && \
++			$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) modules_install && \
+ 			mofile=$$(find $(KERNEL_MODULES_OUT) -type f -name modules.order) && \
+ 			mpath=$$(dirname $$mofile) && \
+ 			for f in $$(find $$mpath/kernel -type f -name '*.ko'); do \
+@@ -313,7 +413,7 @@ kernelconfig:  KERNELCONFIG_MODE := menuconfig
+ kernelxconfig: KERNELCONFIG_MODE := xconfig
+ kernelxconfig kernelconfig:
+ 	$(hide) mkdir -p $(KERNEL_OUT)
+-	$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_DEFCONFIG)
++	$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_DEFCONFIG)
+ 	env KCONFIG_NOTIMESTAMP=true \
+ 		 $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNELCONFIG_MODE)
+ 	env KCONFIG_NOTIMESTAMP=true \
+@@ -322,7 +422,7 @@ kernelxconfig kernelconfig:
+ 
+ kernelsavedefconfig:
+ 	$(hide) mkdir -p $(KERNEL_OUT)
+-	$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_DEFCONFIG)
++	$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_DEFCONFIG)
+ 	env KCONFIG_NOTIMESTAMP=true \
+ 		 $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) savedefconfig
+ 	cp $(KERNEL_OUT)/defconfig $(KERNEL_DEFCONFIG_SRC)
+@@ -337,8 +437,8 @@ endif # FULL_KERNEL_BUILD
+ TARGET_PREBUILT_DTBO = $(PRODUCT_OUT)/dtbo/arch/$(KERNEL_ARCH)/boot/dtbo.img
+ $(TARGET_PREBUILT_DTBO): $(AVBTOOL)
+ 	echo -e ${CL_GRN}"Building DTBO.img"${CL_RST}
+-	$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(PRODUCT_OUT)/dtbo ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_DEFCONFIG)
+-	$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(PRODUCT_OUT)/dtbo ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) dtbo.img
++	$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(PRODUCT_OUT)/dtbo ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_DEFCONFIG)
++	$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(PRODUCT_OUT)/dtbo ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) dtbo.img
+ 	$(AVBTOOL) add_hash_footer \
+ 		--image $@ \
+ 		--partition_size $(BOARD_DTBOIMG_PARTITION_SIZE) \
+diff --git a/config/BoardConfigBliss.mk b/config/BoardConfigBliss.mk
+index e38938b..e6102f7 100644
+--- a/config/BoardConfigBliss.mk
++++ b/config/BoardConfigBliss.mk
+@@ -8,8 +8,6 @@ ifeq ($(TARGET_HW_DISK_ENCRYPTION),true)
+     TARGET_CRYPTFS_HW_PATH ?= vendor/qcom/opensource/cryptfs_hw
+ endif
+ 
+-include vendor/bliss/config/BoardConfigKernel.mk
+-
+ ifeq ($(BOARD_USES_QCOM_HARDWARE),true) 
+ include vendor/bliss/config/BoardConfigQcom.mk 
+ endif 
+diff --git a/config/BoardConfigKernel.mk b/config/BoardConfigKernel.mk
+deleted file mode 100644
+index 74f3413..0000000
+--- a/config/BoardConfigKernel.mk
++++ /dev/null
+@@ -1,111 +0,0 @@
+-# Copyright (C) 2018 The LineageOS Project
+-#
+-# Licensed under the Apache License, Version 2.0 (the "License");
+-# you may not use this file except in compliance with the License.
+-# You may obtain a copy of the License at
+-#
+-#      http://www.apache.org/licenses/LICENSE-2.0
+-#
+-# Unless required by applicable law or agreed to in writing, software
+-# distributed under the License is distributed on an "AS IS" BASIS,
+-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-# See the License for the specific language governing permissions and
+-# limitations under the License.
+-#
+-#
+-# Kernel build configuration variables
+-# ====================================
+-#
+-# These config vars are usually set in BoardConfig.mk:
+-#
+-#   TARGET_KERNEL_SOURCE               = Kernel source dir, optional, defaults
+-#                                          to kernel/$(TARGET_DEVICE_DIR)
+-#   TARGET_KERNEL_ARCH                 = Kernel Arch
+-#   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
+-#
+-#   TARGET_KERNEL_CLANG_COMPILE        = Compile kernel with clang, defaults to false
+-#
+-#   KERNEL_TOOLCHAIN_PREFIX            = Overrides TARGET_KERNEL_CROSS_COMPILE_PREFIX,
+-#                                          Set this var in shell to override
+-#                                          toolchain specified in BoardConfig.mk
+-#   KERNEL_TOOLCHAIN                   = Path to toolchain, if unset, assumes
+-#                                          TARGET_KERNEL_CROSS_COMPILE_PREFIX
+-#                                          is in PATH
+-#   USE_CCACHE                         = Enable ccache (global Android flag)
+-
+-BUILD_TOP := $(shell pwd)
+-
+-TARGET_AUTO_KDIR := $(shell echo $(TARGET_DEVICE_DIR) | sed -e 's/^device/kernel/g')
+-TARGET_KERNEL_SOURCE ?= $(TARGET_AUTO_KDIR)
+-ifneq ($(TARGET_PREBUILT_KERNEL),)
+-TARGET_KERNEL_SOURCE :=
+-endif
+-
+-TARGET_KERNEL_ARCH := $(strip $(TARGET_KERNEL_ARCH))
+-ifeq ($(TARGET_KERNEL_ARCH),)
+-KERNEL_ARCH := $(TARGET_ARCH)
+-else
+-KERNEL_ARCH := $(TARGET_KERNEL_ARCH)
+-endif
+-
+-TARGET_KERNEL_CROSS_COMPILE_PREFIX := $(strip $(TARGET_KERNEL_CROSS_COMPILE_PREFIX))
+-ifneq ($(TARGET_KERNEL_CROSS_COMPILE_PREFIX),)
+-KERNEL_TOOLCHAIN_PREFIX ?= $(TARGET_KERNEL_CROSS_COMPILE_PREFIX)
+-else ifeq ($(KERNEL_ARCH),arm64)
+-KERNEL_TOOLCHAIN_PREFIX ?= aarch64-linux-androidkernel-
+-else ifeq ($(KERNEL_ARCH),arm)
+-KERNEL_TOOLCHAIN_PREFIX ?= arm-linux-androidkernel-
+-else ifeq ($(KERNEL_ARCH),x86)
+-KERNEL_TOOLCHAIN_PREFIX ?= x86_64-linux-androidkernel-
+-endif
+-
+-ifeq ($(KERNEL_TOOLCHAIN),)
+-KERNEL_TOOLCHAIN_PATH := $(KERNEL_TOOLCHAIN_PREFIX)
+-else
+-ifneq ($(KERNEL_TOOLCHAIN_PREFIX),)
+-KERNEL_TOOLCHAIN_PATH := $(KERNEL_TOOLCHAIN)/$(KERNEL_TOOLCHAIN_PREFIX)
+-endif
+-endif
+-
+-ifneq ($(USE_CCACHE),)
+-    # Detect if the system already has ccache installed to use instead of the prebuilt
+-    CCACHE_BIN := $(shell which ccache)
+-
+-    ifeq ($(CCACHE_BIN),)
+-        CCACHE_BIN := $(BUILD_TOP)/prebuilts/misc/$(HOST_PREBUILT_TAG)/ccache/ccache
+-        # Check that the executable is here.
+-        CCACHE_BIN := $(strip $(wildcard $(CCACHE_BIN)))
+-    endif
+-endif
+-
+-ifeq ($(TARGET_KERNEL_CLANG_COMPILE),true)
+-    KERNEL_CROSS_COMPILE := CROSS_COMPILE="$(KERNEL_TOOLCHAIN_PATH)"
+-else
+-    KERNEL_CROSS_COMPILE := CROSS_COMPILE="$(CCACHE_BIN) $(KERNEL_TOOLCHAIN_PATH)"
+-endif
+-
+-# Needed for CONFIG_COMPAT_VDSO, safe to set for all arm64 builds
+-ifeq ($(KERNEL_ARCH),arm64)
+-   KERNEL_CROSS_COMPILE += CROSS_COMPILE_ARM32="arm-linux-androidkernel-"
+-endif
+-
+-# Clear this first to prevent accidental poisoning from env
+-KERNEL_MAKE_FLAGS :=
+-
+-ifeq ($(KERNEL_ARCH),arm)
+-  # Avoid "Unknown symbol _GLOBAL_OFFSET_TABLE_" errors
+-  KERNEL_MAKE_FLAGS += CFLAGS_MODULE="-fno-pic"
+-endif
+-
+-ifeq ($(KERNEL_ARCH),arm64)
+-  # Avoid "unsupported RELA relocation: 311" errors (R_AARCH64_ADR_GOT_PAGE)
+-  KERNEL_MAKE_FLAGS += CFLAGS_MODULE="-fno-pic"
+-endif
+-
+-ifeq ($(HOST_OS),darwin)
+-  KERNEL_MAKE_FLAGS += C_INCLUDE_PATH=$(BUILD_TOP)/external/elfutils/libelf:/usr/local/opt/openssl/include
+-  KERNEL_MAKE_FLAGS += LIBRARY_PATH=/usr/local/opt/openssl/lib
+-endif
+-- 
+2.17.1
+