summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Spector <mspector@google.com>2020-04-22 15:56:02 -0700
committerAlistair Delva <adelva@google.com>2020-04-28 01:14:40 +0000
commit1c6dc7b582a447dc00cfd1581a17810b59c3c58a (patch)
tree4fc0617fff7beb9b675b4cc185d40c62f002ec02
parentf9e4dfc99901df6bc4305a4a1e2c571d88edb0fb (diff)
downloadcuttlefish-modules-1c6dc7b582a447dc00cfd1581a17810b59c3c58a.tar.gz
ANDROID: KASAN support for cuttlefish
Bug: 152792812 Change-Id: Icff314f0d3d5db83b742c499e20f4fe61d60f892 Signed-off-by: Max Spector <mspector@google.com>
-rw-r--r--build.config.cuttlefish.aarch64_kasan33
-rw-r--r--build.config.cuttlefish.x86_64_kasan32
2 files changed, 65 insertions, 0 deletions
diff --git a/build.config.cuttlefish.aarch64_kasan b/build.config.cuttlefish.aarch64_kasan
new file mode 100644
index 0000000..eeddeda
--- /dev/null
+++ b/build.config.cuttlefish.aarch64_kasan
@@ -0,0 +1,33 @@
+. ${ROOT_DIR}/common/build.config.common
+. ${ROOT_DIR}/common/build.config.aarch64
+. ${ROOT_DIR}/common/build.config.gki
+
+BUILD_INITRAMFS=1
+EXT_MODULES="cuttlefish-modules"
+DEFCONFIG=cf_aarch_64_gki_defconfig
+PRE_DEFCONFIG_CMDS="KCONFIG_CONFIG=${ROOT_DIR}/common/arch/arm64/configs/${DEFCONFIG} ${ROOT_DIR}/common/scripts/kconfig/merge_config.sh -m -r ${ROOT_DIR}/common/arch/arm64/configs/gki_defconfig ${ROOT_DIR}/cuttlefish-modules/cuttlefish.fragment"
+POST_DEFCONFIG_CMDS="rm ${ROOT_DIR}/common/arch/arm64/configs/${DEFCONFIG} && update_kasan_config"
+
+KERNEL_DIR=common
+function update_kasan_config() {
+ ${KERNEL_DIR}/scripts/config --file ${OUT_DIR}/.config \
+ -e CONFIG_KASAN \
+ -e CONFIG_KASAN_INLINE \
+ -e CONFIG_KASAN_PANIC_ON_WARN \
+ -e CONFIG_KCOV \
+ -e CONFIG_PANIC_ON_WARN_DEFAULT_ENABLE \
+ -d CONFIG_RANDOMIZE_BASE \
+ -d CONFIG_KASAN_OUTLINE \
+ --set-val CONFIG_FRAME_WARN 0 \
+ -d LTO \
+ -d LTO_CLANG \
+ -d CFI \
+ -d CFI_PERMISSIVE \
+ -d CFI_CLANG \
+ -d SHADOW_CALL_STACK
+ (cd ${OUT_DIR} && \
+ make ${CC_LD_ARG} O=${OUT_DIR} olddefconfig)
+}
+
+# Not saving any kernel images. This build step is meant purely to generate the .kos.
+FILES=""
diff --git a/build.config.cuttlefish.x86_64_kasan b/build.config.cuttlefish.x86_64_kasan
new file mode 100644
index 0000000..5c9f75b
--- /dev/null
+++ b/build.config.cuttlefish.x86_64_kasan
@@ -0,0 +1,32 @@
+. ${ROOT_DIR}/common/build.config.common
+. ${ROOT_DIR}/common/build.config.x86_64
+. ${ROOT_DIR}/common/build.config_kasan.gki
+
+BUILD_INITRAMFS=1
+DEFCONFIG=cf_x86_64_gki_defconfig
+PRE_DEFCONFIG_CMDS="KCONFIG_CONFIG=${ROOT_DIR}/common/arch/x86/configs/${DEFCONFIG} ${ROOT_DIR}/common/scripts/kconfig/merge_config.sh -m -r ${ROOT_DIR}/common/arch/x86/configs/gki_defconfig ${ROOT_DIR}/cuttlefish-modules/cuttlefish.fragment"
+POST_DEFCONFIG_CMDS="rm ${ROOT_DIR}/common/arch/x86/configs/${DEFCONFIG} && update_kasan_config"
+
+KERNEL_DIR=common
+function update_kasan_config() {
+ ${KERNEL_DIR}/scripts/config --file ${OUT_DIR}/.config \
+ -e CONFIG_KASAN \
+ -e CONFIG_KASAN_INLINE \
+ -e CONFIG_KASAN_PANIC_ON_WARN \
+ -e CONFIG_KCOV \
+ -e CONFIG_PANIC_ON_WARN_DEFAULT_ENABLE \
+ -d CONFIG_RANDOMIZE_BASE \
+ -d CONFIG_KASAN_OUTLINE \
+ --set-val CONFIG_FRAME_WARN 0 \
+ -d LTO \
+ -d LTO_CLANG \
+ -d CFI \
+ -d CFI_PERMISSIVE \
+ -d CFI_CLANG \
+ -d SHADOW_CALL_STACK
+ (cd ${OUT_DIR} && \
+ make ${CC_LD_ARG} O=${OUT_DIR} olddefconfig)
+}
+
+# Not saving any kernel images. This build step is meant purely to generate the .kos.
+FILES=""