Problem compiling XEmacs 21.5 (beta29) with latest libpng (1.5)

robert delius royar xemacs at frinabulax.org
Wed Mar 9 08:21:47 EST 2011


I have hit a problem compiling XEmacs 21.5 (beta29) with the latest version of 
macosforge (apple) XQuartz X11. I also sent this mail to the apple X11 
users' list. The problem is that the latest libpng APIU has changed, and 
I assume others will see this too.

Here is the error I see:
gcc-4.2 -c -Wall -Wno-switch -Wundef -Wsign-compare -Wno-char-subscripts 
-Wpacked -Wpointer-arith -Wshadow -Wmissing-declarations -Wmissing-prototypes 
-Wstrict-prototypes -Wdeclaration-after-statement -Wunused-parameter -g -O3 
-fno-strict-aliasing -arch i386 -I/opt/local/include -Demacs -I. 
-I/Users/royar/src/xemacs-hg/src -DHAVE_CONFIG_H -I/opt/X11/include 
-I/opt/X11/include/freetype2 -I/opt/local/include -I/opt/X11/include 
glyphs-eimage.c
glyphs-eimage.c: In function 'png_instantiate':
glyphs-eimage.c:985: error: dereferencing pointer to incomplete type
glyphs-eimage.c:986: error: dereferencing pointer to incomplete type
glyphs-eimage.c:1048: error: dereferencing pointer to incomplete type
glyphs-eimage.c:1051: error: dereferencing pointer to incomplete type
glyphs-eimage.c:1052: error: dereferencing pointer to incomplete type
glyphs-eimage.c:1055: error: dereferencing pointer to incomplete type
glyphs-eimage.c:1057: error: dereferencing pointer to incomplete type
glyphs-eimage.c:1063: error: dereferencing pointer to incomplete type
glyphs-eimage.c:1070: error: dereferencing pointer to incomplete type
glyphs-eimage.c:1084: error: dereferencing pointer to incomplete type
glyphs-eimage.c:1091: error: dereferencing pointer to incomplete type
glyphs-eimage.c:1092: error: dereferencing pointer to incomplete type
make[1]: *** [glyphs-eimage.o] Error 1
make: *** [src] Error 2

I checked to see whether there were any macports libpng leftovers, and there 
were not any includes in the /opt/local/include hierarchy. The problem appears 
to be an XEmacs variable (png_info) typedefed to png_infop araound line 
870:
struct png_unwind_data
{
   FILE *instream;
   Binbyte *eimage;
   png_structp png_ptr;
   png_infop info_ptr;
};

I have found one reference (from 14 January) to problems 
compiling emacs<22 (among other programs) as a result of API changes to 
libpng:
http://mail-index.netbsd.org/pkgsrc-users/2011/01/14/msg013510.html

The problem does not exist with libpng 1.4, and XEmacs seemed 
happy running with the headers from 1.4 but the libpng15.dylib. A diff 
shows there are many differences in the headers between those two 
versions.

-- 
    Here is a chair.  Can you see it clearly?--Good--now translate it into
    French!
                                                      -Ludwig Wittgenstein



More information about the XEmacs-Beta mailing list