diff --git a/math/openblas64/Makefile b/math/openblas64/Makefile index 06a4932c56f8..d5c208a2c3a7 100644 --- a/math/openblas64/Makefile +++ b/math/openblas64/Makefile @@ -1,81 +1,80 @@ PORTNAME= openblas DISTVERSIONPREFIX= v -DISTVERSION= 0.3.29 -PORTREVISION= 1 +DISTVERSION= 0.3.30 CATEGORIES= math MASTER_SITES= NL/lapack/timing/:lapack_tmg PKGNAMESUFFIX= 64 DISTFILES= large.tgz:lapack_tmg \ timing.tgz:lapack_tmg DIST_SUBDIR= openblas MAINTAINER= thierry@FreeBSD.org COMMENT= OpenBLAS with 8 byte integers on 64-bits architectures WWW= https://github.com/OpenMathLib/OpenBLAS LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE NOT_FOR_ARCHS= armv6 armv7 i386 powerpc NOT_FOR_ARCHS_REASON= Only for 64-bits architectures USES= cmake:testing compiler:c11 cpe fortran gmake pathfix pkgconfig CMAKE_ARGS= -DINTERFACE64:BOOL=on \ -DSUFFIX64_UNDERSCORE:STRING=64 \ -DSYMBOLSUFFIX:STRING=_64 \ -DBUILD_SHARED_LIBS:BOOL=on \ -DBUILD_STATIC_LIBS:BOOL=on \ -DUSE_THREAD:BOOL=on USE_GITHUB= yes GH_ACCOUNT= OpenMathLib GH_PROJECT= OpenBLAS LARGE_FILE= large.tgz TIMING_FILE= timing.tgz CPE_VENDOR= openblas_project USE_LDCONFIG= yes PLIST_SUB+= PORTVERSION=${PORTVERSION} OPTIONS_DEFINE= BENCHMARKS DYNAMIC_ARCH OPENMP OPTIONS_DEFAULT= OPENMP OPTIONS_EXCLUDE_powerpc64le= OPENMP OPTIONS_EXCLUDE_powerpc64= OPENMP OPTIONS_SUB= yes .if defined(BATCH) || defined(PACKAGE_BUILDING) OPTIONS_DEFAULT_amd64= DYNAMIC_ARCH OPTIONS_DEFAULT_powerpc64le= DYNAMIC_ARCH .endif BENCHMARKS_DESC= Build the collection of BLAS/LAPACK benchmarks DYNAMIC_ARCH_DESC= Optimize for multiple CPU types, otherwise for this CPU BENCHMARKS_CMAKE_BOOL= BUILD_BENCHMARKS DYNAMIC_ARCH_CMAKE_BOOL=DYNAMIC_ARCH DYNAMIC_OLDER OPENMP_CMAKE_BOOL= USE_OPENMP -OPENMP_LDFLAGS= -lomp +OPENMP_CMAKE_ON= -DOpenMP_omp_LIBRARY="/usr/lib/libomp.so" .include .if ${ARCH} == powerpc64 CMAKE_ARGS+= -DTARGET=PPC970 USE_GCC= yes .endif .if ${ARCH} == powerpc64le CMAKE_ARGS+= -DTARGET=POWER8 USE_GCC= yes .endif post-extract: cd ${DISTDIR}/${DIST_SUBDIR} ; \ ${CP} ${LARGE_FILE} ${TIMING_FILE} ${WRKSRC} pre-configure-OPENMP-on: ${REINPLACE_CMD} -e "s+OPENBLAS_NUM_THREADS+OMP_NUM_THREADS+g" \ ${WRKSRC}/test/Makefile \ ${WRKSRC}/ctest/Makefile .include diff --git a/math/openblas64/distinfo b/math/openblas64/distinfo index 4d9f628b7c61..273ce2b88266 100644 --- a/math/openblas64/distinfo +++ b/math/openblas64/distinfo @@ -1,7 +1,7 @@ -TIMESTAMP = 1737726082 +TIMESTAMP = 1750518123 SHA256 (openblas/large.tgz) = f328d88b7fa97722f271d7d0cfea1c220e0f8e5ed5ff01d8ef1eb51d6f4243a1 SIZE (openblas/large.tgz) = 2595 SHA256 (openblas/timing.tgz) = 999c65f8ea8bd4eac7f1c7f3463d4946917afd20a997807300fe35d70122f3af SIZE (openblas/timing.tgz) = 1059485 -SHA256 (openblas/OpenMathLib-OpenBLAS-v0.3.29_GH0.tar.gz) = 38240eee1b29e2bde47ebb5d61160207dc68668a54cac62c076bb5032013b1eb -SIZE (openblas/OpenMathLib-OpenBLAS-v0.3.29_GH0.tar.gz) = 24671913 +SHA256 (openblas/OpenMathLib-OpenBLAS-v0.3.30_GH0.tar.gz) = 27342cff518646afb4c2b976d809102e368957974c250a25ccc965e53063c95d +SIZE (openblas/OpenMathLib-OpenBLAS-v0.3.30_GH0.tar.gz) = 24699801 diff --git a/math/openblas64/files/patch-CMakeLists.txt b/math/openblas64/files/patch-CMakeLists.txt index a58aa620cb0b..7fa2920ca645 100644 --- a/math/openblas64/files/patch-CMakeLists.txt +++ b/math/openblas64/files/patch-CMakeLists.txt @@ -1,11 +1,18 @@ ---- CMakeLists.txt.orig 2024-04-04 20:26:04 UTC +--- CMakeLists.txt.orig 2025-06-22 09:12:23 UTC +++ CMakeLists.txt -@@ -448,7 +448,7 @@ if (BUILD_SHARED_LIBS AND NOT ${SYMBOLPREFIX}${SYMBOLS +@@ -541,13 +541,13 @@ message(STATUS "adding postbuild instruction to rename if (NOT USE_PERL) add_custom_command(TARGET ${OpenBLAS_LIBNAME}_shared POST_BUILD - COMMAND ${PROJECT_SOURCE_DIR}/exports/gensymbol "objcopy" "${ARCH}" "${BU}" "${EXPRECISION_IN}" "${NO_CBLAS_IN}" "${NO_LAPACK_IN}" "${NO_LAPACKE_IN}" "${NEED2UNDERSCORES_IN}" "${ONLY_CBLAS_IN}" \"${SYMBOLPREFIX}\" \"${SYMBOLSUFFIX}\" "${BLD}" "${BBF16}" "${BS}" "${BD}" "${BC}" "${BZ}" > ${PROJECT_BINARY_DIR}/objcopy.def -- COMMAND objcopy -v --redefine-syms ${PROJECT_BINARY_DIR}/objcopy.def ${PROJECT_BINARY_DIR}/lib/lib${OpenBLAS_LIBNAME}.so + COMMAND sh ${PROJECT_SOURCE_DIR}/exports/gensymbol "objcopy" "${ARCH}" "${BU}" "${EXPRECISION_IN}" "${NO_CBLAS_IN}" "${NO_LAPACK_IN}" "${NO_LAPACKE_IN}" "${NEED2UNDERSCORES_IN}" "${ONLY_CBLAS_IN}" \"${SYMBOLPREFIX}\" \"${SYMBOLSUFFIX}\" "${BLD}" "${BBF16}" "${BS}" "${BD}" "${BC}" "${BZ}" > ${PROJECT_BINARY_DIR}/objcopy.def +- COMMAND objcopy -v --redefine-syms ${PROJECT_BINARY_DIR}/objcopy.def ${PROJECT_BINARY_DIR}/lib/${OpenBLAS_LIBNAME}.so + COMMAND objcopy --redefine-syms ${PROJECT_BINARY_DIR}/objcopy.def ${PROJECT_BINARY_DIR}/lib/lib${OpenBLAS_LIBNAME}.so COMMENT "renaming symbols" ) else() + add_custom_command(TARGET ${OpenBLAS_LIBNAME}_shared POST_BUILD + COMMAND perl ${PROJECT_SOURCE_DIR}/exports/gensymbol.pl "objcopy" "${ARCH}" "${BU}" "${EXPRECISION_IN}" "${NO_CBLAS_IN}" "${NO_LAPACK_IN}" "${NO_LAPACKE_IN}" "${NEED2UNDERSCORES_IN}" "${ONLY_CBLAS_IN}" \"${SYMBOLPREFIX}\" \"${SYMBOLSUFFIX}\" "${BLD}" "${BBF16}" "${BS}" "${BD}" "${BC}" "${BZ}" > ${PROJECT_BINARY_DIR}/objcopy.def +- COMMAND objcopy -v --redefine-syms ${PROJECT_BINARY_DIR}/objcopy.def ${PROJECT_BINARY_DIR}/lib/lib${OpenBLAS_LIBNAME}.so ++ COMMAND objcopy --redefine-syms ${PROJECT_BINARY_DIR}/objcopy.def ${PROJECT_BINARY_DIR}/lib/lib${OpenBLAS_LIBNAME}.so + COMMENT "renaming symbols" + ) + endif() diff --git a/math/openblas64/files/patch-cmake_system.cmake b/math/openblas64/files/patch-cmake_system.cmake new file mode 100644 index 000000000000..763a00e23156 --- /dev/null +++ b/math/openblas64/files/patch-cmake_system.cmake @@ -0,0 +1,13 @@ +--- cmake/system.cmake.orig 2025-06-19 09:45:39 UTC ++++ cmake/system.cmake +@@ -380,8 +380,9 @@ if (USE_OPENMP) + # Avoid mixed OpenMP linkage + get_target_property(OMP_C_LIB OpenMP::OpenMP_C INTERFACE_LINK_LIBRARIES) + get_target_property(OMP_Fortran_LIB OpenMP::OpenMP_Fortran INTERFACE_LINK_LIBRARIES) ++# Disable this error on FreeBSD (dangerous by OK for the moment) + if (NOT OMP_C_LIB STREQUAL OMP_Fortran_LIB) +- message(FATAL_ERROR "Multiple OpenMP runtime libraries detected. Mixed OpenMP runtime linkage is dangerous. You may pass -DOpenMP_LANG_LIB_NAMES and -DOpenMP_omp_LIBRARY to manually choose the OpenMP library.") ++ message(STATUS "Multiple OpenMP runtime libraries detected. Mixed OpenMP runtime linkage is dangerous. You may pass -DOpenMP_LANG_LIB_NAMES and -DOpenMP_omp_LIBRARY to manually choose the OpenMP library.") + endif() + endif () + endif () diff --git a/math/openblas64/files/patch-common__arm.h b/math/openblas64/files/patch-common__arm.h index 1ffd13a2c63b..0c34ba948968 100644 --- a/math/openblas64/files/patch-common__arm.h +++ b/math/openblas64/files/patch-common__arm.h @@ -1,20 +1,20 @@ ---- common_arm.h.orig 2023-04-01 20:18:01 UTC +--- common_arm.h.orig 2025-06-19 09:45:39 UTC +++ common_arm.h -@@ -95,6 +95,17 @@ static inline int blas_quickdivide(blasint x, blasint +@@ -93,6 +93,17 @@ static inline int blas_quickdivide(blasint x, blasint #endif +/* Translate pre-UAL asm to UAL equivalents */ +#if defined(__clang__) +#define fnmacs vmls.f32 +#define fnmacd vmls.f64 +#define fnmuls vnmul.f32 +#define fnmuld vnmul.f64 +#define fldmias vldmia +#define fstmias vstmia +#define fldmiad vldmia +#define fstmiad vstmia +#endif #ifndef F_INTERFACE #define REALNAME ASMNAME