anv: Check if memfd_create is already defined.
authorVinson Lee <vlee@freedesktop.org>
Wed, 29 Nov 2017 07:16:58 +0000 (23:16 -0800)
committerVinson Lee <vlee@freedesktop.org>
Thu, 30 Nov 2017 09:36:46 +0000 (01:36 -0800)
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103909
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
configure.ac
meson.build
src/intel/vulkan/anv_allocator.c
src/intel/vulkan/anv_gem_stubs.c

index 1344c12884fbde2e2fe46f1cd927f45e4f4f8a1e..f378e54b857b29916a5d32b5cee1cf50136b381c 100644 (file)
@@ -849,6 +849,7 @@ AC_CHECK_HEADER([sys/sysctl.h], [DEFINES="$DEFINES -DHAVE_SYS_SYSCTL_H"])
 AC_CHECK_FUNC([strtof], [DEFINES="$DEFINES -DHAVE_STRTOF"])
 AC_CHECK_FUNC([mkostemp], [DEFINES="$DEFINES -DHAVE_MKOSTEMP"])
 AC_CHECK_FUNC([timespec_get], [DEFINES="$DEFINES -DHAVE_TIMESPEC_GET"])
+AC_CHECK_FUNC([memfd_create], [DEFINES="$DEFINES -DHAVE_MEMFD_CREATE"])
 
 AC_MSG_CHECKING([whether strtod has locale support])
 AC_LINK_IFELSE([AC_LANG_SOURCE([[
index e2ba3cb05245b3786ee8f6eb11a786553e927035..4a2e817f0fa45d53daa58b45d12f6f7966ab80c0 100644 (file)
@@ -617,7 +617,7 @@ foreach h : ['xlocale.h', 'sys/sysctl.h', 'linux/futex.h']
   endif
 endforeach
 
-foreach f : ['strtof', 'mkostemp', 'posix_memalign', 'timespec_get']
+foreach f : ['strtof', 'mkostemp', 'posix_memalign', 'timespec_get', 'memfd_create']
   if cc.has_function(f)
     pre_args += '-DHAVE_@0@'.format(f.to_upper())
   endif
index 8ed32b3c6731f5ecb919fbae2fc3eb3b1f879ced..33bd3c68c55f69e061a03eab05345bd5b75162c7 100644 (file)
@@ -109,11 +109,13 @@ struct anv_mmap_cleanup {
 
 #define ANV_MMAP_CLEANUP_INIT ((struct anv_mmap_cleanup){0})
 
+#ifndef HAVE_MEMFD_CREATE
 static inline int
 memfd_create(const char *name, unsigned int flags)
 {
    return syscall(SYS_memfd_create, name, flags);
 }
+#endif
 
 static inline uint32_t
 ilog2_round_up(uint32_t value)
index 02527b5fcd8d4d87ae29cd07aae6ac7ec1dbabae..26eb5c8a610b9c90ecb748a14aebdc84f4341b4d 100644 (file)
 
 #include "anv_private.h"
 
+#ifndef HAVE_MEMFD_CREATE
 static inline int
 memfd_create(const char *name, unsigned int flags)
 {
    return syscall(SYS_memfd_create, name, flags);
 }
+#endif
 
 uint32_t
 anv_gem_create(struct anv_device *device, uint64_t size)