From: Bruno Haible <bruno@clisp.org>
Date: Sun, 22 Jan 2023 13:21:48 +0000 (+0100)
Subject: Resolve conflicts for functions introduced in Android API level 26.
X-Git-Tag: v1.0~1750
X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=a1e2c8310d3694d3a80201ea63371e33a58d2d2a;p=gnulib.git

Resolve conflicts for functions introduced in Android API level 26.

* m4/getdomainname.m4 (gl_FUNC_GETDOMAINNAME): Test for getdomainname
using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. Conditionally
set REPLACE_GETSUBOPT.
---

diff --git a/ChangeLog b/ChangeLog
index 71c23426e6..513a009fce 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,10 @@
 
 	Resolve conflicts for functions introduced in Android API level 26.
 
+	* m4/getdomainname.m4 (gl_FUNC_GETDOMAINNAME): Test for getdomainname
+	using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. Conditionally
+	set REPLACE_GETSUBOPT.
+
 	* m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Conditionally set
 	REPLACE_NL_LANGINFO.
 	* lib/langinfo.in.h (nl_langinfo): Disable _GL_CXXALIASWARN invocation
diff --git a/m4/getdomainname.m4 b/m4/getdomainname.m4
index 8b118bafe7..54bc5a66e2 100644
--- a/m4/getdomainname.m4
+++ b/m4/getdomainname.m4
@@ -1,4 +1,4 @@
-# getdomainname.m4 serial 12
+# getdomainname.m4 serial 13
 dnl Copyright (C) 2002-2003, 2008-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,
@@ -19,7 +19,8 @@ AC_DEFUN([gl_FUNC_GETDOMAINNAME],
   dnl   <https://web.archive.org/web/20100121182558/http://www.sun.com/software/solaris/programs/abi/appcert_faq.xml#q18>.
   dnl   We need to avoid a collision with this function.
   dnl - Otherwise it is in libc.
-  AC_CHECK_FUNCS([getdomainname], , [
+  gl_CHECK_FUNCS_ANDROID([getdomainname], [[#include <unistd.h>]])
+  if test $ac_cv_func_getdomainname = no; then
     AC_CACHE_CHECK([for getdomainname in -lnsl],
       [gl_cv_func_getdomainname_in_libnsl],
       [gl_cv_func_getdomainname_in_libnsl=no
@@ -38,7 +39,7 @@ AC_DEFUN([gl_FUNC_GETDOMAINNAME],
          [gl_cv_func_getdomainname_in_libnsl=yes])
        LIBS="$gl_save_LIBS"
       ])
-  ])
+  fi
 
   dnl What about the declaration?
   dnl - It's  int getdomainname(char *, size_t)  on glibc, NetBSD, OpenBSD.
@@ -85,10 +86,13 @@ AC_DEFUN([gl_FUNC_GETDOMAINNAME],
     HAVE_DECL_GETDOMAINNAME=0
   fi
 
-  dnl TODO Android, cf. gl_CHECK_FUNCS_ANDROID.
   if { test $ac_cv_func_getdomainname = yes \
        && test $gl_cv_decl_getdomainname_argtype2 != size_t; \
      } \
+     || case "$gl_cv_onwards_func_getdomainname" in \
+          future*) true ;; \
+          *) false ;; \
+        esac \
      || test "$gl_cv_func_getdomainname_in_libnsl" = yes; then
     REPLACE_GETDOMAINNAME=1
   fi