Package: coreutils
Version: 9.1
Hardware: Raspberry Pi B+ (ARMv6)
OS: Raspberry Pi OS Bookworm 32-bit

**Summary**

The `who` command displays a large garbage number instead of the login
timestamp on Raspberry Pi B+ (ARMv6) running Bookworm.

**Steps to reproduce**

1. Upgrade Raspberry Pi B+ from Bullseye to Bookworm
2. Log in via SSH
3. Run `who`

**Expected output**
```
pi       pts/0        2026-03-28 23:12 (192.168.1.155)
```

**Actual output**
```
pi       pts/0        -7277349980266658240   .          2386 (192.168.1.155)
```

**Investigation**

The data in utmp is correct. Running `utmpdump /var/run/utmp` shows proper
timestamps. The issue is in how `who` reads and interprets the timestamp
field.

The root cause appears to be the time_t size change in glibc 2.36, where
time_t was extended from 32-bit to 64-bit on 32-bit ARM to address the year
2038 problem. The `who` binary in coreutils 9.1 does not handle this
correctly on ARMv6.

**System information**

```
$ file /usr/bin/who
/usr/bin/who: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV),
dynamically linked, interpreter /lib/ld-linux-armhf.so.3,
BuildID[sha1]=c6dc2242888186e91a05821c53acda562d7737ea, for GNU/Linux
3.2.0, stripped

$ ldd /usr/bin/who
/usr/lib/arm-linux-gnueabihf/libarmmem-${PLATFORM}.so =>
/usr/lib/arm-linux-gnueabihf/libarmmem-v6l.so (0xb6f30000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6da4000)
/lib/ld-linux-armhf.so.3 (0xb6f4f000)

$ who --version
who (GNU coreutils) 9.1

$ who
pi       pts/0        -7277349980266658240   .          2386 (192.168.1.155)

$ sudo utmpdump /var/run/utmp
[shows correct timestamps]
```

**Workaround**

Using `utmpdump /var/run/utmp` displays correct timestamps. The `who`
command is the only affected tool confirmed so far.

**Notes**

This only affects ARMv6 hardware (Raspberry Pi B+). The Pi B+ is the only
Raspberry Pi model that uses ARMv6 and is not supported by the 64-bit
version of Raspberry Pi OS, making the 32-bit Bookworm image the only
upgrade path for this hardware.

Reply via email to