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

Ganesh Ajjanagadde gajjanagadde at gmail.com
Thu Sep 17 00:13:16 CEST 2015

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 ++++++
 1 file changed, 6 insertions(+)

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
     # MinGW headers can be installed on Cygwin, so check for newlib first.
     elif check_${pfx}cpp_condition newlib.h "defined _NEWLIB_VERSION"; then
         eval ${pfx}libc_type=newlib

More information about the ffmpeg-devel mailing list