summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2021-09-08 09:45:46 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2021-09-08 09:46:43 -0700
commitd99c9622d55cd37084af00843e1feffc0a71fc62 (patch)
treee136d018030125c814e4712100e121bbf5167001
parent48cfbe8a9e11681a36b53a1304b3ab554de4b350 (diff)
downloadgnulib-d99c9622d55cd37084af00843e1feffc0a71fc62.tar.gz
strerror_r-posix: port better to Android
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Move requirement of gl_USE_SYSTEM_EXTENSIONS from here ... (gl_FUNC_STRERROR_R_WORKS): ... to here, which is the macro that actually needs it. This avoids a bug where 'configure' tests whether strerror_r has the POSIX API before enabling GNU extensions. On Android, enabling GNU extensions switches from the POSIX to the GNU API. Problem reported by Lucy Phipps in: https://lists.gnu.org/r/bug-gnulib/2021-09/msg00026.html
-rw-r--r--ChangeLog10
-rw-r--r--m4/strerror_r.m410
2 files changed, 16 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index d2dd671c5b..1db7e333bc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
2021-09-08 Paul Eggert <eggert@cs.ucla.edu>
+ strerror_r-posix: port better to Android
+ * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Move requirement of
+ gl_USE_SYSTEM_EXTENSIONS from here ...
+ (gl_FUNC_STRERROR_R_WORKS): ... to here, which is the macro that
+ actually needs it. This avoids a bug where 'configure' tests
+ whether strerror_r has the POSIX API before enabling GNU
+ extensions. On Android, enabling GNU extensions switches from the
+ POSIX to the GNU API. Problem reported by Lucy Phipps in:
+ https://lists.gnu.org/r/bug-gnulib/2021-09/msg00026.html
+
string, wchar: port rpl_free decl to Android
* lib/string.in.h, lib/wchar.in.h:
(free): When replacing it, declare the unreplaced version too.
diff --git a/m4/strerror_r.m4 b/m4/strerror_r.m4
index 0689e46dc6..29b309221f 100644
--- a/m4/strerror_r.m4
+++ b/m4/strerror_r.m4
@@ -1,4 +1,4 @@
-# strerror_r.m4 serial 21
+# strerror_r.m4 serial 22
dnl Copyright (C) 2002, 2007-2021 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -9,9 +9,6 @@ AC_DEFUN([gl_FUNC_STRERROR_R],
AC_REQUIRE([gl_STRING_H_DEFAULTS])
AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS])
- dnl Persuade Solaris <string.h> to declare strerror_r().
- AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
-
dnl Some systems don't declare strerror_r() if _THREAD_SAFE and _REENTRANT
dnl are not defined.
AC_CHECK_DECLS_ONCE([strerror_r])
@@ -52,6 +49,11 @@ AC_DEFUN([gl_FUNC_STRERROR_R_WORKS],
[
AC_REQUIRE([gl_HEADER_ERRNO_H])
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+ dnl Persuade Android <string.h> to use the GNU strerror_r API,
+ dnl and Solaris <string.h> to declare strerror_r.
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
AC_REQUIRE([gl_FUNC_STRERROR_0])
AC_CHECK_FUNCS_ONCE([strerror_r])