On Mon, Sep 10, 2012 at 2:08 PM, Måns Rullgård <[email protected]> wrote:

> Diego Biurrun <[email protected]> writes:
>
> > On Sat, Sep 08, 2012 at 03:37:18PM +0300, Martin Storsjö wrote:
> >> On Sat, 8 Sep 2012, Måns Rullgård wrote:
> >> >Hendrik Leppkes <[email protected]> writes:
> >> >>On Sat, Sep 8, 2012 at 1:40 PM, Martin Storsjö <[email protected]>
> wrote:
> >> >>>On Sat, 8 Sep 2012, Måns Rullgård wrote:
> >> >>> Hendrik Leppkes <[email protected]> writes:
> >> >>>> On Sat, Sep 8, 2012 at 12:09 PM, Ronald S. Bultje <
> [email protected]
> >> >>>>>>wrote:
> >> >>>>>> This sounds like the wrong fix tbh. The first chunk looks OK but
> >> >>>>>>wouldn't other systems, eg old GCC versions, be similarly
> affected?
> >> >>>>>>Shouldn't the true fix live elsewhere, ie fix the log2() check?
> >> >>>>>>
> >> >>>>>The log2 check is fine in theory. The linker somewhere finds a log2
> >> >>>>>function to link in, but without a function declaration in the
> header.
> >> >>>>
> >> >>>>Find out where that log2 is coming from and what it really is.
> >> >>>
> >> >>>It seems that the log2 is present in the static libc that MSVC
> normally
> >> >>>uses (but not in the dynamically loaded one), and the headers don't
> contain
> >> >>>any declaration of it.
> >> >>>
> >> >>And only in the 64-bit version. How odd.
> >> >>
> >> >>Still, something goes wrong when it trys to use it, causing fate to
> fail.
> >> >
> >> >If you have an implicit declaration for it returning int, it can't
> >> >possibly work.
> >>
> >> It seems to work fine if a manual declaration of the function
> >> (double log2(double);) is added.
> >
> > So how are we going to resolve this?
>
> I see two simple solutions:
>
> 1. Add a declaration for log2() in a suitable place.  This is slightly
>    evil in that it uses an undocumented function.  Then again, that
>    appears to be expected behaviour on Windows.
>

Considering its only available in one of the C libraries (static 64-bit),
and not in the others (static 32-bit, or shared), i dunno if its such a
good solution to try to use an undocumented function, which isn't even
consistent amongst the C libraries.


>
> 2. Add log2_deps="!msvcrt" somewhere in configure.  This would wrongly
>    disable the function if they were ever to add it for real.
>

So that leaves this. For the same reasons as above, its doubtful it'll be
added, because their headers have to support much older dynamically linked
C libraries, which simply don't include it today.
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to