blob: 2f38e193562d4f472c46bd20591e2c0ac370e963 [file] [log] [blame]
#!/bin/bash
# Generate upstream-kmsan.config from upstream-kasan.config.
# Make sure $CC points to the Clang binary and $SOURCEDIR - to the kernel tree.
THISDIR=`cd $(dirname $0); pwd`
KASAN_CONFIG=${THISDIR}/upstream-kasan.config
KMSAN_CONFIG=${THISDIR}/upstream-kmsan.config
KMSAN_ADD=${THISDIR}/kmsan-syzbot-bits.config
[ -z "${CC}" ] && echo 'Please set $CC to point to the compiler!' && exit
[ -z "${SOURCEDIR}" ] && echo 'Please set $SOURCEDIR to point to the kernel tree!' && exit
(
cd $SOURCEDIR
cp ${KASAN_CONFIG} .config
scripts/kconfig/merge_config.sh .config ${KMSAN_ADD}
make CC="${CC}" oldconfig < /dev/null
echo "# The following configs are added manually, preserve them.
# CONFIG_DEBUG_MEMORY was once added to mm tree and cause disabling of KASAN,
# which in turn caused storm of assorted crashes after silent memory
# corruptions. The config was reverted, but we keep it here for the case
# it is reintroduced to kernel again.
CONFIG_DEBUG_MEMORY=y
# This config can be used to enable any additional temporal debugging
# features in linux-next tree.
CONFIG_DEBUG_AID_FOR_SYZBOT=y
" > ${KMSAN_CONFIG}
cat .config >> ${KMSAN_CONFIG}
cp ${KMSAN_CONFIG} .config
)