> Date: Mon, 8 Aug 2011 18:39:41 -0400 > From: Sean Sieger <sean.sie...@gmail.com> > > I realize this has nothing to do with Emacs, buut, I'm trying to build Emacs > with libxml2 support ... what's this mean: > > gcc.exe -DWIN32 -D_WINDOWS -D_MBCS -DNOLIBTOOL -I.. -I../include -I.\include > -D > _REENTRANT -DHAVE_WIN32_THREADS -D_WINSOCKAPI_ -D_WINSOCKAPI_ -DNDEBUG -O2 > -o i > nt.mingw/dict.o -c ../dict.c > In file included from > c:\mingw\bin\../lib/gcc/mingw32/4.5.2/../../../../include/ > wchar.h:616:0, > from > c:\mingw\bin\../lib/gcc/mingw32/4.5.2/../../../../include/ > iconv.h:106, > from ../include/libxml/encoding.h:28, > from ../include/libxml/parser.h:807, > from ../include/libxml/globals.h:18, > from ../include/libxml/threads.h:35, > from ../include/libxml/xmlmemory.h:218, > from ../include/libxml/tree.h:1248, > from ../dict.c:32: > c:\mingw\bin\../lib/gcc/mingw32/4.5.2/../../../../include/stdint.h:32:20: > error: > conflicting types for 'uint32_t' > ../dict.c:29:26: note: previous declaration of 'uint32_t' was here > make: *** [int.mingw/dict.o] Error 1
Here's the relevant portion of dict.c (assuming you are using the latest version 2.7.8 available from xmlsoft.org): #define IN_LIBXML #include "libxml.h" #include <string.h> #ifdef HAVE_STDINT_H #include <stdint.h> #else #ifdef HAVE_INTTYPES_H #include <inttypes.h> #elif defined(WIN32) typedef unsigned __int32 uint32_t; <<<<< line 29 of dict.c #endif The typedef is the reason of the error. Since you obviously do have stdint.h (see above, in the GCC error message), the question is: how come HAVE_STDINT_H is not defined by the configure script? For that matter, HAVE_INTTYPES_H should also be defined, because MinGW headers do include that. IOW, the typedef that is tripping you is the last line of defense, probably for the MSVC compiler that is old enough to have neither stdint.h nor inttypes.h; you should have never got there.