aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDiego Biurrun <diego@biurrun.de>2013-10-31 20:14:37 +0100
committerDiego Biurrun <diego@biurrun.de>2013-11-01 22:05:20 +0100
commit056fd4fe65e70b4dbca97bcf7faf8b7ce3df993f (patch)
treeecbdd68237ec9e475dd7399cba37eb0870d31a83
parent23157d72b565e0228fec97f1eb059d4f8021a260 (diff)
downloadffmpeg-056fd4fe65e70b4dbca97bcf7faf8b7ce3df993f.tar.gz
configure: Properly check for availability of -Wno-foo warning flags
For some weird reason gcc does not check if the -Wno disabling variants of warning flags match existing warning flags. Instead it swallows them silently. That is, unless other warning or error messages are generated, because then - for some even more bizarre reason - a complaint about the unknown disable warning flag is issued along with the error or warning message. Thus to check for the availability of a warning disabling option, one needs to check for the enabling variant instead and then add the disabling variant to CFLAGS.
-rwxr-xr-xconfigure16
1 files changed, 11 insertions, 5 deletions
diff --git a/configure b/configure
index 549e04cdf2..88e705856d 100755
--- a/configure
+++ b/configure
@@ -3903,13 +3903,9 @@ enabled debug && add_cflags -g"$debuglevel" && add_asflags -g"$debuglevel"
# add some useful compiler flags if supported
check_cflags -Wdeclaration-after-statement
check_cflags -Wall
-check_cflags -Wno-parentheses
-check_cflags -Wno-switch
-check_cflags -Wno-format-zero-length
check_cflags -Wdisabled-optimization
check_cflags -Wpointer-arith
check_cflags -Wredundant-decls
-check_cflags -Wno-pointer-sign
check_cflags -Wcast-qual
check_cflags -Wwrite-strings
check_cflags -Wtype-limits
@@ -3918,6 +3914,17 @@ check_cflags -Wmissing-prototypes
check_cflags -Wstrict-prototypes
enabled extra_warnings && check_cflags -Winline
+check_disable_warning(){
+ warning_flag=-W${1#-Wno-}
+ test_cflags $warning_flag && add_cflags $1
+}
+
+check_disable_warning -Wno-parentheses
+check_disable_warning -Wno-switch
+check_disable_warning -Wno-format-zero-length
+check_disable_warning -Wno-pointer-sign
+enabled extra_warnings || check_disable_warning -Wno-maybe-uninitialized
+
# add some linker flags
check_ldflags -Wl,--warn-common
check_ldflags -Wl,-rpath-link=libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample
@@ -4008,7 +4015,6 @@ elif enabled gcc; then
check_cflags -Werror=return-type
check_cflags -Werror=declaration-after-statement
check_cflags -Werror=vla
- enabled extra_warnings || check_cflags -Wno-maybe-uninitialized
elif enabled llvm_gcc; then
check_cflags -mllvm -stack-alignment=16
elif enabled clang; then