[MEncoder-users] mcdeint=2 segfault
Christian Ebert
blacktrash at gmx.net
Sun Apr 12 15:16:39 CEST 2009
* Christian Ebert on Sunday, April 12, 2009 at 14:25:44 +0200
> * 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
Got it working with --extra-cflags "-O3 -fomit-frame-pointer"
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