64-bit Builds Are A Go

Please join me in welcoming the newest member of the FATE build farm: a 64-bit Ubuntu Linux session for pure 64-bit builds. The machine is actually a Mac Mini Core 2 Duo 2.0 GHz running VMware Fusion. Ideally, it would be nice to use the same machine for Mac OS X autobuilding and testing. Per my understanding, however, the base FFmpeg tree is not immediately build ready due to a conflict with the gcc version shipped with Apple’s default Xcode environment.

Apple Mac Mini

A pristine, dignified, stylized piece of Mac hardware, and what do I have it doing? Farm work. I also got the Mac Mini to try to delve into this Mac OS environment and see if it could possibly win me over as a full time user. That part isn’t looking too hopeful at this point, but I’m sort of committed to the FATE Server aspect now.

3 thoughts on “64-bit Builds Are A Go

  1. astrange

    ffmpeg builds fine for me in OS X, but I never tried 64-bit, hm.

    I did run it under 64-bit ubuntu for a while, just so I could use valgrind, but VMWare’s habit of freezing in 64-bit VMs and then corrupting its own disk image irreparably stopped that. Maybe it’s fixed with the last update?

  2. Robert Swain

    The issue in OS X Tiger using XCode Dev Tools 2.5 or earlier is that you have to compile FFmpeg using -mdynamic-no-pic to free up some registers for some dsp utils used in the flac encoder (an sse2 function… autocorrelation or something) and another dsp util that’s in the cavs decoder. Otherwise gcc doesn’t allocate the registers well enough to compile correctly using PIC.

    In Leopard using dev tools 3, this can’t be done. Apple altered ld in the new dev tools to handle both 32-bit and 64-bit linking (so I’m told) and removed all text relocation code as this can’t be done on 64-bit hardware. When using the -mdynamic-no-pic workaround for the lack of registers, text relocations are used so FFmpeg won’t link. The simplest solution is to just disable the flac encoder and cavs stuff at configure time. The proper fix would be to improve GCC’s register allocation to compile this code correctly.

    One strange thing I’ve noticed is that all the code compiles fine in MPlayer and I did compare the command lines a while back but I believe I came to the conclusions above…

Comments are closed.