[Wine] Suffix or Operands invalid during AMD64 compile

Martin.Fuhrer at cggveritas.com Martin.Fuhrer at cggveritas.com
Tue Mar 13 12:19:29 CDT 2007


Hi Peter,

> Remember, now you want to build a 32bit wine,
> ie. compiling into 32bit code. So -D__i386__ is right exactly what we
> want now.

Okay, understood.

> hm, you made a 'make clean' before? You probably need this to remove any
> compiled 64bit code from your previous attempts.
> so try:
> make clean
> ./configure --prefix=/home/mfuhrer/sw/linux
> make depend
> make

To ensure I'm starting from a clean slate, I removed my old wine-0.9.32
source directory and untarred a fresh one.

% ./configure --prefix=/home/mfuhrer/sw/linux
% make depend

These run fine.  But I'm back to my original compile error:

% make
make[1]: Entering directory `/mnt/io/home/mfuhrer/sw/src/wine-0.9.32/tools'
make[1]: `makedep' is up to date.
make[1]: Leaving directory `/mnt/io/home/mfuhrer/sw/src/wine-0.9.32/tools'
make[1]: Entering directory `/mnt/io/home/mfuhrer/sw/src/wine-0.9.32/libs'
make[2]: Entering directory `/mnt/io/home/mfuhrer/sw/src/wine-0.9.32
/libs/port'
gcc -c -I. -I. -I../../include -I../../include  -D__WINESRC__ -D_REENTRANT
-fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement
-Wwrite-strings -Wpointer-arith  -g -O2 -D__i386__  -o interlocked.o
interlocked.c
{standard input}: Assembler messages:
{standard input}:38: Error: suffix or operands invalid for `push'
{standard input}:39: Error: suffix or operands invalid for `push'
{standard input}:46: Error: suffix or operands invalid for `pop'
{standard input}:47: Error: suffix or operands invalid for `pop'
make[2]: *** [interlocked.o] Error 1
make[2]: Leaving directory `/mnt/io/home/mfuhrer/sw/src/wine-0.9.32
/libs/port'
make[1]: *** [port] Error 2
make[1]: Leaving directory `/mnt/io/home/mfuhrer/sw/src/wine-0.9.32/libs'
make: *** [libs] Error 2

Manually compiling interlocked.c without the -D__i386__ flag does solve the
problem.  I then resume make, but encounter further errors:

% make
make[1]: Entering directory `/mnt/io/home/mfuhrer/sw/src/wine-0.9.32/tools'
make[1]: `makedep' is up to date.
make[1]: Leaving directory `/mnt/io/home/mfuhrer/sw/src/wine-0.9.32/tools'
make[1]: Entering directory `/mnt/io/home/mfuhrer/sw/src/wine-0.9.32/libs'
make[2]: Entering directory `/mnt/io/home/mfuhrer/sw/src/wine-0.9.32
/libs/port'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/mnt/io/home/mfuhrer/sw/src/wine-0.9.32
/libs/port'
make[2]: Entering directory `/mnt/io/home/mfuhrer/sw/src/wine-0.9.32
/libs/wine'
gcc -c -I. -I. -I../../include -I../../include  -D__WINESRC__
-DWINE_UNICODE_API="" -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing
-Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith  -g -O2
-D__i386__  -o casemap.o casemap.c
In file included from ../../include/windef.h:234,
                 from ../../include/wine/unicode.h:26,
                 from casemap.c:4:
../../include/winnt.h:650: warning: `__stdcall__' attribute ignored
../../include/winnt.h:651: warning: `__stdcall__' attribute ignored
../../include/winnt.h:652: warning: `__stdcall__' attribute ignored
../../include/winnt.h:653: warning: `__stdcall__' attribute ignored
../../include/winnt.h:654: warning: `__stdcall__' attribute ignored
../../include/winnt.h:655: warning: `__stdcall__' attribute ignored
In file included from ../../include/windef.h:234,
                 from ../../include/wine/unicode.h:26,
                 from casemap.c:4:
../../include/winnt.h:828:1: warning: "CONTEXT_CONTROL" redefined
../../include/winnt.h:783:1: warning: this is the location of the previous
definition
../../include/winnt.h:829:1: warning: "CONTEXT_INTEGER" redefined
../../include/winnt.h:784:1: warning: this is the location of the previous
definition
../../include/winnt.h:830:1: warning: "CONTEXT_SEGMENTS" redefined
../../include/winnt.h:785:1: warning: this is the location of the previous
definition
../../include/winnt.h:831:1: warning: "CONTEXT_FLOATING_POINT" redefined
../../include/winnt.h:786:1: warning: this is the location of the previous
definition
../../include/winnt.h:832:1: warning: "CONTEXT_DEBUG_REGISTERS" redefined
../../include/winnt.h:787:1: warning: this is the location of the previous
definition
../../include/winnt.h:833:1: warning: "CONTEXT_FULL" redefined
../../include/winnt.h:788:1: warning: this is the location of the previous
definition
../../include/winnt.h:949: error: conflicting types for 'CONTEXT'
../../include/winnt.h:790: error: previous declaration of 'CONTEXT' was
here
[ snip ]

Once again, if I manually compile without -D__i386__, things proceed until
the next error.  And so on and so forth.  For now, I am trying to proceed
by removing the -D__i386__ flags in the generated Makefiles; I don't know
if this is calling for trouble later on.  Maybe I am just encountering some
peculiarity with my particular IT-installed RHEL distro...

Martin





More information about the wine-users mailing list