[FFmpeg-devel] flac_compute_autocorr_sse2 not pic-safe

Edward Hervey bilboed
Tue Dec 4 19:56:00 CET 2007


Here's the missing info:

  It compiles/works fine on x86_64, but fails on x86 32bit.

  CFLAGS used : -fPIC -fomit-frame-pointer -g
-Wdeclaration-after-statement -Wall -Wno-switch -Wdisabled-optimization
-Wpointer-arith -Wredundant-decls -Wno-pointer-sign -O3

Error seen :
gcc -I"/home/bilboed/work/cvs/ffmpeg"/libswscale
-I"/home/bilboed/work/cvs/ffmpeg"/libavcodec  -DHAVE_AV_CONFIG_H
-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_ISOC9X_SOURCE -I"/hom
e/bilboed/work/cvs/ffmpeg" -I"/home/bilboed/work/cvs/ffmpeg"
-I"/home/bilboed/work/cvs/ffmpeg"/libavutil -fPIC -fomit-frame-pointer
-g -Wdeclaration-after-statement -Wall -Wno-switc
h -Wdisabled-optimization -Wpointer-arith -Wredundant-decls
-Wno-pointer-sign -O3  -c -o i386/dsputil_mmx.o i386/dsputil_mmx.c
i386/dsputil_mmx.c: In function ?:
i386/dsputil_mmx.c:2669: warning: suggest parentheses around arithmetic
in operand of |
i386/dsputil_mmx.c:2669: warning: suggest parentheses around arithmetic
in operand of |
i386/dsputil_mmx.c:2670: warning: suggest parentheses around arithmetic
in operand of |
i386/dsputil_mmx.c:2670: warning: suggest parentheses around arithmetic
in operand of |
i386/dsputil_mmx.c:2670: warning: suggest parentheses around arithmetic
in operand of |
In file included from i386/dsputil_mmx.c:2842:
i386/h264dsp_mmx.c: In function ?:
i386/h264dsp_mmx.c:1360: warning: dereferencing type-punned pointer will
break strict-aliasing rules
i386/h264dsp_mmx.c: In function ?:
i386/h264dsp_mmx.c:1360: warning: dereferencing type-punned pointer will
break strict-aliasing rules
i386/h264dsp_mmx.c: In function ?:
i386/h264dsp_mmx.c:1360: warning: dereferencing type-punned pointer will
break strict-aliasing rules

[... above repeated plenty of times ...]

i386/h264dsp_mmx.c: In function ?:
i386/h264dsp_mmx.c:1371: warning: dereferencing type-punned pointer will
break strict-aliasing rules
i386/dsputil_mmx.c: In function ?:
i386/dsputil_mmx.c:3762: warning: assignment from incompatible pointer
type
i386/dsputil_mmx.c:3770: warning: assignment from incompatible pointer
type
i386/dsputil_mmx.c: In function ?:
i386/dsputil_mmx.c:3039: error: can't find a register in class ? while
reloading ?
make[1]: *** [i386/dsputil_mmx.o] Error 1
make[1]: Leaving directory `/home/bilboed/work/cvs/ffmpeg/libavcodec'
make: *** [lib] Error 2
bilboed at bilbubuntu:~/work/cvs/ffmpeg$ 

  Line 3039 is the line just above the first block of "asm volatile" in
flac_compute_autocorr_sse2()

On Tue, 2007-12-04 at 19:50 +0100, Michael Niedermayer wrote:
> On Tue, Dec 04, 2007 at 07:35:31PM +0100, Luca Barbato wrote:
> > Michael Niedermayer wrote:
> > > On Tue, Dec 04, 2007 at 03:27:18PM +0100, Edward Hervey wrote:
> > >> Hi all,
> > >>
> > >>   While compiling ffmpeg as static library to be put into a shared
> > >> library (./configure --enable-static --disable-shared
> > >> --extra-cflags=-fPIC), I encountered a piece of asm code which isn't
> > >> PIC-safe.
> > >>
> > >>   The proposed patch disables that optimized routine when the
> > >> configuration doesn't allow it (HAVE_7REGS set to 1).
> > > 
> > > patch rejected, this code does not need 7 registers
> > 
> >  :"+&r"(i), "=m"(autoc[j]), "=m"(autoc[j+1]), "=m"(autoc[j+2])
> >  :"r"(data1+len), "r"(data1+len-j), "m"(*ff_pd_1)
> > 
> > gcc being overzealous?
> > what about marking this a BROKEN_RELOCATIONS ?
> 
> do you know more then the rest of us?
> nothing in the mail suggests a relation to relocations
> 
> but then its not a proper bug report, we dont know the CFLAGS nor the exact
> error message nor if this is x86_64 so maybe it is related to relocations
> 
> [...]
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at mplayerhq.hu
> http://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-devel





More information about the ffmpeg-devel mailing list