Index: math/openblas/Makefile =================================================================== --- math/openblas/Makefile +++ math/openblas/Makefile @@ -14,6 +14,7 @@ COMMENT= Optimized BLAS library based on GotoBLAS2 LICENSE= BSD3CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE USE_GITHUB= yes GH_ACCOUNT= xianyi @@ -31,7 +32,13 @@ OPENBLAS_FILES= ${OPENBLAS_LIBS:S|$|.so|} ${OPENBLAS_LIBS:S|$|.so.${OPENBLAS_SVER}|} ${OPENBLAS_LIBS:S|$|.a|} PLIST_FILES= ${OPENBLAS_FILES:S|^|lib/|} -OPTIONS_DEFINE= DYNAMIC_ARCH INTERFACE64 OPENMP AVX AVX2 +MAXTHREADS?= 8 +BUILDFLAGS_THREAD+= NUM_THREADS=${MAXTHREADS} USE_THREAD=1 +BENCHMARK_MAXTHREADS?= ${MAXTHREADS} + +OPTIONS_DEFINE= INTERFACE64 OPENMP AVX AVX2 +OPTIONS_DEFINE_amd64= DYNAMIC_ARCH +OPTIONS_DEFINE_i386= DYNAMIC_ARCH DYNAMIC_ARCH_DESC= Support multiple CPU types on i386 and amd64 INTERFACE64_DESC= Use 8 byte integers on 64-bit architectures @@ -40,49 +47,32 @@ AVX2_DESC= Support Advanced Vector Extensions 2 (AVX2) .if defined(BATCH) || defined(PACKAGE_BUILDING) -OPTIONS_DEFAULT= DYNAMIC_ARCH +OPTIONS_DEFAULT_amd64= DYNAMIC_ARCH +OPTIONS_DEFAULT_i386= DYNAMIC_ARCH .endif +AVX_VARS_OFF= BUILDFLAGS+=NO_AVX=1 +AVX2_VARS_OFF= BUILDFLAGS+=NO_AVX2=1 +DYNAMIC_ARCH_VARS= BUILDFLAGS+=DYNAMIC_ARCH=1 +DYNAMIC_ARCH_VARS_OFF= MANUAL_PACKAGE_BUILD="Optimizes for the build machine." +INTERFACE64_VARS= BUILDFLAGS+=INTERFACE64=1 +OPENMP_USES= compiler:openmp +OPENMP_VARS= BUILDFLAGS_THREAD+=USE_OPENMP=1 \ + BENCHMARK_THREADS_FLAG=OMP_NUM_THREADS=${BENCHMARK_MAXTHREADS} +OPENMP_VARS_OFF= BENCHMARK_THREADS_FLAG=OPENBLAS_NUM_THREADS=${BENCHMARK_MAXTHREADS} + .include .if defined(TARGET_CPU_ARCH) BUILDFLAGS+= TARGET=${TARGET_CPU_ARCH} .endif -MAXTHREADS?= 8 -BUILDFLAGS_THREAD+= NUM_THREADS=${MAXTHREADS} USE_THREAD=1 - .if ${ARCH:M*64} == "" BUILDFLAGS+= BINARY32=1 .else BUILDFLAGS+= BINARY64=1 .endif -.if ! ( ${PORT_OPTIONS:MDYNAMIC_ARCH} && ( ${ARCH} == "amd64" || ${ARCH} == "i386" ) ) -MANUAL_PACKAGE_BUILD= Optimizes for the build machine. -.endif - -.if ${PORT_OPTIONS:MDYNAMIC_ARCH} -BUILDFLAGS+= DYNAMIC_ARCH=1 -.endif - -.if ${PORT_OPTIONS:MINTERFACE64} -BUILDFLAGS+= INTERFACE64=1 -.endif - -.if ${PORT_OPTIONS:MOPENMP} -USES+= compiler:openmp -BUILDFLAGS_THREAD+= USE_OPENMP=1 -.endif - -.if ! ${PORT_OPTIONS:MAVX} -BUILDFLAGS+= NO_AVX=1 -.endif - -.if ! ${PORT_OPTIONS:MAVX2} -BUILDFLAGS+= NO_AVX2=1 -.endif - post-extract: cd ${DISTDIR}/${DIST_SUBDIR} ; \ ${CP} ${LARGE_FILE} ${TIMING_FILE} ${WRKSRC} @@ -137,13 +127,6 @@ ${CP} ${WRKSRC}/libopenblasp-${OPENBLAS_SUFX}.a ${WRKDIR}/lib/libopenblasp.a ${CP} ${WRKSRC}/libopenblasp-${OPENBLAS_SUFX}.so ${WRKDIR}/lib/libopenblasp.so.${OPENBLAS_SVER} -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} ${BUILDFLAGS} NUM_THREADS=${MAXTHREADS} \ USE_THREAD=1 ${MAKE_CMD} ${MAKE_ARGS} hpl Index: math/openblas/files/patch-common__arm.h =================================================================== --- /dev/null +++ math/openblas/files/patch-common__arm.h @@ -0,0 +1,24 @@ +--- common_arm.h.orig 2016-09-01 03:58:42 UTC ++++ common_arm.h +@@ -93,6 +93,13 @@ static inline int blas_quickdivide(blasi + + #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 ++#endif + + #ifndef F_INTERFACE + #define REALNAME ASMNAME +@@ -105,7 +112,6 @@ static inline int blas_quickdivide(blasi + #define PROLOGUE \ + .arm ;\ + .global REALNAME ;\ +- .func REALNAME ;\ + REALNAME: + + #define EPILOGUE Index: math/openblas/files/patch-cpuid__arm.c =================================================================== --- /dev/null +++ math/openblas/files/patch-cpuid__arm.c @@ -0,0 +1,12 @@ +--- cpuid_arm.c.orig 2016-09-01 03:58:42 UTC ++++ cpuid_arm.c +@@ -181,7 +181,8 @@ int detect(void) + } + + } +- ++#else ++ return CPU_ARMV6; + #endif + + return CPU_UNKNOWN; Index: math/openblas/files/patch-interface__ztrmv.c =================================================================== --- math/openblas/files/patch-interface__ztrmv.c +++ math/openblas/files/patch-interface__ztrmv.c @@ -1,6 +1,6 @@ ---- interface/ztrmv.c.orig 2016-08-31 20:58:42.000000000 -0700 -+++ interface/ztrmv.c 2017-01-01 10:26:22.759442000 -0800 -@@ -242,7 +242,7 @@ +--- interface/ztrmv.c.orig 2016-09-01 03:58:42 UTC ++++ interface/ztrmv.c +@@ -242,7 +242,7 @@ void CNAME(enum CBLAS_ORDER order, enum else #endif {