Re: How to enable BSD defined names / functions

From: Konstantin Belousov <kostikbel_at_gmail.com>
Date: Sun, 21 Nov 2021 20:58:08 UTC
On Sun, Nov 21, 2021 at 01:51:00PM -0700, Warner Losh wrote:
> There's rather a lot of software that defines _POSIX_C_SOURCE to some value
> (usually 200809L for POSIX-1.2008), but also wants to use other things.
> 
> One can generally work around this issue by defining __BSD_VISIBLE=1, but
> most other systems have something more specific. NetBSD has _NETBSD_SOURCE.
> OpenBSD has _OPENBSD_SOURCE as well. There's also some expectation that
> _BSD_SOURCE can be defined, but none of the currently active BSDs has that.
> 
> It appears from casual inspection that _NETBSD_SOURCE=1 means approximately
> the same as __BSD_VISIBLE=1 in FreeBSD.
> 
> Would it make sense to add a _FREEBSD_SOURCE=1 case and have it include
> __BSD_VISIBLE=1 regardless  of what other macros (especially
> _POSIX_C_SOURCE) are defined to be a more regimented and defined way to
> expand the namespace when multiple namespaces are defined?

Please note that _BSD_VISIBLE works by presence, and not by value.
Same as things like _GNU_SOURCE.

Yes, it makes sense to have _FREEBSD_SOURCE symbol that would imply total
visibility and override any _POSIX_C_SOURCE.