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
+