From 66cb2cdb0b0357e8e5184e27a93523262fdc588f Mon Sep 17 00:00:00 2001 From: Raphael Kubo da Costa Date: Thu, 18 Feb 2016 16:35:48 +0000 Subject: [PATCH] Update to 0.2.15. 0.2.15 was released in October 2015. Release notes: http://www.openblas.net/Changelog.txt This update introduces support for new CPU architectures, such as Intel's Broadwell and Skylake. In practice, this means people using those architectures can actually build the port now (OpenBLAS seems to do some CPU-detection that cannot be easily turned off and refusing to build on unrecognized CPUs). Port changes: - Reorganize a few variables in Makefile. - Refresh patches. PR: 206886 Submitted by: Adriaan de Groot (first version), Eijiro Shibusawa (maintainer) MFH: 2016Q1 --- math/openblas/Makefile | 25 ++++++------------- math/openblas/distinfo | 4 +-- math/openblas/files/patch-Makefile | 6 ++--- math/openblas/files/patch-Makefile.rule | 10 ++++---- math/openblas/files/patch-Makefile.system | 12 ++++----- math/openblas/files/patch-c_check | 6 ++--- math/openblas/files/patch-cpuid_ia64.c | 4 +-- math/openblas/files/patch-cpuid_sparc.c | 6 ++--- .../files/patch-driver_others_blas__server.c | 11 ++++++++ .../files/patch-driver_others_memory.c | 13 ++++++++++ math/openblas/files/patch-exports+Makefile | 8 +++--- math/openblas/files/patch-f_check | 8 +++--- 12 files changed, 64 insertions(+), 49 deletions(-) create mode 100644 math/openblas/files/patch-driver_others_blas__server.c create mode 100644 math/openblas/files/patch-driver_others_memory.c diff --git a/math/openblas/Makefile b/math/openblas/Makefile index 772c5d745a42..7fb4218f3f65 100644 --- a/math/openblas/Makefile +++ b/math/openblas/Makefile @@ -2,20 +2,20 @@ # $FreeBSD$ PORTNAME= openblas -PORTVERSION= 0.2.14 -PORTEPOCH= 1 +PORTVERSION= 0.2.15 DISTVERSIONPREFIX= v +PORTEPOCH= 1 CATEGORIES= math MASTER_SITES= GH NL/lapack/timing/:lapack_tmg DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \ large.tgz:lapack_tmg timing.tgz:lapack_tmg +DIST_SUBDIR= openblas MAINTAINER= phd_kimberlite@yahoo.co.jp COMMENT= Optimized BLAS library based on GotoBLAS2 LICENSE= BSD3CLAUSE -DIST_SUBDIR= openblas USE_GITHUB= yes GH_ACCOUNT= xianyi GH_PROJECT= OpenBLAS @@ -141,9 +141,6 @@ do-build: ${MAKE_CMD} ${MAKE_ARGS} ${CP} ${WRKSRC}/libopenblasp-${OPENBLAS_SUFX}.a ${WRKDIR}/lib/libopenblasp.a ${CP} ${WRKSRC}/libopenblasp-${OPENBLAS_SUFX}.so ${WRKDIR}/lib/libopenblasp.so.${OPENBLAS_SVER} -.if !${PORT_OPTIONS:MDEBUG} - ${LOCALBASE}/bin/strip -X ${WRKDIR}/lib/*.so.${OPENBLAS_SVER} -.endif BENCHMARK_MAXTHREADS?= ${MAXTHREADS} .if ${PORT_OPTIONS:MOPENMP} @@ -159,16 +156,10 @@ benchmark: build USE_THREAD=1 ${BENCHMARK_THREADS_FLAG} ${MAKE_CMD} ${MAKE_ARGS} do-install: - cd ${WRKDIR}/lib ; \ - ${INSTALL_DATA} ${OPENBLAS_LIBS:S|$|.a|} ${OPENBLAS_LIBS:S|$|.so.${OPENBLAS_SVER}|} \ - ${STAGEDIR}${PREFIX}/lib/ - cd ${STAGEDIR}${PREFIX}/lib ; \ - for i in ${OPENBLAS_LIBS:S|$|.so|}; do \ - ${LN} -sf $$i.${OPENBLAS_SVER} $$i ; \ - done - -post-stage: - ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libopenblas.so.0 - ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libopenblasp.so.0 +.for L in ${OPENBLAS_LIBS} + ${INSTALL_DATA} ${WRKDIR}/lib/${L}.a ${STAGEDIR}${PREFIX}/lib + ${INSTALL_LIB} ${WRKDIR}/lib/${L}.so.${OPENBLAS_SVER} ${STAGEDIR}${PREFIX}/lib + ${LN} -sf ${L}.so.${OPENBLAS_SVER} ${STAGEDIR}${PREFIX}/lib/${L}.so +.endfor .include diff --git a/math/openblas/distinfo b/math/openblas/distinfo index 0eaa9bb64718..9da55791ca74 100644 --- a/math/openblas/distinfo +++ b/math/openblas/distinfo @@ -1,5 +1,5 @@ -SHA256 (openblas/xianyi-OpenBLAS-v0.2.14_GH0.tar.gz) = 2411c4f56f477b42dff54db2b7ffc0b7cf53bb9778d54982595c64cc69c40fc1 -SIZE (openblas/xianyi-OpenBLAS-v0.2.14_GH0.tar.gz) = 9858070 +SHA256 (openblas/xianyi-OpenBLAS-v0.2.15_GH0.tar.gz) = 73c40ace5978282224e5e122a41c8388c5a19e65a6f2329c2b7c0b61bacc9044 +SIZE (openblas/xianyi-OpenBLAS-v0.2.15_GH0.tar.gz) = 9966585 SHA256 (openblas/large.tgz) = f328d88b7fa97722f271d7d0cfea1c220e0f8e5ed5ff01d8ef1eb51d6f4243a1 SIZE (openblas/large.tgz) = 2595 SHA256 (openblas/timing.tgz) = 999c65f8ea8bd4eac7f1c7f3463d4946917afd20a997807300fe35d70122f3af diff --git a/math/openblas/files/patch-Makefile b/math/openblas/files/patch-Makefile index c09f6a90b27f..40d2c20099ea 100644 --- a/math/openblas/files/patch-Makefile +++ b/math/openblas/files/patch-Makefile @@ -1,6 +1,6 @@ ---- Makefile.orig 2013-07-27 01:21:05.000000000 +0900 -+++ Makefile 2013-07-27 01:22:18.000000000 +0900 -@@ -228,7 +228,7 @@ +--- Makefile.orig 2015-10-27 20:44:50 UTC ++++ Makefile +@@ -238,7 +238,7 @@ ifndef NOFORTRAN -@echo "LOADOPTS = $(FFLAGS) $(EXTRALIB)" >> $(NETLIB_LAPACK_DIR)/make.inc -@echo "CC = $(CC)" >> $(NETLIB_LAPACK_DIR)/make.inc -@echo "override CFLAGS = $(LAPACK_CFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc diff --git a/math/openblas/files/patch-Makefile.rule b/math/openblas/files/patch-Makefile.rule index 6c8eb4334307..f85e73064fa8 100644 --- a/math/openblas/files/patch-Makefile.rule +++ b/math/openblas/files/patch-Makefile.rule @@ -1,6 +1,6 @@ ---- Makefile.rule.orig 2012-02-05 16:36:05.000000000 +0900 -+++ Makefile.rule 2012-02-05 16:36:23.000000000 +0900 -@@ -14,10 +14,10 @@ +--- Makefile.rule.orig 2015-10-27 20:44:50 UTC ++++ Makefile.rule +@@ -19,10 +19,10 @@ VERSION = 0.2.15 # C compiler including binary type(32bit / 64bit). Default is gcc. # Don't use Intel Compiler or PGI, it won't generate right codes as I expect. @@ -11,5 +11,5 @@ -# FC = gfortran +FC = %%FC%% - # Even you can specify cross compiler - # CC = x86_64-w64-mingw32-gcc + # Even you can specify cross compiler. Meanwhile, please set HOSTCC. + diff --git a/math/openblas/files/patch-Makefile.system b/math/openblas/files/patch-Makefile.system index 7446a6b5191f..6ac6e2418e90 100644 --- a/math/openblas/files/patch-Makefile.system +++ b/math/openblas/files/patch-Makefile.system @@ -1,6 +1,6 @@ ---- Makefile.system.orig 2014-12-04 00:14:21.000000000 +0900 -+++ Makefile.system 2015-02-23 05:27:11.000000000 +0900 -@@ -199,6 +199,7 @@ +--- Makefile.system.orig 2015-10-27 20:44:50 UTC ++++ Makefile.system +@@ -218,6 +218,7 @@ MD5SUM = md5 -r endif ifeq ($(OSNAME), FreeBSD) @@ -8,7 +8,7 @@ MD5SUM = md5 -r endif -@@ -981,15 +982,6 @@ +@@ -1020,15 +1021,6 @@ ifndef LIBSUFFIX LIBSUFFIX = a endif @@ -24,7 +24,7 @@ ifndef SMP LIBNAME = $(LIBPREFIX)$(REVISION).$(LIBSUFFIX) LIBNAME_P = $(LIBPREFIX)$(REVISION)_p.$(LIBSUFFIX) -@@ -997,7 +989,6 @@ +@@ -1036,7 +1028,6 @@ else LIBNAME = $(LIBPREFIX)p$(REVISION).$(LIBSUFFIX) LIBNAME_P = $(LIBPREFIX)p$(REVISION)_p.$(LIBSUFFIX) endif @@ -32,7 +32,7 @@ LIBDLLNAME = $(LIBPREFIX).dll -@@ -1028,7 +1019,7 @@ +@@ -1067,7 +1058,7 @@ LIB_COMPONENTS = CBLAS endif export OSNAME diff --git a/math/openblas/files/patch-c_check b/math/openblas/files/patch-c_check index 43d77fbe61fe..e2254a3081e2 100644 --- a/math/openblas/files/patch-c_check +++ b/math/openblas/files/patch-c_check @@ -1,6 +1,6 @@ ---- c_check.orig 2014-12-03 16:14:21.000000000 +0100 -+++ c_check 2015-02-01 01:01:27.784108000 +0100 -@@ -228,7 +228,7 @@ +--- c_check.orig 2015-10-27 20:44:50 UTC ++++ c_check +@@ -235,7 +235,7 @@ open(CONFFILE, "> $config" ) || die "Ca # print $data, "\n"; print MAKEFILE "OSNAME=$os\n"; diff --git a/math/openblas/files/patch-cpuid_ia64.c b/math/openblas/files/patch-cpuid_ia64.c index d0b46a84f2fe..c7092465ec12 100644 --- a/math/openblas/files/patch-cpuid_ia64.c +++ b/math/openblas/files/patch-cpuid_ia64.c @@ -1,5 +1,5 @@ ---- cpuid_ia64.c.orig 2012-02-05 16:28:01.000000000 +0900 -+++ cpuid_ia64.c 2012-02-05 16:28:41.000000000 +0900 +--- cpuid_ia64.c.orig 2015-10-27 20:44:50 UTC ++++ cpuid_ia64.c @@ -38,7 +38,9 @@ #include diff --git a/math/openblas/files/patch-cpuid_sparc.c b/math/openblas/files/patch-cpuid_sparc.c index 3c597dffec6b..f9d8239fc0e5 100644 --- a/math/openblas/files/patch-cpuid_sparc.c +++ b/math/openblas/files/patch-cpuid_sparc.c @@ -1,6 +1,6 @@ ---- cpuid_sparc.c.orig 2012-02-05 16:29:26.000000000 +0900 -+++ cpuid_sparc.c 2012-02-05 16:29:45.000000000 +0900 -@@ -49,6 +49,7 @@ +--- cpuid_sparc.c.orig 2015-10-27 20:44:50 UTC ++++ cpuid_sparc.c +@@ -49,6 +49,7 @@ void get_subdirname(void){ } void get_cpuconfig(void){ diff --git a/math/openblas/files/patch-driver_others_blas__server.c b/math/openblas/files/patch-driver_others_blas__server.c new file mode 100644 index 000000000000..8fd9a73f2278 --- /dev/null +++ b/math/openblas/files/patch-driver_others_blas__server.c @@ -0,0 +1,11 @@ +--- driver/others/blas_server.c.orig 2015-10-27 20:44:50 UTC ++++ driver/others/blas_server.c +@@ -70,7 +70,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF + /*********************************************************************/ + + #include "common.h" +-#if defined(OS_LINUX) || defined(OS_NETBSD) || defined(OS_DARWIN) || defined(OS_ANDROID) ++#if defined(OS_LINUX) || defined(OS_NETBSD) || defined(OS_DARWIN) || defined(OS_ANDROID) || defined(OS_FREEBSD) + #include + #include + #include diff --git a/math/openblas/files/patch-driver_others_memory.c b/math/openblas/files/patch-driver_others_memory.c new file mode 100644 index 000000000000..7ee47816fd8d --- /dev/null +++ b/math/openblas/files/patch-driver_others_memory.c @@ -0,0 +1,13 @@ +Passing a priority level to constructor/destructor only works on GCC >= 4.3.0; +improve the upstream check so that the build works with base GCC. +--- driver/others/memory.c.orig 2015-10-27 20:44:50 UTC ++++ driver/others/memory.c +@@ -142,7 +142,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF + #if defined(_MSC_VER) && !defined(__clang__) + #define CONSTRUCTOR __cdecl + #define DESTRUCTOR __cdecl +-#elif defined(OS_DARWIN) && defined(C_GCC) ++#elif defined(OS_DARWIN) || (defined(C_GCC) && ((__GNUC__ == 4) && (__GNUC_MINOR__ < 3))) + #define CONSTRUCTOR __attribute__ ((constructor)) + #define DESTRUCTOR __attribute__ ((destructor)) + #else diff --git a/math/openblas/files/patch-exports+Makefile b/math/openblas/files/patch-exports+Makefile index 71d6d1c9cd8c..2cab4d723625 100644 --- a/math/openblas/files/patch-exports+Makefile +++ b/math/openblas/files/patch-exports+Makefile @@ -1,10 +1,10 @@ ---- exports/Makefile.orig 2012-11-27 08:24:53.000000000 +0900 -+++ exports/Makefile 2012-11-28 01:24:49.000000000 +0900 -@@ -122,6 +122,7 @@ +--- exports/Makefile.orig 2015-10-27 20:44:50 UTC ++++ exports/Makefile +@@ -140,6 +140,7 @@ endif #http://stackoverflow.com/questions/7656425/makefile-ifeq-logical-or ifeq ($(OSNAME), $(filter $(OSNAME),FreeBSD NetBSD)) +EXTRALIB += -lgfortran so : ../$(LIBSONAME) - ../$(LIBSONAME) : ../$(LIBNAME) linux.def linktest.c + ifeq (, $(SYMBOLPREFIX)$(SYMBOLSUFFIX)) diff --git a/math/openblas/files/patch-f_check b/math/openblas/files/patch-f_check index 7f2364c5fb10..72113d19766b 100644 --- a/math/openblas/files/patch-f_check +++ b/math/openblas/files/patch-f_check @@ -1,6 +1,6 @@ ---- f_check.orig 2014-08-18 12:16:14.000000000 +0900 -+++ f_check 2014-09-03 23:08:18.000000000 +0900 -@@ -259,7 +259,7 @@ +--- f_check.orig 2015-10-27 20:44:50 UTC ++++ f_check +@@ -261,7 +261,7 @@ if ($link ne "") { foreach $flags (@flags) { if ( @@ -9,7 +9,7 @@ && ($flags !~ /^-LIST:/) && ($flags !~ /^-LANG:/) ) { -@@ -290,7 +290,7 @@ +@@ -292,7 +292,7 @@ if ($link ne "") { } if (