Re: git: 415a0ce02c9e - main - Revert Make newly POSIX functions visible
Date: Thu, 20 Mar 2025 09:55:56 UTC
On Thu, Mar 20, 2025, 1:42 AM Stephen Hurd <shurd@freebsd.org> wrote: > The branch main has been updated by shurd: > > URL: > https://cgit.FreeBSD.org/src/commit/?id=415a0ce02c9ee2c15c7973b2dfbddda71f6344a2 > > commit 415a0ce02c9ee2c15c7973b2dfbddda71f6344a2 > Author: Stephen Hurd <shurd@FreeBSD.org> > AuthorDate: 2025-03-20 07:15:15 +0000 > Commit: Stephen Hurd <shurd@FreeBSD.org> > CommitDate: 2025-03-20 07:41:27 +0000 > > Revert Make newly POSIX functions visible > > Summary: > This reverts commit d7efac1be1441c122f7fb9de51a409172f21326c. > This reverts commit 9d0eea9422d075c8a6924b33161d2d5abfb4072a. > > Some ports (specifically Python) define __BSD_VISIBLE themselves, so > the change from __BSD_VISIBLE to __POSIX_VISIBLE >= 202405 makes them > fail. > That's not legal. Defining __BSD_VISIBLE directly is illegal and won't work right. Can't work right and should likely be a compile time error. With am exp run to fix. Warner > Reported by: jrtc27, cperciva > --- > include/dlfcn.h | 8 +------- > include/stdlib.h | 13 +++++-------- > include/string.h | 6 +++--- > include/time.h | 8 +++----- > include/unistd.h | 16 ++++++---------- > include/wchar.h | 7 ++----- > 6 files changed, 20 insertions(+), 38 deletions(-) > > diff --git a/include/dlfcn.h b/include/dlfcn.h > index ec4ad14b5091..89ec43b332e9 100644 > --- a/include/dlfcn.h > +++ b/include/dlfcn.h > @@ -80,9 +80,6 @@ typedef struct dl_info { > const char *dli_sname; /* Name of nearest symbol. */ > void *dli_saddr; /* Address of nearest symbol. */ > } Dl_info; > -#if __POSIX_VISIBLE >= 202405 > -typedef struct dl_info Dl_info_t; > -#endif > > /*- > * The actual type declared by this typedef is immaterial, provided that > @@ -122,12 +119,9 @@ char *dlerror(void); > void *dlopen(const char *, int); > void *dlsym(void * __restrict, const char * __restrict); > > -#if __POSIX_VISIBLE >= 202405 > -int dladdr(const void * __restrict, Dl_info * __restrict); > -#endif > - > #if __BSD_VISIBLE > void *fdlopen(int, int); > +int dladdr(const void * __restrict, Dl_info * __restrict); > dlfunc_t dlfunc(void * __restrict, const char * __restrict); > int dlinfo(void * __restrict, int, void * __restrict); > void dllockinit(void *_context, > diff --git a/include/stdlib.h b/include/stdlib.h > index 449b17fefff5..162031ab393d 100644 > --- a/include/stdlib.h > +++ b/include/stdlib.h > @@ -157,7 +157,7 @@ _Noreturn void _Exit(int) __noexcept; > /* > * If we're in a mode greater than C99, expose C11 functions. > */ > -#if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L || __POSIX_VISIBLE > >= 202405 > +#if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L > void * aligned_alloc(size_t, size_t) __malloc_like __alloc_align(1) > __alloc_size(2); > int at_quick_exit(void (*)(void)) __noexcept; > @@ -236,13 +236,6 @@ int unlockpt(int); > int ptsname_r(int, char *, size_t); > #endif > > -#if __POSIX_VISIBLE >= 202405 > -void qsort_r(void *, size_t, size_t, > - int (*)(const void *, const void *, void *), void *); > -void *reallocarray(void *, size_t, size_t) __result_use_check > - __alloc_size2(2, 3); > -#endif > - > #if __BSD_VISIBLE > extern const char *malloc_conf; > extern void (*malloc_message)(void *, const char *); > @@ -312,8 +305,12 @@ int mergesort_b(void *, size_t, size_t, int > (^)(const void *, const void *)); > int mkostemp(char *, int); > int mkostemps(char *, int, int); > int mkostempsat(int, char *, int, int); > +void qsort_r(void *, size_t, size_t, > + int (*)(const void *, const void *, void *), void *); > int radixsort(const unsigned char **, int, const unsigned char *, > unsigned); > +void *reallocarray(void *, size_t, size_t) __result_use_check > + __alloc_size2(2, 3); > void *reallocf(void *, size_t) __result_use_check __alloc_size(2); > int rpmatch(const char *); > char *secure_getenv(const char *); > diff --git a/include/string.h b/include/string.h > index 3deca63bd71a..a3fa96ebb449 100644 > --- a/include/string.h > +++ b/include/string.h > @@ -63,8 +63,8 @@ void *memrchr(const void *, int, size_t) __pure; > #endif > int memcmp(const void *, const void *, size_t) __pure; > void *(memcpy)(void * __restrict, const void * __restrict, size_t); > -#if __POSIX_VISIBLE >= 202405 > -void *(memmem)(const void *, size_t, const void *, size_t) __pure; > +#if __BSD_VISIBLE > +void *memmem(const void *, size_t, const void *, size_t) __pure; > #endif > void *(memmove)(void *, const void *, size_t); > #if __BSD_VISIBLE > @@ -98,7 +98,7 @@ char *strerror(int); > #if __POSIX_VISIBLE >= 200112 > int strerror_r(int, char *, size_t); > #endif > -#if __POSIX_VISIBLE >= 202405 > +#if __BSD_VISIBLE > size_t (strlcat)(char * __restrict, const char * __restrict, size_t); > size_t (strlcpy)(char * __restrict, const char * __restrict, size_t); > #endif > diff --git a/include/time.h b/include/time.h > index e011792aaaeb..89a76ca5fd93 100644 > --- a/include/time.h > +++ b/include/time.h > @@ -180,17 +180,15 @@ time_t posix2time(time_t t); > #include <xlocale/_time.h> > #endif > > -#if __ISO_C_VISIBLE >= 2011 || __POSIX_VISIBLE >= 202405 || \ > +#if __BSD_VISIBLE || __ISO_C_VISIBLE >= 2011 || \ > (defined(__cplusplus) && __cplusplus >= 201703) > #include <sys/_timespec.h> > /* ISO/IEC 9899:2011 7.27.2.5 The timespec_get function */ > #define TIME_UTC 1 /* time elapsed since epoch */ > -#if __ISO_C_VISIBLE >= 2023 || __POSIX_VISIBLE >= 202405 > -/* ISO/IEC 9899:2024 7.29.1 Components of time */ > -#define TIME_MONOTONIC 2 /* monotonic time */ > -#endif > int timespec_get(struct timespec *ts, int base); > #if __BSD_VISIBLE || __ISO_C_VISIBLE >= 2023 > +/* ISO/IEC 9899:2024 7.29.1 Components of time */ > +#define TIME_MONOTONIC 2 /* monotonic time */ > /* ISO/IEC 9899:2024 7.29.2.7 The timespec_getres function */ > int timespec_getres(struct timespec *, int); > #endif > diff --git a/include/unistd.h b/include/unistd.h > index 3a4e1be192d9..8574b2ba9915 100644 > --- a/include/unistd.h > +++ b/include/unistd.h > @@ -483,16 +483,6 @@ int usleep(useconds_t); > pid_t vfork(void) __returns_twice; > #endif > > -/* 1003.1-2024 */ > -#if __POSIX_VISIBLE >= 202405 > -pid_t _Fork(void); > -int getentropy(void *, size_t); > -int getresgid(gid_t *, gid_t *, gid_t *); > -int getresuid(uid_t *, uid_t *, uid_t *); > -int setresgid(gid_t, gid_t, gid_t); > -int setresuid(uid_t, uid_t, uid_t); > -#endif > - > #if __BSD_VISIBLE > struct timeval; /* select(2) */ > > @@ -520,11 +510,14 @@ int feature_present(const char *); > int fchroot(int); > char *fflagstostr(u_long); > int getdomainname(char *, int); > +int getentropy(void *, size_t); > int getgrouplist(const char *, gid_t, gid_t *, int *); > int getloginclass(char *, size_t); > mode_t getmode(const void *, mode_t); > int getosreldate(void); > int getpeereid(int, uid_t *, gid_t *); > +int getresgid(gid_t *, gid_t *, gid_t *); > +int getresuid(uid_t *, uid_t *, uid_t *); > char *getusershell(void); > int initgroups(const char *, gid_t); > int iruserok(unsigned long, int, const char *, const char *); > @@ -582,6 +575,8 @@ void *setmode(const char *); > int setpgrp(pid_t, pid_t); /* obsoleted by setpgid() > */ > void setproctitle(const char *_fmt, ...) __printf0like(1, 2); > void setproctitle_fast(const char *_fmt, ...) __printf0like(1, 2); > +int setresgid(gid_t, gid_t, gid_t); > +int setresuid(uid_t, uid_t, uid_t); > int setrgid(gid_t); > int setruid(uid_t); > void setusershell(void); > @@ -594,6 +589,7 @@ int undelete(const char *); > int unwhiteout(const char *); > void *valloc(size_t); /* obsoleted by malloc() */ > int funlinkat(int, const char *, int, int); > +pid_t _Fork(void); > > #ifndef _OPTRESET_DECLARED > #define _OPTRESET_DECLARED > diff --git a/include/wchar.h b/include/wchar.h > index a8c016c42faf..e4b037c9b16f 100644 > --- a/include/wchar.h > +++ b/include/wchar.h > @@ -235,13 +235,10 @@ size_t wcsnrtombs(char * __restrict, const > wchar_t ** __restrict, size_t, > size_t, mbstate_t * __restrict); > #endif > > -#if __POSIX_VISIBLE >= 202405 > -size_t wcslcat(wchar_t *, const wchar_t *, size_t); > -size_t wcslcpy(wchar_t *, const wchar_t *, size_t); > -#endif > - > #if __BSD_VISIBLE > wchar_t *fgetwln(FILE * __restrict, size_t * __restrict); > +size_t wcslcat(wchar_t *, const wchar_t *, size_t); > +size_t wcslcpy(wchar_t *, const wchar_t *, size_t); > #endif > > #if __POSIX_VISIBLE >= 200809 || defined(_XLOCALE_H_) >