]> granicus.if.org Git - p11-kit/commitdiff
build: Ease issetugid() check when cross-compiling
authorDaiki Ueno <dueno@redhat.com>
Thu, 31 May 2018 09:02:51 +0000 (11:02 +0200)
committerDaiki Ueno <ueno@gnu.org>
Fri, 8 Jun 2018 06:36:35 +0000 (08:36 +0200)
When cross-compiling, the configure check for issetugid() aborts,
because of the pessimistic default of AC_RUN_IFELSE.  This patch
provides the non-pessimistic default to AC_RUN_IFELSE and wrap the
macro invocation with AC_CACHE_CHECK so that the user can override the
check by setting ac_cv_issetugid_openbsd=yes, as suggested in:
https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Runtime.html#Runtime

configure.ac

index e99a3c7e6de9c31a8aa447014f2705083256a366..bd6ece0766a484f588a947cd39a3eb076a759cb4 100644 (file)
@@ -115,15 +115,17 @@ if test "$os_unix" = "yes"; then
 
        # Check if issetugid() is available and has compatible behavior with OpenBSD
        AC_CHECK_FUNCS([issetugid], [
-               AC_MSG_CHECKING([whether issetugid() can detect setuid/setgid])
-               issetugid_openbsd=no
-               AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <unistd.h>]],
-                       [[return issetugid ();]])],
-                       [chmod 02777 ./conftest$EXEEXT; ./conftest$EXEEXT || issetugid_openbsd=yes])
-               if test "$issetugid_openbsd" = yes; then
+               AC_CACHE_CHECK([whether issetugid() can detect setuid/setgid],
+                       [ac_cv_issetugid_openbsd],
+                       [ac_cv_issetugid_openbsd=no
+                       AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <unistd.h>]],
+                               [[return issetugid ();]])],
+                               [chmod 02777 ./conftest$EXEEXT; ./conftest$EXEEXT || ac_cv_issetugid_openbsd=yes],
+                               [ac_cv_issetugid_openbsd=no],
+                               [ac_cv_issetugid_openbsd="guessing no"])])
+               if test "$ac_cv_issetugid_openbsd" = yes; then
                        AC_DEFINE([HAVE_ISSETUGID_OPENBSD], [1], [Whether issetugid() has compatible behavior with OpenBSD])
                fi
-               AC_MSG_RESULT([$issetugid_openbsd])
        ])
 
        # Required functions