From: Zuxy M. <zux...@gm...> - 2007-09-21 09:49:40
|
Hi, "zhou drangon" <dra...@gm...> дÈëÏûÏ¢ÐÂÎÅ:aaf...@ma...... >I build a cross compiler for x86_64-pc-mingw32 under linux, and want > to use this cross compiler to build ffmpeg, > > the configure command is : > ../ffmpeg/configure -prefix=/home/drangon/work_media/cross_bin > --cross-compile --cc=/home/drangon/cross/bin/x86_64-pc-mingw32-gcc > --enable-memalign-hack > > the error log is : > > /home/drangon/cross/bin/x86_64-pc-mingw32-gcc > -I"/home/drangon/work_media/ffmpeg"/libswscale > -I"/home/drangon/work_media/ffmpeg"/libavcodec -DHAVE_AV_CONFIG_H > -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_ISOC9X_SOURCE > -I"/home/drangon/work_media/cross_ff" > -I"/home/drangon/work_media/ffmpeg" > -I"/home/drangon/work_media/ffmpeg"/libavutil -fomit-frame-pointer -g > -Wdeclaration-after-statement -Wall -Wno-switch > -Wdisabled-optimization -Wpointer-arith -Wredundant-decls > -Wno-pointer-sign -O3 -c -o i386/cputest.o > /home/drangon/work_media/ffmpeg/libavcodec/i386/cputest.c > /tmp/ccWbj1Hb.s: Assembler messages: > /tmp/ccWbj1Hb.s:23: Error: suffix or operands invalid for `pop' > /tmp/ccWbj1Hb.s:26: Error: suffix or operands invalid for `push' > /tmp/ccWbj1Hb.s:29: Error: suffix or operands invalid for `pop' > make[1]: *** [i386/cputest.o] error 1 > make[1]: Leaving directory `/home/drangon/work_media/cross_ff/libavcodec' > make: *** [lib] error 2 > [drangon@dgn64 cross_ff]$ > > > the main content of cputest.c that generate error is : > > ------------------------------------------------------ > /* Function to test if multimedia instructions are supported... */ > int mm_support(void) > { > int rval = 0; > int eax, ebx, ecx, edx; > int max_std_level, max_ext_level, std_caps=0, ext_caps=0; > long a, c; > > __asm__ __volatile__ ( > /* See if CPUID instruction is supported ... */ > /* ... Get copies of EFLAGS into eax and ecx */ > "pushf\n\t" > "pop %0\n\t" > "mov %0, %1\n\t" > > /* ... Toggle the ID bit in one copy and store */ > /* to the EFLAGS reg */ > "xor $0x200000, %0\n\t" > "push %0\n\t" > "popf\n\t" > > /* ... Get the (hopefully modified) EFLAGS */ > "pushf\n\t" > "pop %0\n\t" > : "=a" (a), "=c" (c) > : > : "cc" > ); > > if (a == c) > return 0; /* CPUID not supported */ > ---------------------------------------------- This compilation failure has nothing to do with mingw or gcc because it's the SOURCE that has problems, not the compiler. More precisely, ffmpeg isn't LLP64 compatible yet. Please report to ffmpeg-users only next time. -- Zuxy |