glibc masih belum menggunakan dukungan Y2038 sebagai default
(ariadne.space)-
Setelah 2038-01-09 3:14:07 UTC,
time_t32-bit akan mengalami overflow -
Kernel Linux sudah menggantinya secara internal ke 64-bit beberapa tahun lalu, dan Alpine mengubah
time_tmenjadi 64-bit sejak 3.13 -
GNU glibc mulai mendukung
time_t64-bit sejak 2.34, tetapi pendekatannya secara teknis belum sepenuhnya matang -
musl dan implementasi UNIX C library lain membuat
time_tselalu 64-bit untuk kode baru, dan menyediakan stub kompatibilitas untuk kode 32-bit lama
→ sehingga seiring waktu akan otomatis menjadi kompatibel dengan Y2038
-
Microsoft melangkah lebih jauh di
msvcrtdengan menggunakantime_t64-bit secara default, dan macro_USE_32BIT_TIME_Tdapat dipakai untuk mengakses fungsi 32-bit lama -
GNU glibc mengambil pendekatan yang tepat kebalikan dari dua hal di atas
→ hanya bisa digunakan jika diminta secara eksplisit dengan -D_TIME_BITS=64
→ mungkin suatu saat default ini bisa berubah, tetapi sampai sekarang sama sekali belum dilakukan
⇨ mirip dengan -D_FILE_OFFSET_BITS=64 yang masih harus dinyatakan secara eksplisit untuk menangani file yang lebih besar dari 2GiB
→ selain itu, pada sistem 32-bit build dengan -D_TIME_BITS=64 tidak boleh dilakukan (artinya kompatibilitas Y2038 tidak dimungkinkan)
1 komentar
Masih ada sekitar 16 tahun lagi, tetapi Linux juga banyak dipakai pada perangkat yang tidak diganti dalam waktu lama..