[openblas&blas]base toge's work on updating OpenBLAS fix the build of blas to pass ci (#51619)

This commit is contained in:
xiaotang 2026-05-14 14:11:39 +08:00 committed by GitHub
parent 466699e4a8
commit 9733af874e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 63 additions and 24 deletions

View File

@ -4,6 +4,8 @@
set(BLA_VENDOR @BLA_VENDOR@)
set(BLA_STATIC @BLA_STATIC@)
set(BLA_PREFER_PKGCONFIG ON)
_find_package(${ARGS})
unset(BLA_VENDOR)
unset(BLA_STATIC)
unset(BLA_PREFER_PKGCONFIG)

View File

@ -2,7 +2,7 @@
"$comment": "Keep the platform expressions in sync with the wrappers installed by the portfiles!",
"name": "blas",
"version-date": "2023-04-14",
"port-version": 5,
"port-version": 6,
"description": "Metapackage for packages which provide BLAS",
"license": null,
"dependencies": [

View File

@ -0,0 +1,12 @@
diff --git a/cmake/arch.cmake b/cmake/arch.cmake
--- a/cmake/arch.cmake
+++ b/cmake/arch.cmake
@@ -48,7 +48,7 @@
if (${CMAKE_C_COMPILER_VERSION} VERSION_GREATER_EQUAL 11) # SVE ACLE supported in LLVM >= 11
set(DYNAMIC_CORE ${DYNAMIC_CORE} NEOVERSEV1 NEOVERSEN2 ARMV8SVE A64FX)
endif ()
- if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
+ if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows" AND NOT ANDROID)
if (${CMAKE_C_COMPILER_VERSION} VERSION_GREATER_EQUAL 19 OR (${CMAKE_C_COMPILER_ID} MATCHES AppleClang AND ${CMAKE_C_COMPILER_VERSION} VERSION_GREATER_EQUAL 17) ) # SME ACLE supported in LLVM >= 19 and AppleClang >= 17
set(DYNAMIC_CORE ${DYNAMIC_CORE} ARMV9SME VORTEXM4)
endif()

View File

@ -64,3 +64,11 @@ elseif(need_target)
set(NUM_THREADS "${num_threads_default}" CACHE STRING "")
message(STATUS "NUM_THREADS: ${NUM_THREADS}")
endif()
# Android: AVX-512 inline assembly exceeds NDK Clang register availability,
# and ARMV9SME kernel references missing SVE source files.
if(ANDROID)
if(VCPKG_TARGET_ARCHITECTURE MATCHES "^x64")
set(NO_AVX512 ON CACHE BOOL "")
endif()
endif()

View File

@ -2,13 +2,14 @@ vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO OpenMathLib/OpenBLAS
REF "v${VERSION}"
SHA512 046316b4297460bffca09c890ecad17ea39d8b3db92ff445d03b547dd551663d37e40f38bce8ae11e2994374ff01e622b408da27aa8e40f4140185ee8f001a60
SHA512 68fa2b90a93a2dfd84dfa586af07d90952fd4f2ad8dfe26061be250e80fec8f1a76ad78977f217c7dbdd26291249f1ac38a07f08ef323eee7a248c4cb67cd670
HEAD_REF develop
PATCHES
disable-testing.diff
getarch.diff
system-check-msvc.diff
win32-uwp.diff
android-exclude-sme.diff
)
vcpkg_check_features(OUT_FEATURE_OPTIONS OPTIONS
@ -59,6 +60,18 @@ vcpkg_cmake_configure(
vcpkg_cmake_install()
vcpkg_copy_pdbs()
vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/OpenBLAS)
#fix for libm linking on non-windows platforms
if(NOT VCPKG_TARGET_IS_WINDOWS)
foreach(PCFILE IN ITEMS
"${CURRENT_PACKAGES_DIR}/lib/pkgconfig/openblas.pc"
"${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/openblas.pc")
if(EXISTS "${PCFILE}")
file(APPEND "${PCFILE}" "Libs.private: -lm\n")
endif()
endforeach()
endif()
vcpkg_fixup_pkgconfig()
# Required from native builds, optional from cross builds.

View File

@ -1,8 +1,8 @@
diff --git a/cmake/system_check.cmake b/cmake/system_check.cmake
index e94497a..d884727 100644
index 38a04b7..78defed 100644
--- a/cmake/system_check.cmake
+++ b/cmake/system_check.cmake
@@ -36,6 +36,16 @@ if(CMAKE_CL_64 OR MINGW64)
@@ -40,6 +40,16 @@ if(CMAKE_CL_64 OR MINGW64)
else()
set(X86_64 1)
endif()
@ -16,6 +16,6 @@ index e94497a..d884727 100644
+ else()
+ set(X86 1)
+ endif()
elseif(OS_EMSCRIPTEN)
set(WASM 1)
elseif(MINGW OR (MSVC AND NOT CMAKE_CROSSCOMPILING))
set(X86 1)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc.*|power.*|Power.*" OR (CMAKE_SYSTEM_NAME MATCHES "Darwin" AND CMAKE_OSX_ARCHITECTURES MATCHES "ppc.*"))

View File

@ -1,6 +1,6 @@
{
"name": "openblas",
"version": "0.3.29",
"version": "0.3.33",
"description": "OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.",
"homepage": "https://github.com/OpenMathLib/OpenBLAS",
"license": "BSD-3-Clause",

View File

@ -21,10 +21,10 @@ index 2effbe0..538ede2 100644
set(EXTRALIB "${EXTRALIB} -lpthread")
endif ()
diff --git a/cmake/system.cmake b/cmake/system.cmake
index 683c318..eae7436 100644
index ea56b84..a94e25a 100644
--- a/cmake/system.cmake
+++ b/cmake/system.cmake
@@ -507,7 +507,7 @@ if (USE_SIMPLE_THREADED_LEVEL3)
@@ -629,7 +629,7 @@ if (USE_SIMPLE_THREADED_LEVEL3)
set(CCOMMON_OPT "${CCOMMON_OPT} -DUSE_SIMPLE_THREADED_LEVEL3")
endif ()
@ -33,7 +33,7 @@ index 683c318..eae7436 100644
if (DEFINED MAX_STACK_ALLOC)
if (NOT ${MAX_STACK_ALLOC} EQUAL 0)
set(CCOMMON_OPT "${CCOMMON_OPT} -DMAX_STACK_ALLOC=${MAX_STACK_ALLOC}")
@@ -516,7 +516,7 @@ else ()
@@ -638,7 +638,7 @@ else ()
set(CCOMMON_OPT "${CCOMMON_OPT} -DMAX_STACK_ALLOC=2048")
endif ()
endif ()
@ -42,16 +42,7 @@ index 683c318..eae7436 100644
if (DEFINED BLAS3_MEM_ALLOC_THRESHOLD)
if (NOT ${BLAS3_MEM_ALLOC_THRESHOLD} EQUAL 32)
set(CCOMMON_OPT "${CCOMMON_OPT} -DBLAS3_MEM_ALLOC_THRESHOLD=${BLAS3_MEM_ALLOC_THRESHOLD}")
@@ -633,7 +633,7 @@ endif()
set(LAPACK_FPFLAGS "${LAPACK_FPFLAGS} ${FPFLAGS}")
#Disable -fopenmp for LAPACK Fortran codes on Windows.
-if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
+if (WIN32)
set(FILTER_FLAGS "-fopenmp;-mp;-openmp;-xopenmp=parallel")
foreach (FILTER_FLAG ${FILTER_FLAGS})
string(REPLACE ${FILTER_FLAG} "" LAPACK_FFLAGS ${LAPACK_FFLAGS})
@@ -665,11 +665,11 @@ if (INTERFACE64)
@@ -793,14 +793,14 @@ if (INTERFACE64)
set(LAPACK_CFLAGS "${LAPACK_CFLAGS} -DLAPACK_ILP64")
endif ()
@ -64,4 +55,8 @@ index 683c318..eae7436 100644
+if (${CMAKE_C_COMPILER} STREQUAL "LSB" OR WIN32)
set(LAPACK_CFLAGS "${LAPACK_CFLAGS} -DLAPACK_COMPLEX_STRUCTURE")
endif ()
if (${CMAKE_C_COMPILER_ID} MATCHES "IntelLLVM" AND ${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
-if (${CMAKE_C_COMPILER_ID} MATCHES "IntelLLVM" AND ${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
+if (${CMAKE_C_COMPILER_ID} MATCHES "IntelLLVM" AND WIN32)
set(LAPACK_CFLAGS "${LAPACK_CFLAGS} -DNOCHANGE")
endif ()

View File

@ -866,7 +866,6 @@ onnxruntime[tensorrt]((x64 & windows & !static) | (x64 & linux))=feature-fails #
onnxruntime-gpu=skip
openal-soft[pipewire](!(linux&x64))=cascade
openal-soft[pulseaudio](!(linux&x64))=cascade
openblas[dynamic-arch]:arm64-linux=feature-fails
opencascade[vtk]:arm64-linux=cascade
opencc:arm64-windows=fail # opencc/deps/rapidjson-1.1.0/rapidjson.h: Unknown machine endianess detected
opencc:x64-android=fail

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "9f5048e276a68b737d6988dd16b9520f2f913de6",
"version-date": "2023-04-14",
"port-version": 6
},
{
"git-tree": "240d6e92a04768c856492186df3e2b5f642c5e37",
"version-date": "2023-04-14",

View File

@ -758,7 +758,7 @@
},
"blas": {
"baseline": "2023-04-14",
"port-version": 5
"port-version": 6
},
"blaze": {
"baseline": "3.8.2",
@ -7309,7 +7309,7 @@
"port-version": 0
},
"openblas": {
"baseline": "0.3.29",
"baseline": "0.3.33",
"port-version": 0
},
"opencascade": {

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "b4ba53624e1a75c970d95454b637ed4d4784371c",
"version": "0.3.33",
"port-version": 0
},
{
"git-tree": "3d3d198cfb372ccd328a36248c4c12fb7c6b3bb6",
"version": "0.3.29",