1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-03 06:04:53 +00:00

astro/boinc-setiathome: Fix build on powerpc64.

Code for AltiVec is written strictly with Mac OS X in mind exclusively and doesn't build on other systems.

Disable AltiVec on systems other than Mac OS X, which probably makes this run much slower, but at least it builds.

Tested on powerpc64 and amd64.

Hardware sponsored by IntegriCloud.

PR:		234145
Submitted by:	pkubaj@anongoth.pl
This commit is contained in:
Larry Rosenman 2018-12-18 20:45:44 +00:00
parent 35cb6b6a4e
commit 589818d6b7
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=487771
6 changed files with 103 additions and 4 deletions

View File

@ -3,7 +3,7 @@
PORTNAME= boinc-setiathome
PORTVERSION= 8.00
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= astro
MASTER_SITES= LOCAL/ler/setiathome \
http://www.lerctr.org/setiathome/
@ -18,13 +18,13 @@ LICENSE_FILE= ${WRKSRC}/COPYING
BROKEN_aarch64= fails to link: vector/analyzeFuncs_vector.cpp:(.data+0x38): undefined symbol 'vfp_GetPowerSpectrum(float (*) [2], float*, int)'
BROKEN_armv6= fails to compile: vector/analyzeFuncs_neon.S:178:17: invalid instruction, did you mean: neg?
BROKEN_armv7= fails to compile: vector/analyzeFuncs_neon.S:178:17: invalid instruction, did you mean: neg?
BROKEN_powerpc64= fails to compile: analyzeFuncs_altivec.cpp: CoreServices/CoreServices.h: No such file or directory
BUILD_DEPENDS= ${LOCALBASE}/include/fftw3.h:math/fftw3
RUN_DEPENDS= boinc_client:net/boinc-client
LIB_DEPENDS= libfftw3f.so:math/fftw3-float
USES= autoreconf compiler gmake libtool pkgconfig tar:xz
USES= autoreconf compiler:c++11-lang gmake gnome libtool pkgconfig \
tar:xz
GNU_CONFIGURE= yes
@ -47,7 +47,7 @@ X11_DESC= Build screensaver (requires net/boinc-client with X11)
OPTIONS_SUB= yes
X11_BUILD_DEPENDS= ${LOCALBASE}/lib/libboinc_graphics2.a:net/boinc-client
X11_USES= jpeg
X11_USES= gl jpeg
X11_USE= GL=gl,glu,glut \
XORG=ice,sm,x11,xau,xcb,xext,xi,xdamage,xdmcp,xfixes,xmu,xt,xxf86vm
X11_CONFIGURE_ENABLE= graphics

View File

@ -0,0 +1,11 @@
--- client/Makefile.am.orig 2018-12-18 10:43:02 UTC
+++ client/Makefile.am
@@ -203,7 +203,7 @@ if PPC
seti_boinc-analyzeFuncs_altivec.o: vector/analyzeFuncs_altivec.cpp
if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(seti_boinc_CXXFLAGS) $(CXXFLAGS) -DUSE_ALTIVEC \
- -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -faltivec -mabi=altivec \
+ -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -maltivec -mabi=altivec \
-c -o $@ $<; then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
seti_boinc-analyzeFuncs_vector.o: vector/analyzeFuncs_vector.cpp

View File

@ -0,0 +1,10 @@
--- client/pulsefind.h.orig 2018-12-18 12:03:47 UTC
+++ client/pulsefind.h
@@ -82,7 +82,6 @@ extern FoldSet AVXfold_c; // in analyzeFuncs_avx
extern FoldSet sse_ben_fold; // in analyzeFuncs_sse.cpp
extern FoldSet BHSSEfold; // in analyzeFuncs_sse.cpp
extern FoldSet AKSSEfold; // in analyzeFuncs_sse.cpp
-extern FoldSet AKavfold; // in analyzeFuncs_altivec.cpp
extern FoldSet swifold; // in Pulsefind - default set
extern FoldSet Foldmain; // in Pulsefind - used set

View File

@ -0,0 +1,11 @@
--- client/vector/analyzeFuncs_altivec.cpp.orig 2018-01-14 23:02:12 UTC
+++ client/vector/analyzeFuncs_altivec.cpp
@@ -31,7 +31,7 @@
// This file is empty is USE_ALTIVEC is not defined
#include "sah_config.h"
-#if defined(__ppc__) && defined(USE_ALTIVEC)
+#if defined(__ppc__) && defined(USE_ALTIVEC) && defined(__APPLE__)
#define INVALID_CHIRP 2e+20

View File

@ -0,0 +1,56 @@
--- client/vector/analyzeFuncs_vector.cpp.orig 2018-01-14 23:02:12 UTC
+++ client/vector/analyzeFuncs_vector.cpp
@@ -101,7 +101,7 @@
#if defined(HAVE__ISNAN)
#define isnotnan(x) (!_isnan(x))
#elif defined(HAVE_ISNAN)
-#define isnotnan(x) (!isnan(x))
+#define isnotnan(x) (!std::isnan(x))
#elif defined(HAVE___ISNAN)
#define isnotnan(x) (!__isnan(x))
#else
@@ -338,7 +338,7 @@ bool found_baseline_smooth=false;
GPStb GetPowerSpectrumFuncs[]={
v_GetPowerSpectrum, BA_ANY, "v_GetPowerSpectrum",
-#ifdef USE_ALTIVEC
+#if defined(USE_ALTIVEC) && defined(__APPLE__)
v_vGetPowerSpectrum, BA_ALTVC, "v_vGetPowerSpectrum",
v_vGetPowerSpectrumG4, BA_ALTVC,"v_vGetPowerSpectrumG4",
#endif
@@ -374,7 +374,7 @@ CDtb ChirpDataFuncs[]={
fpu_ChirpData, BA_ANY, "fpu_ChirpData",
fpu_opt_ChirpData, BA_ANY, "fpu_opt_ChirpData",
#endif
-#ifdef USE_ALTIVEC
+#if defined(USE_ALTIVEC) && defined(__APPLE__)
v_vChirpData, BA_ALTVC, "v_vChirpData",
v_vChirpDataG4, BA_ALTVC, "v_vChirpDataG4",
v_vChirpDataG5, BA_ALTVC, "v_vChirpDataG5",
@@ -432,7 +432,7 @@ TPtb TransposeFuncs[]={
#ifdef USE_FFTWF
fftwf_transpose, BA_ANY, "fftwf_transpose",
#endif
-#ifdef USE_ALTIVEC
+#if defined(USE_ALTIVEC) && defined(__APPLE__)
v_vTranspose, BA_ALTVC, "v_vTranspose",
#endif
#ifdef USE_SSE
@@ -461,7 +461,7 @@ TPtb TransposeFuncs[]={
v_avxTranspose8x8ntw_b, BA_AVX, "v_avxTranspose8x8ntw_b",
# endif
#endif
-#if (defined(__arm__) && defined(__VFP_FP__) && !defined(__SOFTFP__)) || defined(__arch64__)
+#if (defined(__arm__) && defined(__VFP_FP__) && !defined(__SOFTFP__)) || defined(__aarch64__)
v_pfTranspose2, BA_VFP, "v_pfTranspose2",
v_pfTranspose4, BA_VFP, "v_pfTranspose4",
v_pfTranspose8, BA_VFP, "v_pfTranspose8",
@@ -476,7 +476,7 @@ bool found_transpose=false;
FolSub FoldSubs[] = {
&swifold, BA_ANY,
-#ifdef USE_ALTIVEC
+#if defined(USE_ALTIVEC) && defined(__APPLE__)
&AKavfold, BA_ALTVC,
#endif
#ifdef USE_SSE

View File

@ -0,0 +1,11 @@
--- client/vector/analyzeFuncs_vector.h.orig 2018-12-18 12:22:10 UTC
+++ client/vector/analyzeFuncs_vector.h
@@ -275,7 +275,7 @@ extern int v_vGetPowerSpectrumUnrolled2(
);
#endif
-#ifdef USE_ALTIVEC
+#if defined(USE_ALTIVEC) && defined(__APPLE)
extern int v_vGetPowerSpectrumG4(
sah_complex * cx_FreqData,
float * fp_PowerSpectrum,