Hello,
when trying to compile WINE using Cygwin I am getting errors such as: (this example for wine/programs/notepad)
gcc -c -I. -I. -I../../include -I../../include -I../../include/msvcrt -DNO_LIBWINE_PORT -D_REENTRANT -Wall -pipe -mprefe rred-stack-boundary=2 -fno-strict-aliasing -gstabs+ -Wpointer-arith -g -O2 -o License_En.o License_En.c In file included from /usr/include/w32api/objfwd.h:7, from /usr/include/w32api/objidl.h:7, from ../../include/objbase.h:270, from ../../include/ole2.h:25, from ../../include/windows.h:77, from License_En.c:1: /usr/include/w32api/basetyps.h:124: error: Syntaxfehler before '*' token /usr/include/w32api/basetyps.h:125: error: Syntaxfehler before '*' token /usr/include/w32api/basetyps.h:127: error: Syntaxfehler before '*' token In file included from ../../include/objbase.h:270, from ../../include/ole2.h:25, from ../../include/windows.h:77, from License_En.c:1: /usr/include/w32api/objidl.h:10: error: Syntaxfehler before "LPOLESTR"
I configured with "configure --disable-win16".
When trying to compile parts of WINE using MSVC, I'm getting:
Compiling... comctl32undoc.c d:\wine-msvc\include\windows.h(23) : fatal error C1189: #error : Wine should not include windows.h internally
This all worked some months ago. Can someone explain, what's wrong here?
Thanks,
Martin
On Mon, 2004-10-04 at 15:47, Martin Fuchs wrote:
Compiling... comctl32undoc.c d:\wine-msvc\include\windows.h(23) : fatal error C1189: #error : Wine should not include windows.h internally
This all worked some months ago. Can someone explain, what's wrong here?
I think the order of inclusion is wrong so some headers get included from the PSDK which in turn includes a copy of Windows.h. I have seen this problem before but I normally just move all of the Wine headers when I am testing under MS_VC.
Thanks Steven
"Martin Fuchs" martin-fuchs@gmx.net writes:
when trying to compile WINE using Cygwin I am getting errors such as: (this example for wine/programs/notepad)
gcc -c -I. -I. -I../../include -I../../include -I../../include/msvcrt -DNO_LIBWINE_PORT -D_REENTRANT -Wall -pipe -mprefe rred-stack-boundary=2 -fno-strict-aliasing -gstabs+ -Wpointer-arith -g -O2 -o License_En.o License_En.c In file included from /usr/include/w32api/objfwd.h:7, from /usr/include/w32api/objidl.h:7, from ../../include/objbase.h:270, from ../../include/ole2.h:25, from ../../include/windows.h:77, from License_En.c:1: /usr/include/w32api/basetyps.h:124: error: Syntaxfehler before '*' token /usr/include/w32api/basetyps.h:125: error: Syntaxfehler before '*' token /usr/include/w32api/basetyps.h:127: error: Syntaxfehler before '*' token In file included from ../../include/objbase.h:270, from ../../include/ole2.h:25, from ../../include/windows.h:77, from License_En.c:1: /usr/include/w32api/objidl.h:10: error: Syntaxfehler before "LPOLESTR"
It looks like you are mixing includes from Wine and Mingw, that's not going to work well. My guess is that you didn't run make from the top-level directory, so Wine didn't get a chance to build its includes and Mingw falls back to the w32api ones.
It looks like you are mixing includes from Wine and Mingw, that's not going to work well. My guess is that you didn't run make from the top-level directory, so Wine didn't get a chance to build its includes and Mingw falls back to the w32api ones.
I tried building from the top, from libs/wine/, libs/port/, from some dlls/... and programs/... directories.
When building from the top, I am getting:
make[1]: Entering directory `/home/cvs/wine/libs' make[2]: Entering directory `/home/cvs/wine/libs/port' gcc -c -I. -I. -I../../include -I../../include -D__WINESRC__ -D_REENTRANT -Wall -pipe -mpreferred-stack-boundary=2 -fno-strict-aliasing -gstabs+ -Wpointer-arith -g -O2 -o interlocked.o interlocked.c {standard input}: Assembler messages: {standard input}:253: Error: unknown pseudo-op: `.previous' {standard input}:264: Error: unknown pseudo-op: `.previous' {standard input}:274: Error: unknown pseudo-op: `.previous' {standard input}:284: Error: unknown pseudo-op: `.previous' {standard input}:294: Error: unknown pseudo-op: `.previous' make[2]: *** [interlocked.o] Fehler 1 make[2]: Leaving directory `/home/cvs/wine/libs/port' make[1]: *** [port] Fehler 2 make[1]: Leaving directory `/home/cvs/wine/libs' make: *** [libs] Fehler 2
On Tuesday 5 October 2004 08:37, Martin Fuchs wrote:
I tried building from the top, from libs/wine/, libs/port/, from some dlls/... and programs/... directories.
When building from the top, I am getting:
make[1]: Entering directory `/home/cvs/wine/libs' make[2]: Entering directory `/home/cvs/wine/libs/port' gcc -c -I. -I. -I../../include -I../../include -D__WINESRC__ -D_REENTRANT -Wall -pipe -mpreferred-stack-boundary=2 -fno-strict-aliasing -gstabs+ -Wpointer-arith -g -O2 -o interlocked.o interlocked.c {standard input}: Assembler messages: {standard input}:253: Error: unknown pseudo-op: `.previous' {standard input}:264: Error: unknown pseudo-op: `.previous' {standard input}:274: Error: unknown pseudo-op: `.previous' {standard input}:284: Error: unknown pseudo-op: `.previous' {standard input}:294: Error: unknown pseudo-op: `.previous' make[2]: *** [interlocked.o] Fehler 1 make[2]: Leaving directory `/home/cvs/wine/libs/port' make[1]: *** [port] Fehler 2 make[1]: Leaving directory `/home/cvs/wine/libs' make: *** [libs] Fehler 2
What compiler/platform are you on? This code is protected like this:
#if defined(__GNUC__) && !defined(__MINGW32__) && !defined(__APPLE__)
So if you're on Cygwin we may need to add && !defined(__CYGWIN__) or whatever is the appropriate define for that platform. As discussed earlier on this list, the .previous directive is ELF specific.
BTW, is there a define that identifies an ELF platform, a PE platform? Should we introduce those? That would make the check simpler and not as open ended like it is now.
-Hans
On Tuesday 5 October 2004 10:09, Hans Leidekker wrote:
What compiler/platform are you on? This code is protected like this:
#if defined(__GNUC__) && !defined(__MINGW32__) && !defined(__APPLE__)
So if you're on Cygwin we may need to add && !defined(__CYGWIN__) or whatever is the appropriate define for that platform. As discussed earlier on this list, the .previous directive is ELF specific.
BTW, is there a define that identifies an ELF platform, a PE platform? Should we introduce those? That would make the check simpler and not as open ended like it is now.
Wait, I see now that there's another use of .previous which is protected differently. The path below may solve your problem.
-Hans
Hi Hans,
Wait, I see now that there's another use of .previous which is protected differently. The path below may solve your problem.
thanks - I am now using the following change:
Changelog: Don't use ".previous" for MinGW and Cygwin builds
Index: port.h =================================================================== RCS file: /home/wine/wine/include/wine/port.h,v retrieving revision 1.59 diff -u -p -d -r1.59 port.h --- port.h 16 Sep 2004 20:34:27 -0000 1.59 +++ port.h 5 Oct 2004 09:13:11 -0000 @@ -188,7 +188,7 @@ struct statvfs
/* Macros to define assembler functions somewhat portably */
-#if defined(__GNUC__) && !defined(__MINGW32__) && !defined(__APPLE__) +#if defined(__GNUC__) && !defined(__MINGW32__) && !defined(__CYGWIN__) && !defined(__APPLE__) # define __ASM_GLOBAL_FUNC(name,code) \ __asm__( ".text\n\t" \ ".align 4\n\t" \ @@ -215,7 +215,7 @@ struct statvfs # define DECL_GLOBAL_CONSTRUCTOR(func) \ static void func(void) __attribute__((constructor)); \ static void func(void) -#elif defined(__i386__) +#elif defined(__i386__) && !defined(__MINGW32__) && !defined(__CYGWIN__) # define DECL_GLOBAL_CONSTRUCTOR(func) \ static void __dummy_init_##func(void) { \ asm(".section .init,"ax"\n\t" \