* m4/tm_gmtoff.m4 (gl_TM_GMTOFF): Also check for tm_zone
and define HAVE_STRUCT_TM_TM_ZONE accordingly.
* modules/time_r-tests (Files): Add m4/tm_gmtoff.m4.
(configure.ac): Simplify by using gl_TM_GMTOFF.
---
 ChangeLog            |  6 ++++++
 m4/tm_gmtoff.m4      | 13 +++++++++++--
 modules/time_r-tests |  5 ++---
 3 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 54eeb40706..5c24caebca 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2024-06-16  Paul Eggert  <egg...@cs.ucla.edu>
 
+       time_r: refactor tm_zone tests
+       * m4/tm_gmtoff.m4 (gl_TM_GMTOFF): Also check for tm_zone
+       and define HAVE_STRUCT_TM_TM_ZONE accordingly.
+       * modules/time_r-tests (Files): Add m4/tm_gmtoff.m4.
+       (configure.ac): Simplify by using gl_TM_GMTOFF.
+
        time_r-tests: avoid tzname test
        * modules/time_r-tests (configure.ac):
        Do not check for tzname, as the tests don’t use it.
diff --git a/m4/tm_gmtoff.m4 b/m4/tm_gmtoff.m4
index ad64df4954..3d97edb7a7 100644
--- a/m4/tm_gmtoff.m4
+++ b/m4/tm_gmtoff.m4
@@ -1,13 +1,22 @@
 # tm_gmtoff.m4
-# serial 4
+# serial 5
 dnl Copyright (C) 2002, 2009-2024 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
+dnl Check for tm_gmtoff and tm_zone in struct tm, and #define
+dnl HAVE_STRUCT_TM_TM_GMTOFF and HAVE_STRUCT_TM_TM_ZONE accordingly.
+dnl Most code that needs one needs the other, so there seemed little
+dnl point to having two macros to check them individually.
+dnl Although all platforms that we know of have either both members or
+dnl neither member, check for the two members separately just in case.
+dnl
+dnl These days this macro is more useful than AC_STRUCT_TIMEZONE, which also
+dnl checks for the obsolescent tzname and does not check for tm_gmtoff.
 AC_DEFUN([gl_TM_GMTOFF],
 [
-  AC_CHECK_MEMBERS([struct tm.tm_gmtoff], [], [],
+  AC_CHECK_MEMBERS([struct tm.tm_gmtoff, struct tm.tm_zone], [], [],
     [[#include <time.h>
     ]])
 
diff --git a/modules/time_r-tests b/modules/time_r-tests
index 9d82cb3657..c29d09cc24 100644
--- a/modules/time_r-tests
+++ b/modules/time_r-tests
@@ -1,4 +1,5 @@
 Files:
+m4/tm_gmtoff.m4
 tests/test-gmtime_r.c
 tests/test-gmtime_r-mt.c
 tests/test-localtime_r.c
@@ -11,9 +12,7 @@ thread
 nanosleep
 
 configure.ac:
-AC_CHECK_MEMBERS([struct tm.tm_gmtoff, struct tm.tm_zone], [], [],
-  [[#include <time.h>
-  ]])
+gl_TM_GMTOFF
 
 Makefile.am:
 TESTS += \
-- 
2.43.0


Reply via email to