Rung 3 — 141 applets, separately compiled, really linked
feature-c-corpus-busybox-userland-by-separate-compilation met its bar at 26
applets / 82 translation units and said in its own summary that growing the
applet set past 26 is rung 3's business. This is that.
The bar
tools/busybox_diff.sh --separate --applets "$(busybox --list)" — 141 applets,
265 translation units, 265 objects, one real link with no -Wl,-z,muldefs,
and the result byte-identical to the gcc oracle over its case set.
x86-64 only. aarch64 stays out until --emit-obj has an object writer for it;
that is not this ticket's to fix.
Met
ORACLE gcc separate build, 265 objects (387 cases)
ORACLE busybox agrees with the gcc build
note x86_64 265 objects linked separately (109131728 bytes)
PASS x86_64 byte-identical to the gcc oracle over 387 cases
busybox-diff: GREEN
compiler sha256 084935c11df1f9d0. See devdocs/progress/LOGBOOK.md
2026-09-02 for the two compiler defects and the crtl surface, each with its
own measurement.
The last symbol was not a missing function. After getnameinfo landed,
all 265 objects compiled and the link still failed on one name --
data_extract_to_command, from if (opt & OPT_2COMMAND) in archival/tar.c,
where the config sets that enum member to 0 and leaves the defining
translation unit out of the build. The dead arm survived because the x and 0
branch identity looked at the outer node of and(and(opt,0),0xFFFFFFFF) -- the
frontend's own unsigned width mask. A compiler fold, reached by attempting a
link.
Log
- 2026-09-02 — resolved.
Not in this rung
- The 141 applets this tree's
.configselects.su,loginandpasswdwant-lcryptorCONFIG_USE_BB_CRYPT;whowantsFEATURE_UTMP. Those are configuration, not pxx defects, and they are named here so the next person does not rediscover them as bugs. libbb/getpty.cis not in this set, which is why the missing pty family is filed (feature-c-crtl-has-no-pty-family-at-all) rather than blocking.- 2026-09-02 — resolved; this names the commit that carried the resolve, which is not always the one that carried the change — commit d71642873.