On Fri, Oct 07, 2005 at 03:42:57PM -1000, Joshua Hoblitt wrote:
> On Fri, Oct 07, 2005 at 09:34:27AM +0200, Leopold Toetsch wrote:
> > [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> >
> > > Modified:
> > > trunk/config/init/hints/linux.pl
> > > Log:
> > > Defined _X_OPEN_SOURCE=600 in ccflags to fix implicit POSIX function
> > > declaration warnings when compiling src/platform.c.
> >
> > > +if ( $cflags !~ /-D_XOPEN_SOURCE=/ ) {
> > > + # Request visibility of all POSIX symbols
> > > + $cflags .= ' -D_XOPEN_SOURCE=600';
> > > +}
> >
> > This doesn't work on my box - I get tons of warnings and it eventually
> > dies:
> >
>
> Bazzar - I wonder if your glibc is so old that it doesn't support
> unix98. That would have to be a version of glibc 2.0.x where X is a
> pretty low number... Does switching '_XOPEN_SOURCE=600' to
> '_XOPEN_SOURCE=500' make any difference? You could also try
> '-D_GNU_SOURCE' which should enable a superset of _XOPEN_SOURCE.
I was digging through glibc's NEWS and Changelog looking for the answer
to this riddle and found it in the last place I looked, the
posix_memalign() man page - DOH!
From the man page included with glibc 2.3.4:
--
AVAILABILITY
The functions memalign() and valloc() have been available in all Linux
libc libraries. The function posix_memalign() is available since glibc
2.1.91.
CONFORMING TO
The function valloc() appeared in 3.0 BSD. It is documented as being
obsolete in BSD 4.3, and as legacy in SUSv2. It no longer occurs in
SUSv3. The function memalign() appears in SunOS 4.1.3 but not in BSD
4.4. The function posix_memalign() comes from POSIX 1003.1d.
HEADERS
Everybody agrees that posix_memalign() is declared in <stdlib.h>. In
order to declare it, glibc needs _GNU_SOURCE defined, or _XOPEN_SOURCE
defined to a value not less than 600.
Everybody agrees that memalign() is declared in <malloc.h>.
According to SUSv2, valloc() is declared in <stdlib.h>. Libc4,5 and
glibc declare it in <malloc.h> and perhaps also in <stdlib.h> (namely,
if _GNU_SOURCE is defined, or _BSD_SOURCE is defined, or, for glibc, if
_XOPEN_SOURCE_EXTENDED is defined, or, equivalently, _XOPEN_SOURCE is
defined to a value not less than 500).
--
pgpRzhZ41b3nF.pgp
Description: PGP signature
