From a836d79629421cc6df5fed5894f8ea6236aa7fe9 Mon Sep 17 00:00:00 2001 From: Rashed Abdel-Tawab Date: Thu, 20 Sep 2018 15:19:57 -0700 Subject: [PATCH] lineage: Move some kernel definitions to BoardConfigKernel Kernel source settings should always come at BoardConfig population time so things that use the variable later don't end up pointing to an empty or wrong variable. The following is also squashed in: Author: Christopher N. Hesse Date: Fri Aug 10 00:23:54 2018 +0200 tasks: kernel: Honor prebuilt kernel flag For devices that want to use a prebuilt kernel, TARGET_KERNEL_SOURCE would still be set to TARGET_AUTO_KDIR, meaning the build system would still try to build the kernel if TARGET_AUTO_KDIR was present. Setting TARGET_PREBUILT_KERNEL indicates this is not wanted, so don't attempt to do it. Change-Id: Ic79b3ac1b9c946fd258ada43dce2b08bb74ea0d9 Change-Id: If046b86ff0d18c76898e90295be873a8379f678a --- build/tasks/kernel.mk | 110 ++++------------------------------ config/BoardConfigKernel.mk | 111 +++++++++++++++++++++++++++++++++++ config/BoardConfigLineage.mk | 2 + 3 files changed, 123 insertions(+), 100 deletions(-) create mode 100644 config/BoardConfigKernel.mk diff --git a/build/tasks/kernel.mk b/build/tasks/kernel.mk index 3555d256..d0263d37 100644 --- a/build/tasks/kernel.mk +++ b/build/tasks/kernel.mk @@ -21,17 +21,10 @@ # # 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 # @@ -48,13 +41,6 @@ # 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. # @@ -63,8 +49,6 @@ # 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 @@ -72,11 +56,7 @@ 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// -TARGET_KERNEL_SOURCE ?= $(TARGET_AUTO_KDIR) KERNEL_SRC := $(TARGET_KERNEL_SOURCE) # kernel configuration - mandatory KERNEL_DEFCONFIG := $(TARGET_KERNEL_CONFIG) @@ -87,13 +67,6 @@ 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 @@ -112,19 +85,6 @@ $(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) @@ -211,27 +171,6 @@ 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 @@ -248,38 +187,9 @@ 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) $(TARGET_KERNEL_CLANG_PATH)/clang" + KERNEL_CC := CC="$(CCACHE_BIN) $(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-androidkernel-" -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),) @@ -295,7 +205,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) $(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) $(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) $(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \ echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \ echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \ @@ -313,21 +223,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) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(BOARD_KERNEL_IMAGE_NAME) + $(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) $(hide) if grep -q '^CONFIG_OF=y' $(KERNEL_CONFIG); then \ echo "Building DTBs"; \ - $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) dtbs; \ + $(MAKE) $(KERNEL_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) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) modules; \ + $(MAKE) $(KERNEL_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) $(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) $(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 && \ mofile=$$(find $(KERNEL_MODULES_OUT) -type f -name modules.order) && \ mpath=$$(dirname $$mofile) && \ for f in $$(find $$mpath/kernel -type f -name '*.ko'); do \ @@ -403,7 +313,7 @@ kernelconfig: KERNELCONFIG_MODE := menuconfig kernelxconfig: KERNELCONFIG_MODE := xconfig kernelxconfig kernelconfig: $(hide) mkdir -p $(KERNEL_OUT) - $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_DEFCONFIG) + $(MAKE) $(KERNEL_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 \ @@ -412,7 +322,7 @@ kernelxconfig kernelconfig: kernelsavedefconfig: $(hide) mkdir -p $(KERNEL_OUT) - $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_DEFCONFIG) + $(MAKE) $(KERNEL_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) @@ -427,8 +337,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) $(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 + $(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 $(AVBTOOL) add_hash_footer \ --image $@ \ --partition_size $(BOARD_DTBOIMG_PARTITION_SIZE) \ diff --git a/config/BoardConfigKernel.mk b/config/BoardConfigKernel.mk new file mode 100644 index 00000000..74f3413b --- /dev/null +++ b/config/BoardConfigKernel.mk @@ -0,0 +1,111 @@ +# 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 diff --git a/config/BoardConfigLineage.mk b/config/BoardConfigLineage.mk index e485b4af..99990a4c 100644 --- a/config/BoardConfigLineage.mk +++ b/config/BoardConfigLineage.mk @@ -3,6 +3,8 @@ ifeq ($(WITH_LINEAGE_CHARGER),true) BOARD_HAL_STATIC_LIBRARIES := libhealthd.lineage endif +include vendor/lineage/config/BoardConfigKernel.mk + ifeq ($(BOARD_USES_QCOM_HARDWARE),true) include vendor/lineage/config/BoardConfigQcom.mk endif