diff --git a/ports/blas/vcpkg-cmake-wrapper.cmake.in b/ports/blas/vcpkg-cmake-wrapper.cmake.in index 67b63bc3d7..2823a8692b 100644 --- a/ports/blas/vcpkg-cmake-wrapper.cmake.in +++ b/ports/blas/vcpkg-cmake-wrapper.cmake.in @@ -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) diff --git a/ports/blas/vcpkg.json b/ports/blas/vcpkg.json index 47e869b3a9..c22f0cf31e 100644 --- a/ports/blas/vcpkg.json +++ b/ports/blas/vcpkg.json @@ -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": [ diff --git a/ports/openblas/android-exclude-sme.diff b/ports/openblas/android-exclude-sme.diff new file mode 100644 index 0000000000..5b59ec8943 --- /dev/null +++ b/ports/openblas/android-exclude-sme.diff @@ -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() diff --git a/ports/openblas/cmake-project-include.cmake b/ports/openblas/cmake-project-include.cmake index 574073bb46..4f85326f53 100644 --- a/ports/openblas/cmake-project-include.cmake +++ b/ports/openblas/cmake-project-include.cmake @@ -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() diff --git a/ports/openblas/portfile.cmake b/ports/openblas/portfile.cmake index 07c9ad43b6..1969e20178 100644 --- a/ports/openblas/portfile.cmake +++ b/ports/openblas/portfile.cmake @@ -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. diff --git a/ports/openblas/system-check-msvc.diff b/ports/openblas/system-check-msvc.diff index f1c395e1a8..195f7b17ff 100644 --- a/ports/openblas/system-check-msvc.diff +++ b/ports/openblas/system-check-msvc.diff @@ -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.*")) diff --git a/ports/openblas/vcpkg.json b/ports/openblas/vcpkg.json index 9a22b2e473..85471e0558 100644 --- a/ports/openblas/vcpkg.json +++ b/ports/openblas/vcpkg.json @@ -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", diff --git a/ports/openblas/win32-uwp.diff b/ports/openblas/win32-uwp.diff index fdf9c63d39..66f037c267 100644 --- a/ports/openblas/win32-uwp.diff +++ b/ports/openblas/win32-uwp.diff @@ -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 () + diff --git a/scripts/ci.feature.baseline.txt b/scripts/ci.feature.baseline.txt index ca6be3c266..2d209e2487 100644 --- a/scripts/ci.feature.baseline.txt +++ b/scripts/ci.feature.baseline.txt @@ -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 diff --git a/versions/b-/blas.json b/versions/b-/blas.json index d1031f15dd..feb77e1b1c 100644 --- a/versions/b-/blas.json +++ b/versions/b-/blas.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "9f5048e276a68b737d6988dd16b9520f2f913de6", + "version-date": "2023-04-14", + "port-version": 6 + }, { "git-tree": "240d6e92a04768c856492186df3e2b5f642c5e37", "version-date": "2023-04-14", diff --git a/versions/baseline.json b/versions/baseline.json index 0491342917..ceb894c130 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -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": { diff --git a/versions/o-/openblas.json b/versions/o-/openblas.json index 1a2505cfd0..8dcd970ada 100644 --- a/versions/o-/openblas.json +++ b/versions/o-/openblas.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "b4ba53624e1a75c970d95454b637ed4d4784371c", + "version": "0.3.33", + "port-version": 0 + }, { "git-tree": "3d3d198cfb372ccd328a36248c4c12fb7c6b3bb6", "version": "0.3.29",