diff --git a/math/openblas/Makefile b/math/openblas/Makefile index f85ecbb268fa..e4104ba6f50d 100644 --- a/math/openblas/Makefile +++ b/math/openblas/Makefile @@ -1,141 +1,141 @@ PORTNAME= openblas DISTVERSIONPREFIX= v -DISTVERSION= 0.3.24 -PORTEPOCH= 1 +DISTVERSION= 0.3.20 +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/xianyi/OpenBLAS LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE USES= compiler:c11 cpe fortran gmake perl5 pkgconfig USE_GITHUB= yes GH_ACCOUNT= xianyi GH_PROJECT= OpenBLAS 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 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/openblas/distinfo b/math/openblas/distinfo index e4ffec3fd9c0..65d0da9523f3 100644 --- a/math/openblas/distinfo +++ b/math/openblas/distinfo @@ -1,7 +1,7 @@ -TIMESTAMP = 1694493901 +TIMESTAMP = 1648345083 SHA256 (openblas/large.tgz) = f328d88b7fa97722f271d7d0cfea1c220e0f8e5ed5ff01d8ef1eb51d6f4243a1 SIZE (openblas/large.tgz) = 2595 SHA256 (openblas/timing.tgz) = 999c65f8ea8bd4eac7f1c7f3463d4946917afd20a997807300fe35d70122f3af SIZE (openblas/timing.tgz) = 1059485 -SHA256 (openblas/xianyi-OpenBLAS-v0.3.24_GH0.tar.gz) = ceadc5065da97bd92404cac7254da66cc6eb192679cf1002098688978d4d5132 -SIZE (openblas/xianyi-OpenBLAS-v0.3.24_GH0.tar.gz) = 24263037 +SHA256 (openblas/xianyi-OpenBLAS-v0.3.20_GH0.tar.gz) = 8495c9affc536253648e942908e88e097f2ec7753ede55aca52e5dead3029e3c +SIZE (openblas/xianyi-OpenBLAS-v0.3.20_GH0.tar.gz) = 12742441 diff --git a/math/openblas/files/patch-c_check b/math/openblas/files/patch-c_check new file mode 100644 index 000000000000..817371d8f62f --- /dev/null +++ b/math/openblas/files/patch-c_check @@ -0,0 +1,11 @@ +--- c_check.orig 2019-04-29 17:22:19 UTC ++++ c_check +@@ -320,7 +320,7 @@ open(CONFFILE, "> $config" ) || die "Can't create $co + # print $data, "\n"; + + print MAKEFILE "OSNAME=$os\n"; +-print MAKEFILE "ARCH=$architecture\n"; ++print MAKEFILE "ARCH_=$architecture\n"; + print MAKEFILE "C_COMPILER=$compiler\n"; + print MAKEFILE "BINARY32=\n" if $binformat ne bin32; + print MAKEFILE "BINARY64=\n" if $binformat ne bin64; diff --git a/math/openblas/files/patch-common__arm.h b/math/openblas/files/patch-common__arm.h index 1ffd13a2c63b..7c6e402278e2 100644 --- a/math/openblas/files/patch-common__arm.h +++ b/math/openblas/files/patch-common__arm.h @@ -1,20 +1,20 @@ ---- common_arm.h.orig 2023-04-01 20:18:01 UTC +--- common_arm.h.orig 2018-08-30 22:07:48 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 diff --git a/math/openblas/files/patch-exports_Makefile b/math/openblas/files/patch-exports_Makefile index 7e7692de9ce0..26dccbab2baf 100644 --- a/math/openblas/files/patch-exports_Makefile +++ b/math/openblas/files/patch-exports_Makefile @@ -1,11 +1,11 @@ ---- exports/Makefile.orig 2023-04-01 20:18:01 UTC +--- exports/Makefile.orig 2019-08-11 21:23:27 UTC +++ exports/Makefile -@@ -222,7 +222,7 @@ else +@@ -184,7 +184,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/openblas/files/patch-f_check b/math/openblas/files/patch-f_check index 5af156564f03..6636f3cdeab3 100644 --- a/math/openblas/files/patch-f_check +++ b/math/openblas/files/patch-f_check @@ -1,19 +1,28 @@ ---- f_check.orig 2023-04-01 20:18:01 UTC -+++ f_check -@@ -360,6 +360,16 @@ if [ -n "$link" ]; then - flag="-lomp" - ;; - esac -+ -+ case "$hostos" in "FreeBSD") -+ case "$CC" in -+ gcc*) ;; -+ *) -+ # clang is assumed -+ flag="-lomp" -+ ;; -+ esac -+ esac - esac +--- f_check.orig 2021-05-03 06:50:22.000000000 +0900 ++++ f_check 2021-05-06 23:42:10.192934000 +0900 +@@ -326,7 +326,7 @@ - case "$flag" in -l*) + foreach $flags (@flags) { + if ( +- ($flags =~ /^\-L/) ++ ($flags =~ /^\-L\S/) + && ($flags !~ /^-LIST:/) + && ($flags !~ /^-LANG:/) + ) { +@@ -358,7 +358,7 @@ + } + + if ( +- ($flags =~ /^\-l/) ++ ($flags =~ /^\-l\S/) + && ($flags !~ /ibrary/) + && ($flags !~ /gfortranbegin/) + && ($flags !~ /frtbegin/) +@@ -369,6 +369,7 @@ + && ($flags !~ /kernel32/) + && ($flags !~ /advapi32/) + && ($flags !~ /shell32/) ++ && ($flags !~ /gomp/) + && ($flags !~ /omp/ || ($vendor !~ /PGI/ && $vendor !~ /FUJITSU/ && $flags =~ /omp/)) + && ($flags !~ /[0-9]+/ || ($vendor == FUJITSU && $flags =~ /^-lfj90/)) + && ($flags !~ /^\-l$/)