From f7cd22b2079910c92942cc14948b3f404782e9a3 Mon Sep 17 00:00:00 2001 From: Douglas RAILLARD Date: Fri, 8 Feb 2019 16:16:17 +0000 Subject: [PATCH] buildroot: fix lisa-buildroot-update-kernel-config unset CROSS_COMPILE to avoid Kconfig detecting GCC features, which will make it ask this kind of questions later when running `make Image` if the CROSS_COMPILE toolchain is different at that point: GCC plugins (GCC_PLUGINS) [N/y/?] (NEW) Restore auto-detection of ARCH, since we can autodetect all required env var. Also use KConfig fragments, which allows splitting config file update from fixup of values along dependencies. As a bonus, KConfig fragment reports what was modified in the config (or at least parts of what was modified). --- tools/lisa-buildroot-update-kernel-config | 27 +++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/tools/lisa-buildroot-update-kernel-config b/tools/lisa-buildroot-update-kernel-config index c5914a75e..d98a4105a 100755 --- a/tools/lisa-buildroot-update-kernel-config +++ b/tools/lisa-buildroot-update-kernel-config @@ -51,8 +51,27 @@ if [[ -z "$1" || -z "$2" ]]; then exit -1 fi -set -u +# Automatically detect the arm arch we are building for +export ARCH=${ARCH:-$(grep -owE "(arm|arm64)" "$KERNEL_CONFIG")} -# Update kernel .config to use the provided rootfs as builtin initramfs -sed -i "s#[.]*CONFIG_INITRAMFS_SOURCE.*#CONFIG_INITRAMFS_SOURCE=\"$ROOTFS\"#" "$KERNEL_CONFIG" -make -C "$KERNEL_DIR" olddefconfig +# That env var is not needed, but wrong values can break the make command +# executed by merge_config.sh +unset CROSS_COMPILE + +if [ -z "$ARCH" ]; then + echo "ERROR: set ARCH environment variable" + exit -1 +fi + +echo "Assuming ARCH=$ARCH" + +echo "Merging Kconfig fragment into $KERNEL_CONFIG" +fragment=$(mktemp) +trap "rm "$fragment"" EXIT + +# Use that CPIO archive to be used as builtin initramfs +tee "$fragment" << EOF +CONFIG_INITRAMFS_SOURCE="$ROOTFS" +EOF + +KCONFIG_CONFIG="$KERNEL_CONFIG" "$KERNEL_DIR/scripts/kconfig/merge_config.sh" "$KERNEL_CONFIG" "$fragment" -- GitLab