[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Assembler error



Free Ekanayaka <free@64studio.com> writes:

> Hi all,
>
> we're  trying to build a library  (called libelastique) on Debian/etch
> amd64, but we get the following error:
>
>   TF> gcc -I../../incl -I../../src/incl -I../../src/zGlobals
>   TF> -I../../src/AMaths -I../../src/elastiqueAPI -I../../src/PhaseVoc
>   TF> -I../../src/ResampleLib -I. -I../../src/elastiqueAPI
>   TF> -I../../src/PhaseVoc -I../../src/ResampleLib -I../../src/FFT
>   TF> -D__GCC_COMPILE__ -D_LIB -DNDEBUG -Dlinux64  -O3 -fomit-frame-pointer
>   TF> -finline-functions -funroll-loops -ffast-math -msse2 -march=athlon64
>   TF> -fPIC -c ../../src/PhaseVoc/PhaseVocDispatcher.cpp -o
>   TF> ../../src/PhaseVoc/PhaseVocDispatcher.o
>   TF> /tmp/ccpQ48sm.s: Assembler messages:
>   TF> /tmp/ccpQ48sm.s:11: Error: suffix or operands invalid for `push'
>   TF> /tmp/ccpQ48sm.s:11: Error: suffix or operands invalid for `pop'
>   TF> make: *** [../../src/PhaseVoc/PhaseVocDispatcher.o] Error 1
>
> Unfortunately I'm pretty clueless about assambler messages.. any idea?
>
> Ciao,
>
> Free

I would guess that you have inline asm instructions in the code,
possibly 32bit i386 code. Simple i386 asm just works on amd64 but
anything complex needs porting and the errors you get are messages
like yours.


So check the source for it. If you can't find anything you have to
make the source public to get any more help. Best would be to give the
source itself, the preprocessed output, the assembler file,
... basically all the tempfiles gcc produces. Use

gcc -save-temps -I../../incl -I../../src/incl -I../../src/zGlobals \
 -I../../src/AMaths -I../../src/elastiqueAPI -I../../src/PhaseVoc  \
 -I../../src/ResampleLib -I. -I../../src/elastiqueAPI \
 -I../../src/PhaseVoc -I../../src/ResampleLib -I../../src/FFT \
 -D__GCC_COMPILE__ -D_LIB -DNDEBUG -Dlinux64  -O3 -fomit-frame-pointer \
 -finline-functions -funroll-loops -ffast-math -msse2 -march=athlon64 \
 -fPIC -c ../../src/PhaseVoc/PhaseVocDispatcher.cpp -o \
 ../../src/PhaseVoc/PhaseVocDispatcher.o 

and then look for the PhaseVocDispatcher.{i,s} files.

MfG
        Goswin



Reply to: