[FFmpeg-devel] [PATCH] fix compilation in cygwin

Måns Rullgård mans
Tue Jan 12 15:06:45 CET 2010


Vitor Sessak <vitor1001 at gmail.com> writes:

> M?ns Rullg?rd wrote:
>> Vitor Sessak <vitor1001 at gmail.com> writes:
>>
>>> M?ns Rullg?rd wrote:
>>>> Michael Kostylev <michael.kostylev at gmail.com> writes:
>>>>
>>>>> On Sun Jan 10 21:55:50 2010
>>>>> Vitor Sessak wrote:
>>>>>
>>>>>>>> +#if !HAVE_EXP2F
>>>>>>>> +static av_always_inline av_const float exp2f(float x)
>>>>>>>> +{
>>>>>>>> +    return exp(x) * 0.693147180559945;
>>>>>>>> +}
>>>>>>>> +#endif /* HAVE_EXP2F */
>>>>>>> Same again.  exp2() should be preferred.
>>>>>> Let's hope that at least exp2() is supported...
>>>>> exp2() is missing in NetBSD and DragonFly.
>>>> We have a replacement for it, so it's OK.
>>> We have a replacement for log2(), but not for exp2().
>>>
>>> I'm slightly favorable of adding a replacement for exp2() (as
>>> attached) as we do for log2(), since we can get some speed gain in
>>> platforms where exp2() is supported and we'll eventually need exp2()
>>> sooner or later.
>>>
>>> [...]
>> Well, this caused things to break in new and interesting ways:
>> libavutil/internal.h:275: error: static declaration of 'exp2f'
>> follows non-static declaration
>> libavutil/internal.h:296: error: static declaration of 'log2f' follows non-static declaration
>> uClibc apparently has declarations for those functions, but no actual
>> implementations.  This is truly the week of idiots.
>
> BTW, wouldn't compilation fail if log2f() is a macro?

No.  The functions are required to be available as actual functions,
even if a macro is also defined.

> It looks to be the case for cygwin. I've wrote a quick patch to fix
> it.

SO FUCK THEM.  I'M TIRED OF THIS.

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



More information about the ffmpeg-devel mailing list