blob: a39fe508c2e1ee662c03ef6a26f44511c9e33f6c [file] [log] [blame]
#!/bin/bash
# This script provides utility functions, don't use it directly.
set -eux
[ -z "${CC}" ] && echo 'Please set $CC to point to the compiler!' && exit
THIS_DIR=`cd $(dirname $0); pwd`
MAKE_VARS="CC=${CC}"
SYZBOT_BITS=${THIS_DIR}/bits-syzbot.config
function util_add_syzbot_bits {
scripts/kconfig/merge_config.sh -m .config $SYZBOT_BITS
make ${MAKE_VARS} olddefconfig
}
function util_add_usb_bits {
MERGE_USB_SCRIPT=${THIS_DIR}/kconfiglib-merge-usb-configs.py
git clone --depth=1 https://github.com/ulfalizer/Kconfiglib.git
wget -qO- https://raw.githubusercontent.com/ulfalizer/Kconfiglib/master/makefile.patch | patch -p1
for config in ${THIS_DIR}/distros/*; do
make ${MAKE_VARS} scriptconfig SCRIPT=${MERGE_USB_SCRIPT} SCRIPT_ARG=${config}
done
git checkout ./scripts/kconfig/Makefile
rm -rf ./Kconfiglib
scripts/config -d CONFIG_USB_CONFIGFS
scripts/config -d CONFIG_USB_LIBCOMPOSITE
scripts/config -d CONFIG_USB_G_NCM
scripts/config -d CONFIG_USB_G_SERIAL
scripts/config -d CONFIG_USB_G_PRINTER
scripts/config -d CONFIG_USB_G_NOKIA
scripts/config -d CONFIG_USB_G_ACM_MS
scripts/config -d CONFIG_USB_G_MULTI
scripts/config -d CONFIG_USB_G_HID
scripts/config -d CONFIG_USB_G_DBGP
scripts/config -d CONFIG_USB_G_WEBCAM
scripts/config -e CONFIG_USB_GADGET
scripts/config -e CONFIG_USB_GADGETFS
scripts/config -e CONFIG_USB_DUMMY_HCD
scripts/config -e CONFIG_USB_FUZZER
make ${MAKE_VARS} olddefconfig
}
function util_add_syzbot_extra_bits {
TMP_FILE=$(mktemp /tmp/syzkaller.XXXXXX)
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
" > ${TMP_FILE}
cat .config >> ${TMP_FILE}
mv ${TMP_FILE} .config
rm -rf ${TMP_FILE}
}