summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDylan Baker <[email protected]>2018-03-12 11:19:52 -0700
committerDylan Baker <[email protected]>2018-03-13 11:41:10 -0700
commit8247a30838a74dcdd27cc2468bff8a3d8def640e (patch)
tree4f7bb06ea40bafad8de7d49dabffe71cd43ac794
parent8379bff6c4456f8a77041eee225dcd44e5e00a76 (diff)
meson: don't use compiler.has_header
Meson's compiler.has_header is completely useless, it only checks that a header exists, not whether it's usable. This creates problems if a header contains a conditional #error declaration, like so: > #if __x86_64__ > # error "Doesn't work with x86_64!" > #endif Compiler.has_header will return true in this case, even when compiling for x86_64. This is useless. Instead, we'll do a compile check so that any #error declarations will be treated as errors, and compilation will work. Fixes compilation on x32 architecture. Gentoo Bugzilla: https://bugs.gentoo.org/show_bug.cgi?id=649746 meson bug: https://github.com/mesonbuild/meson/issues/2246 Signed-off-by: Dylan Baker <[email protected]> Acked-by: Matt Turner <[email protected]> Reviewed-by: Eric Engestrom <[email protected]>
-rw-r--r--meson.build2
1 files changed, 1 insertions, 1 deletions
diff --git a/meson.build b/meson.build
index 3c63f384381..51b470253f5 100644
--- a/meson.build
+++ b/meson.build
@@ -912,7 +912,7 @@ elif cc.has_header_symbol('sys/mkdev.h', 'major')
endif
foreach h : ['xlocale.h', 'sys/sysctl.h', 'linux/futex.h']
- if cc.has_header(h)
+ if cc.compiles('#include <@0@>'.format(h), name : '@0@ works'.format(h))
pre_args += '-DHAVE_@0@'.format(h.to_upper().underscorify())
endif
endforeach