After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 624148 - gst-ffmpeg won't compile
gst-ffmpeg won't compile
Status: RESOLVED INCOMPLETE
Product: GStreamer
Classification: Platform
Component: gst-libav
git master
Other Linux
: Normal blocker
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-07-12 09:40 UTC by martin.bisson
Modified: 2011-01-03 01:53 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description martin.bisson 2010-07-12 09:40:40 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
Comment 1 Edward Hervey 2010-07-12 10:21:04 UTC
What distribution ? What processor ?
Comment 2 martin.bisson 2010-07-12 10:26:14 UTC
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.
Comment 3 Edward Hervey 2010-07-12 10:28:03 UTC
What version of gentoo (x86 ? ~x86 ? amd64 ? ~amd64?)
Comment 4 martin.bisson 2010-07-12 11:06:12 UTC
x86, but I'm not using the packages from Gentoo, I using git version
Comment 5 Stefan Sauer (gstreamer, gtkdoc dev) 2010-07-12 11:58:38 UTC
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.
Comment 6 martin.bisson 2010-07-12 12:35:20 UTC
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.
Comment 7 martin.bisson 2010-07-12 13:04:50 UTC
I filed a bug in ffmpeg :

https://roundup.ffmpeg.org/issue2088
Comment 8 Edward Hervey 2010-07-12 16:08:01 UTC
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)
Comment 9 Fabio Durán Verdugo 2010-11-23 05:08:38 UTC
any news for this?
Comment 10 Fabio Durán Verdugo 2011-01-03 01:53:52 UTC
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!