[Mesa-dev] [PATCH] meson: don't use compiler.has_header
Eric Engestrom
eric.engestrom at imgtec.com
Tue Mar 13 14:36:42 UTC 2018
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 <mattst88 at gmail.com>
> Signed-off-by: Dylan Baker <dylan.c.baker at intel.com>
Reviewed-by: Eric Engestrom <eric.engestrom at 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_ at 0@'.format(h.to_upper().underscorify())
> endif
> endforeach
> --
> 2.16.2
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list