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
