GNOME Bugzilla – Bug 163584
[CYGWIN] make check fails due to header problem
Last modified: 2005-03-01 19:00:45 UTC
Building Pango 1.8.0 on the Cygwin current net release. My build of glib 2.6.1 is here: http://www.whinlatter.ukfsn.org/gtk/glib-2.6.1-bin.tar.bz2 Configure OK: ./configure -C --prefix=/usr --enable-shared --disable-static Build OK Check fails on build: make check [...] make[2]: `testcolor.exe' is up to date. make[2]: `testscript.exe' is up to date. if c++ -DHAVE_CONFIG_H -I. -I. -I.. -I.. -D_REENTRANT -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/X11R6/include -I/usr/include/freetype2 -I/opt/cxclient/usr/X11R6/include -I/usr/include/freetype2 -I/usr/X11R6/include -DG_DISABLE_DEPRECATED -DG_DISABLE_CAST_CHECKS -DHAVE_X -DHAVE_XFT -DHAVE_FREETYPE -DHAVE_WIN32 -g -O2 -MT cxx-test.o -MD -MP -MF ".deps/cxx-test.Tpo" \ -c -o cxx-test.o `test -f 'cxx-test.C' || echo './'`cxx-test.C; \ then mv -f ".deps/cxx-test.Tpo" ".deps/cxx-test.Po"; \ else rm -f ".deps/cxx-test.Tpo"; exit 1; \ fi In file included from /usr/include/w32api/windows.h:87, from ../pango/pangowin32.h:37, from cxx-test.C:22: /usr/include/w32api/winspool.h:239: error: extraneous `int' ignored /usr/include/w32api/winspool.h:254: error: extraneous `int' ignored /usr/include/w32api/winspool.h:275: error: extraneous `int' ignored /usr/include/w32api/winspool.h:300: error: extraneous `int' ignored /usr/include/w32api/winspool.h:446: error: extraneous `int' ignored /usr/include/w32api/winspool.h:469: error: extraneous `int' ignored make[2]: *** [cxx-test.o] Error 1 make[2]: Leaving directory `/home/root/2.8/pango-1.8.0/tests' make[1]: *** [check-am] Error 2 make[1]: Leaving directory `/home/root/2.8/pango-1.8.0/tests' make: *** [check-recursive] Error 1 Building with 'make check CXXFLAGS="-DWIN32_LEAN_AND_MEAN"' corrects this. Install into DESTDIR OK Install OK I think the failure is due to some #define causing problems with the Windows headers. #including <windows.h> in a test program works fine. The line in <winspool.h> is completely sensible: 230 typedef struct _JOB_INFO_1A { 231 DWORD JobId; 232 LPSTR pPrinterName; 233 LPSTR pMachineName; 234 LPSTR pUserName; 235 LPSTR pDocument; 236 LPSTR pDatatype; 237 LPSTR pStatus; 238 DWORD Status; 239 DWORD Priority; 240 DWORD Position; 241 DWORD TotalPages; 242 DWORD PagesPrinted; 243 SYSTEMTIME Submitted; 244 } JOB_INFO_1A,*PJOB_INFO_1A,*LPJOB_INFO_1A; This may be a Cygwin bug, but it may equally be a Pango problem. Regards, Roger
Doesn't seem to indicate a real problem, and is most likely some freetype/windows header file collision on something like that. (Or, cygwin, it might be a Xft/Win32 header file conflict.)
Xlib.h contains the line "#define Status int"... Like Win32, X11 shows its age. In those days namespace pollution was something only fringe environmentalists whined about. A workaround is probably to #include <windows.h> first before anything X11-related.
If you want to reorder the tests in cxx-test.C, Tor, go ahead. I'm actually a little suprised that it is even possible to build a single Pango with both Win32 and Xft support...
OK, done.