diff options
author | Diego Biurrun <diego@biurrun.de> | 2013-10-31 23:14:37 +0400 |
---|---|---|
committer | Diego Biurrun <diego@biurrun.de> | 2013-11-02 01:05:20 +0400 |
commit | 056fd4fe65e70b4dbca97bcf7faf8b7ce3df993f (patch) | |
tree | ecbdd68237ec9e475dd7399cba37eb0870d31a83 | |
parent | 23157d72b565e0228fec97f1eb059d4f8021a260 (diff) |
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-x | configure | 16 |
1 files changed, 11 insertions, 5 deletions
@@ -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 |