math/sleef: fix build on powerpc64

Altivec needs {} for vectors instead of ().
lib/libsleefgnuabi.so is not built on powerpc64.

PR:		239468
Approved by:	jmd (maintainer), mat (mentor)
Differential Revision:	https://reviews.freebsd.org/D21216
This commit is contained in:
Piotr Kubaj
2019-08-19 23:33:39 +00:00
parent 28446dcf1c
commit bd264455e3
3 changed files with 25 additions and 3 deletions

View File

@@ -18,4 +18,12 @@ USE_LDCONFIG= yes
USE_GITHUB= yes
GH_ACCOUNT= shibatch
.include <bsd.port.options.mk>
.if ${ARCH} == powerpc64
PLIST_SUB+= NO_PPC64="@comment "
.else
PLIST_SUB+= NO_PPC64=""
.endif
.include <bsd.port.mk>

View File

@@ -0,0 +1,14 @@
--- src/libm-tester/tester3.c.orig 2019-07-26 21:42:15 UTC
+++ src/libm-tester/tester3.c
@@ -71,9 +71,9 @@ static INLINE float getsvfloat32_t(svfloat32_t v, int
#endif
#ifdef __VSX__
-static INLINE vector_double setvector_double(double d, int r) { double a[2]; memrand(a, sizeof(a)); a[r & 1] = d; return (vector double) ( a[0], a[1] ); }
+static INLINE vector_double setvector_double(double d, int r) { double a[2]; memrand(a, sizeof(a)); a[r & 1] = d; return (vector double) { a[0], a[1] }; }
static INLINE double getvector_double(vector double v, int r) { double a[2]; return unifyValue(v[r & 1]); }
-static INLINE vector_float setvector_float(float d, int r) { float a[4]; memrand(a, sizeof(a)); a[r & 3] = d; return (vector float) ( a[0], a[1], a[2], a[3] ); }
+static INLINE vector_float setvector_float(float d, int r) { float a[4]; memrand(a, sizeof(a)); a[r & 3] = d; return (vector float) { a[0], a[1], a[2], a[3] }; }
static INLINE float getvector_float(vector float v, int r) { float a[4]; return unifyValuef(v[r & 3]); }
#endif

View File

@@ -6,6 +6,6 @@ lib/libsleef.so.3.4.0
lib/libsleefdft.so
lib/libsleefdft.so.3
lib/libsleefdft.so.3.4.0
lib/libsleefgnuabi.so
lib/libsleefgnuabi.so.3
lib/libsleefgnuabi.so.3.4
%%NO_PPC64%%lib/libsleefgnuabi.so
%%NO_PPC64%%lib/libsleefgnuabi.so.3
%%NO_PPC64%%lib/libsleefgnuabi.so.3.4