Bug 15031 - kbuild can't handle .config files with lines more than 1024 lines
Summary: kbuild can't handle .config files with lines more than 1024 lines
Status: NEW
Alias: None
Product: Busybox
Classification: Unclassified
Component: Other (show other bugs)
Version: 1.35.x
Hardware: All Linux
: P5 normal
Target Milestone: ---
Assignee: unassigned
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-10-06 18:18 UTC by Sergei Trofimovich
Modified: 2022-10-06 18:18 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sergei Trofimovich 2022-10-06 18:18:41 UTC
But originally reported by brothermechanic in https://github.com/trofi/nix-guix-gentoo/issues/22 against busybox-1.35.0.

There user's .config file contains this long line (exceeds 1K limit a bit):

> CONFIG_EXTRA_CFLAGS="-march=skylake -mmmx -mpopcnt -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -mno-sse4a -mno-fma4 -mno-xop -mfma -mno-avx512f -mbmi -mbmi2 -maes -mpclmul -mno-avx512vl -mno-avx512bw -mno-avx512dq -mno-avx512cd -mno-avx512er -mno-avx512pf -mno-avx512vbmi -mno-avx512ifma -mno-avx5124vnniw -mno-avx5124fmaps -mno-avx512vpopcntdq -mno-avx512vbmi2 -mno-gfni -mno-vpclmulqdq -mno-avx512vnni -mno-avx512bitalg -mno-avx512bf16 -mno-avx512vp2intersect -mno-3dnow -madx -mabm -mno-cldemote -mclflushopt -mno-clwb -mno-clzero -mcx16 -mno-enqcmd -mf16c -mfsgsbase -mfxsr -mno-hle -msahf -mno-lwp -mlzcnt -mmovbe -mno-movdir64b -mno-movdiri -mno-mwaitx -mno-pconfig -mno-pku -mno-prefetchwt1 -mprfchw -mno-ptwrite -mno-rdpid -mrdrnd -mrdseed -mno-rtm -mno-serialize -msgx -mno-sha -mno-shstk -mno-tbm -mno-tsxldtrk -mno-vaes -mno-waitpkg -mno-wbnoinvd -mxsave -mxsavec -mxsaveopt -mxsaves -mno-amx-tile -mno-amx-int8 -mno-amx-bf16 -mno-uintr -mno-hreset -mno-kl -mno-widekl -mno-avxvnni --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=6144 -mtune=skylake -dumpbase null -O2 -pipe"

That renders the following:

    make oldconfig
    # using defaults found in .config
    #
    .config:52:warning: invalid string found
    .config:53:warning: unexpected data

Currently I'm woring it around bu inflating the temporary buffer:

--- busybox-1.35.0.orig/scripts/kconfig/confdata.c      2021-12-26 16:53:21.000000000 +0000
+++ busybox-1.35.0/scripts/kconfig/confdata.c   2022-10-06 18:48:01.374687000 +0100
@@ -87,7 +87,7 @@
 int conf_read_simple(const char *name)
 {
        FILE *in = NULL;
-       char line[1024];
+       char line[64 * 1024];
        char *p, *p2;
        struct symbol *sym;
        int i;

Upstream kbuild fixed it in 2012: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1a7a8c6fd8ca24d3692dacddf8d658c9bb9c14ad

Worth pulling equivalent of kernel's fix into busybox?

Thank you!