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

Rich Felker dalias
Sun May 13 03:06:37 CEST 2007


On Sun, May 13, 2007 at 01:02:12AM +0200, Michael Niedermayer wrote:
> > x86-64's lack of support for textrels is entirely a limitation/bug of the tool
> > chain.  It's not, it's a limitation of the architecture.
> 
> and here you are wrong, it is purely a limitation of the toolchain
> we could play a game so i can proof it to you, just give me some simple C
> code and ill give you some theoretically 64bit relocateable x86-64 code

Note that this claim inherently MUST be wrong, because normal non-PIC
.o files work, either as static libs or just part of the main program.
These contain relocations until they're linked. So there must be some
way of handling it. Whether this way supports addressed beyond 4gig, I
have no idea, but nonetheless it's done in practice and the same would
work just as well at runtime as it does at linktime.

> > Accessing a global variable using PIC code requires double indirection via the
> > GOT.  Not true.  The extra indirection is for accessing a symbol from a
> > different DSO.  PIC only requires the use of an extra register holding the
> > base address in the address calculation.
> 
> accessing a global variable using PIC by default does double indirection
> most libs use that default
> and with all the non portable tricks accesses to global vars of other DSOs
> still need double indirection

Indeed, he meant different compilation unit (.c/.o file), not
different DSO. Unless you use evil visibility hacks...

Rich




More information about the ffmpeg-devel mailing list