On Fri, Jul 22, 2005 at 07:55:05AM -0700, Matt Kraai wrote:
> Package: ffmpeg
> Version: 0.cvs20050626-2
> Severity: serious
> 
> ffmpeg fails to build because it clobbers the PIC register %ebx in
> an asm:

I've a patch that fixes this problem, but compile doesn't succeed
afterwords. 

The %ebx clobber can be safely deleted there, since ebx is not
clobbered at all. It's saved on the stack in the beginning and
restored later.

However I get a compile error later, and that leaves me puzzled. For
me it smells like a gcc problem:

i386/h264dsp_mmx.c: In function ‘h264_h_loop_filter_luma_mmx2’:
i386/dsputil_mmx.c:618: error: can't find a register in class ‘GENERAL_REGS’ 
while reloading ‘asm’
i386/dsputil_mmx.c:618: error: can't find a register in class ‘GENERAL_REGS’ 
while reloading ‘asm’

The reason I can't see a solution for that problem is that I don't
see a problem. That asm statement doesn't even request registers,
only memory operands...

If noone else has an idea how to fix this, it could probably be
cloned to gcc-4.0?

Cheers,
Christian Aichinger
Binary files ffmpeg-0.cvs20050626/libavcodec/i386/cputest.o and 
ffmpeg/libavcodec/i386/cputest.o differ
Binary files ffmpeg-0.cvs20050626/libavcodec/i386/fdct_mmx.o and 
ffmpeg/libavcodec/i386/fdct_mmx.o differ
Binary files ffmpeg-0.cvs20050626/libavcodec/libpostproc/postprocess.o and 
ffmpeg/libavcodec/libpostproc/postprocess.o differ
diff -Nur ffmpeg-0.cvs20050626/libavcodec/libpostproc/postprocess_template.c 
ffmpeg/libavcodec/libpostproc/postprocess_template.c
--- ffmpeg-0.cvs20050626/libavcodec/libpostproc/postprocess_template.c  
2005-08-07 09:54:10.000000000 +0200
+++ ffmpeg/libavcodec/libpostproc/postprocess_template.c        2005-08-07 
10:26:47.000000000 +0200
@@ -3289,7 +3289,6 @@
                                                "r" ((long)srcStride),
                                                "r" ((long)dstStride)
 #if defined(PIC) && !defined(ARCH_X86_64)
-                                               : "%"REG_b
 #else
                                                : "%"REG_d
 #endif
@@ -3343,7 +3342,7 @@
                                                "r" ((long)srcStride),
                                                "r" ((long)dstStride)
 #if defined(PIC) && !defined(ARCH_X86_64)
-                                               : "%"REG_a, "%"REG_b
+                                               : "%"REG_a
 #else
                                                : "%"REG_a, "%"REG_d
 #endif
Binary files ffmpeg-0.cvs20050626/libavcodec/oggvorbis.o and 
ffmpeg/libavcodec/oggvorbis.o differ

Attachment: signature.asc
Description: Digital signature

Reply via email to