diff --git a/patches/mesa/jinx-working-patch.patch b/patches/mesa/jinx-working-patch.patch new file mode 100644 index 00000000..a9b616f3 --- /dev/null +++ b/patches/mesa/jinx-working-patch.patch @@ -0,0 +1,127 @@ +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]; diff --git a/recipes/mesa b/recipes/mesa new file mode 100644 index 00000000..efacb35a --- /dev/null +++ b/recipes/mesa @@ -0,0 +1,20 @@ +name=mesa +revision=1 +from_source=mesa +imagedeps="gcc meson ninja python-mako python-setuptools python-yaml" +hostdeps="xgcc xbinutils pkgconfig automake autoconf util-macros libtool libstdc++-v3" +deps="mlibc llvm libexpat libxcb libx11 libxext zlib" + +build() { + cp -rp ${source_dir}/* . + mkdir -p build + cd build + + meson --cross-file ${base_dir}/util/crossfile --prefix=${prefix} --buildtype=release -Dplatforms=x11 -Dglx=xlib -Dgallium-drivers=swrast -Dvulkan-drivers= -Dllvm=enabled -Dvalgrind=disabled -Dlibunwind=disabled .. + ninja -j${parallelism} +} + +package() { + cd build + DESTDIR=${dest_dir} ninja install +} diff --git a/source-recipes/mesa b/source-recipes/mesa new file mode 100644 index 00000000..cf3fcb60 --- /dev/null +++ b/source-recipes/mesa @@ -0,0 +1,8 @@ +name=mesa +version=24.2.0 +source_method=tarball +tarball_url="https://archive.mesa3d.org/mesa-${version}.tar.xz" +tarball_sha512="a585c788801b5a341d356e44d958b148e6e14f6b3d7224e99a92faa2f004bf0cfc90103c5fdc651afb22f805c6f9dc594f9f3f5ecebcea36f6305b3a6ccb9294" +regenerate() { + true +}