drisw: move build logic to build systems
authorEric Engestrom <eric.engestrom@intel.com>
Fri, 23 Nov 2018 17:04:25 +0000 (17:04 +0000)
committerEric Engestrom <eric@engestrom.ch>
Fri, 21 Jun 2019 11:35:39 +0000 (11:35 +0000)
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Android.common.mk
meson.build
scons/gallium.py
src/gallium/winsys/sw/dri/dri_sw_winsys.c

index 36d97c52dd1d77d21c5f0a4199f955bd82ba1585..327f13f5a38047300f7431bd0f4d0cef1b2f1ded 100644 (file)
@@ -98,6 +98,11 @@ ifeq ($(filter 5 6 7 8 9, $(MESA_ANDROID_MAJOR_VERSION)),)
 LOCAL_CFLAGS += -DHAVE_TIMESPEC_GET
 endif
 
+# Android's libc began supporting shm in Oreo
+ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo true),true)
+LOCAL_CFLAGS += -DHAVE_SYS_SHM_H
+endif
+
 ifeq ($(strip $(MESA_ENABLE_ASM)),true)
 ifeq ($(TARGET_ARCH),x86)
 LOCAL_CFLAGS += \
index 28689857dc39995464da069fdf0c98e1b00b32a4..d8a48bd69949d6ce9b691eaad1cda143d4bb03a5 100644 (file)
@@ -1036,7 +1036,7 @@ elif cc.has_header_symbol('sys/mkdev.h', 'major')
   pre_args += '-DMAJOR_IN_MKDEV'
 endif
 
-foreach h : ['xlocale.h', 'sys/sysctl.h', 'linux/futex.h', 'endian.h', 'dlfcn.h', 'execinfo.h']
+foreach h : ['xlocale.h', 'sys/sysctl.h', 'linux/futex.h', 'endian.h', 'dlfcn.h', 'execinfo.h', 'sys/shm.h']
   if cc.compiles('#include <@0@>'.format(h), name : '@0@'.format(h))
     pre_args += '-DHAVE_@0@'.format(h.to_upper().underscorify())
   endif
index 61bbeb2399fbf1cd4694b12938455587b764ef6e..c2713992b36956d5ad67d90bcd1775c1a825ce51 100755 (executable)
@@ -371,6 +371,9 @@ def generate(env):
         if check_functions(env, ['timespec_get']):
             cppdefines += ['HAVE_TIMESPEC_GET']
 
+        if check_header(env, 'sys/shm.h'):
+            cppdefines += ['HAVE_SYS_SHM_H']
+
     if platform == 'windows':
         cppdefines += [
             'WIN32',
index 3273813bf50e4e82cbaf158a4857bdac721484ac..eacee295ee1683a24c2b34de6a75454a09b630ec 100644 (file)
@@ -26,9 +26,7 @@
  *
  **************************************************************************/
 
-#if !defined(ANDROID) || ANDROID_API_LEVEL >= 26
-/* Android's libc began supporting shm in Oreo */
-#define HAVE_SHM
+#ifdef HAVE_SYS_SHM_H
 #include <sys/ipc.h>
 #include <sys/shm.h>
 #endif
@@ -88,7 +86,7 @@ dri_sw_is_displaytarget_format_supported( struct sw_winsys *ws,
    return TRUE;
 }
 
-#ifdef HAVE_SHM
+#ifdef HAVE_SYS_SHM_H
 static char *
 alloc_shm(struct dri_sw_displaytarget *dri_sw_dt, unsigned size)
 {
@@ -139,7 +137,7 @@ dri_sw_displaytarget_create(struct sw_winsys *winsys,
 
    dri_sw_dt->shmid = -1;
 
-#ifdef HAVE_SHM
+#ifdef HAVE_SYS_SHM_H
    if (ws->lf->put_image_shm)
       dri_sw_dt->data = alloc_shm(dri_sw_dt, size);
 #endif
@@ -166,7 +164,7 @@ dri_sw_displaytarget_destroy(struct sw_winsys *ws,
    struct dri_sw_displaytarget *dri_sw_dt = dri_sw_displaytarget(dt);
 
    if (dri_sw_dt->shmid >= 0) {
-#ifdef HAVE_SHM
+#ifdef HAVE_SYS_SHM_H
       shmdt(dri_sw_dt->data);
       shmctl(dri_sw_dt->shmid, IPC_RMID, 0);
 #endif