glibc todavía no tiene soporte Y2038 por defecto
(ariadne.space)-
Después de 2038-01-09 3:14:07 UTC,
time_tde 32 bits se desborda -
El kernel de Linux lo cambió internamente a 64 bits hace algunos años, y Alpine lo cambió a
time_tde 64 bits desde la 3.13 -
GNU glibc empezó a soportar
time_tde 64 bits desde la 2.34, pero el enfoque no es técnicamente completo -
musly otras implementaciones de la biblioteca C de UNIX hacen quetime_tsea siempre de 64 bits en código nuevo, y proporcionan stubs de compatibilidad para el código existente de 32 bits
→ con el tiempo, eso hace que automáticamente sea compatible con Y2038
-
Microsoft fue un paso más allá en
msvcrty usatime_tde 64 bits por defecto, y si se usa la macro_USE_32BIT_TIME_Tse puede acceder a las funciones antiguas de 32 bits -
GNU glibc toma exactamente el enfoque opuesto a esos dos casos
→ solo se puede usar si se solicita explícitamente con -D_TIME_BITS=64
→ quizá algún día ese valor por defecto cambie, pero hasta ahora no ha pasado en absoluto
⇨ de forma similar, todavía hay que especificar -D_FILE_OFFSET_BITS=64, necesario para manejar archivos de más de 2 GiB
→ además, en sistemas de 32 bits no se debe compilar usando -D_TIME_BITS=64 (es decir, la compatibilidad con Y2038 es imposible)
1 comentarios
Todavía quedan unos 16 años, pero como Linux también se usa mucho en equipos que no se reemplazan por largo tiempo...