[Mono-dev] libgdiplus (SVN) fails to compile

Frederik Carlier frederik.carlier at ugent.be
Wed Apr 25 06:35:51 EDT 2007


Hi,

I'm trying to compile the SVN HEAD version of libgdiplus, but it keeps 
failing. Here's what I've done:

svn update
./autogen.sh
make

That yields

fcarlier at col-clt-04:~/development/mono/libgdiplus$ make
make  all-recursive
make[1]: Map '/home/fcarlier/development/mono/libgdiplus' wordt binnengegaan
Making all in cairo
make[2]: Map '/home/fcarlier/development/mono/libgdiplus/cairo' wordt 
binnengegaan
make  all-recursive
make[3]: Map '/home/fcarlier/development/mono/libgdiplus/cairo' wordt 
binnengegaan
Making all in pixman
make[4]: Map '/home/fcarlier/development/mono/libgdiplus/cairo/pixman' 
wordt binnengegaan
Making all in src
make[5]: Map 
'/home/fcarlier/development/mono/libgdiplus/cairo/pixman/src' wordt 
binnengegaan
make[5]: Er hoeft niets gedaan te worden voor 'all'.
make[5]: Map 
'/home/fcarlier/development/mono/libgdiplus/cairo/pixman/src' wordt verlaten
make[5]: Map '/home/fcarlier/development/mono/libgdiplus/cairo/pixman' 
wordt binnengegaan
make[5]: Er hoeft niets gedaan te worden voor 'all-am'.
make[5]: Map '/home/fcarlier/development/mono/libgdiplus/cairo/pixman' 
wordt verlaten
make[4]: Map '/home/fcarlier/development/mono/libgdiplus/cairo/pixman' 
wordt verlaten
Making all in src
make[4]: Map '/home/fcarlier/development/mono/libgdiplus/cairo/src' 
wordt binnengegaan
make[4]: Er hoeft niets gedaan te worden voor 'all'.
make[4]: Map '/home/fcarlier/development/mono/libgdiplus/cairo/src' 
wordt verlaten
Making all in boilerplate
make[4]: Map 
'/home/fcarlier/development/mono/libgdiplus/cairo/boilerplate' wordt 
binnengegaan
make[4]: Er hoeft niets gedaan te worden voor 'all'.
make[4]: Map 
'/home/fcarlier/development/mono/libgdiplus/cairo/boilerplate' wordt 
verlaten
Making all in test
make[4]: Map '/home/fcarlier/development/mono/libgdiplus/cairo/test' 
wordt binnengegaan
Making all in pdiff
make[5]: Map 
'/home/fcarlier/development/mono/libgdiplus/cairo/test/pdiff' wordt 
binnengegaan
make[5]: Er hoeft niets gedaan te worden voor 'all'.
make[5]: Map 
'/home/fcarlier/development/mono/libgdiplus/cairo/test/pdiff' wordt verlaten
Making all in .
make[5]: Map '/home/fcarlier/development/mono/libgdiplus/cairo/test' 
wordt binnengegaan
make[5]: Er hoeft niets gedaan te worden voor 'all-am'.
make[5]: Map '/home/fcarlier/development/mono/libgdiplus/cairo/test' 
wordt verlaten
make[4]: Map '/home/fcarlier/development/mono/libgdiplus/cairo/test' 
wordt verlaten
make[4]: Map '/home/fcarlier/development/mono/libgdiplus/cairo' wordt 
binnengegaan
make[4]: Er hoeft niets gedaan te worden voor 'all-am'.
make[4]: Map '/home/fcarlier/development/mono/libgdiplus/cairo' wordt 
verlaten
make[3]: Map '/home/fcarlier/development/mono/libgdiplus/cairo' wordt 
verlaten
make[2]: Map '/home/fcarlier/development/mono/libgdiplus/cairo' wordt 
verlaten
Making all in src
make[2]: Map '/home/fcarlier/development/mono/libgdiplus/src' wordt 
binnengegaan
if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. 
-I. -I.. -I../cairo/pixman/src -I../cairo/pixman/src -I../cairo/src 
-I../cairo/src -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include     
-I/usr/include/freetype2     -I/usr/include/libexif   -Wall -Wno-unused 
-Wno-format    -g -O2 -pthread -MT pngcodec.lo -MD -MP -MF 
".deps/pngcodec.Tpo" -c -o pngcodec.lo pngcodec.c; \
        then mv -f ".deps/pngcodec.Tpo" ".deps/pngcodec.Plo"; else rm -f 
".deps/pngcodec.Tpo"; exit 1; fi
 gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../cairo/pixman/src 
-I../cairo/pixman/src -I../cairo/src -I../cairo/src 
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include 
-I/usr/include/freetype2 -I/usr/include/libexif -Wall -Wno-unused 
-Wno-format -g -O2 -pthread -MT pngcodec.lo -MD -MP -MF 
.deps/pngcodec.Tpo -c pngcodec.c  -fPIC -DPIC -o .libs/pngcodec.o
In file included from /usr/include/png.h:387,
                 from pngcodec.c:37:
/usr/include/pngconf.h:317: error: expected '=', ',', ';', 'asm' or 
'__attribute__' before '.' token
/usr/include/pngconf.h:318: error: expected '=', ',', ';', 'asm' or 
'__attribute__' before 'include'
make[2]: *** [pngcodec.lo] Fout 1
make[2]: Map '/home/fcarlier/development/mono/libgdiplus/src' wordt verlaten
make[1]: *** [all-recursive] Fout 1
make[1]: Map '/home/fcarlier/development/mono/libgdiplus' wordt verlaten
make: *** [all] Fout 2

The error is caused by these lines in pngconf.h:

fcarlier at col-clt-04:~/development/mono/libgdiplus$ cat 
/usr/include/pngconf.h | head -n 320 | tail
#      undef _BSD_SOURCE
#    endif
#    ifdef _SETJMP_H
     /* If you encounter a compiler error here, see the explanation
      * near the end of INSTALL.
      */
         __png.h__ already includes setjmp.h;
         __dont__ include it again.;
#    endif
#  endif /* __linux__ */

and INSTALL says

If you encounter a compiler error message complaining about the
lines
      __png.h__ already includes setjmp.h;
      __dont__ include it again.;
This means you have compiled another module that includes setjmp.h,
which is hazardous because the two modules might not include exactly
the same setjmp.h.  If you are sure that you know what you are doing
and that they are exactly the same, then you can comment out or
delete the two lines.  Better yet, use the cexcept interface
instead, as demonstrated in contrib/visupng of the libpng distribution.

which leads me to believe that this is a libgdiplus issue (and not a 
libpng issue).

Can anyone else reproduce this issue? If so, is a bug report welcome?

Thanks,

Frederik





More information about the Mono-devel-list mailing list