diff options
author | Marc Dietrich <[email protected]> | 2017-11-29 22:25:05 +0100 |
---|---|---|
committer | Dylan Baker <[email protected]> | 2017-12-01 17:09:42 -0800 |
commit | d93fabb013279d06ab025448afce1e5f665880ee (patch) | |
tree | 82e9f16e6e496585f7811fecf1bb92cf3af5788c | |
parent | 0ed952c7e9b811bc11dec64bd4bebcdf4222cc85 (diff) |
configure: avoid testing for negative compiler options
gcc seems to always accept unsupported negative compiler warning options:
echo "int i;" | gcc -c -xc -Wno-bob - # no error
echo "int i;" | gcc -c -xc -Walice - # unsupported compiler option
Inverting the options fixes the tests.
V2: fix options in meson build
Reviewed-by: Matt Turner <[email protected]>
Reviewed-by: Dylan Baker <[email protected]>
Signed-off-by: Marc Dietrich <[email protected]>
-rw-r--r-- | configure.ac | 6 | ||||
-rw-r--r-- | meson.build | 23 |
2 files changed, 19 insertions, 10 deletions
diff --git a/configure.ac b/configure.ac index f378e54b857..475155a96e4 100644 --- a/configure.ac +++ b/configure.ac @@ -394,8 +394,10 @@ esac AC_SUBST([VISIBILITY_CFLAGS]) AC_SUBST([VISIBILITY_CXXFLAGS]) -AX_CHECK_COMPILE_FLAG([-Wno-override-init], [WNO_OVERRIDE_INIT="$WNO_OVERRIDE_INIT -Wno-override-init"]) # gcc -AX_CHECK_COMPILE_FLAG([-Wno-initializer-overrides], [WNO_OVERRIDE_INIT="$WNO_OVERRIDE_INIT -Wno-initializer-overrides"]) # clang +dnl For some reason, the test for -Wno-foo always succeeds with gcc, even if the +dnl option is not supported. Hence, check for -Wfoo instead. +AX_CHECK_COMPILE_FLAG([-Woverride-init], [WNO_OVERRIDE_INIT="$WNO_OVERRIDE_INIT -Wno-override-init"]) # gcc +AX_CHECK_COMPILE_FLAG([-Winitializer-overrides], [WNO_OVERRIDE_INIT="$WNO_OVERRIDE_INIT -Wno-initializer-overrides"]) # clang AC_SUBST([WNO_OVERRIDE_INIT]) dnl diff --git a/meson.build b/meson.build index 65c6b98609e..f227bc3e018 100644 --- a/meson.build +++ b/meson.build @@ -503,11 +503,25 @@ endif cpp = meson.get_compiler('cpp') cpp_args = [] foreach a : ['-Wall', '-fno-math-errno', '-fno-trapping-math', - '-Qunused-arguments', '-Wno-non-virtual-dtor'] + '-Qunused-arguments'] if cpp.has_argument(a) cpp_args += a endif endforeach + +# For some reason, the test for -Wno-foo always succeeds with gcc, even if the +# option is not supported. Hence, check for -Wfoo instead. +if cpp.has_argument('-Wnon-virtual-dtor') + cpp_args += '-Wno-non-virtual-dtor' +endif + +no_override_init_args = [] +foreach a : ['override-init', 'initializer-overrides'] + if cc.has_argument('-W' + a) + no_override_init_args += '-Wno-' + a + endif +endforeach + cpp_vis_args = [] if cpp.has_argument('-fvisibility=hidden') cpp_vis_args += '-fvisibility=hidden' @@ -527,13 +541,6 @@ foreach a : ['-Werror=pointer-arith', '-Werror=vla'] endif endforeach -no_override_init_args = [] -foreach a : ['-Wno-override-init', '-Wno-initializer-overrides'] - if cc.has_argument(a) - no_override_init_args += a - endif -endforeach - if host_machine.cpu_family().startswith('x86') pre_args += '-DHAVE_SSE41' with_sse41 = true |