[FFmpeg-devel] [PATCHv2] configure: add -D_DEFAULT_SOURCE to silence -Wcpp

Hendrik Leppkes h.leppkes at gmail.com
Sat Sep 19 20:13:16 CEST 2015


On Sat, Sep 19, 2015 at 6:07 PM, Ganesh Ajjanagadde <gajjanag at mit.edu> wrote:
> On Thu, Sep 17, 2015 at 6:45 AM, Ganesh Ajjanagadde <gajjanag at mit.edu> wrote:
>> On Thu, Sep 17, 2015 at 4:54 AM, Clément Bœsch <u at pkh.me> wrote:
>>> On Wed, Sep 16, 2015 at 06:55:39PM -0400, Ganesh Ajjanagadde wrote:
>>>> Glibc 2.20 onwards generates a deprecation warning for usage of _BSD_SOURCE and _SVID_SOURCE.
>>>> The solution from man feature_test_macros is to define both _DEFAULT_SOURCE and the old macros.
>>>> This change is done in configure while testing for Glibc. Doing it in source code
>>>> would require __UCLIBC__ checks, etc since uclibc also defines __GLIBC__ and __GLIBC_MINOR__,
>>>> so placing it in configure avoids the repeated checks.
>>>>
>>>> Signed-off-by: Ganesh Ajjanagadde <gajjanagadde at gmail.com>
>>>> ---
>>>>  configure                | 6 ++++++
>>>>  libavformat/os_support.c | 1 -
>>>>  2 files changed, 6 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/configure b/configure
>>>> index cd6f629..0cd0a6c 100755
>>>> --- a/configure
>>>> +++ b/configure
>>>> @@ -4520,6 +4520,12 @@ probe_libc(){
>>>>      elif check_${pfx}cpp_condition features.h "defined __GLIBC__"; then
>>>>          eval ${pfx}libc_type=glibc
>>>>          add_${pfx}cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600
>>>> +        # define _DEFAULT_SOURCE for glibc 2.20 onwards to silence deprecation
>>>> +        # warnings for _BSD_SOURCE and _SVID_SOURCE.
>>>> +        if check_${pfx}cpp_condition features.h "(__GLIBC__ == 2 && __GLIBC_MINOR__ >= 20) \
>>>> +            || (__GLIBC__ > 2)"; then
>>>> +            add_${pfx}cppflags -D_DEFAULT_SOURCE
>>>> +        fi
>>>
>>> Is this adding _DEFAULT_SOURCE to every compiled file while it was scope
>>> to a standalone source file before?
>>
>> Don't know exactly what you mean, but try e.g strings on any of these
>> objects. There is no "DEFAULT_SOURCE", "BSD_SOURCE", or any such thing
>> suggesting they are optimized out. Furthermore, a du on the libav*
>> does not reveal any increase in size.
>
> ping

I agree with Clément, adding a global define to every single file
while it was contained to a handful of select files before seems less
than ideal.

- Hendrik


More information about the ffmpeg-devel mailing list