mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-27 05:10:36 +00:00
science/cdo: fix build on powerpc64le, powerpc64 with CPUTYPE=power6 and newer with Clang
Clang doesn't have __fsel function. Taken from https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/config/rs6000/ppu_intrinsics.h;h=e17faae05932e33c22697a3178b26314b88c9a31;hb=HEAD#l530
This commit is contained in:
parent
6f7b90d884
commit
bffe69af05
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=565415
31
science/cdo/files/patch-libcdi_src_cgribexlib.c
Normal file
31
science/cdo/files/patch-libcdi_src_cgribexlib.c
Normal file
@ -0,0 +1,31 @@
|
||||
--- libcdi/src/cgribexlib.c.orig 2021-02-16 14:56:42 UTC
|
||||
+++ libcdi/src/cgribexlib.c
|
||||
@@ -10,7 +10,7 @@
|
||||
#pragma GCC diagnostic warning "-Wstrict-overflow"
|
||||
#endif
|
||||
|
||||
-#ifdef _ARCH_PWR6
|
||||
+#if defined(_ARCH_PWR6) && defined(__GLIBC__)
|
||||
#pragma options nostrict
|
||||
#include <ppu_intrinsics.h>
|
||||
#endif
|
||||
@@ -726,6 +726,19 @@ void sse2_minmax_val_double(const double *restrict buf
|
||||
#endif // SIMD
|
||||
|
||||
#if defined(_ARCH_PWR6)
|
||||
+
|
||||
+#ifndef __fsel
|
||||
+static __inline__ double __fsel(double x, double y, double z)
|
||||
+ __attribute__((always_inline));
|
||||
+static __inline__ double
|
||||
+__fsel(double x, double y, double z)
|
||||
+{
|
||||
+ double r;
|
||||
+ __asm__("fsel %0,%1,%2,%3" : "=d"(r) : "d"(x),"d"(y),"d"(z));
|
||||
+ return r;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
static
|
||||
void pwr6_minmax_val_double_unrolled6(const double *restrict data, size_t datasize, double *fmin, double *fmax)
|
||||
{
|
Loading…
Reference in New Issue
Block a user