Re: git: 9d0eea9422d0 - main - Make newly POSIX functions visible

From: Colin Percival <cperciva_at_tarsnap.com>
Date: Thu, 20 Mar 2025 06:16:05 UTC
On 3/19/25 16:45, Stephen Hurd wrote:
> commit 9d0eea9422d075c8a6924b33161d2d5abfb4072a
> Author:     Stephen Hurd <shurd@FreeBSD.org>
> AuthorDate: 2025-03-19 23:45:06 +0000
> Commit:     Stephen Hurd <shurd@FreeBSD.org>
> CommitDate: 2025-03-19 23:45:06 +0000
> 
>      Make newly POSIX functions visible
>      
>      Some of the POSIX 202405L functions are already in the system, make
>      them visible when appropriate.
>      
>      Reviewed by:    imp
>      MFC after:      1 week
>      Differential Revision: https://reviews.freebsd.org/D47859

This broke lang/python311:
> --- Modules/posixmodule.o ---
> ./Modules/posixmodule.c:12907:9: error: call to undeclared function 'setresuid'; ISO C99 and later do not support implicit function decla
> rations [-Werror,-Wimplicit-function-declaration]
>  12907 |     if (setresuid(ruid, euid, suid) < 0)
>        |         ^
> ./Modules/posixmodule.c:12907:9: note: did you mean 'setreuid'?
> /usr/include/unistd.h:458:6: note: 'setreuid' declared here
>   458 | int      setreuid(uid_t, uid_t);
>       |          ^
> ./Modules/posixmodule.c:12930:9: error: call to undeclared function 'setresgid'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
>  12930 |     if (setresgid(rgid, egid, sgid) < 0)
>        |         ^
> ./Modules/posixmodule.c:12930:9: note: did you mean 'setregid'?
> /usr/include/unistd.h:457:6: note: 'setregid' declared here
>   457 | int      setregid(gid_t, gid_t);
>       |          ^
> ./Modules/posixmodule.c:12949:9: error: call to undeclared function 'getresuid'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
>  12949 |     if (getresuid(&ruid, &euid, &suid) < 0)
>        |         ^
> ./Modules/posixmodule.c:12970:9: error: call to undeclared function 'getresgid'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
>  12970 |     if (getresgid(&rgid, &egid, &sgid) < 0)
>        |         ^
> 4 errors generated.
> *** [Modules/posixmodule.o] Error code 1
> 
> make: stopped making "all" in /tmp/ports/usr/ports/lang/python311/work/Python-3.11.11

I realize this is almost certainly a bug in Python (assuming that these
functions are available without setting the right POSIX level) but if
Python has this bug I'm sure other ports will also be affected.  Please
back out this commit and talk to portmgr@ about doing an exp-run to find
out what needs to be fixed in the ports tree before re-committing this.

-- 
Colin Percival
FreeBSD Release Engineering Lead & EC2 platform maintainer
Founder, Tarsnap | www.tarsnap.com | Online backups for the truly paranoid