Automated build fails when kernel kconfig demands attention to manually answer "NEW" questions

I've been following the buildroot process for a year and a half with no issues when i was building my own wrt32x firmware, now i got a gl.inet mt6000 i'm trying to do the same thing with.

So i am following the normal procedure i always followed (where you setup your feeds with the script, make download, then make).. starting with a freshly cloned git repo, freshly cloned feeds, import my diffconfig, run make defconfig, freshly downloaded packages and host/toolchains built.. all go fine... then i get to the kernel and it errors out:

[...snip...]
 make[2] toolchain/compile
 make[3] -C toolchain/gdb compile
 make[3] -C toolchain/binutils compile
 make[3] -C toolchain/fortify-headers compile
 make[3] -C toolchain/gcc/initial compile
 make[3] -C toolchain/kernel-headers compile
 make[3] -C toolchain/musl compile
 make[3] -C toolchain/gcc/final compile
 make[2] target/compile
 make[3] -C target/linux compile
    ERROR: target/linux failed to build.
make -r world: build failed. Please re-run make with -j1 V=s or V=sc for a higher verbosity level to see what's going on
make: *** [/home/user/workdir/openwrt/include/toplevel.mk:233: world] Error 1

So of course I follow the advice it gives and run 'make' again with V=sc and low and behold, kconfig has these two options it wants me to manually respond to these two questions

  • Use pointer authentication for kernel (ARM64_PTR_AUTH_KERNEL) [Y/n/?] (NEW)
  • Randomize the module region over a 2 GB range (RANDOMIZE_MODULE_REGION_FULL) [Y/n/?] (NEW)

After i just accept the defaults and press enter, it continues on its merry way.

here's the full re-try run with V=sc

make[2]: Entering directory '/home/user/workdir/openwrt/scripts/config'
make[2]: 'conf' is up to date.
make[2]: Leaving directory '/home/user/workdir/openwrt/scripts/config'
make[1]: Entering directory '/home/user/workdir/openwrt'
make[2]: Entering directory '/home/user/workdir/openwrt'
+ mkdir -p /home/user/workdir/openwrt/staging_dir/target-aarch64_cortex-a53_musl
+ cd /home/user/workdir/openwrt/staging_dir/target-aarch64_cortex-a53_musl
+ mkdir -p bin lib stamp usr/include usr/lib
mkdir -p /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/stamp
touch /home/user/workdir/openwrt/staging_dir/target-aarch64_cortex-a53_musl/.prepared
make[3]: Entering directory '/home/user/workdir/openwrt/target/linux'
make[4]: Entering directory '/home/user/workdir/openwrt/target/linux/mediatek'
rm -f /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/localversion
/home/user/workdir/openwrt/scripts/kconfig.pl  + /home/user/workdir/openwrt/target/linux/generic/config-6.6 /home/user/workdir/openwrt/target/linux/mediatek/filogic/config-6.6 > /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.config.target
awk '/^(#[[:space:]]+)?CONFIG_KERNEL/{sub("CONFIG_KERNEL_","CONFIG_");print}' /home/user/workdir/openwrt/.config >> /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.config.target
echo "# CONFIG_KALLSYMS_EXTRA_PASS is not set" >> /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.config.target
echo "# CONFIG_KALLSYMS_ALL is not set" >> /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.config.target
echo "CONFIG_KALLSYMS_UNCOMPRESSED=y" >> /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.config.target
/home/user/workdir/openwrt/scripts/package-metadata.pl kconfig /home/user/workdir/openwrt/tmp/.packageinfo /home/user/workdir/openwrt/.config 6.6 > /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.config.override
/home/user/workdir/openwrt/scripts/kconfig.pl 'm+' '+' /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.config.target /dev/null /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.config.override > /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.config.set
mv /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.config.set /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.config.old
grep -v INITRAMFS /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.config.old > /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.config.set
echo 'CONFIG_INITRAMFS_SOURCE=""' >> /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.config.set
echo '# CONFIG_INITRAMFS_FORCE is not set' >> /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.config.set
echo "# CONFIG_INITRAMFS_PRESERVE_MTIME is not set" >> /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.config.set
rm -rf /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/modules
cmp -s /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.config.set /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.config.prev || { cp /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.config.set /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.config; cp /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.config.set /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.config.prev; }
export MAKEFLAGS= ; [ -d /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/user_headers ] || make -C /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84 KCFLAGS="-ffile-prefix-map=/home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl=target-aarch64_cortex-a53_musl -fno-caller-saves " HOSTCFLAGS="-O2 -I/home/user/workdir/openwrt/staging_dir/host/include  -Wall -Wmissing-prototypes -Wstrict-prototypes" CROSS_COMPILE="aarch64-openwrt-linux-musl-" ARCH="arm64" KBUILD_HAVE_NLS=no KBUILD_BUILD_USER="emy" KBUILD_BUILD_HOST="dcg.v1" KBUILD_BUILD_TIMESTAMP="Wed Apr 16 19:04:37 2025" KBUILD_BUILD_VERSION="0" KBUILD_HOSTLDFLAGS="-L/home/user/workdir/openwrt/staging_dir/host/lib" CONFIG_SHELL="bash" V=1  cmd_syscalls=  CC="aarch64-openwrt-linux-musl-gcc" KERNELRELEASE=6.6.84  INSTALL_HDR_PATH=/home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/user_headers headers_install
grep '=[ym]' /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.config.set | LC_ALL=C sort | /home/user/workdir/openwrt/staging_dir/host/bin/mkhash md5 > /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.vermagic
touch /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/.configured
rm -f /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/vmlinux /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/System.map
make -C /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84 KCFLAGS="-ffile-prefix-map=/home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl=target-aarch64_cortex-a53_musl -fno-caller-saves " HOSTCFLAGS="-O2 -I/home/user/workdir/openwrt/staging_dir/host/include  -Wall -Wmissing-prototypes -Wstrict-prototypes" CROSS_COMPILE="aarch64-openwrt-linux-musl-" ARCH="arm64" KBUILD_HAVE_NLS=no KBUILD_BUILD_USER="emy" KBUILD_BUILD_HOST="dcg.v1" KBUILD_BUILD_TIMESTAMP="Wed Apr 16 19:04:37 2025" KBUILD_BUILD_VERSION="0" KBUILD_HOSTLDFLAGS="-L/home/user/workdir/openwrt/staging_dir/host/lib" CONFIG_SHELL="bash" V=1  cmd_syscalls=  CC="aarch64-openwrt-linux-musl-gcc" KERNELRELEASE=6.6.84 Image dtbs modules
make[5]: Entering directory '/home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84'
make --no-print-directory -C /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84 \
-f /home/user/workdir/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_filogic/linux-6.6.84/Makefile Image dtbs modules
: "  SYNC    include/config/auto.conf"
make -f ./Makefile syncconfig
make -f ./scripts/Makefile.build obj=scripts/basic
make -f ./scripts/Makefile.build obj=scripts/kconfig syncconfig
scripts/kconfig/conf  --syncconfig Kconfig
.config:3006:warning: override: INIT_STACK_NONE changes choice state
*
* Restart config...
*
*
* ARMv8.3 architectural features
*
Enable support for pointer authentication (ARM64_PTR_AUTH) [Y/n/?] y
  Use pointer authentication for kernel (ARM64_PTR_AUTH_KERNEL) [Y/n/?] (NEW) 


* 
* Kernel Features
*
Page size
> 1. 4KB (ARM64_4K_PAGES)
  2. 16KB (ARM64_16K_PAGES)
  3. 64KB (ARM64_64K_PAGES)
choice[1-3?]: 1
Virtual address space size
> 1. 39-bit (ARM64_VA_BITS_39)
  2. 48-bit (ARM64_VA_BITS_48)
choice[1-2?]: 1
Physical address space size
> 1. 48-bit (ARM64_PA_BITS_48)
choice[1]: 1  
Endianness
  1. Build big-endian kernel (CPU_BIG_ENDIAN)
> 2. Build little-endian kernel (CPU_LITTLE_ENDIAN)
choice[1-2?]: 2
Multi-core scheduler support (SCHED_MC) [Y/n/?] y
Cluster scheduler support (SCHED_CLUSTER) [N/y/?] n
SMT scheduler support (SCHED_SMT) [N/y/?] n
Maximum number of CPUs (2-4096) (NR_CPUS) [4] 4
Support for hot-pluggable CPUs (HOTPLUG_CPU) [N/y/?] n
NUMA Memory Allocation and Scheduler Support (NUMA) [N/y/?] n
Timer frequency
> 1. 100 HZ (HZ_100)
  2. 250 HZ (HZ_250)
  3. 300 HZ (HZ_300)
  4. 1000 HZ (HZ_1000)
choice[1-4?]: 1
Enable paravirtualization code (PARAVIRT) [N/y/?] n
Paravirtual steal time accounting (PARAVIRT_TIME_ACCOUNTING) [N/y/?] n
Xen guest support on ARM64 (XEN) [N/y/?] n
Unmap kernel when running in userspace (aka "KAISER") (UNMAP_KERNEL_AT_EL0) [N/y/?] n
Mitigate Spectre style attacks against branch history (MITIGATE_SPECTRE_BRANCH_HISTORY) [Y/n/?] y
Apply r/o permissions of VM areas also to their linear aliases (RODATA_FULL_DEFAULT_ENABLED) [Y/n/?] y
Emulate Privileged Access Never using TTBR0_EL1 switching (ARM64_SW_TTBR0_PAN) [Y/n/?] y
Enable the tagged user addresses syscall ABI (ARM64_TAGGED_ADDR_ABI) [Y/n/?] y
ARM Scalable Vector Extension support (ARM64_SVE) [N/y/?] n
Support for NMI-like interrupts (ARM64_PSEUDO_NMI) [N/y/?] n
Build a relocatable kernel image (RELOCATABLE) [Y/?] y
Randomize the address of the kernel image (RANDOMIZE_BASE) [Y/n/?] y
  Randomize the module region over a 2 GB range (RANDOMIZE_MODULE_REGION_FULL) [Y/n/?] (NEW)
make -f ./scripts/Makefile.build obj=scripts/basic
make -f ./scripts/Makefile.build obj=scripts/dtc
# HOSTCC  scripts/dtc/dtc.o
  gcc -Wp,-MMD,scripts/dtc/.dtc.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu11  -O2 -I/home/user/workdir/openwrt/staging_dir/host/include  -Wall -Wmissing-prototypes -Wstrict-prototypes -I/home/user/workdir/openwrt/staging_dir/host/include -I ./scripts/dtc/libfdt -DNO_YAML  -c -o scripts/dtc/dtc.o scripts/dtc/dtc.c
# HOSTCC  scripts/dtc/flattree.o
  gcc -Wp,-MMD,scripts/dtc/.flattree.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu11  -O2 -I/home/user/workdir/openwrt/staging_dir/host/include  -Wall -Wmissing-prototypes -Wstrict-prototypes -I/home/user/workdir/openwrt/staging_dir/host/include -I ./scripts/dtc/libfdt -DNO_YAML  -c -o scripts/dtc/flattree.o scripts/dtc/flattree.c
[...compile continues successfully at this point...]

What is it about these two questions it feels the need to manually ask me about? shouldn't make 'defconfig' take care of these and set defaults?

Is it related to the 'warning' right before it prompts:

make -f ./scripts/Makefile.build obj=scripts/kconfig syncconfig
scripts/kconfig/conf  --syncconfig Kconfig
.config:3006:warning: override: INIT_STACK_NONE changes choice state
*
* Restart config...
[...at this point demands answers to these two questions before continuing the compile...]

for reference, this is the generated config from defconfig, building this commit's version and with these feeds commits..

this is usually caused by new options introduce upstream that have not yet been added to the default .config. These options will need to be added to the .config and set or unset explicitly to get rid of the request for user input

1 Like

ahh ok, so i did some more research with this in mind.. seems these would belong in target/linux/mediatek/filogic/config-6.6 - i added them into my copy of conifg-6.6, and the compile went back to being non-interactive.

but for the benefit of others, is it worth opening a PR to get this fixed in the main openwrt repo? I searched through the other targets and see both option1 and option2 have been added two years ago, so i am not sure why they are entirely absent (not referenced/set) in mediatek filogic target's config-6.6..

ya, it probably wouldn't hurt to mention it

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.