[Ffmpeg-devel] trunk liba52 using non compatible assembly with x86_64

Aaron Williams aaronw
Mon Nov 6 19:58:21 CET 2006


Hi,

Christian Casteyde wrote:
> ffmpeg doesn't compile with liba52 enabled on the trunk SVN version,
> apparently due to assembly code in resample_mmx.c that is not compatible
> on x86_64 arch / GCC 3.4.6 / as 2.16.92 20060416 (from slamd 64 11).
>
> I get the following:
> svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
> cd ffmpeg
> ./configure --enable-gpl --enable-a52 --enable-static --disable-shared
> make
>
> make -C libavutil   all
> make[1]: Entering directory `/home/christian/tmp/ffmpeg/libavutil'
> make[1]: Nothing to be done for `all'.
> make[1]: Leaving directory `/home/christian/tmp/ffmpeg/libavutil'
> make -C libavcodec  all
> make[1]: Entering directory `/home/christian/tmp/ffmpeg/libavcodec'
> gcc -I/home/christian/tmp/ffmpeg/libswscale   -DHAVE_AV_CONFIG_H 
> -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_ISOC9X_SOURCE 
> -I/home/christian/tmp/ffmpeg -I/home/christian/tmp/ffmpeg 
> -I/home/christian/tmp/ffmpeg/libavutil -fomit-frame-pointer -g 
> -Wdeclaration-after-statement -Wall -Wno-switch -Wdisabled-optimization 
> -Wpointer-arith -Wredundant-decls -Winline -O3  -c -o liba52/resample.o 
> liba52/resample.c
> /tmp/ccAJGD7h.s: Assembler messages:
> /tmp/ccAJGD7h.s:1108: Error: `(%rax,%esi,2)' is not a valid base/index 
> expression
> /tmp/ccAJGD7h.s:1109: Error: `8(%rax,%esi,2)' is not a valid base/index 
> expression
> /tmp/ccAJGD7h.s:1117: Error: `(%rdx,%edi)' is not a valid base/index 
> expression
> /tmp/ccAJGD7h.s:1118: Error: `8(%rdx,%edi)' is not a valid base/index 
> expression
> /tmp/ccAJGD7h.s:1120: Error: `12(%rdx,%edi)' is not a valid base/index 
> expression
> /tmp/ccAJGD7h.s:1121: Error: `16(%rdx,%edi)' is not a valid base/index 
> expression
> /tmp/ccAJGD7h.s:1123: Error: `20(%rdx,%edi)' is not a valid base/index 
> expression
> /tmp/ccAJGD7h.s:1124: Error: `24(%rdx,%edi)' is not a valid base/index 
> expression
>
> ...
>
> /tmp/ccAJGD7h.s:1580: Error: `8(%rdx,%edi)' is not a valid base/index 
> expression
> /tmp/ccAJGD7h.s:1581: Error: `16(%rdx,%edi)' is not a valid base/index 
> expression
> make[1]: *** [liba52/resample.o] Error 1
> make[1]: Leaving directory `/home/christian/tmp/ffmpeg/libavcodec'
> make: *** [lib] Error 2
>
> ffmpeg-20060610 (the last version I checked) builds cleanly.
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at mplayerhq.hu
> http://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-devel
>
>   
I was experiencing the same problem for a while with gcc 4.1.0 on SuSE
Linux (x86_64).  I tried doing all sorts of things to try and resolve
the problem, but somehow it managed to resolve itself after forcing
everything to recompile.  I never did find out the cause of it.  Funny
enough, moving to earlier revisions of ffmpeg did not solve the problem,
but when I switched back to the latest revision the problem disappeared.

-Aaron




More information about the ffmpeg-devel mailing list