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

Author: Dylan Baker <dy...@pnwbakers.com>
Date:   Mon Mar 12 11:19:52 2018 -0700

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 <dylan.c.ba...@intel.com>
Acked-by: Matt Turner <matts...@gmail.com>
Reviewed-by: Eric Engestrom <eric.engest...@imgtec.com>

---

 meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meson.build b/meson.build
index 3c63f38438..51b470253f 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

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to