Hi, Tom, On Thu, Apr 1, 2010 at 12:59 PM, Tom Uffner <tom_at_uffner.com> wrote: [...] > i realize this. i was just adding to the list of ports that no longer > build after this change. ghostscript is kind of important for print > support. > > i doubt this is "right" either, but it is a quick & dirty way to > make mplayer compile again: > > --- configure.orig 2010-04-01 15:49:37.000000000 -0400 > +++ configure 2010-04-01 15:50:50.000000000 -0400 > _at__at_ -5337,7 +5337,7 _at__at_ > #include <dvdread/nav_read.h> > int main(void) { return 0; } > EOF > - cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 > -D_LARGEFILE64_SOURCE \ > + cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 \ > -ldvdread $_ld_dl && _dvdread=yes && _res_comment="external" > fi > fi > _at__at_ -7412,8 +7412,6 _at__at_ > if test "$_largefiles" = yes || freebsd ; then > CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" > if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then > - # dvdread support requires this (for off64_t) > - CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE" > cygwin && CFLAGS="$CFLAGS -DSYS_CYGWIN" > fi > fi Specifying -DFOO basically means in C code one have: %%% #define FOO 1 %%% This would not cause problem for zlib, at least not for zlib 1.2.4.1. However, defining it do cause *64 interfaces being included, the assumption doesn't seem right, according to my understanding of GNU libc's manual. I was wrong in a previous e-mail that it's not -D_LARGEFILE64_SOURCE itself being broken, but #define _LARGEFILE64_SOURCE broken if it's not defined as '1'. GNU libc seems to test whether this is defined, rather than testing it against '1' (zlib do this). So in conclusion: a) We actually face two different types of problems, one is defining _LARGEFILE64_SOURCE on FreeBSD, this is not right. It should not be defined at all; another is to have "#define _LARGEFILE64_SOURCE" instead of "#define _LARGEFILE64_SOURCE 1", this type would break not only on FreeBSD but perhaps some other platforms, unfortunately this seems to be common. Should one hit either case, please have it fixed by upstream developers, as it would benefit not only FreeBSD but also other platforms. b) For now I have implemented a temporary solution on -HEAD by unifdef'ing _LARGEFILE64_SOURCE, _LFS64_SOURCE on zlib.h and zconf.h, so ports may appear as "fixed". This is not ideal since it makes us to diverge away from zlib. A better solution is under discussion and this situation MAY change in the next import. Cheers, -- Xin LI <delphij_at_delphij.net> http://www.delphij.netReceived on Fri Apr 02 2010 - 02:30:56 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:02 UTC