8 ms·
What does the used architecture have to do with the Y2038 issue? You can use 64 bit integers in a 32-bit system you know..
by ginko 5y ago
What does the used architecture have to do with the Y2038 issue? You can use 64 bit integers in a 32-bit system you know..
- pabs3 5y agoMost 32-bit architectures are affected by Y2038, because they use 32-bit time_t, which is part of the ABI for an architecture. So if you want 64-bit time_t, you need to either have a new ABI (and recompile the world against it), or introduce new functions using the 64-bit time_t (similar to the transition to 64-bit file sizes).
- pantalaimon 5y agoOpenWRT uses musl which has 64 bit time_t. It also compiles the whole system to a single image, so you don’t have the problem with ABI incompatibilities because you typically don’t run random third party binaries.
- pabs3 5y agoTurrisOS (OpenWRT based) is more like a normal Linux distro, it uses BTRFS, you can install packages with opkg, even run other distros with LXC.
- somat 5y agoor use openbsd which made the transition to a 64-bit time_t for all architectures. https://marc.info/?l=openbsd-cvs&m=137637321205010&w=2 https://marc.info/?l=openbsd-cvs&m=137637321205010&w=2 in 2013...
- ginko 5y agoThat's just a software issue. OpenBSD has been using 64-bit time_t on all their architectures for almost a decade now: https://marc.info/?l=openbsd-cvs&m=137637321205010&w=2 https://marc.info/?l=openbsd-cvs&m=137637321205010&w=2
- yrro 5y agoIt's worth noting that this was possible because OpenBSD are happy to break their ABI in order to improve their operating system. Linux values ABI stability highly, and prefers to introduce new interfaces that applications have to opt into (e.g., as was done with support for 64-bit file offsets on 32-bit architectures).
- Deukhoofd 5y agoLinux 5.6+ made time_t 64 bit in kernelspace. musl 1.2+ and glibc 2.32+ made it 64 bit in userspace as well.
- yrro 5y agoI think you mean glibc 2.34: https://sourceware.org/pipermail/libc-alpha/2021-August/129718.html https://sourceware.org/pipermail/libc-alpha/2021-August/1297... You opt-in by building with -D_TIME_BITS=64: https://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html#index-_005fTIME_005fBITS https://www.gnu.org/software/libc/manual/html_node/Feature-T... An approach not without its problems: https://ariadne.space/2021/12/29/glibc-is-still-not-y2038-compliant-by-default/ https://ariadne.space/2021/12/29/glibc-is-still-not-y2038-co... - but then again software that relies on time_t being 32 bits has been broken on 64-bit architectures for a very long time already, surely? I suppose I could have written that "GNU/Linux values ABI stability" in my comment, instead of plain "Linux"... ;)
- Deukhoofd 5y agoAh yes you're right, I was going by the Linux 5.6 release notes, which gave 2.32 as version. I personally fully expect TIME_BITS to default to 64 soon, but looking at the 2.35 fixed bugs, they were right in not immediately switching it over. I see at least 2 bugs related to it.
- OJFord 5y agoYes which is why GP said at the top-level comment you initially replied to: > unless OpenWRT and other distros end up fixing that issue.