Created attachment 3542 [details] openssh-8.6_p1-build.log While tests compile fine on a system with glibc 2.33 it fails to do so on systems with glibc 2.34 with: [...] make[1]: Leaving directory '/var/tmp/paludis/build/net-misc-openssh-8.6_p1/work/openssh-8.6p1/openbsd-compat/regress' closefromtest.c:27:5: error: conflicting types for 'closefrom' 27 | int closefrom(int); | ^~~~~~~~~ In file included from closefromtest.c:23: /usr/x86_64-pc-linux-gnu/include/unistd.h:363:13: note: previous declaration of 'closefrom' was here 363 | extern void closefrom (int __lowfd) __THROW; | ^~~~~~~~~ make[1]: *** [Makefile:22: closefromtest] Error 1 make: *** [Makefile:753: compat-tests] Error 2 [...] Complete build.log attached. See also: https://bugs.gentoo.org/806761
Sigh. From the OpenBSD closefrom(2) man page: """ int closefrom(int fd); [...] HISTORY The closefrom() function first appeared in Solaris 9 and has been available since OpenBSD 3.5. """ However in glibc 2.34: $ grep closefrom posix/unistd.h extern void closefrom (int __lowfd) __THROW; (Despite its presence under posix/, POSIX does not specify closefrom(): https://pubs.opengroup.org/onlinepubs/9699919799/functions/close.html """ The standard developers rejected a proposal to add closefrom() to the standard. Because the standard permits implementations to use inherited file descriptors as a means of providing a conforming environment for the child process, it is not possible to standardize an interface that closes arbitrary file descriptors above a certain value while still guaranteeing a conforming environment. """ Of the systems that I have at hand: - on OpenBSD 6.9, NetBSD 8 and DragonFlyBSD 6, MINIX3 closefrom returns int. - on Solaris 10, FreeBSD 12 closefrom return void. so it's already a tire fire. I vaguely recall a reason it doesn't include openbsd-compat.h. We might be able to get away with just config.h and HAVE_CLOSEFROM.
Created attachment 3543 [details] use includes.h in compat tests. Please try this patch.
(In reply to Darren Tucker from comment #2) > Created attachment 3543 [details] > use includes.h in compat tests. > > Please try this patch. Thanks! The provided patch works for me on both glibc 2.34 which was failing before and also on 2.33.
The patch has been applied and will be in the next major release. Thanks for the report.
closing bugs resolved before openssh-8.9