| From ada368514dcea02d4099ab05c787a00e8838fd84 Mon Sep 17 00:00:00 2001 |
| From: Jackeagle <jackeagle102@gmail.com> |
| Date: Fri, 3 May 2019 14:51:44 +0200 |
| Subject: [PATCH 17/17] 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 d0263d37..6057b9f1 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 e38938b0..e6102f7a 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 74f3413b..00000000 |
| --- 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.21.0 |
| |