ports/llvm: Add support for pthread_setname_np and cpu count
Also package the llvm into the format mesa expects. This was kinda tedious to always do manually
This commit is contained in:
@@ -29,6 +29,17 @@ build() {
|
|||||||
|
|
||||||
install() {
|
install() {
|
||||||
# This port only contains llvm libraries used optionally by
|
# This port only contains llvm libraries used optionally by
|
||||||
# mesa port. There is no need to install and fill the disk :D
|
# mesa port. There is no need to install to sysroot :D
|
||||||
:
|
|
||||||
|
local pkg_dir="../llvm-banan_os-$VERSION-$BANAN_ARCH"
|
||||||
|
|
||||||
|
rm -rf "$pkg_dir"
|
||||||
|
|
||||||
|
mkdir -p "$pkg_dir/include" || exit 1
|
||||||
|
cp -r 'llvm/include/llvm' "$pkg_dir/include/" || exit 1
|
||||||
|
cp -r 'llvm/include/llvm-c' "$pkg_dir/include/" || exit 1
|
||||||
|
cp -r 'build/include/llvm' "$pkg_dir/include/" || exit 1
|
||||||
|
|
||||||
|
mkdir -p "$pkg_dir/lib" || exit 1
|
||||||
|
cp 'build/lib/'*.a "$pkg_dir/lib/" || exit 1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
diff -ruN llvm-22.1.8/llvm/include/llvm/ADT/bit.h llvm-22.1.8-banan_os/llvm/include/llvm/ADT/bit.h
|
diff -ruN llvm-22.1.8/llvm/include/llvm/ADT/bit.h llvm-22.1.8-banan_os/llvm/include/llvm/ADT/bit.h
|
||||||
--- llvm-22.1.8/llvm/include/llvm/ADT/bit.h 2026-06-16 01:33:53.000000000 +0300
|
--- llvm-22.1.8/llvm/include/llvm/ADT/bit.h 2026-06-16 01:33:53.000000000 +0300
|
||||||
+++ llvm-22.1.8-banan_os/llvm/include/llvm/ADT/bit.h 2026-06-26 20:05:01.569826765 +0300
|
+++ llvm-22.1.8-banan_os/llvm/include/llvm/ADT/bit.h 2026-07-07 10:03:36.848199127 +0300
|
||||||
@@ -30,7 +30,8 @@
|
@@ -30,7 +30,8 @@
|
||||||
|
|
||||||
#if defined(__linux__) || defined(__GNU__) || defined(__HAIKU__) || \
|
#if defined(__linux__) || defined(__GNU__) || defined(__HAIKU__) || \
|
||||||
@@ -13,7 +13,7 @@ diff -ruN llvm-22.1.8/llvm/include/llvm/ADT/bit.h llvm-22.1.8-banan_os/llvm/incl
|
|||||||
#include <sys/machine.h>
|
#include <sys/machine.h>
|
||||||
diff -ruN llvm-22.1.8/llvm/include/llvm/Support/ExitCodes.h llvm-22.1.8-banan_os/llvm/include/llvm/Support/ExitCodes.h
|
diff -ruN llvm-22.1.8/llvm/include/llvm/Support/ExitCodes.h llvm-22.1.8-banan_os/llvm/include/llvm/Support/ExitCodes.h
|
||||||
--- llvm-22.1.8/llvm/include/llvm/Support/ExitCodes.h 2026-06-16 01:33:53.000000000 +0300
|
--- llvm-22.1.8/llvm/include/llvm/Support/ExitCodes.h 2026-06-16 01:33:53.000000000 +0300
|
||||||
+++ llvm-22.1.8-banan_os/llvm/include/llvm/Support/ExitCodes.h 2026-06-26 20:05:11.472186824 +0300
|
+++ llvm-22.1.8-banan_os/llvm/include/llvm/Support/ExitCodes.h 2026-07-07 10:03:36.965344890 +0300
|
||||||
@@ -20,7 +20,7 @@
|
@@ -20,7 +20,7 @@
|
||||||
|
|
||||||
#if HAVE_SYSEXITS_H
|
#if HAVE_SYSEXITS_H
|
||||||
@@ -25,7 +25,7 @@ diff -ruN llvm-22.1.8/llvm/include/llvm/Support/ExitCodes.h llvm-22.1.8-banan_os
|
|||||||
// Define the macro with its usual value from BSD systems, which is chosen to
|
// Define the macro with its usual value from BSD systems, which is chosen to
|
||||||
diff -ruN llvm-22.1.8/llvm/lib/Support/Unix/Path.inc llvm-22.1.8-banan_os/llvm/lib/Support/Unix/Path.inc
|
diff -ruN llvm-22.1.8/llvm/lib/Support/Unix/Path.inc llvm-22.1.8-banan_os/llvm/lib/Support/Unix/Path.inc
|
||||||
--- llvm-22.1.8/llvm/lib/Support/Unix/Path.inc 2026-06-16 01:33:53.000000000 +0300
|
--- llvm-22.1.8/llvm/lib/Support/Unix/Path.inc 2026-06-16 01:33:53.000000000 +0300
|
||||||
+++ llvm-22.1.8-banan_os/llvm/lib/Support/Unix/Path.inc 2026-06-26 20:22:57.780776278 +0300
|
+++ llvm-22.1.8-banan_os/llvm/lib/Support/Unix/Path.inc 2026-07-07 10:03:36.987545022 +0300
|
||||||
@@ -111,7 +111,7 @@
|
@@ -111,7 +111,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -68,7 +68,7 @@ diff -ruN llvm-22.1.8/llvm/lib/Support/Unix/Path.inc llvm-22.1.8-banan_os/llvm/l
|
|||||||
// target
|
// target
|
||||||
diff -ruN llvm-22.1.8/llvm/lib/Support/Unix/Process.inc llvm-22.1.8-banan_os/llvm/lib/Support/Unix/Process.inc
|
diff -ruN llvm-22.1.8/llvm/lib/Support/Unix/Process.inc llvm-22.1.8-banan_os/llvm/lib/Support/Unix/Process.inc
|
||||||
--- llvm-22.1.8/llvm/lib/Support/Unix/Process.inc 2026-06-16 01:33:53.000000000 +0300
|
--- llvm-22.1.8/llvm/lib/Support/Unix/Process.inc 2026-06-16 01:33:53.000000000 +0300
|
||||||
+++ llvm-22.1.8-banan_os/llvm/lib/Support/Unix/Process.inc 2026-06-26 20:19:55.915545542 +0300
|
+++ llvm-22.1.8-banan_os/llvm/lib/Support/Unix/Process.inc 2026-07-07 10:03:37.017664239 +0300
|
||||||
@@ -37,6 +37,9 @@
|
@@ -37,6 +37,9 @@
|
||||||
#ifdef HAVE_SYS_IOCTL_H
|
#ifdef HAVE_SYS_IOCTL_H
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
@@ -81,7 +81,7 @@ diff -ruN llvm-22.1.8/llvm/lib/Support/Unix/Process.inc llvm-22.1.8-banan_os/llv
|
|||||||
//=== WARNING: Implementation here must contain only generic UNIX code that
|
//=== WARNING: Implementation here must contain only generic UNIX code that
|
||||||
diff -ruN llvm-22.1.8/llvm/lib/Support/Unix/Program.inc llvm-22.1.8-banan_os/llvm/lib/Support/Unix/Program.inc
|
diff -ruN llvm-22.1.8/llvm/lib/Support/Unix/Program.inc llvm-22.1.8-banan_os/llvm/lib/Support/Unix/Program.inc
|
||||||
--- llvm-22.1.8/llvm/lib/Support/Unix/Program.inc 2026-06-16 01:33:53.000000000 +0300
|
--- llvm-22.1.8/llvm/lib/Support/Unix/Program.inc 2026-06-16 01:33:53.000000000 +0300
|
||||||
+++ llvm-22.1.8-banan_os/llvm/lib/Support/Unix/Program.inc 2026-06-26 20:05:22.461478923 +0300
|
+++ llvm-22.1.8-banan_os/llvm/lib/Support/Unix/Program.inc 2026-07-07 10:03:37.031901635 +0300
|
||||||
@@ -334,7 +334,7 @@
|
@@ -334,7 +334,7 @@
|
||||||
namespace llvm {
|
namespace llvm {
|
||||||
namespace sys {
|
namespace sys {
|
||||||
@@ -106,8 +106,19 @@ diff -ruN llvm-22.1.8/llvm/lib/Support/Unix/Program.inc llvm-22.1.8-banan_os/llv
|
|||||||
ProcessInfo llvm::sys::Wait(const ProcessInfo &PI,
|
ProcessInfo llvm::sys::Wait(const ProcessInfo &PI,
|
||||||
diff -ruN llvm-22.1.8/llvm/lib/Support/Unix/Threading.inc llvm-22.1.8-banan_os/llvm/lib/Support/Unix/Threading.inc
|
diff -ruN llvm-22.1.8/llvm/lib/Support/Unix/Threading.inc llvm-22.1.8-banan_os/llvm/lib/Support/Unix/Threading.inc
|
||||||
--- llvm-22.1.8/llvm/lib/Support/Unix/Threading.inc 2026-06-16 01:33:53.000000000 +0300
|
--- llvm-22.1.8/llvm/lib/Support/Unix/Threading.inc 2026-06-16 01:33:53.000000000 +0300
|
||||||
+++ llvm-22.1.8-banan_os/llvm/lib/Support/Unix/Threading.inc 2026-06-26 20:10:24.025022264 +0300
|
+++ llvm-22.1.8-banan_os/llvm/lib/Support/Unix/Threading.inc 2026-07-07 10:03:37.256828558 +0300
|
||||||
@@ -121,7 +121,7 @@
|
@@ -70,6 +70,10 @@
|
||||||
|
#include <OS.h> // For B_OS_NAME_LENGTH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if defined(__banan_os__)
|
||||||
|
+#include <unistd.h> // For sysconf()
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
namespace llvm {
|
||||||
|
pthread_t
|
||||||
|
llvm_execute_on_thread_impl(void *(*ThreadFunc)(void *), void *Arg,
|
||||||
|
@@ -121,7 +125,7 @@
|
||||||
|
|
||||||
pthread_t llvm_thread_get_id_impl(pthread_t Thread) { return Thread; }
|
pthread_t llvm_thread_get_id_impl(pthread_t Thread) { return Thread; }
|
||||||
|
|
||||||
@@ -116,3 +127,30 @@ diff -ruN llvm-22.1.8/llvm/lib/Support/Unix/Threading.inc llvm-22.1.8-banan_os/l
|
|||||||
|
|
||||||
} // namespace llvm
|
} // namespace llvm
|
||||||
|
|
||||||
|
@@ -148,6 +152,8 @@
|
||||||
|
return uint64_t(syscall(__NR_gettid));
|
||||||
|
#elif defined(_AIX)
|
||||||
|
return uint64_t(thread_self());
|
||||||
|
+#elif defined(__banan_os__)
|
||||||
|
+ return uint64_t(pthread_self()->id);
|
||||||
|
#else
|
||||||
|
return uint64_t(pthread_self());
|
||||||
|
#endif
|
||||||
|
@@ -171,6 +177,8 @@
|
||||||
|
return 24;
|
||||||
|
#elif defined(__CYGWIN__)
|
||||||
|
return 16;
|
||||||
|
+#elif defined(__banan_os__)
|
||||||
|
+ return sizeof(uthread::name);
|
||||||
|
#else
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
@@ -393,7 +401,7 @@
|
||||||
|
}
|
||||||
|
return CPU_COUNT(&Enabled);
|
||||||
|
}
|
||||||
|
-#elif (defined(__linux__) && defined(__s390x__)) || defined(_AIX)
|
||||||
|
+#elif (defined(__linux__) && defined(__s390x__)) || defined(_AIX) || defined(__banan_os__)
|
||||||
|
static int computeHostNumPhysicalCores() {
|
||||||
|
return sysconf(_SC_NPROCESSORS_ONLN);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user