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.
This commit is contained in:
parent
23157d72b5
commit
056fd4fe65
16
configure
vendored
16
configure
vendored
@ -3903,13 +3903,9 @@ enabled debug && add_cflags -g"$debuglevel" && add_asflags -g"$debuglevel"
|
|||||||
# add some useful compiler flags if supported
|
# add some useful compiler flags if supported
|
||||||
check_cflags -Wdeclaration-after-statement
|
check_cflags -Wdeclaration-after-statement
|
||||||
check_cflags -Wall
|
check_cflags -Wall
|
||||||
check_cflags -Wno-parentheses
|
|
||||||
check_cflags -Wno-switch
|
|
||||||
check_cflags -Wno-format-zero-length
|
|
||||||
check_cflags -Wdisabled-optimization
|
check_cflags -Wdisabled-optimization
|
||||||
check_cflags -Wpointer-arith
|
check_cflags -Wpointer-arith
|
||||||
check_cflags -Wredundant-decls
|
check_cflags -Wredundant-decls
|
||||||
check_cflags -Wno-pointer-sign
|
|
||||||
check_cflags -Wcast-qual
|
check_cflags -Wcast-qual
|
||||||
check_cflags -Wwrite-strings
|
check_cflags -Wwrite-strings
|
||||||
check_cflags -Wtype-limits
|
check_cflags -Wtype-limits
|
||||||
@ -3918,6 +3914,17 @@ check_cflags -Wmissing-prototypes
|
|||||||
check_cflags -Wstrict-prototypes
|
check_cflags -Wstrict-prototypes
|
||||||
enabled extra_warnings && check_cflags -Winline
|
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
|
# add some linker flags
|
||||||
check_ldflags -Wl,--warn-common
|
check_ldflags -Wl,--warn-common
|
||||||
check_ldflags -Wl,-rpath-link=libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample
|
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=return-type
|
||||||
check_cflags -Werror=declaration-after-statement
|
check_cflags -Werror=declaration-after-statement
|
||||||
check_cflags -Werror=vla
|
check_cflags -Werror=vla
|
||||||
enabled extra_warnings || check_cflags -Wno-maybe-uninitialized
|
|
||||||
elif enabled llvm_gcc; then
|
elif enabled llvm_gcc; then
|
||||||
check_cflags -mllvm -stack-alignment=16
|
check_cflags -mllvm -stack-alignment=16
|
||||||
elif enabled clang; then
|
elif enabled clang; then
|
||||||
|
Loading…
x
Reference in New Issue
Block a user