libbc has a private, incompatible utmp.h
usr/src/lib/libbc/inc/include/utmp.h only contains a
struct utmp and
nonuser macro, but they both differ from usr/src/head/utmp.h. It's likely
struct utmp is entirely wrong.
Updated by Rich Lowe about 10 years ago
This is likely not correct. The utmp.h in libbc is describing the
SunOS4 'utmp' structure, rather than the 5.x utmpx, but I believe is
doing so on purpose. There's a 'compat.h' which does other, similarly
None of libbc's headers are delivered, I think we just carry them
around to support the sad parts of /usr/ucb which still require them,
and to let it build itself.
I think all of this is in support of allowing SunOS4 applications to
read the 5.x utmpx/wtmpx files, but receive 4.x struct utmp data (I
suspect that the definitions are in both compat.h and utmp.h for silly
reasons, but haven't checked).
Mostly, the thing we've done to libbc has been to touch it as little
as possible and hope it drops off, it is full of code both apparently
and actually incorrect. But also practically impossible to test
(unless you have a collection of SunOS 4 binaries.)