[FFmpeg-cvslog] r20101 - trunk/configure

Måns Rullgård mans
Wed Sep 30 21:49:55 CEST 2009


Reimar D?ffinger <Reimar.Doeffinger at gmx.de> writes:

> On Wed, Sep 30, 2009 at 07:46:14PM +0100, M?ns Rullg?rd wrote:
>> Reimar D?ffinger <Reimar.Doeffinger at gmx.de> writes:
>> 
>> > On Wed, Sep 30, 2009 at 06:55:32PM +0200, reimar wrote:
>> >> Author: reimar
>> >> Date: Wed Sep 30 18:55:32 2009
>> >> New Revision: 20101
>> >> 
>> >> Log:
>> >> Use a "b" constraint instead of ebx clobber to detect if EBX is available.
>> >> The test using clobber incorrectly indicates ebx to be available with the
>> >> default compilers on OpenBSD 4.5 and Haiku.
>> >
>> > Great, now I broken OSX 64 bit.
>> > This change makes them work both (and no, my original variant with =b
>> > does not work either for OSX).
>> > I'm not sure if it has something to do with -mdynamic-no-pic, but it all
>> > doesn't make much sense.
>> > Index: configure
>> > ===================================================================
>> > --- configure   (revision 20101)
>> > +++ configure   (working copy)
>> > @@ -2163,6 +2163,7 @@
>> >
>> >      # check whether EBX is available on x86
>> >      check_asm ebx_available '""::"b"(0)'
>> > +    enabled ebx_available && check_asm ebx_available '"":::"%ebx"'
>> >
>> >      # check whether more than 10 operands are supported
>> >      check_cc <<EOF && enable ten_operands
>> 
>> This will disable it everywhere, since nothing else ever enables it.
>
> No it doesn't, I sure tested it (well, I admit my testing is unreliable),
> What it does is if the first test has enabled it, it runs the second test
> and sets ebx_available to the result of the second test.

Sorry, I misread the patch.  Does it work with a simple && between the
commands instead?  It might need a trivial change to make check_asm
return the status of the test (I don't remember how it's written),
which in that case I think we should do.

>> What exactly is happening on OSX?  Did the original test work?
>
> Yes.
>
>> Assuming it did, maybe you can simply put back the ebx clobber in
>> addition to the "b" operand.
>
> Now _that_ will indeed disable it anywhere, I tested it for MPlayer
> quite some time ago. The compiler will try to allocate ebx twice
> then and fail (I admit I only tested on x86_64, at least there it
> will incorrectly disable).

Oh, so that's how gcc operates.  Don't do that then.

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



More information about the ffmpeg-cvslog mailing list