summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-libs/pastix')
-rw-r--r--sci-libs/pastix/files/pastix-5.2.2.22-isnan-floating-point-cast.patch47
-rw-r--r--sci-libs/pastix/pastix-5.2.2.22-r1.ebuild5
2 files changed, 51 insertions, 1 deletions
diff --git a/sci-libs/pastix/files/pastix-5.2.2.22-isnan-floating-point-cast.patch b/sci-libs/pastix/files/pastix-5.2.2.22-isnan-floating-point-cast.patch
new file mode 100644
index 000000000000..8aa7c06e5c93
--- /dev/null
+++ b/sci-libs/pastix/files/pastix-5.2.2.22-isnan-floating-point-cast.patch
@@ -0,0 +1,47 @@
+Add missing cast to floating-point type:
+* sopalin/src/variable_csc.c: In function ‘vcsc_add_node’:
+* sopalin/src/variable_csc.c:138:13: error: non-floating-point argument in call to function ‘__builtin_isnan’
+* if (isnan(vcsc->values[COL-1][i*dof2 + ii])) {
+See also:
+https://bugs.gentoo.org/show_bug.cgi?id=580422
+
+--- src/common/src/errors.h
++++ src/common/src/errors.h
+@@ -140,7 +140,7 @@
+ * expr - The value to check.
+ */
+ #define CHECK_NAN(expr) { \
+- ASSERT_DEBUG(!isnan(expr), DBG_SOPALIN_NAN); \
++ ASSERT_DEBUG(!isnan(((double) expr)), DBG_SOPALIN_NAN); \
+ ASSERT_DEBUG(!isinf(expr), DBG_SOPALIN_INF); \
+ }
+ #else
+--- src/sopalin/src/variable_csc.c
++++ src/sopalin/src/variable_csc.c
+@@ -135,7 +135,7 @@
+ #endif
+
+ for (ii = 0; ii < dof2; ii++) {
+- if (isnan(vcsc->values[COL-1][i*dof2 + ii])) {
++ if (isnan(((double) vcsc->values[COL-1][i*dof2 + ii]))) {
+ vcsc->values[COL-1][i*dof2 + ii] = VALUE[ii];
+ } else {
+ vcsc->values[COL-1][i*dof2 + ii] = op(vcsc->values[COL-1][i*dof2 + ii],
+@@ -252,7 +252,7 @@
+ vcsc->rows[COL_NODE][i]);
+ }
+ #endif
+- if (isnan(vcsc->values[COL_NODE][idx])) {
++ if (isnan(((double) vcsc->values[COL_NODE][idx]))) {
+ vcsc->values[COL_NODE][idx] = VALUE;
+ } else {
+ vcsc->values[COL_NODE][idx] = op(vcsc->values[COL_NODE][idx],
+@@ -660,7 +660,7 @@
+ } else {
+ INTS iterdof;
+ for (iterdof = 0; iterdof < dof2; iterdof++) {
+- if (!isnan(vcsc->values[MYCOL-1][dof2*iter2+iterdof])) {
++ if (!isnan(((double) vcsc->values[MYCOL-1][dof2*iter2+iterdof]))) {
+ /* ignore NaN values from VCSC */
+ (*values_o)[dof2*iter3+iterdof] = op(
+ (*values_o)[dof2*iter3+iterdof],
diff --git a/sci-libs/pastix/pastix-5.2.2.22-r1.ebuild b/sci-libs/pastix/pastix-5.2.2.22-r1.ebuild
index de59c9a71479..0fff267b93bf 100644
--- a/sci-libs/pastix/pastix-5.2.2.22-r1.ebuild
+++ b/sci-libs/pastix/pastix-5.2.2.22-r1.ebuild
@@ -41,11 +41,14 @@ RDEPEND="
DEPEND="${RDEPEND}
virtual/pkgconfig"
+PATCHES=(
+ "${FILESDIR}/${P}-nosmp-undefined-variable.patch"
+ "${FILESDIR}/${P}-isnan-floating-point-cast.patch"
+)
S="${WORKDIR}/${PN}_${PV}/src"
src_prepare() {
default
- epatch "${FILESDIR}"/${P}-nosmp-undefined-variable.patch
sed -e 's/^\(HOSTARCH\s*=\).*/\1 ${HOST}/' \
-e "s:^\(CCPROG\s*=\).*:\1 $(tc-getCC):" \
-e "s:^\(CFPROG\s*=\).*:\1 $(tc-getFC):" \