[LAD] [OT] assembler guru needed

Dave Phillips dlphillips at woh.rr.com
Thu Sep 6 14:21:17 UTC 2007


Greetings,

I'm trying to compile Wine 0.9.44 as a 32-bit executable on an AMD 
64-bit system (that is, with -m32, not in a chroot). I've done this 
successfully in the past under 64Studio, but my recent crash & reinstall 
has introduced something (or left out something) that leaves me unable 
to build Wine. Here's the problem point :

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 `/home/dlphilp/src/wine-0.9.44/libs/port'
make[1]: *** [port] Error 2
make[1]: Leaving directory `/home/dlphilp/src/wine-0.9.44/libs'
make: *** [libs] Error 2

Here's the code in question :

 __ASM_GLOBAL_FUNC(interlocked_cmpxchg64,
                    "push %ebx\n\t"
                    "push %esi\n\t"
                    "movl 12(%esp),%esi\n\t"
                    "movl 16(%esp),%ebx\n\t"
                    "movl 20(%esp),%ecx\n\t"
                    "movl 24(%esp),%eax\n\t"
                    "movl 28(%esp),%edx\n\t"
                    "lock; cmpxchg8b (%esi)\n\t"
                    "pop %esi\n\t"
                    "pop %ebx\n\t"
                    "ret");

And here's my GCC :

dlphilp at 64studio:~/src/wine-0.9.44$ gcc --version
gcc (GCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)

Maybe I need to use a different gcc version ? Whatever, there's nothing 
on Google that clearly points to a solution, so I turn to the GLAD team 
(Giants of Linux Audio Development) for guidance. Any suggestions or 
advice that might move me towards resolving this difficulty ?

Best,

dp



More information about the Linux-audio-dev mailing list