aboutsummaryrefslogtreecommitdiffstats
path: root/testing/geos/10-isnan.patch
diff options
context:
space:
mode:
authorEric Kidd <git@randomhacks.net>2016-04-19 12:58:54 -0400
committerNatanael Copa <ncopa@alpinelinux.org>2016-04-20 10:15:53 +0000
commit36336f64b642ce503402c0108707cfd74559f6f4 (patch)
treefc21dcf9cd530a50a6e020059b3e609c21612f67 /testing/geos/10-isnan.patch
parentf84909fce532ec3cb00314783764eb94cc3afe78 (diff)
downloadaports-36336f64b642ce503402c0108707cfd74559f6f4.tar.bz2
aports-36336f64b642ce503402c0108707cfd74559f6f4.tar.xz
testing/geos: new aport
http://trac.osgeo.org/geos/ GEOS is a library providing OpenGIS and JTS spatial operations in C++.
Diffstat (limited to 'testing/geos/10-isnan.patch')
-rw-r--r--testing/geos/10-isnan.patch108
1 files changed, 108 insertions, 0 deletions
diff --git a/testing/geos/10-isnan.patch b/testing/geos/10-isnan.patch
new file mode 100644
index 0000000000..f3415aff8b
--- /dev/null
+++ b/testing/geos/10-isnan.patch
@@ -0,0 +1,108 @@
+diff -urp geos-3.5.0-old/configure geos-3.5.0/configure
+--- geos-3.5.0-old/configure 2015-08-16 18:22:07.000000000 -0400
++++ geos-3.5.0/configure 2016-04-18 09:03:56.912678918 -0400
+@@ -17822,6 +17822,39 @@ if test x"$ac_cv_isnan" = x"yes"; then
+
+ $as_echo "#define HAVE_ISNAN 1" >>confdefs.h
+
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for std::isnan" >&5
++$as_echo_n "checking for std::isnan... " >&6; }
++if ${ac_cv_std_isnan+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++#include <cmath>
++int
++main ()
++{
++double x; int y; y = std::isnan(x);
++ ;
++ return 0;
++}
++_ACEOF
++if ac_fn_cxx_try_link "$LINENO"; then :
++ ac_cv_std_isnan=yes
++else
++ ac_cv_std_isnan=no
++
++fi
++rm -f core conftest.err conftest.$ac_objext \
++ conftest$ac_exeext conftest.$ac_ext
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_std_isnan" >&5
++$as_echo "$ac_cv_std_isnan" >&6; }
++ if test x"$ac_cv_std_isnan" = x"yes"; then
++
++$as_echo "#define HAVE_STD_ISNAN 1" >>confdefs.h
++
++ fi
+ fi
+ ac_ext=c
+ ac_cpp='$CPP $CPPFLAGS'
+diff -urp geos-3.5.0-old/configure.ac geos-3.5.0/configure.ac
+--- geos-3.5.0-old/configure.ac 2015-08-14 14:31:26.000000000 -0400
++++ geos-3.5.0/configure.ac 2016-04-18 09:03:37.064679323 -0400
+@@ -192,7 +192,7 @@ fi
+ dnl --------------------------------------------------------------------
+ dnl Test for presence of isnan function when using C++ and <cmath>
+ dnl This is for a particular bug in OS/X where <cmath> drops the definition
+-dnl of isnan().
++dnl of isnan(). A number of other systems appear to do the same thing.
+
+ AC_LANG_PUSH([C++])
+ AC_CACHE_CHECK([for isnan], ac_cv_isnan,
+@@ -203,6 +203,16 @@ AC_CACHE_CHECK([for isnan], ac_cv_isnan,
+ )])
+ if test x"$ac_cv_isnan" = x"yes"; then
+ AC_DEFINE(HAVE_ISNAN, [1], [Has isnan])
++else
++ AC_CACHE_CHECK([for std::isnan], ac_cv_std_isnan,
++ [AC_TRY_LINK([#include <cmath>],
++ [double x; int y; y = std::isnan(x);],
++ ac_cv_std_isnan=yes,
++ ac_cv_std_isnan=no
++ )])
++ if test x"$ac_cv_std_isnan" = x"yes"; then
++ AC_DEFINE(HAVE_STD_ISNAN, [1], [Has std::isnan])
++ fi
+ fi
+ AC_LANG_POP([C++])
+
+diff -urp geos-3.5.0-old/include/geos/platform.h.in geos-3.5.0/include/geos/platform.h.in
+--- geos-3.5.0-old/include/geos/platform.h.in 2015-08-14 14:23:18.000000000 -0400
++++ geos-3.5.0/include/geos/platform.h.in 2016-04-18 08:52:50.480692517 -0400
+@@ -22,6 +22,9 @@
+ /* Has isnan */
+ #undef HAVE_ISNAN
+
++/* Has std::isnan */
++#undef HAVE_STD_ISNAN
++
+ #ifdef HAVE_IEEEFP_H
+ extern "C"
+ {
+@@ -87,18 +90,16 @@ extern "C"
+
+ #if defined(HAVE_ISNAN)
+ # define ISNAN(x) (isnan(x))
++#elif defined(HAVE_STD_ISNAN)
++ // Hack for OS/X <cmath> incorrectly re-defining isnan() into oblivion.
++ // It does leave a version in std.
++# define ISNAN(x) (std::isnan(x))
+ #else
+ # if defined(_MSC_VER)
+ # define ISNAN(x) _isnan(x)
+ # elif defined(__MINGW32__) || defined(__CYGWIN__)
+ // sandro furieri: sanitizing MinGW32
+ # define ISNAN(x) (std::isnan(x))
+-# elif defined(__OSX__) || defined(__APPLE__) || \
+- defined(__NetBSD__) || defined(__DragonFly__) || defined (__OpenBSD__) || \
+- (defined(__sun) && defined(__GNUC__))
+- // Hack for OS/X <cmath> incorrectly re-defining isnan() into oblivion.
+- // It does leave a version in std.
+-# define ISNAN(x) (std::isnan(x))
+ # elif (defined(__sun) || defined(__sun__)) && defined(__SUNPRO_CC)
+ # include <math.h>
+ # define ISNAN(x) (::isnan(x))