Surviving 19 Jan 2038 on 32 Bit Platforms: Lessons Learned and Common Problems
summary
Demonstrates that 32-bit systems must use time_t as 64-bit everywhere: kernel ABI (needs at least kernel 5.1, bulk fixes in 5.6), glibc time64 symbol selection, and rebuilt userland and vendor blobs; one demo shows a 32-bit image becoming nonfunctional at rollover, a second shows a Yocto-built image that survives after global time64 config. Tests run under QEMU with clock set to 2040 uncover accidental truncation bugs, GLIBC symbol mismatches (including Rust’s libc crate), and require rebuilding the entire stack to be safe.
AI-written summary · about
chapters (16)
- 0:002038 problem overview
- 2:32Live demo: rollover failure
- 7:03Patched system survives rollover
- 8:34Preparing software for 64-bit time
- 10:22Kernel API changes
- 11:47Kernel time handling fixes
- 12:55C library time types
- 15:45Glibc 64-bit time
- 17:10Rust 32-bit time risks
- 19:19Testing 2038 readiness
- 21:28Installable tests
- 22:52Testing exposes issues
- 25:29Bit truncation in C
- 29:47Migrate to 64-bit?
- 32:01Conclusion
- 34:11Q&A
related talks
36mStuck in 2009 - How I Survived
34mMaintaining a Linux Kernel for 13 Years? You Must be Kidding Me. We Need at Least 30?
58m"Just switch the compiler", they said
11mThe Tales of the Cursed Operating Systems Textbook!
42mPutting Linux into Context – Towards a reproducible example system with Linux...
26mBuilding for Heterogeneous Systems
36mRunning Containers on a Resource Constrained Embedded Device
54mUnwrap()Ing Rust on Embedded Linux
