On Monday, 2018-03-12 11:23:23 -0700, Dylan Baker wrote: > 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 <matts...@gmail.com> > Signed-off-by: Dylan Baker <dylan.c.ba...@intel.com>
Reviewed-by: Eric Engestrom <eric.engest...@imgtec.com> I'll include the same change in a libdrm patch I'll send in a minute. > --- > meson.build | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > 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 > -- > 2.16.2 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev