Dave Yeo <[email protected]> writes:

> On 05/25/11 12:29 pm, Diego Biurrun wrote:
>> On Thu, May 12, 2011 at 07:02:01PM -0700, Dave Yeo wrote:
>>> On 05/12/11 08:30 am, Diego Biurrun wrote:
>>>>
>>>> Now on to specific FATE configurations and their flags and hacks:
>>> [...]
>>>> * os/2
>>>>
>>>> This configuration sets '-D_GNU_SOURCE', which is suspicious.
>>>> I'd like to see what happens now if it is removed.
> [...]
>>> CC  libavcodec/aaccoder.o
>>> /usr/src/ffmpeg.libav/libavcodec/aaccoder.c: In function 'coef2minsf':
>>> /usr/src/ffmpeg.libav/libavcodec/aaccoder.c:522:5: error: implicit
>>> declaration of function 'log2f'
> [...]
>>> make: *** [libavcodec/aaccoder.o] Error 1
>>>
>>> This really should be caught in configure where check_mathfunc log2 and
>>> log2f generate implicit declaration of function warnings. One fix would
>>> be enabling -Werror=implicit-function-declaration earlier in configure.
>>
>> That fix you suggest is less trivial than it may sound.
>
> What about the attached? OS/2 (actually eCS) is now shipping with GCC
> 4.5.2 which is plenty new enough to support
> -Werror=implicit-function-declaration and it can be removed if and
> when the headers are fixed.
> I've filed http://svn.netlabs.org/libc/ticket/243 about this.

The problem here is that the system math.h is missing some declarations,
even though the functions are actually available in libm or as gcc
builtins, allowing the configure tests to pass.  Later on, we add
-Werror=implicit-function-declaration, causing the build to fail when
these functions are used.

Adding -Werror=implicit-function-declaration earlier would make the
configure tests fail needlessly (the functions _are_ usable) and trigger
the replacement functions in libavutil/libm.h.  If this happens, the
compiler either errors or warns about incompatible declarations of
builtin functions (ours are static inline), which is not really much
better.

>> Can you paste config.log and config.h somewhere?  And maybe upload a
>> tarball of system headers?
>
> Sure, they should be here, http://www.box.net/shared/rm86u32ey0. Note
> that there are a couple of headers that I've added such as pthread.h.
> The headers are also available at
> http://svn.netlabs.org/libc/browser/branches/libc-0.6/src/emx/include.

This clearly needs _GNU_SOURCE for those functions to be visible.  That
means we should add it in the OS/2 section of configure, weird as it may
seem.

-- 
Måns Rullgård
[email protected]
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to