summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 5236de6)
raw | patch | inline | side by side (parent: 5236de6)
author | Dylan Baker <dylan@pnwbakers.com> | |
Mon, 12 Mar 2018 17:10:51 +0000 (10:10 -0700) | ||
committer | Dylan Baker <dylan@pnwbakers.com> | |
Tue, 13 Mar 2018 18:30:51 +0000 (11:30 -0700) |
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
CC: Matt Turner <mattst88@gmail.com>
Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
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
CC: Matt Turner <mattst88@gmail.com>
Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
meson.build | patch | blob | history |
diff --git a/meson.build b/meson.build
index df6f2bd2568dfd2ca27ffde1dba0e56c69aa4efc..a0c79e308300c60ffe8d6e8c920c6fd77710851c 100644 (file)
--- a/meson.build
+++ b/meson.build
dep_rt = []
endif
dep_m = cc.find_library('m', required : false)
-if cc.has_header('sys/sysctl.h')
+if cc.compiles('#include <sys/sysctl.h>', name : 'sys/sysctl.h works')
config.set10('HAVE_SYS_SYSCTL_H', true)
endif
-if cc.has_header('sys/select.h')
+if cc.compiles('#include <sys/select.h>', name : 'sys/select.h works')
config.set10('HAVE_SYS_SELECT_H', true)
endif
if cc.has_header_symbol('sys/sysmacros.h', 'major')