Martin.Fuhrer@cggveritas.com
2007-Mar-12 10:34 UTC
[Wine] Suffix or Operands invalid during AMD64 compile
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: % 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]: Warning: File `gettid.o' has modification time 0.037 s in the future 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 My gcc version is as follows: % gcc -v Reading specs from /usr/lib/gcc/x86_64-redhat-linux/3.4.6/specs Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-java-awt=gtk --host=x86_64-redhat-linux Thread model: posix gcc version 3.4.6 20060404 (Red Hat 3.4.6-3) Any ideas for working around this compile error? I'd be happy to provide any additional info. Thanks! Martin
Declan Moriarty
2007-Mar-12 14:03 UTC
[Wine] Suffix or Operands invalid during AMD64 compile
On Mon, 2007-03-12 at 09:22 -0600, Martin.Fuhrer@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.
Peter Beutner
2007-Mar-12 14:21 UTC
[Wine] Suffix or Operands invalid during AMD64 compile
Martin.Fuhrer@cggveritas.com schrieb:> 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-wine64Are you sure you want Win64? Normally you only need 32bit wine because almost all windows applications are 32bit. Just remove '--enable-wine64' from the above line. Besides (afaik) 64bit-enabled wine doesn't really work anyway.> 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.cAs for the compile error. The problem is the -D__i386. No idea though how that ended up there for a win64 build.
Maybe Matching Threads
- error on solaris please help interlocked*functions
- end of line not at end of line (Compile error) (V1.0.1&1.0.6
- Assembler errors in interlocked.c 0.9.61/1.1.12
- WINE with 64-bit Support Build on Snow Leopard
- [LLVMdev] [RFC] Bundling support in the PostRA Scheduler