[Mono-list] mono on FC4 - let's get it working!

Alex Roman allex2k3 at yahoo.ca
Sun Jul 24 17:27:23 EDT 2005


Hi,

Due to the fact that Fedora Core 4 uses gcc 4.0, mono packages can't be compiled. You get errors at compile-time.

I've been trying to compile some packages (stuck early at libgdiplus).

Here's what I've done so far:

1. Pre-requisites
=================

1.1 Glitz
---------

$ cvs -d:pserver:anoncvs at cvs.freedesktop.org:/cvs/cairo login
CVS password: <hit return>
$ cvs -d:pserver:anoncvs at cvs.freedesktop.org:/cvs/cairo co glitz
$ cd glitz
$ ./autogen.sh --prefix=/usr
$ make
$ sudo make install


1.2 libgdiplus
--------------

$ svn co svn://mono.myrealbox.com/source/trunk/libgdiplus
$ cd libgdiplus

1.2.1 Updated cairo and libpixman
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

$ mv cairo cairo_old
$ mv libpixman libpixman_old

$ cvs -d :pserver:anoncvs at cvs.cairographics.org:/cvs/cairo login
$ cvs -d :pserver:anoncvs at cvs.cairographics.org:/cvs/cairo co libpixman cairo

$ cd libpixman
$ ./autogen.sh --prefix=/usr
$ make
$ sudo make install
$ cd ..

$ cd cairo
$ ./autogen.sh --prefix=/usr
$ cd ..

1.2.2 Continuing with libgdiplus
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

$ ./autogen.sh --prefix=/usr
$ make



This is where it stops working...

Here is the compile log:

--snip--
make[2]: Leaving directory `/home/aroman/mono/libgdiplus/cairo'
Making all in src
make[2]: Entering directory `/home/aroman/mono/libgdiplus/src'
if /bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../libpixman/src -I../libpixman/src -I../cairo/src -I../cairo/src -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -I/usr/include/freetype2 -Wall -Werror -Wno-unused -Wno-format    -g -O2 -pthread -MT adjustablearrowcap.lo -MD -MP -MF ".deps/adjustablearrowcap.Tpo" -c -o adjustablearrowcap.lo adjustablearrowcap.c; \
then mv -f ".deps/adjustablearrowcap.Tpo" ".deps/adjustablearrowcap.Plo"; else rm -f ".deps/adjustablearrowcap.Tpo"; exit 1; fi
 gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../libpixman/src -I../libpixman/src -I../cairo/src -I../cairo/src -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -Wall -Werror -Wno-unused -Wno-format -g -O2 -pthread -MT adjustablearrowcap.lo -MD -MP -MF .deps/adjustablearrowcap.Tpo -c adjustablearrowcap.c  -fPIC -DPIC -o .libs/adjustablearrowcap.o
In file included from adjustablearrowcap.c:27:
gdip.h:827: error: syntax error before 'cairo_font_t'
cc1: warnings being treated as errors
gdip.h:827: warning: no semicolon at end of struct or union
gdip.h:832: error: syntax error before '}' token
gdip.h:832: warning: type defaults to 'int' in declaration of 'GpFont'
gdip.h:832: warning: data definition has no type or storage class
gdip.h:840: error: syntax error before 'GpFont'
gdip.h:840: warning: no semicolon at end of struct or union
gdip.h:842: error: syntax error before '}' token
gdip.h:842: warning: type defaults to 'int' in declaration of 'GpCachedFont'
gdip.h:842: warning: data definition has no type or storage class
gdip.h:1105: warning: type defaults to 'int' in declaration of 'GpFont'
gdip.h:1105: error: syntax error before '*' token
gdip.h:1106: warning: type defaults to 'int' in declaration of 'GpFont'
gdip.h:1106: error: syntax error before '*' token
gdip.h:1107: warning: type defaults to 'int' in declaration of 'GpFont'
gdip.h:1107: error: syntax error before '*' token
gdip.h:1153: error: syntax error before 'GpFont'
gdip.h:1155: error: syntax error before '*' token
make[2]: *** [adjustablearrowcap.lo] Error 1
make[2]: Leaving directory `/home/aroman/mono/libgdiplus/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/aroman/mono/libgdiplus'
make: *** [all] Error 2
[aroman at idaho libgdiplus]$
--snip--

And here are the relevan parts of src.gdip.h:
--snip--
    816 typedef struct {
    817         FcPattern*      pattern;
    818         bool            allocated;
    819         short           height;
    820         short           linespacing;
    821         short           celldescent;
    822         short           cellascent;
    823 } GpFontFamily;
    824
    825
    826 typedef struct {
    827         cairo_font_t*       cairofnt;
    828         float               sizeInPixels;
    829         GpFontStyle         style;
    830         void                *wineHfont;
    831         FT_Library          ft_library;
    832 } GpFont;
    833
    834
    835 typedef struct
    836 {
    837         char            szFamily [128];
    838         float           sizeInPixels;
    839         GpFontStyle     style;
    840         GpFont *        font;
    841         int             refcount;
    842 } GpCachedFont;
    843
--snip--

Now, I've been thinking and I cannot find anything wrong with this source code snippet. No apparent syntax errors. It looks right.

Can anyone find what is wrong with it or is there a new gcc4 option that can be used?

Let's get this working! I am willing to spend some time hackin at this, but at the moment, I am stuck.



Alex Roman.


More information about the Mono-list mailing list