GNOME Bugzilla – Bug 559467
gst-ffmpeg fails to build on macos intel
Last modified: 2008-11-23 07:54:03 UTC
ld: absolute addressing (perhaps -mdynamic-no-pic) used in _rgb24tobgr24_MMX from libswscale/rgb2rgb.o not allowed in slidable image collect2: ld returned 1 exit status make[5]: *** [libswscale/libswscale.0.dylib] Error 1 This is because libswscale (nominally a separate project) does not respect the ENABLE_MMX defines, although it does have them available. I don't know what the right solution is, but this works: wingo@wingomac:~/src/yobuild/gst-ffmpeg/gst-libs/ext/ffmpeg/libswscale$ svn diff Index: rgb2rgb.c =================================================================== --- rgb2rgb.c (revision 27852) +++ rgb2rgb.c (working copy) @@ -161,7 +161,7 @@ #define RENAME(a) a ## _C #include "rgb2rgb_template.c" -#if defined(ARCH_X86) && defined(CONFIG_GPL) +#if defined(ARCH_X86) && defined(CONFIG_GPL) && (ENABLE_MMX || ENABLE_MMX2) //MMX versions #undef RENAME @@ -200,7 +200,7 @@ */ void sws_rgb2rgb_init(int flags){ -#if (defined(HAVE_MMX2) || defined(HAVE_3DNOW) || defined(HAVE_MMX)) && defined(CONFIG_GPL) +#if (defined(HAVE_MMX2) || defined(HAVE_3DNOW) || defined(HAVE_MMX)) && defined(CONFIG_GPL) && (ENABLE_MMX || ENABLE_MMX2) if (flags & SWS_CPU_CAPS_MMX2) rgb2rgb_init_MMX2(); else if (flags & SWS_CPU_CAPS_3DNOW)
Marking as blocker, given that we're in pre-release mode.
Bug filed upstream https://roundup.mplayerhq.hu/roundup/ffmpeg/issue724
The right way to fix this is to use the -mdynamic-no-pic linker flag.
So we have to thank our friends at Cupertino for releasing a BORKED gcc with XCode3.0 Everything compiles fine with a more recent/older version of XCode.
How do you mean, "compiles fine"? Is --disable-mmx no longer necessary or something?
the current HEAD of gst-ffmpeg compiles fine. I didn't modify anything, just updated the compiler which was broken. Solving the esoteric options we have to pass to ffmpeg to properly build is anothe r issue which is not a blocker.