From nobody Sat Jun 8 18:41:58 2024 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4VxRkH2V6xz5Mxnw; Sat, 08 Jun 2024 18:41:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4VxRkG4rwlz4d46; Sat, 8 Jun 2024 18:41:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1717872118; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tKRq2+Ds+E/mRnWLf5wEo1NTvVzdm0KKNryPhFxV08I=; b=VHC9fiJLaEBNkJWGJvO5t9cpmvmOLKISrFBn+dclOYxv4yvc36awFtIExmZ4ekycIAAYb1 feE8raEwgVb+5YmNntmLZJLf8d3Cb6GKLwNpnY0CG5XXPKHYBQY8aXXioSAmEuRbykFhdX RKtTqAXmnCOaETtYFmnUpXLJkBu690crXDNPnV/FWUPjIgIV40gipVBNrk2Xsj5mF4nIik bOFKpk3/WyPJJPkkwKDOnsO6enniV3tvCH4wI4OGpaJMTjsXDhl5K6z4l9wv9ZIoM37OFf 42cYTSKFKq9nrS01IXu/qjrhK3M0hY+c9T+/NOYSneXp5zNDzhJvLvrDKgUnOA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1717872118; a=rsa-sha256; cv=none; b=qN93ZthqW+ebfv5UUymYC4i1AUB6eFzU6E5VenD90oOrsBu+pzCDQ5OHh8AqXFj7WjmUbl JDCHa5Uyc7tyZW5dQ1qZ/Ae1wC3tuG0cXnHCYPXsYztReCYmpoNHId6hwYjTV08+hf+rhV RfS3OmoclFC4saRhfusVw1w+bVWwJBVoOuYfTaJ1LxmlnPC6QG9gyuWrI0077Ng/tMXvY5 OU4numPp7aGBZ88ZhJXzRUIfebg43Gmr006P0aOf57QS0Sv+zj164Gna3ruocd1OUwE08r WaBMX1AhoZNkR1O5jOU1w9F4Ip3YLrd0MazU8UkinWrmskNcOvqs2vQq78MfeA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1717872118; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tKRq2+Ds+E/mRnWLf5wEo1NTvVzdm0KKNryPhFxV08I=; b=Yh2ImJvKG4aJ5o7iKafx3XrHdBbwLCuvFNUTByi1BDLu2zIrmsywS7RXzEiYIkNrQVYUiI wiuspb7SO/Qfss2QzQzHceq1XPNC24qZCtRLAe+VfWUBqXJSgK6zKM1BIOMC/B4x8ZczRR RbK0hMPwgecVfrnTFi5yFBLDsIJwFJCzhBeqE+xuJGZYME8rcwtAriFC1d1eYGo4a6EJcR xva5FtbLoxacRQqRcY3fzUzK989MDfPbNL/SNVNNu24TIFTETXz3yVedqhGMoRvBfqwjFP 0y1p9Xvd7LWQEfDPtBY+m/JjZAooz95MmBTNl0ZDSrZbCPcZtW3R9QfZfoMiqA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4VxRkG4S9wz1821; Sat, 8 Jun 2024 18:41:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 458IfwtX007363; Sat, 8 Jun 2024 18:41:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 458IfwGL007360; Sat, 8 Jun 2024 18:41:58 GMT (envelope-from git) Date: Sat, 8 Jun 2024 18:41:58 GMT Message-Id: <202406081841.458IfwGL007360@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Thierry Thomas Subject: git: aebc677df1e1 - main - math/openblas64: repocopy from math/openblas List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-all@freebsd.org Sender: owner-dev-commits-ports-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: thierry X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: aebc677df1e11d529cd203488f568a088f5187d3 Auto-Submitted: auto-generated The branch main has been updated by thierry: URL: https://cgit.FreeBSD.org/ports/commit/?id=aebc677df1e11d529cd203488f568a088f5187d3 commit aebc677df1e11d529cd203488f568a088f5187d3 Author: Thierry Thomas AuthorDate: 2024-06-08 13:46:43 +0000 Commit: Thierry Thomas CommitDate: 2024-06-08 18:41:54 +0000 math/openblas64: repocopy from math/openblas --- math/openblas64/Makefile | 143 +++++++++++++++++++++++++ math/openblas64/distinfo | 7 ++ math/openblas64/files/patch-common__arm.h | 20 ++++ math/openblas64/files/patch-cpuid__arm.c | 16 +++ math/openblas64/files/patch-exports_Makefile | 11 ++ math/openblas64/files/patch-interface__ztrmv.c | 11 ++ math/openblas64/pkg-descr | 7 ++ math/openblas64/pkg-plist | 17 +++ 8 files changed, 232 insertions(+) diff --git a/math/openblas64/Makefile b/math/openblas64/Makefile new file mode 100644 index 000000000000..cf23f359fa20 --- /dev/null +++ b/math/openblas64/Makefile @@ -0,0 +1,143 @@ +PORTNAME= openblas +DISTVERSIONPREFIX= v +DISTVERSION= 0.3.25 +PORTEPOCH= 2 +CATEGORIES= math +MASTER_SITES= NL/lapack/timing/:lapack_tmg +DISTFILES= large.tgz:lapack_tmg \ + timing.tgz:lapack_tmg +DIST_SUBDIR= openblas + +MAINTAINER= phd_kimberlite@yahoo.co.jp +COMMENT= Optimized BLAS library based on GotoBLAS2 +WWW= https://github.com/OpenMathLib/OpenBLAS + +LICENSE= BSD3CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE + +USES= compiler:c11 cpe fortran gmake perl5 pkgconfig + +USE_GITHUB= yes +GH_ACCOUNT= OpenMathLib +GH_PROJECT= OpenBLAS +GH_TAGNAME= 5e1a429 +LARGE_FILE= large.tgz +TIMING_FILE= timing.tgz +CPE_VENDOR= openblas_project + +USE_LDCONFIG= yes +USE_PERL5= build + +OPENBLAS_SVER= 0 +TEST_TARGET= tests + +PLIST_SUB+= PORTVERSION=${PORTVERSION} + +OPTIONS_DEFINE= DYNAMIC_ARCH INTERFACE64 OPENMP +OPTIONS_DEFAULT= OPENMP +OPTIONS_DEFINE_i386= AVX AVX2 +OPTIONS_DEFINE_amd64= AVX AVX2 +OPTIONS_EXCLUDE_armv6= OPENMP +OPTIONS_EXCLUDE_armv7= OPENMP +OPTIONS_EXCLUDE_powerpc64le= OPENMP +OPTIONS_EXCLUDE_powerpc64= OPENMP +OPTIONS_EXCLUDE_powerpc= OPENMP +OPTIONS_RADIO= ${OPTIONS_RADIO_${ARCH}} +OPTIONS_RADIO_powerpc64= POWER +OPTIONS_RADIO_POWER= POWER6 POWER8 +OPTIONS_SUB= yes + +.if defined(BATCH) || defined(PACKAGE_BUILDING) +OPTIONS_DEFAULT_i386= DYNAMIC_ARCH +OPTIONS_DEFAULT_amd64= DYNAMIC_ARCH +OPTIONS_DEFAULT_powerpc64le= DYNAMIC_ARCH +.endif + +DYNAMIC_ARCH_DESC= Optimize for multiple CPU types, otherwise for this CPU +INTERFACE64_DESC= Use 8 byte integers on 64-bit architectures +OPENMP_DESC= Use OpenMP for threading +AVX_DESC= Support Advanced Vector Extensions (AVX) +AVX2_DESC= Support Advanced Vector Extensions 2 (AVX2) +POWER6_DESC= Optimize for POWER6, instead of the default PPC970 +POWER8_DESC= Optimize for POWER8, instead of the default PPC970 + +.include + +.if ${ARCH} == powerpc64 +USE_GCC= yes +. if ${PORT_OPTIONS:MPOWER6} +TARGET_CPU_ARCH= POWER6 +. elif ${PORT_OPTIONS:MPOWER8} +TARGET_CPU_ARCH= POWER8 +.else +TARGET_CPU_ARCH= PPC970 +. endif +.endif + +.if ${ARCH} == powerpc +USE_GCC= yes +TARGET_CPU_ARCH= PPCG4 +.endif + +.if ${ARCH} == powerpc64le +CFLAGS+= -lm +USE_GCC= yes +.endif + +MAXTHREADS?= 64 + +.include + +post-extract: + cd ${DISTDIR}/${DIST_SUBDIR} ; \ + ${CP} ${LARGE_FILE} ${TIMING_FILE} ${WRKSRC} + +post-patch: + @${ECHO_CMD} MAKE_NB_JOBS=-1 >> ${WRKSRC}/Makefile.rule + @${ECHO_CMD} NUM_THREADS=${MAXTHREADS} >> ${WRKSRC}/Makefile.rule + @${ECHO_CMD} USE_THREAD=1 >> ${WRKSRC}/Makefile.rule +.if ! ${PORT_OPTIONS:MAVX} + @${ECHO_CMD} NO_AVX=1 >> ${WRKSRC}/Makefile.rule +.endif +.if ! ${PORT_OPTIONS:MAVX2} + @${ECHO_CMD} NO_AVX2=1 >> ${WRKSRC}/Makefile.rule +.endif +.if ${PORT_OPTIONS:MDYNAMIC_ARCH} + @${ECHO_CMD} DYNAMIC_ARCH=1 >> ${WRKSRC}/Makefile.rule + @${ECHO_CMD} DYNAMIC_OLDER=1 >> ${WRKSRC}/Makefile.rule +.endif +.if defined(TARGET_CPU_ARCH) + @${ECHO_CMD} TARGET=${TARGET_CPU_ARCH} >> ${WRKSRC}/Makefile.rule +.endif +.if ${PORT_OPTIONS:MINTERFACE64} + @${ECHO_CMD} INTERFACE64=1 >> ${WRKSRC}/Makefile.rule +.endif +.if ${PORT_OPTIONS:MOPENMP} + @${ECHO_CMD} USE_OPENMP=1 >> ${WRKSRC}/Makefile.rule +.endif +.if ${ARCH:M*64*} == "" + @${ECHO_CMD} BINARY=32 >> ${WRKSRC}/Makefile.rule +.else + @${ECHO_CMD} BINARY=64 >> ${WRKSRC}/Makefile.rule +.endif + +post-patch-OPENMP-on: + @${REINPLACE_CMD} -e "s+OPENBLAS_NUM_THREADS+OMP_NUM_THREADS+g" \ + ${WRKSRC}/test/Makefile \ + ${WRKSRC}/ctest/Makefile + +BENCHMARK_MAXTHREADS?= ${MAXTHREADS} +.if ${PORT_OPTIONS:MOPENMP} +BENCHMARK_THREADS_FLAG= OMP_NUM_THREADS=${BENCHMARK_MAXTHREADS} +.else +BENCHMARK_THREADS_FLAG= OPENBLAS_NUM_THREADS=${BENCHMARK_MAXTHREADS} +.endif + +benchmark: build + cd ${WRKSRC} ; ${SETENV} ${MAKE_CMD} ${MAKE_ARGS} hpl + cd ${WRKSRC}/benchmark ; ${SETENV} ${BENCHMARK_THREADS_FLAG} ${MAKE_CMD} ${MAKE_ARGS} + +post-install-DYNAMIC_ARCH-off: + cd ${STAGEDIR}${PREFIX} && ls lib/libopenblas_*p-r${PORTVERSION}.* >> ${TMPPLIST} + +.include diff --git a/math/openblas64/distinfo b/math/openblas64/distinfo new file mode 100644 index 000000000000..883c98157110 --- /dev/null +++ b/math/openblas64/distinfo @@ -0,0 +1,7 @@ +TIMESTAMP = 1699873046 +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.25-5e1a429_GH0.tar.gz) = 848beec6974e550aef74784b599a1c88549f70432b575e1dc1822eef15b4bc5d +SIZE (openblas/OpenMathLib-OpenBLAS-v0.3.25-5e1a429_GH0.tar.gz) = 24073895 diff --git a/math/openblas64/files/patch-common__arm.h b/math/openblas64/files/patch-common__arm.h new file mode 100644 index 000000000000..1ffd13a2c63b --- /dev/null +++ b/math/openblas64/files/patch-common__arm.h @@ -0,0 +1,20 @@ +--- common_arm.h.orig 2023-04-01 20:18:01 UTC ++++ common_arm.h +@@ -95,6 +95,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 diff --git a/math/openblas64/files/patch-cpuid__arm.c b/math/openblas64/files/patch-cpuid__arm.c new file mode 100644 index 000000000000..0aa24dc52a12 --- /dev/null +++ b/math/openblas64/files/patch-cpuid__arm.c @@ -0,0 +1,16 @@ +--- cpuid_arm.c.orig 2016-09-01 03:58:42 UTC ++++ cpuid_arm.c +@@ -181,7 +181,12 @@ int detect(void) + } + + } +- ++#else ++#if (__ARM_ARCH == 7) ++ return CPU_ARMV7; ++#else ++ return CPU_ARMV6; ++#endif + #endif + + return CPU_UNKNOWN; diff --git a/math/openblas64/files/patch-exports_Makefile b/math/openblas64/files/patch-exports_Makefile new file mode 100644 index 000000000000..7e7692de9ce0 --- /dev/null +++ b/math/openblas64/files/patch-exports_Makefile @@ -0,0 +1,11 @@ +--- exports/Makefile.orig 2023-04-01 20:18:01 UTC ++++ exports/Makefile +@@ -222,7 +222,7 @@ else + endif + $(CC) $(CFLAGS) $(LDFLAGS) -shared -o ../$(LIBSONAME) \ + -Wl,--whole-archive $< -Wl,--no-whole-archive \ +- $(FEXTRALIB) $(EXTRALIB) ++ -Wl,-soname,$(LIBSONAME) $(FEXTRALIB) $(EXTRALIB) + $(CC) $(CFLAGS) $(LDFLAGS) -w -o linktest linktest.c ../$(LIBSONAME) $(FEXTRALIB) && echo OK. + rm -f linktest + diff --git a/math/openblas64/files/patch-interface__ztrmv.c b/math/openblas64/files/patch-interface__ztrmv.c new file mode 100644 index 000000000000..854a83bf42ea --- /dev/null +++ b/math/openblas64/files/patch-interface__ztrmv.c @@ -0,0 +1,11 @@ +--- interface/ztrmv.c.orig 2019-04-29 17:22:19 UTC ++++ interface/ztrmv.c +@@ -245,7 +245,7 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Upl + else + #endif + { +- buffer_size = ((n - 1) / DTB_ENTRIES) * 2 * DTB_ENTRIES + 32 / sizeof(FLOAT); ++ buffer_size = (((n - 1) / DTB_ENTRIES) * 2 * DTB_ENTRIES + 32 / sizeof(FLOAT)) + 8; + // It seems to be required for some K8 or Barcelona CPU + buffer_size += 8; + if(incx != 1) diff --git a/math/openblas64/pkg-descr b/math/openblas64/pkg-descr new file mode 100644 index 000000000000..55a88a92404a --- /dev/null +++ b/math/openblas64/pkg-descr @@ -0,0 +1,7 @@ +OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version. +OpenBLAS is an open source project supported by +Lab of Parallel Software and Computational Science, ISCAS. + +NOTE: If you want to specify your CPU microarchitecture manually, +please use TARGET_CPU_ARCH knob, e.g., "make TARGET_CPU_ARCH=NEHALEM". +This value is set TARGET build flag. diff --git a/math/openblas64/pkg-plist b/math/openblas64/pkg-plist new file mode 100644 index 000000000000..66ad1a092738 --- /dev/null +++ b/math/openblas64/pkg-plist @@ -0,0 +1,17 @@ +include/cblas.h +include/f77blas.h +include/lapack.h +include/lapacke.h +include/lapacke_config.h +include/lapacke_mangling.h +include/lapacke_utils.h +include/openblas_config.h +lib/cmake/openblas/OpenBLASConfig.cmake +lib/cmake/openblas/OpenBLASConfigVersion.cmake +lib/libopenblas.a +lib/libopenblas.so +lib/libopenblas.so.0 +%%DYNAMIC_ARCH%%lib/libopenblasp-r%%PORTVERSION%%.a +%%DYNAMIC_ARCH%%lib/libopenblasp-r%%PORTVERSION%%.so +%%NO_INTERFACE64%%libdata/pkgconfig/openblas.pc +%%INTERFACE64%%libdata/pkgconfig/openblas64.pc