https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119550
--- Comment #9 from Jonathan Wakely <redi at gcc dot gnu.org> --- Something like this: dnl dnl Check for a tm_zone member in struct tm. dnl dnl This member is defined as const char* in Glibc, newlib, POSIX.1-2024, dnl and as char* in BSD (including macOS). dnl dnl Defines: dnl _GLIBCXX_USE_STRUCT_TM_TM_ZONE if struct tm has a tm_zone member. dnl AC_DEFUN([GLIBCXX_STRUCT_TM_TM_ZONE], [ AC_LANG_SAVE AC_LANG_CPLUSPLUS ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -std=c++20" AC_CACHE_CHECK([for tm_zone member of struct tm], glibcxx_cv_tm_zone, [ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <time.h> ], [struct tm t{}; t.tm_zone = (char*)0;] )], [glibcxx_cv_tm_zone=yes], [glibcxx_cv_tm_zone=no] ) ]) if test $glibcxx_cv_tm_zone = yes; then AC_DEFINE(_GLIBCXX_USE_STRUCT_TM_TM_ZONE, 1, [Define if struct tm has a tm_zone member.]) fi CXXFLAGS="$ac_save_CXXFLAGS" AC_LANG_RESTORE ])