OpenSSH's configure check for setresuid omits _GNU_SOURCE which, on Linux systems with glibc+gcc at least, is needed to expose setresuid. ``` error: call to undeclared function 'setresuid'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] ``` Reproduced on master of openssh-portable at 6b17e128879ec6cc32ca2c28b5d894b4aa72e32d but originally hit with 9.1_p1. It's technically harmless, I think, as OpenSSH provides its own implementation if the system's copy is nonexistent or unsuitable, but it's at least noise when trying to find broader Clang 16 issues (see https://lwn.net/Articles/913505/ etc).
Created attachment 3620 [details] config.log.xz
Note my config.log has an issue with openpty too but I've filed https://github.com/openssh/openssh-portable/pull/355 for that as it's a simple case.
The original bug remains for setresuid and setresgid.
Created attachment 3621 [details] Add -D_GNU_SOURCE The way we deal with this on other platforms (eg HPUX) is to add the requisite flag to CPPFLAGS in configure like so. Does this resolve your issue (after running "autoreconf" to regenerate configure)?
Created attachment 3622 [details] config.log.xz
Created attachment 3623 [details] config.log.xz It doesn't seem to make any difference (I guess because I don't have audit installed and I've not passed any arg for it). (I've confirmed -D_GNU_SOURCE appears in the generated configure, it's just that the path isn't taken.)
Created attachment 3624 [details] Fix setres*id tests to work with clang-16 There were two problems: I put _GNU_SOURCE in the wrong place, and the tests themselves did not include unistd.h for the prototypes. This seems to fix both when compiling with a self-built clang/llvm from git.
Patch applied and will be in 9.2p1. Thanks for the report.
Confirmed that works great, thank you!
OpenSSH 9.3 has been released. Close resolved bugs