]> Savannah Git Hosting - gnulib.git/commitdiff
Resolve conflicts for functions introduced in Android API level 19.
authorBruno Haible <bruno@clisp.org>
Sun, 22 Jan 2023 10:42:32 +0000 (11:42 +0100)
committerBruno Haible <bruno@clisp.org>
Sun, 22 Jan 2023 14:56:22 +0000 (15:56 +0100)
* lib/inttypes.in.h (imaxabs): Consider REPLACE_IMAXABS. Disable
_GL_CXXALIASWARN invocation on non-glibc systems.
(imaxdiv): Consider REPLACE_IMAXDIV. Disable _GL_CXXALIASWARN invocation
on non-glibc systems.
* m4/inttypes.m4 (gl_INTTYPES_H_DEFAULTS): Initialize HAVE_IMAXABS,
HAVE_IMAXDIV, REPLACE_IMAXABS, REPLACE_IMAXDIV.
* modules/inttypes-incomplete (Makefile.am): Substitute REPLACE_IMAXABS,
REPLACE_IMAXDIV.
* m4/imaxabs.m4 (gl_FUNC_IMAXABS): Conditionally set HAVE_IMAXABS,
REPLACE_IMAXABS.
* modules/imaxabs (configure.ac): Consider HAVE_IMAXABS, REPLACE_IMAXABS.
* m4/imaxdiv.m4 (gl_FUNC_IMAXDIV): Conditionally set HAVE_IMAXDIV,
REPLACE_IMAXDIV.
* modules/imaxdiv (configure.ac): Consider HAVE_IMAXDIV, REPLACE_IMAXDIV.

ChangeLog
lib/inttypes.in.h
m4/imaxabs.m4
m4/imaxdiv.m4
m4/inttypes.m4
modules/imaxabs
modules/imaxdiv
modules/inttypes-incomplete

index ace915fe22beaa3cac6000360fc818feab52aaec..449746ce959af667201116aee4df44cbc8676e6e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,21 @@
 
        Resolve conflicts for functions introduced in Android API level 19.
 
+       * lib/inttypes.in.h (imaxabs): Consider REPLACE_IMAXABS. Disable
+       _GL_CXXALIASWARN invocation on non-glibc systems.
+       (imaxdiv): Consider REPLACE_IMAXDIV. Disable _GL_CXXALIASWARN invocation
+       on non-glibc systems.
+       * m4/inttypes.m4 (gl_INTTYPES_H_DEFAULTS): Initialize HAVE_IMAXABS,
+       HAVE_IMAXDIV, REPLACE_IMAXABS, REPLACE_IMAXDIV.
+       * modules/inttypes-incomplete (Makefile.am): Substitute REPLACE_IMAXABS,
+       REPLACE_IMAXDIV.
+       * m4/imaxabs.m4 (gl_FUNC_IMAXABS): Conditionally set HAVE_IMAXABS,
+       REPLACE_IMAXABS.
+       * modules/imaxabs (configure.ac): Consider HAVE_IMAXABS, REPLACE_IMAXABS.
+       * m4/imaxdiv.m4 (gl_FUNC_IMAXDIV): Conditionally set HAVE_IMAXDIV,
+       REPLACE_IMAXDIV.
+       * modules/imaxdiv (configure.ac): Consider HAVE_IMAXDIV, REPLACE_IMAXDIV.
+
        * m4/futimens.m4 (gl_FUNC_FUTIMENS): Conditionally set REPLACE_FUTIMENS.
        * lib/sys_stat.in.h (futimens): Disable _GL_CXXALIASWARN invocation on
        non-glibc systems.
index 50a2bbfcda2f8dfc2c0c9c30c2109e0dc0a047dc..5b7ef12dc7ef3763c0421e9c32686e0d08d37e37 100644 (file)
@@ -903,8 +903,21 @@ extern "C" {
 #endif
 
 #if @GNULIB_IMAXABS@
-# if !@HAVE_DECL_IMAXABS@
-extern intmax_t imaxabs (intmax_t);
+# if @REPLACE_IMAXABS@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef imaxabs
+#   define imaxabs rpl_imaxabs
+#  endif
+_GL_FUNCDECL_RPL (imaxabs, intmax_t, (intmax_t x));
+_GL_CXXALIAS_RPL (imaxabs, intmax_t, (intmax_t x));
+# else
+#  if !@HAVE_DECL_IMAXABS@
+_GL_FUNCDECL_SYS (imaxabs, intmax_t, (intmax_t x));
+#  endif
+_GL_CXXALIAS_SYS (imaxabs, intmax_t, (intmax_t x));
+# endif
+# if __GLIBC__ >= 2
+_GL_CXXALIASWARN (imaxabs);
 # endif
 #elif defined GNULIB_POSIXCHECK
 # undef imaxabs
@@ -921,8 +934,21 @@ typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t;
 #   define GNULIB_defined_imaxdiv_t 1
 #  endif
 # endif
-# if !@HAVE_DECL_IMAXDIV@
-extern imaxdiv_t imaxdiv (intmax_t, intmax_t);
+# if @REPLACE_IMAXDIV@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef imaxdiv
+#   define imaxdiv rpl_imaxdiv
+#  endif
+_GL_FUNCDECL_RPL (imaxdiv, imaxdiv_t, (intmax_t numer, intmax_t denom));
+_GL_CXXALIAS_RPL (imaxdiv, imaxdiv_t, (intmax_t numer, intmax_t denom));
+# else
+#  if !@HAVE_DECL_IMAXDIV@
+_GL_FUNCDECL_SYS (imaxdiv, imaxdiv_t, (intmax_t numer, intmax_t denom));
+#  endif
+_GL_CXXALIAS_SYS (imaxdiv, imaxdiv_t, (intmax_t numer, intmax_t denom));
+# endif
+# if __GLIBC__ >= 2
+_GL_CXXALIASWARN (imaxdiv);
 # endif
 #elif defined GNULIB_POSIXCHECK
 # undef imaxdiv
index 504db4845c2da365e89222dac8250c0d7fcf075e..b0e928912fd7baaaab73fc9ae24638f7fe0f5a18 100644 (file)
@@ -1,4 +1,4 @@
-# imaxabs.m4 serial 5
+# imaxabs.m4 serial 6
 dnl Copyright (C) 2006, 2009-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,
@@ -10,6 +10,12 @@ AC_DEFUN([gl_FUNC_IMAXABS],
 
   dnl On OSF/1 5.1 with cc, this function is declared but not defined.
   gl_CHECK_FUNCS_ANDROID([imaxabs], [[#include <inttypes.h>]])
+  if test $ac_cv_func_imaxabs = no; then
+    HAVE_IMAXABS=0
+    case "$gl_cv_onwards_func_imaxabs" in
+      future*) REPLACE_IMAXABS=1 ;;
+    esac
+  fi
   AC_CHECK_DECLS_ONCE([imaxabs])
   if test "$ac_cv_have_decl_imaxabs" != yes; then
     HAVE_DECL_IMAXABS=0
index 7ad5da4ebf8ad0284648d5264cb72310b940bac7..731fa88c0e95f1a434b3a52446e87c29b01c2eb6 100644 (file)
@@ -1,4 +1,4 @@
-# imaxdiv.m4 serial 6
+# imaxdiv.m4 serial 7
 dnl Copyright (C) 2006, 2009-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,
@@ -10,6 +10,12 @@ AC_DEFUN([gl_FUNC_IMAXDIV],
 
   dnl On OSF/1 5.1 with cc, this function is declared but not defined.
   gl_CHECK_FUNCS_ANDROID([imaxdiv], [[#include <inttypes.h>]])
+  if test $ac_cv_func_imaxdiv = no; then
+    HAVE_IMAXDIV=0
+    case "$gl_cv_onwards_func_imaxdiv" in
+      future*) REPLACE_IMAXDIV=1 ;;
+    esac
+  fi
   AC_CHECK_DECLS_ONCE([imaxdiv])
   if test "$ac_cv_have_decl_imaxdiv" != yes; then
     HAVE_DECL_IMAXDIV=0
index bf2eab2ba31b1932dac710c853a84fb609b17409..e7efbe941673c6f8d8d3d9432ebf86228c6dc096 100644 (file)
@@ -1,4 +1,4 @@
-# inttypes.m4 serial 36
+# inttypes.m4 serial 37
 dnl Copyright (C) 2006-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,
@@ -170,6 +170,10 @@ AC_DEFUN([gl_INTTYPES_H_DEFAULTS],
   HAVE_DECL_STRTOIMAX=1; AC_SUBST([HAVE_DECL_STRTOIMAX])
   HAVE_DECL_STRTOUMAX=1; AC_SUBST([HAVE_DECL_STRTOUMAX])
   HAVE_IMAXDIV_T=1;      AC_SUBST([HAVE_IMAXDIV_T])
+  HAVE_IMAXABS=1;        AC_SUBST([HAVE_IMAXABS])
+  HAVE_IMAXDIV=1;        AC_SUBST([HAVE_IMAXDIV])
+  REPLACE_IMAXABS=0;     AC_SUBST([REPLACE_IMAXABS])
+  REPLACE_IMAXDIV=0;     AC_SUBST([REPLACE_IMAXDIV])
   REPLACE_STRTOIMAX=0;   AC_SUBST([REPLACE_STRTOIMAX])
   REPLACE_STRTOUMAX=0;   AC_SUBST([REPLACE_STRTOUMAX])
   INT32_MAX_LT_INTMAX_MAX=1;  AC_SUBST([INT32_MAX_LT_INTMAX_MAX])
index 70bb9cd9c08a9e665942249750856ee02cdff05c..e33b48ff8edfd15d8b5ca3363e14e481442aaf1f 100644 (file)
@@ -10,7 +10,8 @@ inttypes-incomplete
 
 configure.ac:
 gl_FUNC_IMAXABS
-gl_CONDITIONAL([GL_COND_OBJ_IMAXABS], [test $ac_cv_func_imaxabs = no])
+gl_CONDITIONAL([GL_COND_OBJ_IMAXABS],
+               [test $HAVE_IMAXABS = 0 || test $REPLACE_IMAXABS = 1])
 AM_COND_IF([GL_COND_OBJ_IMAXABS], [
   gl_PREREQ_IMAXABS
 ])
index 192a5e048d4a0c754296cac57eb9afc4035acf94..74f800b64f345d3807f96173ebc09a9f5585338d 100644 (file)
@@ -10,7 +10,8 @@ inttypes-incomplete
 
 configure.ac:
 gl_FUNC_IMAXDIV
-gl_CONDITIONAL([GL_COND_OBJ_IMAXDIV], [test $ac_cv_func_imaxdiv = no])
+gl_CONDITIONAL([GL_COND_OBJ_IMAXDIV],
+               [test $HAVE_IMAXDIV = 0 || test $REPLACE_IMAXDIV = 1])
 AM_COND_IF([GL_COND_OBJ_IMAXDIV], [
   gl_PREREQ_IMAXDIV
 ])
index 38177e1e1967b2a43c7e822787ce9a3fa7a0d8e0..96ab2e3cdd6b5a944eace809f2b46977e1af50e8 100644 (file)
@@ -43,6 +43,8 @@ inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_U
              -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \
              -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \
              -e 's/@''HAVE_IMAXDIV_T''@/$(HAVE_IMAXDIV_T)/g' \
+             -e 's/@''REPLACE_IMAXABS''@/$(REPLACE_IMAXABS)/g' \
+             -e 's/@''REPLACE_IMAXDIV''@/$(REPLACE_IMAXDIV)/g' \
              -e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \
              -e 's/@''REPLACE_STRTOUMAX''@/$(REPLACE_STRTOUMAX)/g' \
              -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \