svn commit: r505212 - in head/math/openblas: . files

Piotr Kubaj pkubaj at FreeBSD.org
Thu Jun 27 17:18:19 UTC 2019


Author: pkubaj
Date: Thu Jun 27 17:18:17 2019
New Revision: 505212
URL: https://svnweb.freebsd.org/changeset/ports/505212

Log:
  math/openblas: fix build on powerpc64
  
  This port needs a patch (modified for kernel/power/*.S which differ) from https://github.com/xianyi/OpenBLAS/pull/2169 to build on powerpc64.
  
  Since optimizing for PPC970 ends with an error, optimize for POWER6 on powerpc64.
  
  PR:		238825
  Approved by:	phd_kimberlite at yahoo.co.jp (maintainer), mat (mentor)
  Differential Revision:	https://reviews.freebsd.org/D20777

Added:
  head/math/openblas/files/patch-common__power.h   (contents, props changed)
Modified:
  head/math/openblas/Makefile

Modified: head/math/openblas/Makefile
==============================================================================
--- head/math/openblas/Makefile	Thu Jun 27 17:17:36 2019	(r505211)
+++ head/math/openblas/Makefile	Thu Jun 27 17:18:17 2019	(r505212)
@@ -17,8 +17,6 @@ COMMENT=	Optimized BLAS library based on GotoBLAS2
 LICENSE=	BSD3CLAUSE
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
-BROKEN_powerpc64=	fails to compile: gemm.c:403: 'SGEMM_DEFAULT_Q' undeclared (first use in this function)
-
 USES=		fortran gmake perl5
 
 USE_GITHUB=	yes
@@ -56,6 +54,10 @@ AVX2_DESC=		Support Advanced Vector Extensions 2 (AVX2
 
 .include <bsd.port.options.mk>
 
+.if ${ARCH} == powerpc64
+TARGET_CPU_ARCH=	POWER6
+.endif
+
 .if defined(TARGET_CPU_ARCH)
 BUILDFLAGS+=	TARGET=${TARGET_CPU_ARCH}
 .endif
@@ -84,6 +86,8 @@ BUILDFLAGS+=	INTERFACE64=1
 .if ${PORT_OPTIONS:MOPENMP}
 USES+=		compiler:openmp
 BUILDFLAGS_THREAD+=	USE_OPENMP=1
+.else
+USES+=		compiler:c11
 .endif
 
 .if ! ${PORT_OPTIONS:MAVX}
@@ -131,6 +135,10 @@ post-patch:
 	-e 's+$${CROSS_SUFFIX}+${LOCALBASE}/bin/+' \
 	-e '/Clang.*OpenMP/g' \
 		${WRKSRC}/Makefile.system
+	${REINPLACE_CMD} \
+	-e 's/defined(linux)/(defined(linux) || defined(__FreeBSD__))/g' \
+	-e 's/ifdef linux/if defined(linux) || defined(__FreeBSD__)/g' \
+		${WRKSRC}/kernel/power/*.S
 
 post-patch-OPENMP-on:
 	${REINPLACE_CMD} -e "s+OPENBLAS_NUM_THREADS+OMP_NUM_THREADS+g" \

Added: head/math/openblas/files/patch-common__power.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/math/openblas/files/patch-common__power.h	Thu Jun 27 17:18:17 2019	(r505212)
@@ -0,0 +1,29 @@
+--- common_power.h.orig	2019-06-26 10:25:04 UTC
++++ common_power.h
+@@ -499,7 +499,7 @@ static inline int blas_quickdivide(blasint x, blasint 
+ 
+ #if defined(ASSEMBLER) && !defined(NEEDPARAM)
+ 
+-#ifdef OS_LINUX
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ #ifndef __64BIT__
+ #define PROLOGUE \
+ 	.section .text;\
+@@ -774,7 +774,7 @@ Lmcount$lazy_ptr:
+ 
+ #define HALT		mfspr	r0, 1023
+ 
+-#ifdef OS_LINUX
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ #if defined(PPC440) || defined(PPC440FP2)
+ #undef  MAX_CPU_NUMBER
+ #define MAX_CPU_NUMBER 1
+@@ -819,7 +819,7 @@ Lmcount$lazy_ptr:
+ #define MAP_ANONYMOUS MAP_ANON
+ #endif
+ 
+-#ifdef OS_LINUX
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ #ifndef __64BIT__
+ #define FRAMESLOT(X) (((X) * 4) + 8)
+ #else


More information about the svn-ports-all mailing list