[Ffmpeg-devel] Compiler error in latest CVS

Rich Felker dalias
Sat Mar 25 01:14:41 CET 2006


On Fri, Mar 24, 2006 at 02:34:37PM -0500, Isaac Richards wrote:
> > > So, every other bit of asm code in ffmpeg is wrong, then, because it's
> > > either been changed to explicitly not use ebx, or saves it before using
> > > it?
> >
> > Do what I said and you'll see that it works. The other code has been
> > slowed down to accommodate PIC. Compiling lavc with PIC _WILL_ always
> > make it measurably slowe anyway, so you should not do this!
> 
> Shared libraries need to be compiled with PIC on certain platforms.  I very 

This is false. It is completely impossible for a hardware architecture
to require this. What you mean is that the dynamic linker (ld.so) is
BROKEN on some platforms and refuses to perform text relocations. This
should be fixed.

In any case, the code we're talking about is i386-specific, and the
i386 dynamic linker does textrels just fine.

> much prefer to have libavcodec + friends as shared libraries because it cuts 
> down _considerably_ on development time - ie, relinking a huge static library 
> into a dozen or so binaries every single compile wastes a lot of time.

Umm, you'll spend a lot more development time debugging problems that
arise because the ABI changes constantly. libavcodec is NOT stable for
the purpose of being used as a shared library.

> So, no, unfortunately, just disabling PIC doesn't really work.

Disabling PIC and disabling shared libraries are two totally
independent issues.

> Not that it matters much to me (or the original poster), since I've already 
> disabled the code in Myth's local copy of libavcodec.  Not like we'll be 
> using the codec, anyway.  =)

:)

Rich





More information about the ffmpeg-devel mailing list