[FFmpeg-devel] ASM support for MACOSX 10.5: really?

vmrsss vmrsss
Tue Mar 25 15:47:25 CET 2008


Re the recent thread about compiling ffmpeg on leopard with the new  
XCode 3.1, I'd like to ask: is this really working? I certainly  
haven't been able to build with --enable-shared since upgrading to  
Leopard, and the new XCode hasn't helped.

Indeed, I am still having problems with static builds, which stop at  
flacdsp_mmx.c (all the rest of ASM seems to go through fine though: if  
I throw in manually a flacdsp_mmx.o which I have religiously put aside  
from a successful mplayer build, then make succeeds). Yet, if people  
are able to build on my same architecture (latest iMac 2.8Ghz Core 2  
Duo), there must be something wrong with what I do. Here is the error  
output from make, and below is my configure line, any suggestions as  
to what I am doing wrong?

> gcc-4.2  -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 - 
> D_LARGEFILE_SOURCE -D_ISOC9X_SOURCE -I"/usr/local/src/ffmpeg" -I"/ 
> usr/local/src/ffmpeg" -I"/usr/local/src/ffmpeg"/libavcodec -I"/usr/ 
> local/src/ffmpeg"/libavdevice -I"/usr/local/src/ffmpeg"/libavfilter - 
> I"/usr/local/src/ffmpeg"/libavformat -I"/usr/local/src/ffmpeg"/ 
> libavutil -I"/usr/local/src/ffmpeg"/libpostproc -I"/usr/local/src/ 
> ffmpeg"/libswscale -I/sw/include -pipe -force_cpusubtype_ALL -Wno- 
> sign-compare -mdynamic-no-pic -fomit-frame-pointer -Wdeclaration- 
> after-statement -Wall -Wno-switch -Wdisabled-optimization -Wpointer- 
> arith -Wredundant-decls -Wno-pointer-sign -Wcast-qual -Wwrite- 
> strings -O3 -fno-math-errno  -c -o i386/flacdsp_mmx.o i386/ 
> flacdsp_mmx.c
> i386/flacdsp_mmx.c: In function 'ff_flac_compute_autocorr_sse2':
> i386/flacdsp_mmx.c:86: error: can't find a register in class  
> 'GENERAL_REGS' while reloading 'asm'
> i386/flacdsp_mmx.c:30: error: 'asm' operand has impossible constraints
> i386/flacdsp_mmx.c:61: error: 'asm' operand has impossible constraints
> i386/flacdsp_mmx.c:63: error: 'asm' operand has impossible constraints
> i386/flacdsp_mmx.c:86: error: 'asm' operand has impossible constraints
> i386/flacdsp_mmx.c:115: error: 'asm' operand has impossible  
> constraints
> make[1]: *** [i386/flacdsp_mmx.o] Error 1
> make: *** [lib] Error 2
>

with the configure command (no CFLAGS or other interference with  
configure):

> ./configure --cc=gcc-4.2 --enable-nonfree --disable-vhook --disable- 
> ffserver --disable-gprof --disable-debug --enable-gpl --enable- 
> pthreads --enable-swscale --enable-postproc --extra-libs="-L/usr/ 
> X11R6/lib -lX11 -dylib_file /System/Library/Frameworks/ 
> OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/ 
> Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib -L/sw/ 
> lib" --extra-cflags="-I/sw/include"


Finally, if I try to compile with --enable-shared, I can only suppose  
code under some ifdef PIC kicks in, and I get an earlier break down.

> gcc-4.2  -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 - 
> D_LARGEFILE_SOURCE -D_ISOC9X_SOURCE -I"/usr/local/src/ffmpeg" -I"/ 
> usr/local/src/ffmpeg" -I"/usr/local/src/ffmpeg"/libavcodec -I"/usr/ 
> local/src/ffmpeg"/libavdevice -I"/usr/local/src/ffmpeg"/libavfilter - 
> I"/usr/local/src/ffmpeg"/libavformat -I"/usr/local/src/ffmpeg"/ 
> libavutil -I"/usr/local/src/ffmpeg"/libpostproc -I"/usr/local/src/ 
> ffmpeg"/libswscale -I/sw/include -pipe -force_cpusubtype_ALL -Wno- 
> sign-compare -fomit-frame-pointer -Wdeclaration-after-statement - 
> Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant- 
> decls -Wno-pointer-sign -Wcast-qual -Wwrite-strings -O3 -fno-math- 
> errno  -c -o i386/dsputil_mmx.o i386/dsputil_mmx.c
> In file included from i386/dsputil_mmx.c:30:
> i386/mmx.h:24:2: warning: #warning Everything in this header is  
> deprecated, use plain asm()! New code using this header will be  
> rejected.
> i386/h264dsp_mmx.c: In function 'put_h264_qpel4_h_lowpass_3dnow':
> i386/h264dsp_mmx.c:1881: error: can't find a register in class  
> 'GENERAL_REGS' while reloading 'asm'
> i386/h264dsp_mmx.c:1881: error: 'asm' operand has impossible  
> constraints
> {standard input}:8127:non-relocatable subtraction expression,  
> "_ff_pb_7" minus "L00000000021$pb"
> {standard input}:8127:symbol: "_ff_pb_7" can't be undefined in a  
> subtraction expression
> {standard input}:8126:non-relocatable subtraction expression,  
> "_ff_pb_3" minus "L00000000021$pb"
> {standard input}:8126:symbol: "_ff_pb_3" can't be undefined in a  
> subtraction expression
> {standard input}:8125:non-relocatable subtraction expression,  
> "_ff_pb_1" minus "L00000000021$pb"
> {standard input}:8125:symbol: "_ff_pb_1" can't be undefined in a  
> subtraction expression
> {standard input}:8096:non-relocatable subtraction expression,  
> "_ff_bone" minus "L00000000020$pb"
> {standard input}:8096:symbol: "_ff_bone" can't be undefined in a  
> subtraction expression
> {standard input}:8090:non-relocatable subtraction expression,  
> "_ff_bone" minus "L00000000020$pb"
> {standard input}:8090:symbol: "_ff_bone" can't be undefined in a  
> subtraction expression
> {standard input}:8011:non-relocatable subtraction expression,  
> "_ff_bone" minus "L00000000019$pb"
> {standard input}:8011:symbol: "_ff_bone" can't be undefined in a  
> subtraction expression
> {standard input}:7743:non-relocatable subtraction expression,  
> "_ff_pw_32" minus "L00000000018$pb"
> {standard input}:7743:symbol: "_ff_pw_32" can't be undefined in a  
> subtraction expression
> {standard input}:7563:non-relocatable subtraction expression,  
> "_ff_pw_32" minus "L00000000017$pb"
> {standard input}:7563:symbol: "_ff_pw_32" can't be undefined in a  
> subtraction expression
> {standard input}:7189:non-relocatable subtraction expression,  
> "_ff_pw_15" minus "L00000000016$pb"
> {standard input}:7189:symbol: "_ff_pw_15" can't be undefined in a  
> subtraction expression
> {standard input}:7174:non-relocatable subtraction expression,  
> "_ff_pw_15" minus "L00000000016$pb"
> {standard input}:7174:symbol: "_ff_pw_15" can't be undefined in a  
> subtraction expression
> {standard input}:7146:non-relocatable subtraction expression,  
> "_ff_pw_15" minus "L00000000016$pb"
> {standard input}:7146:symbol: "_ff_pw_15" can't be undefined in a  
> subtraction expression
> {standard input}:7122:non-relocatable subtraction expression,  
> "_ff_pw_15" minus "L00000000016$pb"
> {standard input}:7122:symbol: "_ff_pw_15" can't be undefined in a  
> subtraction expression
> {standard input}:7058:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000015$pb"
> {standard input}:7058:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:7037:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000015$pb"
> {standard input}:7037:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:7015:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000015$pb"
> {standard input}:7015:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6994:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000015$pb"
> {standard input}:6994:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6972:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000015$pb"
> {standard input}:6972:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6951:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000015$pb"
> {standard input}:6951:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6929:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000015$pb"
> {standard input}:6929:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6908:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000015$pb"
> {standard input}:6908:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6886:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000015$pb"
> {standard input}:6886:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6865:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000015$pb"
> {standard input}:6865:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6843:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000015$pb"
> {standard input}:6843:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6822:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000015$pb"
> {standard input}:6822:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6800:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000015$pb"
> {standard input}:6800:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6779:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000015$pb"
> {standard input}:6779:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6757:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000015$pb"
> {standard input}:6757:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6736:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000015$pb"
> {standard input}:6736:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6656:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000014$pb"
> {standard input}:6656:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6641:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000014$pb"
> {standard input}:6641:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6611:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000014$pb"
> {standard input}:6611:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6587:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000014$pb"
> {standard input}:6587:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6528:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000013$pb"
> {standard input}:6528:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6511:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000013$pb"
> {standard input}:6511:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6413:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000012$pb"
> {standard input}:6413:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6396:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000012$pb"
> {standard input}:6396:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6154:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000011$pb"
> {standard input}:6154:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6133:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000011$pb"
> {standard input}:6133:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6111:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000011$pb"
> {standard input}:6111:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6090:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000011$pb"
> {standard input}:6090:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6068:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000011$pb"
> {standard input}:6068:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6047:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000011$pb"
> {standard input}:6047:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6025:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000011$pb"
> {standard input}:6025:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:6004:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000011$pb"
> {standard input}:6004:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:5982:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000011$pb"
> {standard input}:5982:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:5961:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000011$pb"
> {standard input}:5961:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:5939:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000011$pb"
> {standard input}:5939:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:5918:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000011$pb"
> {standard input}:5918:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:5896:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000011$pb"
> {standard input}:5896:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:5875:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000011$pb"
> {standard input}:5875:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:5853:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000011$pb"
> {standard input}:5853:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:5832:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000011$pb"
> {standard input}:5832:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:5382:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000010$pb"
> {standard input}:5382:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:5101:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000009$pb"
> {standard input}:5101:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:4685:non-relocatable subtraction expression,  
> "_ff_pw_15" minus "L00000000008$pb"
> {standard input}:4685:symbol: "_ff_pw_15" can't be undefined in a  
> subtraction expression
> {standard input}:4287:non-relocatable subtraction expression,  
> "_ff_pw_15" minus "L00000000007$pb"
> {standard input}:4287:symbol: "_ff_pw_15" can't be undefined in a  
> subtraction expression
> {standard input}:4065:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000006$pb"
> {standard input}:4065:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:3667:non-relocatable subtraction expression,  
> "_ff_pw_16" minus "L00000000005$pb"
> {standard input}:3667:symbol: "_ff_pw_16" can't be undefined in a  
> subtraction expression
> {standard input}:3629:non-relocatable subtraction expression,  
> "_ff_pw_255" minus "L00000000004$pb"
> {standard input}:3629:symbol: "_ff_pw_255" can't be undefined in a  
> subtraction expression
> {standard input}:3560:non-relocatable subtraction expression,  
> "_ff_pw_255" minus "L00000000003$pb"
> {standard input}:3560:symbol: "_ff_pw_255" can't be undefined in a  
> subtraction expression
> {standard input}:3334:non-relocatable subtraction expression,  
> "_ff_pb_FC" minus "L00000000002$pb"
> {standard input}:3334:symbol: "_ff_pb_FC" can't be undefined in a  
> subtraction expression
> {standard input}:2927:non-relocatable subtraction expression,  
> "_vector128" minus "L00000000001$pb"
> {standard input}:2927:symbol: "_vector128" can't be undefined in a  
> subtraction expression
> make[1]: *** [i386/dsputil_mmx.o] Error 1
> make: *** [lib] Error 2

I could not pass this step, so I am not sure whether or not the object  
code would link with XCode 3.1.

Thanks for any suggestions you might be able to give.




More information about the ffmpeg-devel mailing list