android_kernel_xiaomi_sm8450/build.config.msm.gki
Elliot Berman b62a79f013 build.config.msm.gki: Add sanity check for ABI
To help ensure that the GKI kernel and device kernel are kept in sync,
test whether abi_gki_aarch64.xml matches between the GKI kernel and
msm-5.10.

This check is not fail-safe however. If an ABI impacting change is
committed to either msm-5.10 or GKI tree without the corresponding ABI
update, then this check will incorrectly proceed. The correct way is to
do a full ABI comparison between msm-5.10 and the GKI tree with every
build, however that is time-intensive. Thus, prefer to do the simple
check for now.

Change-Id: Id801eeda347ce821fc6a29ae0e987c185a856bce
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
2021-05-12 17:20:44 -07:00

59 lines
2.0 KiB
Plaintext

################################################################################
# Common MSM configuration for building GKI-based kernels
DEFCONFIG="gki_defconfig"
# Configuration options to build images for MSM targets
# Must be included AFTER build.config.msm.<target>
MODULES_LIST=${KERNEL_DIR}/modules.list.${CONFIG_TARGET}
# boot image macros
BUILD_BOOT_IMG=1
BUILD_INITRAMFS=1
ABI_DEFINITION=android/abi_gki_aarch64.xml
KMI_SYMBOL_LIST=android/abi_gki_aarch64_qcom
KMI_SYMBOL_LIST_MODULE_GROUPING=0
KMI_SYMBOL_LIST_ADD_ONLY=1
KMI_ENFORCED=1
MAKE_GOALS="modules dtbs"
GKI_KERNEL_DIR=common
GKI_BUILD_CONFIG=${GKI_KERNEL_DIR}/build.config.gki.aarch64
GKI_SKIP_IF_VERSION_MATCHES=1
GKI_SKIP_CP_KERNEL_HDR=1
function sanity_check_abi() {
[ -z "${GKI_BUILD_CONFIG}" ] && return
if ! diff -q "${ROOT_DIR}/${KERNEL_DIR}/android/abi_gki_aarch64.xml" \
"${ROOT_DIR}/${GKI_KERNEL_DIR}/android/abi_gki_aarch64.xml" ; then
echo "Suspected ABI differences between ${BRANCH} and GKI kernel tree."
echo "Are trees in sync?"
exit 1
fi
}
append_cmd POST_DEFCONFIG_CMDS 'sanity_check_abi'
function build_defconfig_fragments() {
if [[ "${VARIANT}" =~ ^(gki|consolidate)$ ]]; then
apply_defconfig_fragment ${KERNEL_DIR}/arch/${ARCH}/configs/vendor/${MSM_ARCH}_GKI.config vendor/${MSM_ARCH}-gki_defconfig
if [ "${VARIANT}" = gki ]; then
return
fi
GKI_BUILD_CONFIG=common/build.config.gki-debug.aarch64
GKI_GKI_DEFCONFIG_FRAGMENT=common/build.config.gki_consolidate.aarch64
# ABI comparison isn't applicable on consolidate variant
unset ABI_DEFINITION
apply_defconfig_fragment common/arch/${ARCH}/configs/consolidate.fragment consolidate_defconfig
apply_defconfig_fragment ${KERNEL_DIR}/arch/${ARCH}/configs/vendor/${MSM_ARCH}_consolidate.config vendor/${MSM_ARCH}-consolidate_defconfig
elif [ "${VARIANT}" = gki-ack ]; then
# In gki-only, then using ACK's GKI config directly
. ${KERNEL_DIR}/build.config.gki
else
echo "Variant '${VARIANT}' unsupported by gki"
exit 1
fi
}
build_defconfig_fragments