[FFmpeg-cvslog] r14754 - trunk/configure
Aurelien Jacobs
aurel
Fri Aug 15 00:35:08 CEST 2008
M?ns Rullg?rd wrote:
> Aurelien Jacobs <aurel at gnuage.org> writes:
>
> > D wrote:
> >
> >> On Aug 14, 2008, at 7:40 AM, michael wrote:
> >>
> >> > Author: michael
> >> > Date: Thu Aug 14 13:40:14 2008
> >> > New Revision: 14754
> >> >
> >> > Log:
> >> > Add -D_POSIX_C_SOURCE=200112 to cflags.
> >>
> >> This breaks on Mac OS X as such:
> >>
> >> gcc -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I. -
> >> I"/Users/lessen/ffmpeg" -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -
> >> pipe -force_cpusubtype_ALL -Wno-sign-compare -mdynamic-no-pic -fomit-
> >> frame-pointer -g -Wdeclaration-after-statement -Wall -Wno-switch -
> >> Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-
> >> sign -Wcast-qual -Wwrite-strings -O3 -fno-math-errno -c -o
> >> libavformat/os_support.o /Users/davedc/Projects/ffmpeg-git/libavformat/
> >> os_support.c
> >> /Users/davedc/Projects/ffmpeg-git/libavformat/os_support.c: In
> >> function ?resolve_host?:
> >> /Users/davedc/Projects/ffmpeg-git/libavformat/os_support.c:63:
> >> warning: implicit declaration of function ?inet_aton?
> >> /Users/davedc/Projects/ffmpeg-git/libavformat/os_support.c:67: error:
> >> ?struct hostent? has no member named ?h_addr?
> >> make: *** [libavformat/os_support.o] Error 1
> >>
> >>
> >> It seems the problem is that the h_addr compatibilty macro and
> >> inet_aton are not defined at all in the 10.4 headers if
> >> _POSIX_C_SOURCE is. 10.5 headers define them when _POSIX_C_SOURCE is
> >> defined only if _DARWIN_C_SOURCE is also defined.
> >>
> >> Apparently this was a deliberate change from 10.3 which supposedly
> >> does not have these conditions, as evidenced by lynx having the same
> >> problem over 3 years ago ( http://www.mail-archive.com/lynx-dev at nongnu.org/msg00950.html
> >> )
> >>
> >> Two possible solutions I see: don't define _POSIX_C_SOURCE on Darwin
> >> or use h_addr_list[0] rather than h_addr.
> >
> > I guess h_addr_list[0] is the way to go. h_addr is not posix:
> > http://www.opengroup.org/onlinepubs/000095399/basedefs/netdb.h.html
> >
> > Anyone against the attached patch ?
> > I fear this might break some very old, non-posix systems. But the
> > best way to find it out, is probably to commit it.
> >
> > Aurel
> >
> > Index: libavformat/os_support.c
> > ===================================================================
> > --- libavformat/os_support.c (revision 14766)
> > +++ libavformat/os_support.c (working copy)
> > @@ -68,7 +68,7 @@
> > hp = gethostbyname(hostname);
> > if (!hp)
> > return -1;
> > - memcpy(sin_addr, hp->h_addr, sizeof(struct in_addr));
> > + memcpy(sin_addr, hp->h_addr_list[0], sizeof(struct in_addr));
> > }
> > return 0;
> > }
>
> Looks good to me. Nobody is listed as maintainer for that file, so go
> ahead and commit.
Done.
Aurel
More information about the ffmpeg-cvslog
mailing list