diff --git mesa-clean/include/drm-uapi/drm.h mesa-workdir/include/drm-uapi/drm.h index 4e4f7c2..2e4d3e2 100644 --- mesa-clean/include/drm-uapi/drm.h +++ mesa-workdir/include/drm-uapi/drm.h @@ -44,7 +44,7 @@ typedef unsigned int drm_handle_t; #else /* One of the BSDs */ #include -#include +//#include #include typedef int8_t __s8; typedef uint8_t __u8; diff --git mesa-clean/meson.build mesa-workdir/meson.build index 9fb4160..1a1a827 100644 --- mesa-clean/meson.build +++ mesa-workdir/meson.build @@ -1040,7 +1040,7 @@ if cc.has_function('fmemopen') endif # TODO: this is very incomplete -if ['linux', 'cygwin', 'gnu', 'freebsd', 'gnu/kfreebsd', 'haiku', 'android', 'managarm'].contains(host_machine.system()) +if ['linux', 'cygwin', 'gnu', 'freebsd', 'gnu/kfreebsd', 'haiku', 'android', 'managarm', 'astral'].contains(host_machine.system()) pre_args += '-D_GNU_SOURCE' elif host_machine.system() == 'sunos' pre_args += '-D__EXTENSIONS__' diff --git mesa-clean/src/gallium/drivers/llvmpipe/lp_screen.c mesa-workdir/src/gallium/drivers/llvmpipe/lp_screen.c index 7daa531..6b6dd7b 100644 --- mesa-clean/src/gallium/drivers/llvmpipe/lp_screen.c +++ mesa-workdir/src/gallium/drivers/llvmpipe/lp_screen.c @@ -128,7 +128,7 @@ llvmpipe_get_param(struct pipe_screen *screen, enum pipe_cap param) #endif switch (param) { -#ifdef HAVE_LINUX_UDMABUF_H +#if defined(HAVE_LINUX_UDMABUF_H) && defined(__linux__) case PIPE_CAP_DMABUF: if (lscreen->udmabuf_fd != -1) return DRM_PRIME_CAP_IMPORT | DRM_PRIME_CAP_EXPORT; @@ -1173,7 +1173,7 @@ llvmpipe_create_screen(struct sw_winsys *winsys) screen->num_threads); screen->num_threads = MIN2(screen->num_threads, LP_MAX_THREADS); -#ifdef HAVE_LINUX_UDMABUF_H +#if defined(HAVE_LINUX_UDMABUF_H) && defined(__linux__) screen->udmabuf_fd = open("/dev/udmabuf", O_RDWR); #endif diff --git mesa-clean/src/gallium/drivers/llvmpipe/lp_texture.c mesa-workdir/src/gallium/drivers/llvmpipe/lp_texture.c index 2aab5bf..e8f9d69 100644 --- mesa-clean/src/gallium/drivers/llvmpipe/lp_texture.c +++ mesa-workdir/src/gallium/drivers/llvmpipe/lp_texture.c @@ -63,6 +63,10 @@ #include "drm-uapi/drm_fourcc.h" #endif +#ifdef __astral__ +#undef HAVE_LINUX_UDMABUF_H +#endif + #ifdef HAVE_LINUX_UDMABUF_H #include #include diff --git mesa-clean/src/util/detect_os.h mesa-workdir/src/util/detect_os.h index 86286df..f3a5106 100644 --- mesa-clean/src/util/detect_os.h +++ mesa-workdir/src/util/detect_os.h @@ -91,6 +91,11 @@ #define DETECT_OS_POSIX 1 #endif +#if defined(__astral__) +#define DETECT_OS_ASTRAL 1 +#define DETECT_OS_POSIX 1 +#endif + /* * Make sure DETECT_OS_* are always defined, so that they can be used with #if diff --git mesa-clean/src/util/os_misc.c mesa-workdir/src/util/os_misc.c index f529318..a61cd93 100644 --- mesa-clean/src/util/os_misc.c +++ mesa-workdir/src/util/os_misc.c @@ -57,7 +57,7 @@ # include # include # include -#elif DETECT_OS_LINUX || DETECT_OS_CYGWIN || DETECT_OS_SOLARIS || DETECT_OS_HURD || DETECT_OS_MANAGARM +#elif DETECT_OS_LINUX || DETECT_OS_CYGWIN || DETECT_OS_SOLARIS || DETECT_OS_HURD || DETECT_OS_MANAGARM || DETECT_OS_ASTRAL # include #elif DETECT_OS_OPENBSD || DETECT_OS_FREEBSD # include @@ -274,7 +274,7 @@ exit_mutex: bool os_get_total_physical_memory(uint64_t *size) { -#if DETECT_OS_LINUX || DETECT_OS_CYGWIN || DETECT_OS_SOLARIS || DETECT_OS_HURD || DETECT_OS_MANAGARM +#if DETECT_OS_LINUX || DETECT_OS_CYGWIN || DETECT_OS_SOLARIS || DETECT_OS_HURD || DETECT_OS_MANAGARM || DETECT_OS_ASTRAL const long phys_pages = sysconf(_SC_PHYS_PAGES); const long page_size = sysconf(_SC_PAGE_SIZE); diff --git mesa-clean/src/util/os_time.c mesa-workdir/src/util/os_time.c index da8ad7a..001cc3a 100644 --- mesa-clean/src/util/os_time.c +++ mesa-workdir/src/util/os_time.c @@ -65,7 +65,7 @@ os_time_get_nano(void) void os_time_sleep(int64_t usecs) { -#if DETECT_OS_LINUX || DETECT_OS_MANAGARM || DETECT_OS_FUCHSIA +#if DETECT_OS_LINUX || DETECT_OS_MANAGARM || DETECT_OS_FUCHSIA || DETECT_OS_ASTRAL struct timespec time; time.tv_sec = usecs / 1000000; time.tv_nsec = (usecs % 1000000) * 1000; diff --git mesa-clean/src/util/u_thread.c mesa-workdir/src/util/u_thread.c index 255c5f6..a532705 100644 --- mesa-clean/src/util/u_thread.c +++ mesa-workdir/src/util/u_thread.c @@ -75,7 +75,7 @@ int u_thread_create(thrd_t *thrd, int (*routine)(void *), void *param) void u_thread_setname( const char *name ) { #if defined(HAVE_PTHREAD) -#if DETECT_OS_LINUX || DETECT_OS_CYGWIN || DETECT_OS_SOLARIS || defined(__GLIBC__) || DETECT_OS_MANAGARM || DETECT_OS_FUCHSIA +#if DETECT_OS_LINUX || DETECT_OS_CYGWIN || DETECT_OS_SOLARIS || defined(__GLIBC__) || DETECT_OS_MANAGARM || DETECT_OS_FUCHSIA || DETECT_OS_ASTRAL int ret = pthread_setname_np(pthread_self(), name); if (ret == ERANGE) { char buf[16];