ffmpeg fails to build on x86_64 (OS 10.6). Here's an example of a 
compilation failure (gas barfing on the inline assembler):

gcc -I/sw64/include 
-I"/sw64/src/fink.build/ffmpeg-0.4.20071217-6/ffmpeg-0.4.20071217"/libswscale 
-I"/sw64/src/fink.build/ffmpeg-0.4.20071217-6/ffmpeg-0.4.20071217"/libavcodec 
  -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE 
-D_ISOC9X_SOURCE 
-I"/sw64/src/fink.build/ffmpeg-0.4.20071217-6/ffmpeg-0.4.20071217" 
-I"/sw64/src/fink.build/ffmpeg-0.4.20071217-6/ffmpeg-0.4.20071217" 
-I"/sw64/src/fink.build/ffmpeg-0.4.20071217-6/ffmpeg-0.4.20071217"/libavutil 
-I/sw64/include -no-cpp-precomp -pipe -force_cpusubtype_ALL 
-Wno-sign-compare -fomit-frame-pointer -g -Wdeclaration-after-statement 
-Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith 
-Wredundant-decls -Wno-pointer-sign -O3  -c -o h264.o h264.c
In file included from h264.h:32,
                  from h264.c:31:
cabac.h: In function ‘decode_significance_x86’:
cabac.h:693: warning: cast from pointer to integer of different size
cabac.h:694: warning: cast from pointer to integer of different size
cabac.h: In function ‘decode_significance_8x8_x86’:
cabac.h:742: warning: cast from pointer to integer of different size
h264.c: In function ‘hl_decode_mb_internal’:
h264.c:2413: warning: suggest parentheses around arithmetic in operand of ^
h264.c:2419: warning: suggest parentheses around arithmetic in operand of ^
{standard input}:9509:suffix or operands invalid for `add'
{standard input}:9521:suffix or operands invalid for `add'


Some googling suggests that this is a problem associated with gcc 4.2, 
and configuring with "--cc=gcc-4.0" does get this bit of ffmpeg to build.

However, the configure architecture is still x86_32, however (gcc 
-dumpmachine returns i686), so you need some more configure options:

   --cc=gcc-4.0 --arch=x86_64 \
   --extra-cflags="-I/sw64/include -m64" \
   --extra-ldflags=-m64

and you need to hack the configure script to always select x86_64 when 
that's what you tell it (not portable outside of Fink, but enough to 
hack the build):

Index: ffmpeg.info
===================================================================
RCS file: 
/cvsroot/fink/dists/10.4/unstable/main/finkinfo/graphics/ffmpeg.info,v
retrieving revision 1.12
diff -c -r1.12 ffmpeg.info
*** ffmpeg.info 27 Jan 2009 07:41:16 -0000      1.12
--- ffmpeg.info 14 Sep 2009 15:03:24 -0000
***************
*** 19,24 ****
--- 19,26 ----
     perl -pi -e 
's;-install_name,\$\(SHLIBDIR\)/\$\(SLIBNAME\);-install_name,\$\(SHLIBDIR\)/\$\(SLIBNAME_WITH_MAJOR\);g'
 
configure
     ### Fix for 10.5 ASM problem with ld: absolute addressing (perhaps 
-mdynamic-no-pic) used in _rgb24tobgr24_MMX from rgb2rgb.o not allowed 
in slidable image
     perl -pi -e 's,defined\(ARCH_X86\) \&\& 
defined\(CONFIG_GPL\),defined\(ARCH_X86\) \&\& defined\(CONFIG_GPL\) 
\&\& \!defined\(__APPLE__\),g' libswscale/rgb2rgb.c
+   ### Fix for selecting x86_32 in spite of --arch=x86_64
+   perl -pi -e '$c++ if m,arch="x86_32",; 
s,arch="x86_32",arch="x86_64", if $c==2' configure
   <<
   ###
   DocFiles: COPYING.GPL COPYING.LGPL CREDITS Changelog INSTALL README 
doc/TODO doc/*.txt
***************
*** 26,32 ****
   # gets included "too early" in gcc calls if also set during "make"
   #SetCFLAGS: -I%p/include
   ###
! ConfigureParams: --mandir=%p/share/man --enable-shared --enable-gpl 
--enable-pp --enable-swscaler --enable-pthreads --enable-x11grab 
--enable-liba52 --enable-libamr-nb --enable-libfaac --enable-libfaad 
--enable-libgsm --enable-libmp3lame --enable-libtheora 
--enable-libvorbis --enable-libx264 --enable-libxvid --disable-mmx 
--disable-iwmmxt (%m = powerpc) --enable-powerpc-perf (%m = i386) 
--disable-altivec
   ###
   CompileScript: <<
     CFLAGS=-I%p/include ./configure %c
--- 28,34 ----
   # gets included "too early" in gcc calls if also set during "make"
   #SetCFLAGS: -I%p/include
   ###
! ConfigureParams: --mandir=%p/share/man --enable-shared --enable-gpl 
--enable-pp --enable-swscaler --enable-pthreads --enable-x11grab 
--enable-liba52 --enable-libamr-nb --enable-libfaac --enable-libfaad 
--enable-libgsm --enable-libmp3lame --enable-libtheora 
--enable-libvorbis --enable-libx264 --enable-libxvid --disable-mmx 
--disable-iwmmxt (%m = powerpc) --enable-powerpc-perf (%m = i386) 
--disable-altivec --cc=gcc-4.0 --arch=x86_64 
--extra-cflags="-I/sw64/include -m64" --extra-ldflags=-m64
   ###
   CompileScript: <<
     CFLAGS=-I%p/include ./configure %c


So it builds, but since I no diddly about ffmpeg, I can't be certain 
it's actually usable. All the movies I have are QuickTime and they all 
generate "Pulse coding not allowed in short blocks" errors on convert to 
(say) flv.

Jon


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Fink-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fink-users

Reply via email to