[FFmpeg-devel] [PATCH] Fix shared build on OS X

Michael Niedermayer michaelni
Tue Dec 16 01:28:48 CET 2008


On Mon, Dec 15, 2008 at 06:21:16PM -0500, David Conrad wrote:
> On Nov 19, 2008, at 5:12 PM, Michael Niedermayer wrote:
> 
> > On Wed, Nov 19, 2008 at 01:41:43PM -0500, David Conrad wrote:
> >> Hi,
> >>
> >> Currently compilation on OS X intel with --enable-shared fails with  
> >> (using
> >> apple gcc 4.0.1)
> >>
> >> ffmpeg/libavcodec/i386/cavsdsp_mmx.c: In function
> >> ?ff_put_cavs_qpel8_mc01_3dnow?:
> >> ffmpeg/libavcodec/i386/cavsdsp_mmx.c:448: error: can't find a  
> >> register in
> >> class ?GENERAL_REGS? while reloading ?asm?
> >>
> >> This seems to be because gcc decides to use edi for the ADD constant
> >> instead of memory and borks when the constraints specify its use for
> >> dstStride.
> >>
> >> Attached patch is the minimal needed to fix the build for me, but I  
> >> think
> >> that all these named registers should probably be replaced with the  
> >> general
> >> "r". Comments?
> >
> > Have you confirmed that
> > 1. the genrated code is not miscompiled after the patch
> 
> The only change in the static build is that different registers are  
> used, and the only substantial difference between patched shared and  
> static is that shared doesn't unroll the loop.
> 
> > 2. svn blame/log why its "D" and not "r" ? i faintly remember this was
> >   like that because of some gcc issue
> 
> After some searching, all I could find was r1407, which changed mpeg4  
> qpel. I guess h.264 and cavs just copied from that since I can't find  
> anything on the mailing list mentioning this (and I can't find the old  
> archives from 2003?) But I'd expect that there's plenty of other  
> inline asm in ffmpeg that would be affected by whatever the bug was.  
> Personally I'd like going back to all "r" since the named registers  
> assume Linux's calling convention and Mac OS X uses a different order.
> 
> > 3. checked that it still works on other gccs? especially 2.95/3.4/4
> 
> I couldn't get gcc 2.95 compiled on my linux install, but 3.4, 4.2,  
> and 4.3 work.

ok, then patch ok

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The worst form of inequality is to try to make unequal things equal.
-- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20081216/99930f68/attachment.pgp>



More information about the ffmpeg-devel mailing list