[Intel-gfx] [PATCH i-g-t] igt: Fix detection of missing flex

Petri Latvala petri.latvala at intel.com
Tue May 30 11:59:28 UTC 2017


On Fri, May 26, 2017 at 12:11:04PM +0100, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> 
> AM_PROG_FLEX macro will set the LEX variable using the missing
> script when the flex is not present. This will confuse the
> configure.ac check, which expects the AC_PROG_FLEX behaviour,
> and will so fail to detect the missing flex:
> 
> 	AS_IF([test x"$LEX" != "x:" -a x"$YACC" != xyacc],
> 		[enable_assembler=yes],
> 		[enable_assembler=no])
> 
> This is because AM_PROG_LEX sets the LEX variable to
> "${SHELL} /home/sc/intel-gpu-tools/build-aux/missing flex",
> while AC_PROG_LEX would set it to ":".


Good catch!


> 
> If for some reason we really need to keep AM_PROG_LEX,
> alternative fix could be something like this placed before
> the above AS_IF check:
> 
> 	AC_MSG_CHECKING([checking for working flex])
> 	if ! eval "$LEX --version >/dev/null 2>&1"; then
> 		AC_MSG_RESULT([failed])
> 		LEX=:
> 	else
> 		AC_MSG_RESULT([pass])
> 	fi
> 
> Note the evil eval needed to recursively expand variables.


As far as I can tell, A*_PROG_LEX is only used to be able to select
whether to build the assembler. In other words, we don't need to
AM_PROG_LEX behaviour.

There's still a bug left though: If flex is not found, but lex is,
AC_PROG_LEX sets $LEX to 'lex', but assembler/Makefile.am hardcodes
'flex -i' anyway if the assembler is enabled. That still happens
whether AM_ or AC_ is used so this patch is still an improvement.


I would also like to note that the ratio of
characters-in-commit-message to characters-changed-in-code is quite
the winner. :P



Reviewed-by: Petri Latvala <petri.latvala at intel.com>




> 
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> ---
>  configure.ac | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/configure.ac b/configure.ac
> index 5342e33c8293..82857a8325b1 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -40,7 +40,7 @@ AM_INIT_AUTOMAKE([1.12 foreign subdir-objects dist-bzip2])
>  AM_PATH_PYTHON([3],, [:])
>  
>  AC_PROG_CC
> -AM_PROG_LEX
> +AC_PROG_LEX
>  AC_PROG_YACC
>  
>  # check for gtk-doc
> -- 
> 2.9.4
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx


More information about the Intel-gfx mailing list