summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac12
-rw-r--r--openbsd-compat/bsd-misc.c2
2 files changed, 11 insertions, 3 deletions
diff --git a/configure.ac b/configure.ac
index f96c70bc..d3deac83 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1736,7 +1736,6 @@ AC_CHECK_FUNCS([ \
getpeereid \
getpeerucred \
getpgid \
- getpgrp \
_getpty \
getrlimit \
getsid \
@@ -2413,7 +2412,16 @@ static void sighandler(int sig) { _exit(1); }
)
fi
-AC_FUNC_GETPGRP
+AC_CHECK_FUNCS([getpgrp],[
+ AC_MSG_CHECKING([if getpgrp accepts zero args])
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[$ac_includes_default]], [[ getpgrp(); ]])],
+ [ AC_MSG_RESULT([yes])
+ AC_DEFINE([GETPGRP_VOID], [1], [getpgrp takes zero args])],
+ [ AC_MSG_RESULT([no])
+ AC_DEFINE([GETPGRP_VOID], [0], [getpgrp takes one arg])]
+ )
+])
# Search for OpenSSL
saved_CPPFLAGS="$CPPFLAGS"
diff --git a/openbsd-compat/bsd-misc.c b/openbsd-compat/bsd-misc.c
index a2f75055..f7187daf 100644
--- a/openbsd-compat/bsd-misc.c
+++ b/openbsd-compat/bsd-misc.c
@@ -238,7 +238,7 @@ isblank(int c)
pid_t
getpgid(pid_t pid)
{
-#if defined(HAVE_GETPGRP) && !defined(GETPGRP_VOID)
+#if defined(HAVE_GETPGRP) && !defined(GETPGRP_VOID) && GETPGRP_VOID == 0
return getpgrp(pid);
#elif defined(HAVE_GETPGRP)
if (pid == 0)