On 5/6/07, Dennis Schridde <[EMAIL PROTECTED]> wrote:
> Am Sonntag, 6. Mai 2007 schrieb Ari Johnson:
> > On 5/6/07, Dennis Schridde <[EMAIL PROTECTED]> wrote:
> > > Am Sonntag, 6. Mai 2007 schrieb Dennis Schridde:
> > > > Am Sonntag, 6. Mai 2007 schrieb Per Inge Mathisen:
> > > > > [EMAIL PROTECTED] warzone]$ svn log -r 864
> > > > > ---------------------------------------------------------------------
> > > > >--- r864 | devurandom | 2007-03-10 20:43:02 +0100 (Sat, 10 Mar 2007) |
> > > > > 5 lines
> > > > >
> > > > > - New macro: WZ_OS_POSIX (if _XOPEN_SOURCE >= 500)
> > > > > - Added a bit more safety to WZ_DECL_UNUSED (not sure since which GCC
> > > > > version this exists, so choose >=3.2)
> > > > > - Encapsulate GLibC extensions and use rest of errorHandler for all
> > > > > POSIX systems (thus renamed to posixErrorHandler)
> > > > > - A little bit more verbosity in the gdmp
> > > > >
> > > > > This change made it stop working. The culprit is the check for
> > > > > _XOPEN_SOURCE, which is AFAICT supposed to be set by the user (if you
> > > > > want posix-y code), not something the user can read to figure out the
> > > > > system.
> > > >
> > > > You are right: "An XSI-conforming application should ensure that the
> > > > feature test macro _XOPEN_SOURCE is defined with the value 600 before
> > > > inclusion of any header."
> > > >
> > > > Thus we may want to define _XOPEN_SOURCE=600 in case we need the XSI
> > > > extension (which I think I used for the exceptionhandler) or just
> > > > define _POSIX_C_SOURCE=200112L in case we don't.
> > > > Additionaly we could check for _XOPEN_VERSION=600 (or
> > > > _POSIX_VERSION=200112L) or find out how to make autotools find out
> > > > about this.
> > >
> > > r1233 tries to do this partly. A slightly better fix might work like
> > > this:
> > >
> > > #ifdef WZ_OS_UNIX
> > > # define _XOPEN_SOURCE 500
> > > # include <unistd.h>
> > > [...]
> > > // Where required:
> > > # if _XOPEN_VERSION >= 500
> > > [...]
> > > # endif
> > > [...]
> > > #endif
> >
> > MacOS X compiling is now broken.  SIGPOLL is undeclared in
> > exceptionhandler.c.  SIGPOLL only gets defined on MacOS X if
> > _POSIX_C_SOURCE is defined.
> Nice. As it seems MacOSX breaks the POSIX specs:
>
> "Since this volume of IEEE Std 1003.1-2001 is aligned with the ISO C standard,
> and since all functionality enabled by _POSIX_C_SOURCE set equal to 200112L
> is enabled by _XOPEN_SOURCE set equal to 600, there should be no need to
> define _POSIX_C_SOURCE if _XOPEN_SOURCE is so defined. Therefore, if
> _XOPEN_SOURCE is set equal to 600 and _POSIX_C_SOURCE is set equal to
> 200112L, the behavior is the same as if only _XOPEN_SOURCE is defined and set
> equal to 600. However, should _POSIX_C_SOURCE be set to a value greater than
> 200112L, the behavior is unspecified."

<sys/cdefs.h> does this work.  Are we including that?  If so, maybe
_XOPEN_SOURCE is not being defined consistently in our code.

_______________________________________________
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev

Reply via email to