I had successfully built wine-20040213 before upgrading to the 2.6.3 Linux kernel and XFree86 4.4.0. After upgrading to XFree86 4.4.0 (from source distribution), wine would crash when I would try to run a Windows app so I decided to rebuild wine so it would use the XFree86 4.4.0 headers and libs, etc.
Now, when I compile wine-20040213, it stops with this compile error:
make[2]: Leaving directory `/build/wine-20040213/dlls/newdev' make[2]: Entering directory `/build/wine-20040213/dlls/ntdll' gcc -c -I. -I. -I../../include -I../../include -D__WINESRC__ -D_NTSYSTEM_ -D_REENTRANT -fPIC -Wall -pipe -mpreferred-stack-boundary=2 -fno-strict-aliasing -gstabs+ -Wpointer-arith -g -O2 -o cdrom.o cdrom.c In file included from /usr/include/linux/cdrom.h:14, from cdrom.c:63: /usr/include/asm/byteorder.h:14: error: syntax error before "__u32" /usr/include/asm/byteorder.h:28: error: syntax error before "__u64" In file included from /usr/include/linux/byteorder/little_endian.h:11, from /usr/include/asm/byteorder.h:57, from /usr/include/linux/cdrom.h:14, from cdrom.c:63: /usr/include/linux/byteorder/swab.h:133: error: syntax error before "__u16" /usr/include/linux/byteorder/swab.h:146: error: syntax error before "__u32" /usr/include/linux/byteorder/swab.h:160: error: syntax error before "__u64" make[2]: *** [cdrom.o] Error 1 make[2]: Leaving directory `/build/wine-20040213/dlls/ntdll' make[1]: *** [ntdll] Error 2 make[1]: Leaving directory `/build/wine-20040213/dlls' make: *** [dlls] Error 2 tom@linux:~/build/wine-20040213$
Based on this discussion on the gcc-help mailing list:
http://gcc.gnu.org/ml/gcc-help/2004-03/msg00057.html
it looks like the "__KERNEL__" option needs to be specified so that __attribute_const__ can be properly defined and cdrom.c can then be compiled.
I haven't tried it yet but I'm guessing adding __KERNEL__ to the "extradefs" macro in the dlls/ntdll/Makefile.in file might do the trick. I'm going to try that now and see what happens.
Has this problem already been encountered and addressed?
Thanks...
Peace...
Tom