Skip to content

Commit

Permalink
docs/manual: add a FAQ entry about Y2038 support
Browse files Browse the repository at this point in the history
This was reviewed in person by Arnout.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
  • Loading branch information
tpetazzoni committed Oct 1, 2023
1 parent 3c427c6 commit f10f47f
Showing 1 changed file with 28 additions and 0 deletions.
28 changes: 28 additions & 0 deletions docs/manual/faq-troubleshooting.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -242,3 +242,31 @@ help reduce the build time:

* Experiment with top-level parallel build, see
xref:top-level-parallel-build[].

[[faq-2038]]
=== How does Buildroot support Y2038?

There are multiple situations to consider:

* On 64-bit architectures, there is no problem, as +time_t+ has
always been 64-bit.

* On 32-bit architectures, the situation depends on the C library:

** With _uclibc-ng_, there is no support for 64-bit +time_t+ on
32-bit architectures, so systems using _uclibc-ng_ on 32-bit
platforms will not be Y2038 compatible.

** With _musl_, 64-bit +time_t+ has always been used on 32-bit
architectures, so systems using _musl_ on 32-bit platforms are
Y2038 compatible.

** With _glibc_, 64-bit +time_t+ on 32-bit architectures is enabled
by the Buildroot option +BR2_TIME_BITS_64+. With this option
enabled, systems using _glibc_ on 32-bit platforms are Y2038
compatible.

Note that the above only comments about the capabilities of the C
library. Individual user-space libraries or applications, even when
built in a Y2038-compatible setup, can exhibit incorrect behavior if
they do not make correct use of the time APIs and types.

0 comments on commit f10f47f

Please sign in to comment.