[Toybox] Sigh, I broke defconfig...
enh
enh at google.com
Wed Apr 23 07:16:47 PDT 2025
are you sure you even want to bother with any of this? i feel like
this is one of the 1980s "dynamic menus are bad" lessons --- better to
have the option and let it explain why it doesn't work than to have it
mysteriously sometimes not be there...
On Wed, Apr 23, 2025 at 10:05 AM Rob Landley <rob at landley.net> wrote:
>
> 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
> _______________________________________________
> Toybox mailing list
> Toybox at lists.landley.net
> http://lists.landley.net/listinfo.cgi/toybox-landley.net
More information about the Toybox
mailing list