[FFmpeg-devel] Why 'You can only build one library type at once on MinGW'?
Måns Rullgård
mans
Wed May 9 21:37:01 CEST 2007
Rich Felker <dalias at aerifal.cx> writes:
> 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..
Lack of feature rather, but I know you like to shout.
--
M?ns Rullg?rd
mans at mansr.com
More information about the ffmpeg-devel
mailing list