Compilation fails with sys-libs/zlib-1.2.6. With zlib-1.2.5.1-r2 there was no problem. CC libxine_la-osd.lo /bin/sh ../../libtool --silent --tag=CC --mode=compile x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../../include -I../.. -I../../include -I../../include -I../../src -I../../src/xine-engine -I../../src/xine-engine -I../../src/xine-utils -I../../src/input -I../../src/input -I../../lib -I../../lib -DXINE_LIBRARY_COMPILE -DNDEBUG -D_REENTRANT -DXINE_COMPILE -I../../src/video_out -O0 -I/usr/include/freetype2 -fvisibility=hidden -fno-strict-aliasing -pipe -Wall -Wformat=2 -Wno-format-zero-length -Wmissing-format-attribute -Werror-implicit-function-declaration -Wstrict-aliasing=2 -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wwrite-strings -Wpointer-arith -g -march=core2 -ggdb -O2 -pipe -Wall -Wchar-subscripts -Wnested-externs -Wcast-align -Wmissing-declarations -Wmissing-prototypes -Wmissing-format-attribute -Wno-pointer-sign -Wformat=2 -Wno-format-zero-length -Wformat-security -Wstrict-aliasing=2 -Werror=implicit-function-declaration -c -o libxine_la-osd.lo `test -f 'osd.c' || echo './'`osd.c osd.c: In function 'gzread_i16': osd.c:851:14: error: request for member 'have' in something not a structure or union osd.c:851:28: error: request for member 'have' in something not a structure or union osd.c:851:42: error: request for member 'pos' in something not a structure or union osd.c:851:36: warning: left-hand operand of comma expression has no effect osd.c:851:57: error: request for member 'next' in something not a structure or union osd.c:851:49: warning: left-hand operand of comma expression has no effect osd.c:851:3: warning: passing argument 1 of 'gzgetc_' from incompatible pointer type /usr/include/zlib.h:1653:12: note: expected 'gzFile' but argument is of type 'struct gzFile_s **' osd.c:852:16: error: request for member 'have' in something not a structure or union osd.c:852:30: error: request for member 'have' in something not a structure or union osd.c:852:44: error: request for member 'pos' in something not a structure or union osd.c:852:38: warning: left-hand operand of comma expression has no effect osd.c:852:59: error: request for member 'next' in something not a structure or union osd.c:852:51: warning: left-hand operand of comma expression has no effect osd.c:852:3: warning: passing argument 1 of 'gzgetc_' from incompatible pointer type /usr/include/zlib.h:1653:12: note: expected 'gzFile' but argument is of type 'struct gzFile_s **' osd.c: In function 'osd_renderer_load_font': osd.c:870:11: warning: assignment from incompatible pointer type osd.c:874:5: warning: passing argument 1 of 'gzread' from incompatible pointer type /usr/include/zlib.h:1290:12: note: expected 'gzFile' but argument is of type 'struct gzFile_s **' osd.c:894:15: warning: passing argument 1 of 'gzread' from incompatible pointer type /usr/include/zlib.h:1290:12: note: expected 'gzFile' but argument is of type 'struct gzFile_s **' osd.c:959:5: warning: passing argument 1 of 'gzclose' from incompatible pointer type /usr/include/zlib.h:1488:12: note: expected 'gzFile' but argument is of type 'struct gzFile_s **' osd.c: In function '_x_osd_renderer_init': osd.c:1894:46: warning: passing argument 4 of 'this->stream->xine->config->register_enum' from incompatible pointer type osd.c:1894:46: note: expected 'char **' but argument is of type 'const char * const*' make[2]: *** [libxine_la-osd.lo] Error 1 make[2]: Leaving directory `/var/tmp/portage/media-libs/xine-lib-1.2.0-r1/work/xine-lib-1.2.0/src/xine-engine' make[1]: *** [../src/xine-engine/libxine.la] Error 2 make[1]: Leaving directory `/var/tmp/portage/media-libs/xine-lib-1.2.0-r1/work/xine-lib-1.2.0/misc' make: *** [all-recursive] Error 1
Created attachment 300347 [details] emerge --info
Created attachment 300349 [details] build.log
Same thing happens here.
i think this is a bug in xine-lib. the zlib API uses gzFile, not a gzFile*. so the xine-lib code probably should convert all instances away from a pointer.
A similar error has happened with ImageMagick-6.7.4.10 (https://bugs.gentoo.org/show_bug.cgi?id=401499) resulting in a version bump to imagemagick-6.7.5.0.
Created attachment 300433 [details, diff] xine-lib-1.2.0-gzFile.patch (In reply to comment #4) > i think this is a bug in xine-lib. the zlib API uses gzFile, not a gzFile*. > so the xine-lib code probably should convert all instances away from a > pointer. Right, gzFile itself is already defined as a pointer in zlib.h: typedef struct gzFile_s *gzFile; Attached patch makes xine-lib compile with both zlib-1.2.5.1-r2 and zlib-1.2.6.
Comment on attachment 300433 [details, diff] xine-lib-1.2.0-gzFile.patch looks sane to me
Thanks ulm (and vapier). Fixed in 1.2.0-r2 and reported to upstream here: https://bugs.xine-project.org/show_bug.cgi?id=454