[kaffe] CVS kaffe (dalibor): Fixed compiler warning on hppa-hpux

Kaffe CVS Kaffe Mailing List <kaffe@kaffe.org>
Thu Sep 25 06:19:02 2003


PatchSet 4064 
Date: 2003/09/25 13:16:33
Author: dalibor
Branch: HEAD
Tag: (none) 
Log:
Fixed compiler warning on hppa-hpux

The configure checks didn't look if isinf, isnan and finite were defined
as macros, so the replacement definitions caused a warning

Members: 
	ChangeLog:1.1659->1.1660 
	THIRDPARTY:1.2->1.3 
	configure:1.259->1.260 
	configure.in:1.225->1.226 
	config/config.h.in:1.80->1.81 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.1659 kaffe/ChangeLog:1.1660
--- kaffe/ChangeLog:1.1659	Thu Sep 25 10:06:13 2003
+++ kaffe/ChangeLog	Thu Sep 25 13:16:33 2003
@@ -1,5 +1,17 @@
 2003-09-25  Dalibor Topic <robilad@kaffe.org>
 
+	* configure.in:
+	Merged in ininf, isnan and finite checking code from 
+	Sablotron 1.0, licensed under MPL 1.1 and GPL.
+	
+	* THIRDPARTY:
+	Updated to reflect the inclusion of Sablotron's code.
+
+	* config/config.h.in, configure:
+	Regenerated.
+	
+2003-09-25  Dalibor Topic <robilad@kaffe.org>
+
 	Fix for jit and intrp engine compilation breakage.
 	
 	* kaffe/kaffevm/jni.c:
Index: kaffe/THIRDPARTY
diff -u kaffe/THIRDPARTY:1.2 kaffe/THIRDPARTY:1.3
--- kaffe/THIRDPARTY:1.2	Mon Sep 22 20:57:51 2003
+++ kaffe/THIRDPARTY	Thu Sep 25 13:16:33 2003
@@ -67,4 +67,9 @@
 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 SUCH DAMAGE.
 
-At the time of writing, Kaffe uses getaddrinfo 1.6.1.
\ No newline at end of file
+At the time of writing, Kaffe uses getaddrinfo 1.6.1.
+
+* Configure.in tests for isinf, isnan, finite
+
+Taken from Sablotron 1.0, which is dually licensed licensed under MPL 1.1 
+and GPL. It is available from http://www.gingerall.cz/charlie/ga/xml/p_sab.xml
Index: kaffe/configure
diff -u kaffe/configure:1.259 kaffe/configure:1.260
--- kaffe/configure:1.259	Tue Sep 23 21:44:01 2003
+++ kaffe/configure	Thu Sep 25 13:16:33 2003
@@ -39456,10 +39456,7 @@
 
 
 
-
-
-
-for ac_func in rint floor ceil finite isinf isnan strtod mergesort
+for ac_func in rint floor ceil strtod mergesort
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
 echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -39629,6 +39626,415 @@
 
 fi
 done
+
+
+
+
+echo "$as_me:$LINENO: checking for isnan" >&5
+echo $ECHO_N "checking for isnan... $ECHO_C" >&6
+if test "${ac_cv_func_isnan+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char isnan (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char isnan ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_isnan) || defined (__stub___isnan)
+choke me
+#else
+char (*f) () = isnan;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != isnan;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_isnan=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_isnan=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_isnan" >&5
+echo "${ECHO_T}$ac_cv_func_isnan" >&6
+if test $ac_cv_func_isnan = yes; then
+  has_isnan=1;
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_ISNAN 1
+_ACEOF
+
+else
+  has_isnan=0
+fi
+
+echo "$as_me:$LINENO: checking for isinf" >&5
+echo $ECHO_N "checking for isinf... $ECHO_C" >&6
+if test "${ac_cv_func_isinf+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char isinf (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char isinf ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_isinf) || defined (__stub___isinf)
+choke me
+#else
+char (*f) () = isinf;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != isinf;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_isinf=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_isinf=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_isinf" >&5
+echo "${ECHO_T}$ac_cv_func_isinf" >&6
+if test $ac_cv_func_isinf = yes; then
+  has_isinf=1;
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_ISINF 1
+_ACEOF
+
+else
+  has_isinf=0
+fi
+
+echo "$as_me:$LINENO: checking for finite" >&5
+echo $ECHO_N "checking for finite... $ECHO_C" >&6
+if test "${ac_cv_func_finite+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char finite (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char finite ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_finite) || defined (__stub___finite)
+choke me
+#else
+char (*f) () = finite;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != finite;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_finite=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_finite=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_finite" >&5
+echo "${ECHO_T}$ac_cv_func_finite" >&6
+if test $ac_cv_func_finite = yes; then
+  has_finite=1;
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_FINITE 1
+_ACEOF
+
+else
+  has_finite=0
+fi
+
+
+if test $has_isnan = 0; then
+  echo "$as_me:$LINENO: checking for macro isnan" >&5
+echo $ECHO_N "checking for macro isnan... $ECHO_C" >&6
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <math.h>
+int
+main ()
+{
+{ int foo; foo = isnan(0); }
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  has_isnan=1
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+has_isnan=0
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+  if test $has_isnan = 1; then
+    echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_ISNAN 1
+_ACEOF
+
+  else
+    echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+  fi
+fi
+
+if test $has_isinf = 0; then
+  echo "$as_me:$LINENO: checking for macro isinf" >&5
+echo $ECHO_N "checking for macro isinf... $ECHO_C" >&6
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <math.h>
+int
+main ()
+{
+{ int foo; foo = isinf(0); }
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  has_isinf=1
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+has_isinf=0
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+  if test $has_isinf = 1; then
+    echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_ISINF 1
+_ACEOF
+
+  else
+    echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+  fi
+fi
+
+if test $has_finite = 0; then
+  echo "$as_me:$LINENO: checking for macro finite" >&5
+echo $ECHO_N "checking for macro finite... $ECHO_C" >&6
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <math.h>
+int
+main ()
+{
+{ int foo; foo = finite(0); }
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  has_finite=1
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+has_finite=0
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+  if test $has_finite = 1; then
+    echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_FINITE 1
+_ACEOF
+
+  else
+    echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+  fi
+fi
 
 LIBS="$KSAVE_LIBS"
 
Index: kaffe/configure.in
diff -u kaffe/configure.in:1.225 kaffe/configure.in:1.226
--- kaffe/configure.in:1.225	Tue Sep 23 21:44:06 2003
+++ kaffe/configure.in	Thu Sep 25 13:16:37 2003
@@ -1013,8 +1013,59 @@
 KSAVE_LIBS="$LIBS"
 LIBS="$M_LIBS $LIBS"
 AC_CHECK_FUNCS([remainder remainderf fmod fmodf drem])
-AC_CHECK_FUNCS([rint floor ceil finite isinf isnan strtod mergesort])
+AC_CHECK_FUNCS([rint floor ceil strtod mergesort])
 AC_CHECK_FUNCS([strdup strstr strtod strtol strtoul])
+
+dnl isinf, isnan, finite checking code taken from Sablotron 1.0,
+dnl dually licensed licensed under MPL 1.1 and GPL
+dnl available from http://www.gingerall.cz/charlie/ga/xml/p_sab.xml
+
+dnl check for isnan etc...in the std. way and try link if not found
+dnl this is due HPUX, where isnan & Co. are defined as macros
+
+AC_CHECK_FUNC( isnan, [has_isnan=1; AC_DEFINE(HAVE_ISNAN, 1, isnan)], has_isnan=0)
+AC_CHECK_FUNC( isinf, [has_isinf=1; AC_DEFINE(HAVE_ISINF, 1, isinf)], has_isinf=0)
+AC_CHECK_FUNC( finite,[has_finite=1;AC_DEFINE(HAVE_FINITE, 1, finite)], has_finite=0)
+
+dnl check for macro isnan in math
+if test $has_isnan = 0; then
+  AC_MSG_CHECKING(for macro isnan)
+  AC_TRY_LINK( [#include <math.h>],  { int foo; foo = isnan(0); },
+              has_isnan=1, has_isnan=0 )
+  if test $has_isnan = 1; then
+    AC_MSG_RESULT(yes)
+    AC_DEFINE(HAVE_ISNAN, 1, isnan)
+  else
+    AC_MSG_RESULT(no)
+  fi
+fi
+
+dnl check for macro isinf in math
+if test $has_isinf = 0; then
+  AC_MSG_CHECKING(for macro isinf)
+  AC_TRY_LINK( [#include <math.h>],  { int foo; foo = isinf(0); },
+              has_isinf=1, has_isinf=0 )
+  if test $has_isinf = 1; then
+    AC_MSG_RESULT(yes)
+    AC_DEFINE(HAVE_ISINF, 1, isinf)
+  else
+    AC_MSG_RESULT(no)
+  fi
+fi
+
+dnl check for macro finite in math
+if test $has_finite = 0; then
+  AC_MSG_CHECKING(for macro finite)
+  AC_TRY_LINK( [#include <math.h>],  { int foo; foo = finite(0); },
+              has_finite=1, has_finite=0 )
+  if test $has_finite = 1; then
+    AC_MSG_RESULT(yes)
+    AC_DEFINE(HAVE_FINITE, 1, finite)
+  else
+    AC_MSG_RESULT(no)
+  fi
+fi
+
 LIBS="$KSAVE_LIBS"
 
 dnl Test whether strtod("-0.0") is broken
Index: kaffe/config/config.h.in
diff -u kaffe/config/config.h.in:1.80 kaffe/config/config.h.in:1.81
--- kaffe/config/config.h.in:1.80	Tue Sep 23 21:44:08 2003
+++ kaffe/config/config.h.in	Thu Sep 25 13:16:38 2003
@@ -79,7 +79,7 @@
 /* Define to 1 if you have the <features.h> header file. */
 #undef HAVE_FEATURES_H
 
-/* Define to 1 if you have the `finite' function. */
+/* finite */
 #undef HAVE_FINITE
 
 /* Define to 1 if you have the `floor' function. */
@@ -181,10 +181,10 @@
 /* Define to 1 if you have the `ioctl' function. */
 #undef HAVE_IOCTL
 
-/* Define to 1 if you have the `isinf' function. */
+/* isinf */
 #undef HAVE_ISINF
 
-/* Define to 1 if you have the `isnan' function. */
+/* isnan */
 #undef HAVE_ISNAN
 
 /* Define to 1 if you have the <jpeglib.h> header file. */