Package: libc6-dev
Version: 2.3.2-1
Severity: normal
[ If I downgraded to sid, I am sure that I would find this bug there,
too. Please don't just tag this experimental and forget about it. ]
Basically, the problem is, when compiling a program with the following
compiler flags
-D_POSIX_SOURCE=200112L -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600
-D_ISOC99_SOURCE -U_GNU_SOURCE
the program does not set _XOPEN_VERSION to 600. I have included
unistd.h, which includes features.h. In unistd.h, _POSIX_VERSION is set
to 200112L and _XOPEN_UNIX is set to 1. SUSv3 [0] states that:
The following symbolic constant shall be defined only if the
implementation supports the XSI option; see XSI Conformance.
_XOPEN_VERSION
[XSI]
Integer value indicating version of the X/Open Portability Guide to
which the implementation conforms. The value shall be 600.
It furthermore states [0]:
_XOPEN_UNIX
[XSI]
The implementation supports the XSI extension.
Therefore, if _XOPEN_UNIX is defined, as it is, unconditionally to 1,
then at least at some time _XOPEN_VERSION must be defined to 600.
The only place I can find that _XOPEN_VERSION is mentioned is unistd.h,
which has the following snippet of code:
/* X/Open version number to which the library conforms. It is selectable. */
#ifdef __USE_UNIX98
# define _XOPEN_VERSION 500
#else
# define _XOPEN_VERSION 4
#endif
There is a complicated set of preprocessor directives in features.h that
chooses appropriately; for _XOPEN_SOURCE=600, _XOPEN_VERSION=500, not
600. Oops.
If you actually want the code that caused this problem, I'll be happy to
post it somewhere.
[0] http://www.opengroup.org/onlinepubs/007904975/basedefs/unistd.h.html
-- System Information:
Debian Release: testing/unstable
Architecture: i386
Kernel: Linux stonewall 2.4.21-3-k7 #1 Sun Jul 20 19:23:36 EST 2003 i686
Locale: LANG=C, LC_CTYPE=C
Versions of packages libc6-dev depends on:
ii libc6 2.3.2-1 GNU C Library: Shared libraries an
-- no debconf information
--
Brian M. Carlson <sandals@crustytoothpaste.ath.cx> 0x560553e7
"Let us think the unthinkable, let us do the undoable. Let us prepare
to grapple with the ineffable itself, and see if we may not eff it
after all." --Douglas Adams
Attachment:
pgpK9VjzRS_9v.pgp
Description: PGP signature