[Wine] Suffix or Operands invalid during AMD64 compile
Declan Moriarty
junk_mail at iol.ie
Mon Mar 12 14:02:00 CDT 2007
On Mon, 2007-03-12 at 09:22 -0600, Martin.Fuhrer at cggveritas.com wrote:
> Hi all,
>
> I am trying to compile Wine 0.9.32 from source on an AMD64 desktop running
> Red Hat Enterprise Linux 4. I configure as follows:
>
> % ./configure --prefix=/home/mfuhrer/sw/linux --with-x --enable-wine64
>
> This works fine. I run make depend, followed by make, and get the
> following error:
> 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
> Any ideas for working around this compile error? I'd be happy to provide
> any additional info. Thanks!
I would not claim to be up on present compilers, or C, but to me it
looks like the compile options.
/start useless knowledge
-fPIC gives you position independent code, i.e. the kernel can put it
anywhere in ram and it will work; the benefit of that is that a hacker
can't rely on a program appearing anywhere in particular. PUSH, and POP
are assembler instructions, and assembler is _not_ position independent,
so ram adresses you might put in as labels get hardcoded into numbers
during the assembly process. This is less secure, in that a hacker can
rely on this bit of code being at a particular address any time it's
running, so he can execute a 'jump to' and land on it.
/end useless knowledge
There must be a way of compiling without -fPIC. I have a hardened system
here (linuxfromscratch) and that provides gcc -fno-pic as a compile
option, so that's worth a try.
This error seems similar to yours.
gcc.gnu.org/ml/gcc-help/2006-06/msg00121.html
BTW, there also appears to be a bigger difference between amd and intel
in the 64 bit cpus than we are used to on 32 bit.
--
With Best Regards,
Declan Moriarty.
More information about the wine-users
mailing list