>From b24b6bbf9cf4cdc0d5d011b20dd74916507a6153 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sun, 13 May 2018 16:08:56 +0200 Subject: [PATCH 4/9] mkfifo: Fix compilation error on Android. * m4/mkfifo.m4 (gl_FUNC_MKFIFO): Use AC_LINK_IFELSE instead of AC_CHECK_FUNC. --- ChangeLog | 6 ++++++ m4/mkfifo.m4 | 17 ++++++++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index bb1f4c2..181a08c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2018-05-13 Bruno Haible + mkfifo: Fix compilation error on Android. + * m4/mkfifo.m4 (gl_FUNC_MKFIFO): Use AC_LINK_IFELSE instead of + AC_CHECK_FUNC. + +2018-05-13 Bruno Haible + c-strtod: Fix configure test for Android. * m4/c-strtod.m4 (gl_C_STRTOD): Use AC_LINK_IFELSE instead of AC_CHECK_FUNC. diff --git a/m4/mkfifo.m4 b/m4/mkfifo.m4 index 13c5164..5dda67c 100644 --- a/m4/mkfifo.m4 +++ b/m4/mkfifo.m4 @@ -1,4 +1,4 @@ -# serial 5 +# serial 6 # See if we need to provide mkfifo replacement. dnl Copyright (C) 2009-2018 Free Software Foundation, Inc. @@ -12,8 +12,19 @@ AC_DEFUN([gl_FUNC_MKFIFO], [ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - AC_CHECK_FUNCS_ONCE([mkfifo]) - if test $ac_cv_func_mkfifo = no; then + + dnl We can't use AC_CHECK_FUNC here, because mkfifo() is defined as a + dnl static inline function when compiling for Android 4.4 or older. + AC_CACHE_CHECK([for mkfifo], [gl_cv_func_mkfifo], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[return mkfifo("/",0);]]) + ], + [gl_cv_func_mkfifo=yes], + [gl_cv_func_mkfifo=no]) + ]) + if test $gl_cv_func_mkfifo = no; then HAVE_MKFIFO=0 else dnl Check for Solaris 9 and FreeBSD bug with trailing slash. -- 2.7.4