GNOME Bugzilla – Bug 624148
gst-ffmpeg won't compile
Last modified: 2011-01-03 01:53:52 UTC
I try to compile gst-ffmpeg using: git clone git://anongit.freedesktop.org/gstreamer/gst-ffmpeg && cd gst-ffmpeg && ./autogen.sh --prefix=/usr && make I get the following compilation error: make[5]: Entering directory `/home/mabis2/temp/gst-ffmpeg/gst-libs/ext/ffmpeg' CC libavcodec/x86/dsputil_mmx.o libavcodec/x86/h264dsp_mmx.c: In function 'h264_h_loop_filter_luma_mmx2': libavcodec/x86/dsputil_mmx.c:727: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm' libavcodec/x86/dsputil_mmx.c:727: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm' libavcodec/x86/dsputil_mmx.c:727: error: 'asm' operand has impossible constraints libavcodec/x86/dsputil_mmx.c:727: error: 'asm' operand has impossible constraints libavcodec/x86/dsputil_mmx.c:727: error: 'asm' operand has impossible constraints libavcodec/x86/dsputil_mmx.c:727: error: 'asm' operand has impossible constraints libavcodec/x86/h264dsp_mmx.c:633: error: 'asm' operand has impossible constraints libavcodec/x86/dsputil_mmx.c:727: error: 'asm' operand has impossible constraints libavcodec/x86/dsputil_mmx.c:727: error: 'asm' operand has impossible constraints libavcodec/x86/dsputil_mmx.c:727: error: 'asm' operand has impossible constraints libavcodec/x86/dsputil_mmx.c:727: error: 'asm' operand has impossible constraints libavcodec/x86/dsputil_mmx.c:727: error: 'asm' operand has impossible constraints libavcodec/x86/dsputil_mmx.c:727: error: 'asm' operand has impossible constraints libavcodec/x86/h264dsp_mmx.c:633: error: 'asm' operand has impossible constraints libavcodec/x86/dsputil_mmx.c:727: error: 'asm' operand has impossible constraints libavcodec/x86/dsputil_mmx.c:727: error: 'asm' operand has impossible constraints make[5]: *** [libavcodec/x86/dsputil_mmx.o] Error 1
What distribution ? What processor ?
Gentoo: Here's additional information : mabis2@bomb ~ $ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 15 model name : Intel(R) Core(TM)2 Extreme CPU X7900 @ 2.80GHz stepping : 11 cpu MHz : 2792.383 cache size : 4096 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : bogomips : 5584.76 clflush size : 64 power management: processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 15 model name : Intel(R) Core(TM)2 Extreme CPU X7900 @ 2.80GHz stepping : 11 cpu MHz : 2792.383 cache size : 4096 KB physical id : 0 siblings : 2 core id : 1 cpu cores : 2 apicid : 1 initial apicid : 1 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : bogomips : 5584.35 clflush size : 64 power management: mabis2@bomb ~ $ gcc --version gcc (Gentoo 4.3.2-r3 p1.6, pie-10.1.5) 4.3.2 Copyright (C) 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
What version of gentoo (x86 ? ~x86 ? amd64 ? ~amd64?)
x86, but I'm not using the packages from Gentoo, I using git version
The problem is the gcc version. I had same problem in moblin. It will build with gcc 4.3.3. WOuld be nice if ffmpeg guys can do something here though. -> NOTGNOME? On the other hand http://forums.gentoo.org/viewtopic-t-807135-start-0-postdays-0-postorder-asc-highlight-.html suggest that USE=-pic solved the problem there.
I compiled revision 23623 of ffmpeg directly (which is the same revision as the one mentionned in ffmpegrev), and libavcodec/x86/dsputil_mmx.c compile correctly. The compilation line when the file is compiled successfully in ffmpeg is : gcc -I. -I"/home/mabis2/temp/ffmpeg" -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DHAVE_AV_CONFIG_H -std=c99 -fomit-frame-pointer -g -Wdeclaration-after-statement -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wcast-qual -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -O3 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=implicit -Werror=missing-prototypes -MMD -MF libavcodec/x86/dsputil_mmx.d -MT libavcodec/x86/dsputil_mmx.o -c -o libavcodec/x86/dsputil_mmx.o libavcodec/x86/dsputil_mmx.c The compilation line when the file is compiled with an error in GStreamer is : gcc -I. -I"/home/mabis2/gstreamer/gst-ffmpeg/gst-libs/ext/ffmpeg" -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DPIC -DHAVE_AV_CONFIG_H -std=c99 -fomit-frame-pointer -fPIC -g -Wdeclaration-after-statement -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wcast-qual -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -O3 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=implicit -Werror=missing-prototypes -MMD -MF libavcodec/x86/dsputil_mmx.d -MT libavcodec/x86/dsputil_mmx.o -c -o libavcodec/x86/dsputil_mmx.o libavcodec/x86/dsputil_mmx.c The only thing present in the line causing the error is -DPIC.
I filed a bug in ffmpeg : https://roundup.ffmpeg.org/issue2088
we don't specify -DPIC in gst-ffmpeg. OTOH, we do pass --enable-pic to ffmpeg's configure. Please compare with using the *exact* same flags we pass to ffmpeg's configure (see configure.ac)
any news for this?
Closing this bug report as no further information has been provided. Please feel free to reopen this bug if you can provide the information asked for. Thanks!