Newer expat versions use different declarations of the following functions:

static void _svg_parser_sax_start_element ();
static void _svg_parser_sax_end_element ();
static void _svg_parser_sax_characters ();

We need to patch the libsvg source to not follow into a build error like
   "static declaration of 'foo' follows non-static declaration"
and use the functions from the expat library instead from the libsvg source.

Patch based on
http://oe-lite.org/redmine/projects/xorg/repository/revisions/c4df7951e846e1be718f37f2455696a1d0861f3d/entry/recipes/cairo/libsvg-0.1.4/gcc4_and_expat.patch

Signed-off-by: Carsten Schoenert <c.schoenert@gmail.com>

diff -bur libsvg-0.1.4~orig/src/svg_parser_expat.c libsvg-0.1.4/src/svg_parser_expat.c
--- libsvg-0.1.4~orig/src/svg_parser_expat.c	2005-02-14 11:26:26.000000000 -0600
+++ libsvg-0.1.4/src/svg_parser_expat.c	2006-02-10 21:58:20.000000000 -0600
@@ -30,6 +30,7 @@
 #include "svgint.h"
 #include "svg_hash.h"
 
+#ifndef LIBSVG_EXPAT
 static void
 _svg_parser_sax_start_element (void		*closure,
 			       const XML_Char	*name,
@@ -43,6 +44,7 @@
 _svg_parser_sax_characters (void		*closure,
 			    const XML_Char	*ch,
 			    int			len);
+#endif
 
 static void
