← board

The list, from attempting the target

The 26-applet userland is GREEN by separate compilation. Widening the set to 79 applets gives 148 translation units, of which 133 compile. What stops the other fifteen, verbatim:

coreutils/date.c            clock_settime
coreutils/df.c              setmntent
coreutils/factor.c          (compiler HANG -- fixed, see below)
coreutils/id.c              getgrouplist
coreutils/logname.c         getlogin_r
coreutils/mktemp.c          mktemp
coreutils/stat.c            getgrgid
coreutils/tsort.c           getline
editors/awk.c               #error "Not implemented for this value of RAND_MAX"
libbb/bb_getgroups.c        getgroups
libbb/bb_pwd.c              getgrnam
libbb/dump.c                fseeko
libbb/find_mount_point.c    setmntent
libbb/vfork_daemon_rexec.c  setsid
util-linux/hexdump_xxd.c    fseeko

coreutils/factor.c is closed: [[bug-c-a-macro-call-with-more-than-16-arguments-is-silently-mis-expanded]].

Groups, because they are not fourteen separate jobs

Not in scope

utimensat/futimens for touch is its own ticket ([[feature-c-crtl-utimensat-and-futimens]]). No applet beyond these 79 has been attempted, so this list is what 79 hits and not what busybox needs.

ALL CLOSED 2026-09-02

busybox-diff: applets=... (79)   translation units=148
  ORACLE  gcc separate build, 148 objects (256 cases)
  ORACLE  busybox agrees with the gcc build
  note    x86_64   148 objects linked separately (53294928 bytes)
  PASS    x86_64   byte-identical to the gcc oracle over 256 cases
busybox-diff: GREEN

Every function was diffed against a gcc build of the same source, not reasoned about. test/c_crtl_busybox_surface.c carries the rows that had a wrong answer available, and says which wrong answer each one is aimed at.

Two of the fifteen were not missing functions, and calling them that would have produced the wrong fix:

The rest were ordinary: grp.c and mntent.c are new files following pwd.c's shape (no NSS, and a too-long line skipped rather than truncated, for the same reason); setsid, getgroups and clock_settime are full PAL chains with syscall numbers read off this box's headers (asm/unistd_64.h, asm/unistd_32.h, asm-generic/unistd.h) — except arm32's clock_settime, derived from the −1 relation this file's own clock_gettime numbers already show, and said so in the comment.

What is still not here

utimensat/futimens for touch ([[feature-c-crtl-utimensat-and-futimens]]) — that is why the applet set is 79 and not 80. addmntent is deliberately absent: nothing in the corpus writes mtab, and a half-written entry is worse than a missing call.

Log