summaryrefslogtreecommitdiff
path: root/Makefile.flags
diff options
context:
space:
mode:
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>2023-04-20 14:13:17 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2023-05-07 18:57:06 +0200
commit40fa8eb998e27529fcd59830eb163b43658f9e81 (patch)
tree2b9c9be2b1fcf5f947f25d06dc7dc4859ee4ed00 /Makefile.flags
parent07f8b6feac2ff80793394b5b5acff5cd149d7fb2 (diff)
downloadbusybox-40fa8eb998e27529fcd59830eb163b43658f9e81.tar.gz
build system: Make it possible to build with 64bit time_t
On most 32bit architectures time_t (and a few other time related types) are a signed 32bit wide integer type. As a consequence they can only represent dates between Fri Dec 13 08:45:52 PM UTC 1901 (-0x80000000 seconds before Jan 1 1970) and Tue Jan 19 03:14:07 AM UTC 2038 (0x7fffffff seconds after Jan 1 1970). Given that some machines that are built today have an expected lifetime of >15 years, this needs to be extended. To to that, define the cpp symbol _TIME_BITS to 64 which results in some magic in glibc to make time_t (and the few other time related types) 64 bit wide. This new switch CONFIG_TIME64 is in the spirit of CONFIG_LFS and only expected to have the expected effect with glibc. On musl for examples time_t already defaults to 64bit wide types. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'Makefile.flags')
-rw-r--r--Makefile.flags1
1 files changed, 1 insertions, 0 deletions
diff --git a/Makefile.flags b/Makefile.flags
index 1cec5ba20..e4cd658fd 100644
--- a/Makefile.flags
+++ b/Makefile.flags
@@ -15,6 +15,7 @@ CPPFLAGS += \
-include include/autoconf.h \
-D_GNU_SOURCE -DNDEBUG \
$(if $(CONFIG_LFS),-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64) \
+ $(if $(CONFIG_TIME64),-D_TIME_BITS=64) \
-DBB_VER=$(squote)$(quote)$(BB_VER)$(quote)$(squote)
CFLAGS += $(call cc-option,-Wall,)