[Ffmpeg-devel] ffmepg on Intel Macs

Simon Urbanek s.u
Mon Mar 6 04:51:11 CET 2006


As mentioned earlier, ffmpeg doesn't compile if sse is on. It fails  
in many places, all of them in assembler, examples below. My guess is  
that the main reason is that there is no gas for OS X, because gas  
doesn't support Mach-O object format. Apple supplies their own  
assembler which is based on gas but it seems that ffmpeg uses some  
non-standard directives that only proper gas understands (or at least  
Apple's as doesn't).

Some of the problems:
cc -O3 -g -Wall -Wno-switch  -no-cpp-precomp -pipe -fomit-frame- 
pointer -force_cpusubtype_ALL -Wno-sign-compare -march=prescott - 
mdynamic-no-pic -DHAVE_AV_CONFIG_H -I.. -I/Builds/unix/ffmpeg/ 
libavutil -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE   - 
c -o i386/fdct_mmx.o i386/fdct_mmx.c
{standard input}:unknown:file contains unmatched .macro and .endmacro  
for: FDCT_ROW_SSE2_H1it
make[1]: *** [i386/fdct_mmx.o] Error 1
make: *** [lib] Error 2

cc -O3 -g -Wall -Wno-switch  -no-cpp-precomp -pipe -fomit-frame- 
pointer -force_cpusubtype_ALL -Wno-sign-compare -march=prescott - 
mdynamic-no-pic -DHAVE_AV_CONFIG_H -I.. -I/Builds/unix/ffmpeg/ 
libavutil -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE   - 
c -o i386/dsputil_mmx.o i386/dsputil_mmx.c
In file included from i386/dsputil_mmx.c:2492:
i386/h264dsp_mmx.c:49:1: warning: "SBUTTERFLY" redefined
i386/dsputil_mmx.c:1525:1: warning: this is the location of the  
previous definition
i386/h264dsp_mmx.c:1135:1: warning: "PUT_OP" redefined
i386/dsputil_mmx.c:2377:1: warning: this is the location of the  
previous definition
{standard input}:106:Unknown pseudo-op: .balign
{standard input}:106:Rest of line ignored. 1st junk character valued  
56 (8).

that last error is repeated many times in different files.

cc -O3 -g -Wall -Wno-switch  -no-cpp-precomp -pipe -fomit-frame- 
pointer -force_cpusubtype_ALL -Wno-sign-compare -march=prescott - 
mdynamic-no-pic -DHAVE_AV_CONFIG_H -I.. -I/Builds/unix/ffmpeg/ 
libavutil -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE   - 
c -o i386/idct_mmx_xvid.o i386/idct_mmx_xvid.c
{standard input}:887:Unimplemented segment type 5 in parse_operand
{standard input}:892:Unimplemented segment type 5 in parse_operand
...

I suspect that fixing all this is not trivial, but it would be great  
if someone could do it :P. The easiest solution may be to get someone  
to implement Mach-O in gas ;).

Tools: (those come with OS X 10.4.4)
gcc:
i686-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build  
5250)
as:
Apple Computer, Inc. version cctools-590.23.2.obj~30, GNU assembler  
version 1.38

Cheers,
Simon





More information about the ffmpeg-devel mailing list