native: force-enable audio/GPIO/pinctrl configs via scripts/config
Every audio-fix build has been shipping kernels where PINCTRL_JASPERLAKE,
IKCONFIG, and other critical symbols were silently dropped during
`make olddefconfig`, even though config-minimal explicitly set them to
=y. The G7 diagnostic dump confirmed: /proc/config.gz didn't exist
(IKCONFIG_PROC missing), only gpiochip0 was registered (no JSL pinctrl),
and the MAX98360A amp bound but couldn't get its SD_MODE GPIO handle.
Root cause: config-minimal was derived from a slightly different kernel
version's Kconfig tree, so some symbols' dependency chains resolve
differently under the container's 6.19.9 build. olddefconfig's silent-drop
behavior hid the mismatch. Fix is to bypass olddefconfig entirely for
the critical audio path: use `scripts/config --enable` (which writes the
symbol directly) for every config we actually need, then run
olddefconfig to clean up any dep-selected auto-additions.
Added a post-check that `grep`s the final .config for six canary symbols
(GPIOLIB, PINCTRL_INTEL, PINCTRL_JASPERLAKE, I2C_DESIGNWARE_PCI,
SND_SOC_INTEL_SOF_RT5682_MACH, SND_SOC_MAX98357A) and fails the build
loudly if any are missing — better to catch it at kernel-build time
than discover it from a silent speaker on the target device.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>