Files
banan-os/ports/mesa/patches/0002-add-support-for-banan-os.patch
Bananymous e78fcf63b6 ports: Update mesa 25.0.7->26.1.4
This required bringing back osmesa code from 25.0.7 which was the last
version where it was supported. Seems to work fine though
2026-07-07 04:36:55 +03:00

173 lines
6.0 KiB
Diff

diff -ruN mesa-26.1.4/include/c99_alloca.h mesa-26.1.4-banan_os/include/c99_alloca.h
--- mesa-26.1.4/include/c99_alloca.h 2026-07-01 17:16:13.000000000 +0300
+++ mesa-26.1.4-banan_os/include/c99_alloca.h 2026-07-05 12:36:39.805616590 +0300
@@ -35,7 +35,7 @@
# define alloca _alloca
-#elif defined(__sun) || defined(__CYGWIN__)
+#elif defined(__sun) || defined(__CYGWIN__) || defined(__banan_os__)
# include <alloca.h>
diff -ruN mesa-26.1.4/include/drm-uapi/drm.h mesa-26.1.4-banan_os/include/drm-uapi/drm.h
--- mesa-26.1.4/include/drm-uapi/drm.h 2026-07-01 17:16:13.000000000 +0300
+++ mesa-26.1.4-banan_os/include/drm-uapi/drm.h 2026-07-05 12:36:39.797829778 +0300
@@ -47,6 +47,41 @@
#include <sys/types.h>
#if defined(__GNU__)
#include <sys/ioctl.h>
+#elif defined(__banan_os__)
+#define _IOC_NRBITS 8
+#define _IOC_TYPEBITS 8
+#define _IOC_SIZEBITS 14
+#define _IOC_DIRBITS 2
+
+#define _IOC_NRMASK ((1 << _IOC_NRBITS ) - 1)
+#define _IOC_TYPEMASK ((1 << _IOC_TYPEBITS) - 1)
+#define _IOC_SIZEMASK ((1 << _IOC_SIZEBITS) - 1)
+#define _IOC_DIRMASK ((1 << _IOC_DIRBITS ) - 1)
+
+#define _IOC_NRSHIFT 0
+#define _IOC_TYPESHIFT (_IOC_NRSHIFT + _IOC_NRBITS )
+#define _IOC_SIZESHIFT (_IOC_TYPESHIFT + _IOC_TYPEBITS)
+#define _IOC_DIRSHIFT (_IOC_SIZESHIFT + _IOC_SIZEBITS)
+
+#define _IOC_NONE 0U
+#define _IOC_WRITE 1U
+#define _IOC_READ 2U
+
+#define _IOC(dir, type, nr, size) \
+ (((dir) << _IOC_DIRSHIFT ) | \
+ ((size) << _IOC_SIZESHIFT) | \
+ ((type) << _IOC_TYPESHIFT) | \
+ ((nr) << _IOC_NRSHIFT ))
+
+#define _IO(type, nr) _IOC(_IOC_NONE, (type), (nr), 0)
+#define _IOR(type, nr, size) _IOC(_IOC_READ, (type), (nr), sizeof(size))
+#define _IOW(type, nr, size) _IOC(_IOC_WRITE, (type), (nr), sizeof(size))
+#define _IOWR(type, nr, size) _IOC(_IOC_READ|_IOC_WRITE, (type), (nr), sizeof(size))
+
+#define _IOC_DIR(nr) (((nr) >> _IOC_DIRSHIFT ) & _IOC_DIRMASK )
+#define _IOC_TYPE(nr) (((nr) >> _IOC_TYPESHIFT) & _IOC_TYPEMASK)
+#define _IOC_NR(nr) (((nr) >> _IOC_NRSHIFT ) & _IOC_NRMASK )
+#define _IOC_SIZE(nr) (((nr) >> _IOC_SIZESHIFT) & _IOC_SIZEMASK)
#else
#include <sys/ioccom.h>
#endif
diff -ruN mesa-26.1.4/src/util/detect_os.h mesa-26.1.4-banan_os/src/util/detect_os.h
--- mesa-26.1.4/src/util/detect_os.h 2026-07-01 17:16:13.000000000 +0300
+++ mesa-26.1.4-banan_os/src/util/detect_os.h 2026-07-05 12:36:41.342028269 +0300
@@ -91,6 +91,10 @@
#define DETECT_OS_POSIX 1
#endif
+#if defined(__banan_os__)
+#define DETECT_OS_BANANOS 1
+#define DETECT_OS_POSIX 1
+#endif
/*
* Make sure DETECT_OS_* are always defined, so that they can be used with #if
@@ -146,5 +150,8 @@
#ifndef DETECT_OS_MANAGARM
#define DETECT_OS_MANAGARM 0
#endif
+#ifndef DETECT_OS_BANANOS
+#define DETECT_OS_BANANOS 0
+#endif
#endif /* DETECT_OS_H */
diff -ruN mesa-26.1.4/src/util/os_misc.c mesa-26.1.4-banan_os/src/util/os_misc.c
--- mesa-26.1.4/src/util/os_misc.c 2026-07-01 17:16:13.000000000 +0300
+++ mesa-26.1.4-banan_os/src/util/os_misc.c 2026-07-05 12:36:41.310790644 +0300
@@ -58,7 +58,7 @@
# include <unistd.h>
# include <log/log.h>
# include <cutils/properties.h>
-#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_BANANOS
# include <unistd.h>
#elif DETECT_OS_OPENBSD || DETECT_OS_FREEBSD
# include <sys/resource.h>
@@ -470,6 +470,15 @@
*size = ((uint64_t)vm_stats.free_count + (uint64_t)vm_stats.inactive_count) * PAGE_SIZE;
return true;
+#elif DETECT_OS_BANANOS
+ const long avphys_pages = sysconf(_SC_AVPHYS_PAGES);
+ const long page_size = sysconf(_SC_PAGESIZE);
+
+ if (avphys_pages <= 0 || page_size <= 0)
+ return false;
+
+ *size = (uint64_t)avphys_pages * (uint64_t)page_size;
+ return true;
#else
return false;
#endif
diff -ruN mesa-26.1.4/src/util/u_process.c mesa-26.1.4-banan_os/src/util/u_process.c
--- mesa-26.1.4/src/util/u_process.c 2026-07-01 17:16:13.000000000 +0300
+++ mesa-26.1.4-banan_os/src/util/u_process.c 2026-07-05 12:36:41.320229357 +0300
@@ -48,7 +48,7 @@
#include <sys/sysctl.h>
#endif
-#if DETECT_OS_LINUX
+#if DETECT_OS_LINUX || DETECT_OS_BANANOS
#include <fcntl.h>
#endif
@@ -163,6 +163,21 @@
get_image_info(B_CURRENT_TEAM, &info);
return strdup(info.name);
}
+#elif DETECT_OS_BANANOS
+static char *
+__getProgramName()
+{
+ char *progname = NULL;
+ char buf[PATH_MAX];
+ if (readlink("/proc/self/exe", buf, sizeof(buf)) > 0) {
+ progname = strrchr(buf, '/');
+ if (progname)
+ progname++;
+ else
+ progname = buf;
+ }
+ return strdup(progname);
+}
#else
#define GET_PROGRAM_NAME_NOT_AVAILABLE
#endif
@@ -269,7 +284,7 @@
cmdline[size - 1] = 0;
return true;
}
-#elif DETECT_OS_LINUX
+#elif DETECT_OS_LINUX || DETECT_OS_BANANOS
int f = open("/proc/self/cmdline", O_RDONLY);
if (f != -1) {
const int n = read(f, cmdline, size - 1);
diff -ruN mesa-26.1.4/src/util/u_thread.c mesa-26.1.4-banan_os/src/util/u_thread.c
--- mesa-26.1.4/src/util/u_thread.c 2026-07-01 17:16:13.000000000 +0300
+++ mesa-26.1.4-banan_os/src/util/u_thread.c 2026-07-05 12:36:41.338559292 +0300
@@ -71,7 +71,7 @@
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_BANANOS
int ret = pthread_setname_np(pthread_self(), name);
if (ret == ERANGE) {
char buf[16];
@@ -150,7 +150,7 @@
int64_t
util_thread_get_time_nano(thrd_t thread)
{
-#if defined(HAVE_PTHREAD) && !defined(__APPLE__) && !defined(__HAIKU__) && !defined(__managarm__)
+#if defined(HAVE_PTHREAD) && !defined(__APPLE__) && !defined(__HAIKU__) && !defined(__managarm__) && !defined(__banan_os__)
struct timespec ts;
clockid_t cid;