From 0e390f54fa61a5a8c9481a862803d0de78815d6a Mon Sep 17 00:00:00 2001 From: Po Lu Date: Mon, 14 Aug 2023 09:15:51 +0800 Subject: [PATCH] ; Update from Gnulib * lib/boot-time-aux.h (get_linux_uptime): * lib/boot-time.c (UT_USER): * lib/nproc.c (num_processors_ignoring_omp): * lib/readutmp.h (WTMP_FILE): * m4/readutmp.m4 (gl_READUTMP): * m4/stdint.m4: Update from Gnulib. --- lib/boot-time-aux.h | 2 ++ lib/boot-time.c | 8 +++++--- lib/nproc.c | 4 ++-- lib/readutmp.h | 7 +++++++ m4/readutmp.m4 | 8 ++++++-- m4/stdint.m4 | 7 +++++-- 6 files changed, 27 insertions(+), 9 deletions(-) diff --git a/lib/boot-time-aux.h b/lib/boot-time-aux.h index 348611fc85c..e59a0fd03c7 100644 --- a/lib/boot-time-aux.h +++ b/lib/boot-time-aux.h @@ -65,6 +65,7 @@ get_linux_uptime (struct timespec *p_uptime) } # endif +# if HAVE_DECL_SYSINFO /* not available in Android API < 9 */ /* The sysinfo call returns the uptime with a resolution of 1 sec only. */ struct sysinfo info; if (sysinfo (&info) >= 0) @@ -73,6 +74,7 @@ get_linux_uptime (struct timespec *p_uptime) p_uptime->tv_nsec = 0; return 0; } +# endif return -1; } diff --git a/lib/boot-time.c b/lib/boot-time.c index d813bfa5825..fe5b5b88c8e 100644 --- a/lib/boot-time.c +++ b/lib/boot-time.c @@ -32,7 +32,7 @@ # include #endif -#if HAVE_SYS_SYSCTL_H && !defined __minix +#if HAVE_SYS_SYSCTL_H && !(defined __GLIBC__ && defined __linux__) && !defined __minix # if HAVE_SYS_PARAM_H # include # endif @@ -65,8 +65,10 @@ # define UT_USER(UT) ((UT)->ut_user) #endif -#if !HAVE_UTMPX_H && HAVE_UTMP_H && defined UTMP_NAME_FUNCTION && !HAVE_DECL_GETUTENT -struct utmp *getutent (void); +#if !HAVE_UTMPX_H && HAVE_UTMP_H && defined UTMP_NAME_FUNCTION +# if !HAVE_DECL_ENDUTENT /* Android */ +void endutent (void); +# endif #endif #if defined __linux__ || HAVE_UTMPX_H || HAVE_UTMP_H || defined __CYGWIN__ || defined _WIN32 diff --git a/lib/nproc.c b/lib/nproc.c index 2740c458c11..e3de1873a96 100644 --- a/lib/nproc.c +++ b/lib/nproc.c @@ -46,7 +46,7 @@ # include #endif -#if HAVE_SYS_SYSCTL_H && ! defined __GLIBC__ +#if HAVE_SYS_SYSCTL_H && !(defined __GLIBC__ && defined __linux__) # include #endif @@ -306,7 +306,7 @@ num_processors_ignoring_omp (enum nproc_query query) /* Finally, as fallback, use the APIs that don't distinguish between NPROC_CURRENT and NPROC_ALL. */ -#if HAVE_SYSCTL && ! defined __GLIBC__ && defined HW_NCPU +#if HAVE_SYSCTL && !(defined __GLIBC__ && defined __linux__) && defined HW_NCPU { /* This works on macOS, FreeBSD, NetBSD, OpenBSD. macOS 10.14 does not allow mib to be const. */ int nprocs; diff --git a/lib/readutmp.h b/lib/readutmp.h index 1cf588d265b..f7cad36d445 100644 --- a/lib/readutmp.h +++ b/lib/readutmp.h @@ -249,6 +249,13 @@ struct utmpx32 # define WTMP_FILE "/etc/wtmp" #endif +/* In early versions of Android, did not define BOOT_TIME, only + USER_PROCESS. We need to use the value that is defined in newer versions + of Android. */ +#if defined __ANDROID__ && !defined BOOT_TIME +# define BOOT_TIME 2 +#endif + /* Some platforms, such as OpenBSD, don't have an ut_type field and don't have the BOOT_TIME and USER_PROCESS macros. But we want to support them in 'struct gl_utmp'. */ diff --git a/m4/readutmp.m4 b/m4/readutmp.m4 index fff8d4eb7bf..0a47f4bb77d 100644 --- a/m4/readutmp.m4 +++ b/m4/readutmp.m4 @@ -1,4 +1,4 @@ -# readutmp.m4 serial 28 +# readutmp.m4 serial 30 dnl Copyright (C) 2002-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -55,7 +55,7 @@ AC_DEFUN_ONCE([gl_PREREQ_READUTMP_H], if test $ac_cv_header_utmp_h = yes || test $ac_cv_header_utmpx_h = yes; then dnl Prerequisites of lib/readutmp.h and lib/readutmp.c. AC_CHECK_FUNCS_ONCE([utmpname utmpxname]) - AC_CHECK_DECLS([getutent],,,[[ + AC_CHECK_DECLS([endutent],,,[[ /* is a prerequisite of on FreeBSD 8.0, OpenBSD 4.6. */ #include #ifdef HAVE_UTMP_H @@ -103,6 +103,10 @@ AC_INCLUDES_DEFAULT AC_CHECK_MEMBERS([struct utmp.ut_exit.e_termination],,,[$utmp_includes]) fi + AC_CHECK_DECLS([sysinfo],,,[[ + #include + ]]) + AC_CHECK_HEADERS_ONCE([sys/param.h]) dnl requires on OpenBSD 4.0. AC_CHECK_HEADERS([sys/sysctl.h],,, diff --git a/m4/stdint.m4 b/m4/stdint.m4 index d6961b0993e..b9f764d4c1c 100644 --- a/m4/stdint.m4 +++ b/m4/stdint.m4 @@ -1,4 +1,4 @@ -# stdint.m4 serial 61 +# stdint.m4 serial 62 dnl Copyright (C) 2001-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -150,7 +150,10 @@ intmax_t i = INTMAX_MAX; uintmax_t j = UINTMAX_MAX; /* Check that SIZE_MAX has the correct type, if possible. */ -#if 201112 <= __STDC_VERSION__ +/* ISO C 11 mandates _Generic, but GCC versions < 4.9 lack it. */ +#if 201112 <= __STDC_VERSION__ \ + && (!defined __GNUC__ || 4 < __GNUC__ + (9 <= __GNUC_MINOR__) \ + || defined __clang__) int k = _Generic (SIZE_MAX, size_t: 0); #elif (2 <= __GNUC__ || 4 <= __clang_major__ || defined __IBM__TYPEOF__ \ || (0x5110 <= __SUNPRO_C && !__STDC__))