From 955233faef2c9e3a302aae4ca62a0963d7817de6 Mon Sep 17 00:00:00 2001 From: Watto <45884543+wattoc@users.noreply.github.com> Date: Tue, 27 Jul 2021 08:02:37 +0100 Subject: [PATCH] openblas: Patch openblas to perform cpu count on Haiku (#6094) --- sci-libs/openblas/openblas-0.3.17.recipe | 7 +- .../openblas/patches/openblas-0.3.17.patchset | 67 +++++++++++++++++++ 2 files changed, 71 insertions(+), 3 deletions(-) create mode 100644 sci-libs/openblas/patches/openblas-0.3.17.patchset diff --git a/sci-libs/openblas/openblas-0.3.17.recipe b/sci-libs/openblas/openblas-0.3.17.recipe index 64020d7e1..064c81c0a 100644 --- a/sci-libs/openblas/openblas-0.3.17.recipe +++ b/sci-libs/openblas/openblas-0.3.17.recipe @@ -4,11 +4,12 @@ version." HOMEPAGE="http://www.openblas.net/" COPYRIGHT="2011-2021 The OpenBLAS Project" LICENSE="BSD (3-clause)" -REVISION="2" +REVISION="3" SOURCE_URI="http://github.com/xianyi/OpenBLAS/archive/v$portVersion.tar.gz" CHECKSUM_SHA256="df2934fa33d04fd84d839ca698280df55c690c86a5a1133b3f7266fce1de279f" SOURCE_FILENAME="OpenBLAS-$portVersion.tar.gz" SOURCE_DIR="OpenBLAS-$portVersion" +PATCHES="openblas-$portVersion.patchset" ARCHITECTURES="!x86_gcc2 x86 x86_64" SECONDARY_ARCHITECTURES="x86" @@ -61,11 +62,11 @@ case "$effectiveTargetArchitecture" in *) target=;; esac -BUILD_CONF="NO_STATIC=1 NO_LAPACK=1 \ +BUILD_CONF="NO_STATIC=1 \ + NO_LAPACK=1 \ NO_LAPACKE=1 \ NO_AFFINITY=1 \ NO_WARMUP=1 \ - NO_AVX=1 \ NUM_THREADS=64 \ DYNAMIC_ARCH=1 \ USE_OPENMP=1" diff --git a/sci-libs/openblas/patches/openblas-0.3.17.patchset b/sci-libs/openblas/patches/openblas-0.3.17.patchset new file mode 100644 index 000000000..721e254c5 --- /dev/null +++ b/sci-libs/openblas/patches/openblas-0.3.17.patchset @@ -0,0 +1,67 @@ +From d05e2ec0713ba49796faa04641644156e171e4c5 Mon Sep 17 00:00:00 2001 +From: Craig Watson +Date: Sat, 24 Jul 2021 13:36:09 +0000 +Subject: Include Haiku in processor count checks + + +diff --git a/driver/others/memory.c b/driver/others/memory.c +index 6e654cc..aac8341 100644 +--- a/driver/others/memory.c ++++ b/driver/others/memory.c +@@ -428,7 +428,7 @@ extern int openblas_goto_num_threads_env(); + extern int openblas_omp_num_threads_env(); + + int blas_get_cpu_number(void){ +-#if defined(OS_LINUX) || defined(OS_WINDOWS) || defined(OS_FREEBSD) || defined(OS_OPENBSD) || defined(OS_NETBSD) || defined(OS_DRAGONFLY) || defined(OS_DARWIN) || defined(OS_ANDROID) ++#if defined(OS_LINUX) || defined(OS_WINDOWS) || defined(OS_FREEBSD) || defined(OS_OPENBSD) || defined(OS_NETBSD) || defined(OS_DRAGONFLY) || defined(OS_DARWIN) || defined(OS_ANDROID) || defined(OS_HAIKU) + int max_num; + #endif + int blas_goto_num = 0; +@@ -436,7 +436,7 @@ int blas_get_cpu_number(void){ + + if (blas_num_threads) return blas_num_threads; + +-#if defined(OS_LINUX) || defined(OS_WINDOWS) || defined(OS_FREEBSD) || defined(OS_OPENBSD) || defined(OS_NETBSD) || defined(OS_DRAGONFLY) || defined(OS_DARWIN) || defined(OS_ANDROID) ++#if defined(OS_LINUX) || defined(OS_WINDOWS) || defined(OS_FREEBSD) || defined(OS_OPENBSD) || defined(OS_NETBSD) || defined(OS_DRAGONFLY) || defined(OS_DARWIN) || defined(OS_ANDROID) || defined(OS_HAIKU) + max_num = get_num_procs(); + #endif + +@@ -460,7 +460,7 @@ int blas_get_cpu_number(void){ + else if (blas_omp_num > 0) blas_num_threads = blas_omp_num; + else blas_num_threads = MAX_CPU_NUMBER; + +-#if defined(OS_LINUX) || defined(OS_WINDOWS) || defined(OS_FREEBSD) || defined(OS_OPENBSD) || defined(OS_NETBSD) || defined(OS_DRAGONFLY) || defined(OS_DARWIN) || defined(OS_ANDROID) ++#if defined(OS_LINUX) || defined(OS_WINDOWS) || defined(OS_FREEBSD) || defined(OS_OPENBSD) || defined(OS_NETBSD) || defined(OS_DRAGONFLY) || defined(OS_DARWIN) || defined(OS_ANDROID) || defined(OS_HAIKU) + if (blas_num_threads > max_num) blas_num_threads = max_num; + #endif + +@@ -1979,7 +1979,7 @@ extern int openblas_goto_num_threads_env(); + extern int openblas_omp_num_threads_env(); + + int blas_get_cpu_number(void){ +-#if defined(OS_LINUX) || defined(OS_WINDOWS) || defined(OS_FREEBSD) || defined(OS_OPENBSD) || defined(OS_NETBSD) || defined(OS_DRAGONFLY) || defined(OS_DARWIN) || defined(OS_ANDROID) ++#if defined(OS_LINUX) || defined(OS_WINDOWS) || defined(OS_FREEBSD) || defined(OS_OPENBSD) || defined(OS_NETBSD) || defined(OS_DRAGONFLY) || defined(OS_DARWIN) || defined(OS_ANDROID)|| defined(OS_HAIKU) + int max_num; + #endif + int blas_goto_num = 0; +@@ -1987,7 +1987,7 @@ int blas_get_cpu_number(void){ + + if (blas_num_threads) return blas_num_threads; + +-#if defined(OS_LINUX) || defined(OS_WINDOWS) || defined(OS_FREEBSD) || defined(OS_OPENBSD) || defined(OS_NETBSD) || defined(OS_DRAGONFLY) || defined(OS_DARWIN) || defined(OS_ANDROID) ++#if defined(OS_LINUX) || defined(OS_WINDOWS) || defined(OS_FREEBSD) || defined(OS_OPENBSD) || defined(OS_NETBSD) || defined(OS_DRAGONFLY) || defined(OS_DARWIN) || defined(OS_ANDROID)|| defined(OS_HAIKU) + max_num = get_num_procs(); + #endif + +@@ -2011,7 +2011,7 @@ int blas_get_cpu_number(void){ + else if (blas_omp_num > 0) blas_num_threads = blas_omp_num; + else blas_num_threads = MAX_CPU_NUMBER; + +-#if defined(OS_LINUX) || defined(OS_WINDOWS) || defined(OS_FREEBSD) || defined(OS_OPENBSD) || defined(OS_NETBSD) || defined(OS_DRAGONFLY) || defined(OS_DARWIN) || defined(OS_ANDROID) ++#if defined(OS_LINUX) || defined(OS_WINDOWS) || defined(OS_FREEBSD) || defined(OS_OPENBSD) || defined(OS_NETBSD) || defined(OS_DRAGONFLY) || defined(OS_DARWIN) || defined(OS_ANDROID)|| defined(OS_HAIKU) + if (blas_num_threads > max_num) blas_num_threads = max_num; + #endif + +-- +2.30.2 +