[FFmpeg-devel] Why 'You can only build one library type at once on MinGW'?

Rich Felker dalias
Wed May 9 21:35:09 CEST 2007


On Wed, May 09, 2007 at 03:57:01PM +0100, M?ns Rullg?rd wrote:
> 
> Rich Felker wrote:
> > On Wed, May 09, 2007 at 10:50:56AM +0200, Michel Bardiaux wrote:
> >> >> while under Linux they're different (shared objects
> >> >> needs to be compiled with -fPIC and access global data through %ebx?),
> >>
> >> No, PIC is usually not required. PIC just guarantees the dso can be
> >> relocated to any address. Without that its not possible to run when
> >> there are conflicts of address ranges.
> >
> > Nope, this is not true. Rather, without PIC, relocations remain inline
> > in the code rather than isolated to GOT/PLT tables. This means that
> > the dynamic linker must modify large amounts of code at startup
> > (runtime), resulting in unsharable pages and bad initial performance.
> > However it in no way precludes relocation.
> 
> On x86_64 it does, at least in the general case.  A 32-bit immediate operand
> might need 64 bits after relocation.  Theoretically, the compiler could have
> a flag telling it to make all relocatable values 64-bit, but gcc doesn't to
> my knowledge have such an option.

This is a bug in the assembler..

Rich




More information about the ffmpeg-devel mailing list