]> Savannah Git Hosting - gnulib.git/commitdiff
grantpt: Fix compilation error on Android.
authorBruno Haible <bruno@clisp.org>
Sun, 13 May 2018 13:31:48 +0000 (15:31 +0200)
committerBruno Haible <bruno@clisp.org>
Sun, 13 May 2018 14:35:38 +0000 (16:35 +0200)
* m4/grantpt.m4 (gl_FUNC_GRANTPT): Use AC_LINK_IFELSE instead of
AC_CHECK_FUNC.

ChangeLog
m4/grantpt.m4

index f4c0138511ccf6826fc03331090d11b306687c5c..2c6eab808cf3e456a91cedf635448af43d194d80 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2018-05-13  Bruno Haible  <bruno@clisp.org>
+
+       grantpt: Fix compilation error on Android.
+       * m4/grantpt.m4 (gl_FUNC_GRANTPT): Use AC_LINK_IFELSE instead of
+       AC_CHECK_FUNC.
+
 2018-05-13  Bruno Haible  <bruno@clisp.org>
 
        stdioext: Fix compilation errors with newer Android headers.
index 7e2ee4abce3fbaa6602ee06156dbd7c691d5f182..91d818350f498ee4f62202d65598a1fb86a2d0d8 100644 (file)
@@ -1,4 +1,4 @@
-# grantpt.m4 serial 2
+# grantpt.m4 serial 3
 dnl Copyright (C) 2010-2018 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -11,8 +11,18 @@ AC_DEFUN([gl_FUNC_GRANTPT],
   dnl Persuade glibc <stdlib.h> to declare grantpt().
   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
 
-  AC_CHECK_FUNCS([grantpt])
-  if test $ac_cv_func_grantpt = no; then
+  dnl We can't use AC_CHECK_FUNC here, because grantpt() is defined as a
+  dnl static inline function when compiling for Android 4.4 or older.
+  AC_CACHE_CHECK([for grantpt], [gl_cv_func_grantpt],
+    [AC_LINK_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <stdlib.h>]],
+          [[return grantpt(0);]])
+       ],
+       [gl_cv_func_grantpt=yes],
+       [gl_cv_func_grantpt=no])
+    ])
+  if test $gl_cv_func_grantpt = no; then
     HAVE_GRANTPT=0
   fi
 ])