We do not plan to take the time to implement the compatibility layer.
Other 32b Hurd ports will be able to directly use 64b time_t.
---
Makeconfig | 3 ++-
Makerules | 2 +-
io/Makefile | 2 +-
login/Makefile | 4 ++--
support/Makefile | 28 ++++++++++++++--------------
sysdeps/mach/hurd/i386/Makefile | 3 +++
6 files changed, 23 insertions(+), 19 deletions(-)
diff --git a/Makeconfig b/Makeconfig
index 135a98b697..a91a5c81a4 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -959,8 +959,9 @@ endif
installed-modules = nonlib nscd ldconfig locale_programs \
iconvprogs libnss_files libnss_compat libnss_db
libnss_hesiod \
libutil libpcprofile libnsl
++time64-flags = -D_TIME_BITS=64
+extra-time-flags = $(if $(filter $(installed-modules),\
- $(in-module)),-D_TIME_BITS=64
-D_FILE_OFFSET_BITS=64)
+ $(in-module)),$(+time64-flags)
-D_FILE_OFFSET_BITS=64)
# We might want to compile with some stack-protection flag.
ifneq ($(stack-protector),)
diff --git a/Makerules b/Makerules
index c0ade8b30c..6f2c9088b1 100644
--- a/Makerules
+++ b/Makerules
@@ -1267,7 +1267,7 @@ vpath %.input $(sysdirs)
include $(o-iterator)
define o-iterator-doit
$(foreach f,$(tests-time64) $(xtests-time64),\
- $(objpfx)$(f)$(o)): CFLAGS += -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64
+ $(objpfx)$(f)$(o)): CFLAGS += $(+time64-flags)
-D_FILE_OFFSET_BITS=64
endef
object-suffixes-left := $(all-object-suffixes)
include $(o-iterator)
diff --git a/io/Makefile b/io/Makefile
index 2a5b4dcb65..9e6c7ab90f 100644
--- a/io/Makefile
+++ b/io/Makefile
@@ -309,7 +309,7 @@ tst-statvfs-ARGS = $(objpfx)tst-statvfs tst-statvfs.c /tmp
tst-open-tmpfile-ARGS = --test-dir=$(objpfx)
-CFLAGS-ftwtest-time64.c += -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64
+CFLAGS-ftwtest-time64.c += $(+time64-flags) -D_FILE_OFFSET_BITS=64
ifeq ($(run-built-tests),yes)
$(objpfx)ftwtest.out: ftwtest-sh $(objpfx)ftwtest
diff --git a/login/Makefile b/login/Makefile
index edc95c0bde..c623341388 100644
--- a/login/Makefile
+++ b/login/Makefile
@@ -89,8 +89,8 @@ tests := \
tst-utmpx \
# tests
-CFLAGS-tst-utmp-size-64.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
-CFLAGS-tst-utmp-unsigned-64.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
+CFLAGS-tst-utmp-size-64.c += -D_FILE_OFFSET_BITS=64 $(+time64-flags)
+CFLAGS-tst-utmp-unsigned-64.c += -D_FILE_OFFSET_BITS=64 $(+time64-flags)
# Empty compatibility library for old binaries.
extra-libs := libutil
diff --git a/support/Makefile b/support/Makefile
index 87eeb8199f..737aa38759 100644
--- a/support/Makefile
+++ b/support/Makefile
@@ -298,22 +298,22 @@ CFLAGS-timespec.c += -fexcess-precision=standard
CFLAGS-timespec-time64.c += -fexcess-precision=standard
# Ensure that general support files use 64-bit time_t
-CFLAGS-delayed_exit.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
-CFLAGS-shell-container.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
-CFLAGS-support_can_chroot.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
-CFLAGS-support_copy_file.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
-CFLAGS-support_copy_file_range.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
-CFLAGS-support_descriptor_supports_holes.c += -D_FILE_OFFSET_BITS=64
-D_TIME_BITS=64
-CFLAGS-support_descriptors.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
-CFLAGS-support_process_state.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
-CFLAGS-support_stat_nanoseconds.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
-CFLAGS-support_subprocess.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
-CFLAGS-support_test_main.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
-CFLAGS-test-container.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
-CFLAGS-xmkdirp.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
+CFLAGS-delayed_exit.c += -D_FILE_OFFSET_BITS=64 $(+time64-flags)
+CFLAGS-shell-container.c += -D_FILE_OFFSET_BITS=64 $(+time64-flags)
+CFLAGS-support_can_chroot.c += -D_FILE_OFFSET_BITS=64 $(+time64-flags)
+CFLAGS-support_copy_file.c += -D_FILE_OFFSET_BITS=64 $(+time64-flags)
+CFLAGS-support_copy_file_range.c += -D_FILE_OFFSET_BITS=64 $(+time64-flags)
+CFLAGS-support_descriptor_supports_holes.c += -D_FILE_OFFSET_BITS=64
$(+time64-flags)
+CFLAGS-support_descriptors.c += -D_FILE_OFFSET_BITS=64 $(+time64-flags)
+CFLAGS-support_process_state.c += -D_FILE_OFFSET_BITS=64 $(+time64-flags)
+CFLAGS-support_stat_nanoseconds.c += -D_FILE_OFFSET_BITS=64 $(+time64-flags)
+CFLAGS-support_subprocess.c += -D_FILE_OFFSET_BITS=64 $(+time64-flags)
+CFLAGS-support_test_main.c += -D_FILE_OFFSET_BITS=64 $(+time64-flags)
+CFLAGS-test-container.c += -D_FILE_OFFSET_BITS=64 $(+time64-flags)
+CFLAGS-xmkdirp.c += -D_FILE_OFFSET_BITS=64 $(+time64-flags)
# This is required to get an mkstemp which can create large files on some
# 32-bit platforms.
-CFLAGS-temp_file.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
+CFLAGS-temp_file.c += -D_FILE_OFFSET_BITS=64 $(+time64-flags)
ifeq (,$(CXX))
LINKS_DSO_PROGRAM = links-dso-program-c
diff --git a/sysdeps/mach/hurd/i386/Makefile b/sysdeps/mach/hurd/i386/Makefile
index 8fe93ef27a..f1404461e7 100644
--- a/sysdeps/mach/hurd/i386/Makefile
+++ b/sysdeps/mach/hurd/i386/Makefile
@@ -1,3 +1,6 @@
+# hurd-i386 does not support 64b time_t
++time64-flags = -D_TIME_BITS=32
+
ifeq ($(subdir),csu)
ifeq (yes,$(build-shared))
sysdep_routines += divdi3
--
2.53.0