build utmpd as 64-bit binary
With slightly older screen, I did notice the issue in output of w and who:
tsoome@openindiana:/code/illumos-gate$ w 00:04:43 2 users, load average: 0,93, 1,06, 1,05 User tty login@ idle JCPU PCPU what tsoome pts/2 23:23:57 2 1 0 /usr/bin/bash tsoome pts/1 23:52:22 0 0 0 w tsoome pts/3 23:22:05 0 0 0 - tsoome pts/3 23:22:05 0 0 0 - tsoome@openindiana:/code/illumos-gate$ who tsoome pts/2 okt 6 23:23 (10.7.33.28) tsoome pts/1 okt 6 23:52 (10.7.33.28) tsoome pts/3 okt 6 23:22 (:pts/2:S.0) tsoome pts/3 okt 6 23:22 (:pts/2:S.0) tsoome@openindiana:/code/illumos-gate$
This system was built with gcc 10 on sparc, and the problem is not about w and who commands, but about 32-bit ABI - gcc 10 does not implement complementing 32-bit signed data to 64-bit (as does gcc 4.4.4). From one hand this is bug, but in this particular case, we can work around by building utmpd as 64-bit binary. It is a bit odd reason, but as good as any other IMO.
Updated by Toomas Soome 16 days ago
Robert Mustacchi wrote in #note-3:
Cannot we not fix the SPARC ABI? We keep working around it, but it's actually one of the big pieces (along with cross building) for IPD 19.
I'm sure we can, just that according to https://www.illumos.org/issues/2757, the full fix is some amount of work in any case.