Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120406233212.GG8803@brightrain.aerifal.cx>
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.