[PATCH libinput] meson: add a 'coverity' option to fix the build

Peter Hutterer peter.hutterer at who-t.net
Fri May 11 05:11:27 UTC 2018


Coverity screwed up something so we can't submit builds right now, the
compilation units all fail. math.h pulls in a _Float128 type that coverity
cannot handle. So as a workaround, add an option to the build to avoid this
and remove it when the next version of coverity hopefully fixes this.

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
Simplest solution to the compiler issue, there's probably a nicer version
but this one is easiest to add and rip out again when coverity plays nicely
again.

 meson.build       | 15 +++++++++++++++
 meson_options.txt |  4 ++++
 2 files changed, 19 insertions(+)

diff --git a/meson.build b/meson.build
index c2cd0a6f..8e5edb62 100644
--- a/meson.build
+++ b/meson.build
@@ -39,6 +39,21 @@ if cc.get_define('static_assert', prefix : prefix) == ''
 	config_h.set('static_assert(...)', '/* */')
 endif
 
+# Coverity breaks because it doesn't define _Float128 correctly, you'll end
+# up with a bunch of messages in the form:
+# "/usr/include/stdlib.h", line 133: error #20: identifier "_Float128" is
+#           undefined
+#   extern _Float128 strtof128 (const char *__restrict __nptr,
+#          ^
+# We don't use float128 ourselves, it gets pulled in from math.h or
+# something, so let's just define it as uint128 and move on.
+# Unfortunately we can't detect the coverity build at meson configure
+# time, we only know it fails at runtime. So make this an option instead, to
+# be removed when coverity fixes this again.
+if get_option('coverity')
+	config_h.set('_Float128', '__uint128_t')
+endif
+
 # Dependencies
 pkgconfig = import('pkgconfig')
 dep_udev = dependency('libudev')
diff --git a/meson_options.txt b/meson_options.txt
index 144f9160..280cf49f 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -18,3 +18,7 @@ option('documentation',
        type: 'boolean',
        value: true,
        description: 'Build the documentation [default=true]')
+option('coverity',
+       type: 'boolean',
+       value: false,
+       description: 'Enable coverity build fixes, see meson.build for details [default=false]')
-- 
2.14.3



More information about the wayland-devel mailing list