The Problem Debian Was Solving
On 32-bit Linux, the C library's time_t type has historically been a signed 32-bit integer -- a count of seconds since 1 January 1970. It overflows on 19 January 2038 at 03:14:07 UTC (the "Epochalypse"). Debian still maintains official ports for armhf (32-bit ARM), i386, and mipsel, all of which are affected. Changing time_t from 32-bit to 64-bit requires rebuilding every binary that links against glibc, because the size of many structs (stat, itimerval, utimbuf) changes.
The glibc 2.34 Foundation
GNU C Library 2.34 (August 2021) added the _TIME_BITS=64 compile-time flag, which switches time_t and all affected structs to 64-bit on 32-bit architectures while remaining ABI-compatible with 64-bit systems. Debian 13 enabled this flag globally for its 32-bit ports during the Trixie freeze cycle. The result: any package compiled for armhf in Debian 13 automatically uses 64-bit time, covering dates through 292 billion years.
What Can Still Break
Third-party binaries compiled against older versions of glibc, firmware blobs, and kernel modules that embed time_t are not covered by the distribution-level fix. Embedded devices that run Debian-derived distributions but pull firmware from vendor sources remain at risk. FAT32 filesystem timestamps (used on SD cards and USB drives) are still limited to dates through 2107 regardless of the OS change.
Other Distributions
Alpine Linux (which uses musl libc) has used 64-bit time_t on 32-bit platforms since musl 1.2.0 in 2020. Ubuntu is expected to follow Debian's Trixie approach for its next LTS cycle. Arch Linux ARM dropped 32-bit ARM support entirely in 2022. The embedded Linux world -- especially Android-derived devices on 32-bit ARM -- remains the largest unaddressed population for Y2038 exposure.