Mesa (master): configure: avoid testing for negative compiler options

Dylan Baker dbaker at kemper.freedesktop.org
Sat Dec 2 01:14:32 UTC 2017


Module: Mesa
Branch: master
Commit: d93fabb013279d06ab025448afce1e5f665880ee
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d93fabb013279d06ab025448afce1e5f665880ee

Author: Marc Dietrich <marvin24 at gmx.de>
Date:   Wed Nov 29 22:25:05 2017 +0100

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 <mattst88 at gmail.com>
Reviewed-by: Dylan Baker <dylan at pnwbakers.com>
Signed-off-by: Marc Dietrich <marvin24 at gmx.de>

---

 configure.ac |  6 ++++--
 meson.build  | 23 +++++++++++++++--------
 2 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/configure.ac b/configure.ac
index f378e54b85..475155a96e 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 65c6b98609..f227bc3e01 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




More information about the mesa-commit mailing list