[Toybox] Sigh, I broke defconfig...
Rob Landley
rob at landley.net
Wed Apr 23 07:05:07 PDT 2025
Working on fixing it but it might take a day or two.
I've been rewriting the kconfig plumbing, which started by replacing the
help text generation (since the new kconfig.c had to parse the config
entries that had help text in them _anyway_), which meant the
config2help.c shananigans to splice together multiple config entries
when you had optional -Z lines because of enabling/disabling LSM support
(and float support in sort -g, and wget https support) weren't being
done anymore, so I did new plumbing for that, which meant a lot of the
intermediate symbols could just go AWAY if I had the opposite of
USE_BLAH() macros, which I _had_ initially implemented when I invented
those for busybox back in the day, so I added that and made the various
config strings use them, ala SKIP_TOYBOX_LSM_NONE("Z:") in the option
strings only puts the Z: in there when CFG_TOYBOX_LSM_NONE is _not_ set...
But the sed creating the input to mkflags in scripts/make.sh only knew
about the USE_ macros, it didn't know how to make the skip macros. But
I'd locally enabled TOYBOX_LSM_NONE to test the extra help text showing
up before eliminating the LS_Z and similar symbols, and didn't test the
defconfig path.
And _really_ what I should do is use some variant of the same ! trick in
the option string so the option gets skipped when the TOYFLAG to enable
it isn't there, and THEN I could probably make scripts/mkflags.c go away
too because... well I blathered about that in
https://landley.net/notes-2024.html#30-01-2024 and the following day a
year and change back. Generating the FLAG_ macros wasn't so hard, it was
the optstr that needed C. (And that's another generated/*.h file that
would be .config invariant, leaving ONLY generated/config.h that needed
to be recreated each build.)
But in the meantime, the build breaks because the SKIP_ macro drops out
in the wrong pass and it says undefined symbol FLAG_Z.
I could teach the old sed invocation to understand SKIP, but the right
fix is to rip out mkflags.c and replace it with bash (which of course
toysh needs to be able to run)...
That said, the break shouldn't hit Android because their config has an
LSM so the SKIP macro _doesn't_ drop out. (I did actually test the code
before checking it in, just not all configurations. And the shortest way
out is through, so...)
Sorry,
Rob
More information about the Toybox
mailing list