[MEncoder-users] mcdeint=2 segfault

Christian Ebert blacktrash at gmx.net
Sun Apr 12 14:25:44 CEST 2009


* R.L. Horn on Sunday, April 12, 2009 at 02:14:59 -0500
> On Sun, 12 Apr 2009, vmrsss wrote:
>> On 10 Apr 2009, at 20:56, Christian Ebert wrote:
>>> 'd love to try it, but:
>>> 
>>> cc -Wundef -Wdisabled-optimization -Wno-pointer-sign  
>>> -Wdeclaration-after-statement -std=gnu99  -mdynamic-no-pic 
>>> -falign-loops=16 -shared-libgcc -D_LARGEFILE_SOURCE 
>>> -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I. -I/usr/local/include 
>>> -I/sw/include -I/usr/X11/include -I/usr/local/include 
>>> -I/sw/include/freetype2 -I/sw/include -I/sw/include 
>>> -I/usr/local/include -I/usr/local/include/libdvdread   -c -o 
>>> liba52/imdct.o liba52/imdct.c
>>> In file included from liba52/imdct.c:725:
>>> liba52/imdct_3dnow.h: In function 'fft_asmb_3dnow':
>>> liba52/imdct_3dnow.h:257: error: can't find a register in class  
>>> 'GENERAL_REGS' while reloading 'asm'
>>> make: *** [liba52/imdct.o] Error 1
>> 
>> I had the same problem. This is because the CFLAGS set in configure for 
>> Darwin have changed recently: adding back "-O4 -fomit-frame-pointer" 
>> worked for me.
> 
> Looking at this a little harder, it does appear that you definitely need  
> an -O option (which one, apart from -O0, doesn't seem to matter).  
> Without it, I couldn't get imdct.c to compile with any version of gcc I  
> have on hand.  I believe they all tend to imply -fomit-frame-pointer, but 
> that alone isn't sufficient (or, evidently, even necessary):
> 
>  $(CC) -I. -O -c -o liba52/imdct.o liba52/imdct.c    works
> 
>  $(CC) -I. -O -fno-omit-frame-pointer -c -o liba52/imdct.o liba52/imdct.c
>                                                      works
> 
>  $(CC) -I. -c -o liba52/imdct.o liba52/imdct.c       doesn't work
> 
>  $(CC) -I. -fomit-frame-pointer -c -o liba52/imdct.o liba52/imdct.c
>                                                      doesn't work

Ok. -O4 did not make much sense in Darwin in the first place
(only up to -O3 is in the manual). But adding adding -O3 or -O to
--extra-cflags gives a different error:

cc -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I.. -I.. -Wundef -Wdisabled-optimization -Wno-pointer-sign -Wdeclaration-after-statement -std=gnu99  -mdynamic-no-pic -falign-loops=16 -shared-libgcc -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I. -O -I/usr/local/include -I/sw/include  -I/usr/X11/include -I/usr/local/include -I/sw/include/freetype2 -I/sw/include -I/sw/include -I/usr/local/include -I/usr/local/include/libdvdread   -c -o h264.o h264.c
h264.c: In function 'pred_direct_motion':
h264.c:1046: warning: assignment from incompatible pointer type
h264.c:1047: warning: assignment from incompatible pointer type
h264.c: In function 'filter_mb_dir':
h264.c:6283: warning: initialization from incompatible pointer type
h264.c:6284: warning: initialization from incompatible pointer type
cabac.h: In function 'get_cabac_noinline':
cabac.h:527: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm'
make[1]: *** [h264.o] Error 1
make: *** [libavcodec/libavcodec.a] Error 2


c
-- 
  Was heißt hier Dogma, ich bin Underdogma!
[ What the hell do you mean dogma, I am underdogma. ]
_F R E E_  _V I D E O S_  http://www.blacktrash.org/underdogma/
                          http://www.blacktrash.org/underdogma/index-en.html


More information about the MEncoder-users mailing list