function update_kasan_config() {
    ${KERNEL_DIR}/scripts/config --file ${OUT_DIR}/.config \
         -e CONFIG_KASAN \
         -e CONFIG_KASAN_INLINE \
         -e CONFIG_TEST_KASAN \
         -e CONFIG_COMPILE_TEST \
         -e CONFIG_KCOV \
         -e CONFIG_SLUB \
         -e CONFIG_SLUB_DEBUG \
         -d CONFIG_SLUB_DEBUG_ON \
         -e CONFIG_CC_OPTIMIZE_FOR_SIZE \
         -d CONFIG_SLUB_DEBUG_PANIC_ON \
         -d CONFIG_KASAN_OUTLINE \
         -d CONFIG_KERNEL_LZ4
    (cd ${OUT_DIR} && \
     make O=${OUT_DIR} $archsubarch CROSS_COMPILE=${CROSS_COMPILE} olddefconfig)
}

ARCH=arm64
BRANCH=easel-intel-linux-4.7
CROSS_COMPILE=aarch64-linux-android-
DEFCONFIG=mnh_defconfig
EXTRA_CMDS=''
KERNEL_DIR=private/intel-google
POST_DEFCONFIG_CMDS="update_kasan_config"
LINUX_GCC_CROSS_COMPILE_PREBUILTS_BIN=prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin
FILES="
arch/arm64/boot/Image
arch/arm64/boot/dts/intel/mnh.dtb
vmlinux
System.map
"
IN_KERNEL_MODULES=1
