Date: Fri, 6 Apr 2012 19:32:12 -0400 From: Rich Felker <dalias@...ifal.cx> To: musl@...ts.openwall.com Subject: Re: [PATCH] _BSD_SOURCE for unistd.h, take 2 On Fri, Apr 06, 2012 at 08:48:08AM -0700, Isaac Dunham wrote: > On Fri, 6 Apr 2012 10:48:29 -0400 > Rich Felker <dalias@...ifal.cx> wrote: > > Looking at this again, it looks to me like almost all of the functions > > under _GNU_SOURCE are also present on BSD. That is to say, just > > replacing #ifdef _GNU_SOURCE with > > > > #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) > > > > would give a closer approximation to what _BSD_SOURCE is supposed to > > do. I'm not saying this is the best solution, but before I go > > committing patches to support _BSD_SOURCE, > Yep, looks like I missed some. > get_current_dir_name, setresuid and setresgid (as well as forkall...) > are the only ones that aren't defined with _BSD_SOURCE. > > Still, I tend to prefer having some respect for even unofficial > namespaces. > > Attached is a patch (3rd revision) that has all the _BSD_SOURCE > functions properly classified. Looks good. One change I will probably make when committing is to just remove forkall; it does not work and in fact this function is fundamentally impossible to have working correctly on any OS due to contradictory requirements for mutex behavior. A more general issue: this patch addresses _BSD_SOURCE enabling the nonstandard functions, but what should the behavior of _BSD_SOURCE be with regards to functions that are in XSI but not POSIX base? My inclination is to make it so _BSD_SOURCE implies _XOPEN_SOURCE and _POSIX_C_SOURCE everywhere (i.e. add it to all the big || lists in all the headers) unless there's a strong argument against doing this. As it stands, defining just _BSD_SOURCE but not _POSIX_C_SOURCE or _XOPEN_SOURCE would leave you with a fairly broken set of headers, I think.. Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.