forked from rpms/openssh
d5591fb5ab
Apply upstream patches from the portable OpenSSH project to fix C99 compatibility issues in the configure script. For the PAM agent integration, apply a custom downstream fix, as the proposed upstream changes have not been merged yet. Related to: <https://fedoraproject.org/wiki/Changes/PortingToModernC> <https://fedoraproject.org/wiki/Toolchain/PortingToModernC>
48 lines
1.7 KiB
Diff
48 lines
1.7 KiB
Diff
commit 32fddb982fd61b11a2f218a115975a87ab126d43
|
|
Author: Darren Tucker <dtucker@dtucker.net>
|
|
Date: Mon Nov 7 10:39:01 2022 +1100
|
|
|
|
Fix setres*id checks to work with clang-16.
|
|
|
|
glibc has the prototypes for setresuid and setresgid behind _GNU_SOURCE,
|
|
and clang 16 will error out on implicit function definitions, so add
|
|
_GNU_SOURCE and the required headers to the configure checks. From
|
|
sam at @gentoo.org via bz#3497.
|
|
|
|
diff --git a/configure.ac b/configure.ac
|
|
index 4bf758ac..e172540a 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -863,7 +863,8 @@ int main(void) { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16))
|
|
check_for_openpty_ctty_bug=1
|
|
dnl Target SUSv3/POSIX.1-2001 plus BSD specifics.
|
|
dnl _DEFAULT_SOURCE is the new name for _BSD_SOURCE
|
|
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -D_DEFAULT_SOURCE"
|
|
+ dnl _GNU_SOURCE is needed for setres*id prototypes.
|
|
+ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_GNU_SOURCE"
|
|
AC_DEFINE([BROKEN_CLOSEFROM], [1], [broken in chroots on older kernels])
|
|
AC_DEFINE([PAM_TTY_KLUDGE], [1],
|
|
[Work around problematic Linux PAM modules handling of PAM_TTY])
|
|
@@ -2168,8 +2169,9 @@ AC_CHECK_FUNCS([setresuid], [
|
|
AC_MSG_CHECKING([if setresuid seems to work])
|
|
AC_RUN_IFELSE(
|
|
[AC_LANG_PROGRAM([[
|
|
-#include <stdlib.h>
|
|
#include <errno.h>
|
|
+#include <stdlib.h>
|
|
+#include <unistd.h>
|
|
]], [[
|
|
errno=0;
|
|
setresuid(0,0,0);
|
|
@@ -2191,8 +2193,9 @@ AC_CHECK_FUNCS([setresgid], [
|
|
AC_MSG_CHECKING([if setresgid seems to work])
|
|
AC_RUN_IFELSE(
|
|
[AC_LANG_PROGRAM([[
|
|
-#include <stdlib.h>
|
|
#include <errno.h>
|
|
+#include <stdlib.h>
|
|
+#include <unistd.h>
|
|
]], [[
|
|
errno=0;
|
|
setresgid(0,0,0);
|