[Mesa-dev] [PATCH] travis: manually generate sys/syscall.h

Eric Engestrom eric.engestrom at intel.com
Tue Jul 24 10:29:32 UTC 2018


On Thursday, 2018-07-19 15:33:33 +0300, Andres Gomez wrote:
> Until now, the needed bits were wrongly included in linux/memfd.h
> 
> Since Travis' sys/syscall.h doesn't provide the SYS_memfd_create, we

Isn't this a matter of libc version? Isn't the right fix to upgrade the
libc in the container instead of faking its files?

And if the libc required is quite recent, what we need is a fallback in
the code to support older libc (possibly with some features missing),
which this build failure rightly reports.

> generate that header manually, including the needed bits to avoid
> compilation problems, as the ones observed after:
> 3228335b55c ("intel: aubinator: handle GGTT mappings")
> 
> Fixes: 7e2af374742 ("travis: split the make target to three separate ones")
> 
> Cc: Emil Velikov <emil.velikov at collabora.com>
> Cc: Juan A. Suarez Romero <jasuarez at igalia.com>
> Cc: Dylan Baker <dylan.c.baker at intel.com>
> Cc: Eric Engestrom <eric.engestrom at intel.com>
> Signed-off-by: Andres Gomez <agomez at igalia.com>
> ---
>  .travis.yml | 27 ++++++++++++++++++++++++---
>  1 file changed, 24 insertions(+), 3 deletions(-)
> 
> diff --git a/.travis.yml b/.travis.yml
> index 012cc9139e0..8b1730bec69 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -584,13 +584,34 @@ install:
>             "#ifndef _LINUX_MEMFD_H" \
>             "#define _LINUX_MEMFD_H" \
>             "" \
> -           "#define __NR_memfd_create 319" \
> -           "#define SYS_memfd_create __NR_memfd_create" \
> -           "" \
>             "#define MFD_CLOEXEC             0x0001U" \
>             "#define MFD_ALLOW_SEALING       0x0002U" \
>             "" \
>             "#endif /* _LINUX_MEMFD_H */" > linux/memfd.h
> +
> +      # Generate this header, including the missing SYS_memfd_create
> +      # macro, which is not provided by the header in the Travis
> +      # instance
> +      mkdir -p sys
> +      printf "%s\n" \
> +           "#ifndef _SYSCALL_H" \
> +           "#define _SYSCALL_H      1" \
> +           "" \
> +           "#include <asm/unistd.h>" \
> +           "" \
> +           "#ifndef _LIBC" \
> +           "# include <bits/syscall.h>" \
> +           "#endif" \
> +           "" \
> +           "#ifndef __NR_memfd_create" \
> +           "# define __NR_memfd_create 319 /* Taken from <asm/unistd_64.h> */" \
> +           "#endif" \
> +           "" \
> +           "#ifndef SYS_memfd_create" \
> +           "# define SYS_memfd_create __NR_memfd_create" \
> +           "#endif" \
> +           "" \
> +           "#endif" > sys/syscall.h
>      fi
>  
>  script:
> -- 
> 2.18.0
> 
> _______________________________________________
> 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