[FFmpeg-devel] Patch for Mac OS X assembly-language support in trunk/libavcodec/fft_altivec_s.S

Måns Rullgård mans
Mon Jul 19 08:30:37 CEST 2010


Paul Sterne <make4ppc at gmail.com> writes:

> 2010/7/18 M?ns Rullg?rd <mans at mansr.com>
>
>> Don't top-post.
>>
>> Paul Sterne <make4ppc at gmail.com> writes:
>>
>> > The following features of the current fft_altivec_s.S code are
>> > incompatible with Mac OS X:
>> >
>> > -- attempt to load r6 with address of locally defined symbol fft_data
>> > through the global offset table.
>> > -- attempt to load r12 with address of externally defined symbol ff_cos_tabs
>> > through the global offset table.
>>
>> Are you forcing PIC or using ppc64?  I couldn't find a ppc64 osx
>> machine to test on, and 32-bit doesn't use PIC (and hence not the GOT)
>> by default.
>>
> I build for both ppc and ppc64, using --disable-static --enable-shared.
> Shared objects (dynamic libraries) must use PIC for Mac OS X.

Not on 32-bit.  On ppc64 a fix for the got references is of course required.

>> > gas-preprocessor.pl doesn't address these issues, and they can't easily be
>> > addressed by gas-preprocessor.pl because the mach-o binary format requires
>> > section-difference calculations instead of using the global offset table.
>>
>> Can you point me at some documentation for how this should be done?
>>
> I included an extensive explanation of section-difference calculation in my
> first post on this topic.

I want official documentation, not some random ramblings that may or
may not be correct.

> Apple's assembly language reference is here: Apple's
> Assembler<http://developer.apple.com/mac/library/documentation/DeveloperTools/Reference/Assembler/000-Introduction/introduction.html>
> Apple's detailed explanation of their PIC is here:  Mach-O
> dynamic_code<http://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/MachOTopics/1-Articles/dynamic_code.html>

Thanks, I'll have a look.

> The code generated by gas-preprocessor.pl is attached to this post.

That really wasn't necessary.  I can generate it myself if I need it.

> My code does not currently support non-PIC references... maybe I
> need to add it.

Please don't try to blame us for your problems.

-- 
M?ns Rullg?rd
mans at mansr.com



More information about the ffmpeg-devel mailing list