Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2009-04-25 02:49:55 +0400
committerJeff Johnston <jjohnstn@redhat.com>2009-04-25 02:49:55 +0400
commit35f31b6a983710aa9a2bd7e308d1567f326f3f5f (patch)
treebfdf4f80ea36876d228aec85956bae902b94ae96
parentde194872240d47137474f610afca16d2ee659549 (diff)
2009-04-24 Jeff johnston <jjohnstn@redhat.com>
* configure.in: Add configuration test for long double equals dbl and set flag _LDBL_EQ_DBL if true. * configure: Regenerated. * newlib.hin: Add _LDBL_EQ_DBL flag. * libc/include/math.h: Use _LDBL_EQ_DBL flag instead of _HAVE_LDBL_MATH. * libc/include/stdlib.h: Use _LDBL_EQ_DBL flag instead of _HAVE_LDBL_STDLIB. * libc/common/local.h: Remove _LDBL_EQ_DBL flag setting. * libc/stdlib/local.h: Ditto.
-rw-r--r--newlib/ChangeLog13
-rwxr-xr-xnewlib/configure37
-rw-r--r--newlib/configure.in23
-rw-r--r--newlib/libc/include/math.h8
-rw-r--r--newlib/libc/include/stdlib.h6
-rw-r--r--newlib/libc/stdlib/local.h9
-rw-r--r--newlib/libm/common/local.h10
-rw-r--r--newlib/newlib.hin3
8 files changed, 84 insertions, 25 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index c81f47d46..c7f3110d0 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,3 +1,16 @@
+2009-04-24 Jeff johnston <jjohnstn@redhat.com>
+
+ * configure.in: Add configuration test for long double equals dbl
+ and set flag _LDBL_EQ_DBL if true.
+ * configure: Regenerated.
+ * newlib.hin: Add _LDBL_EQ_DBL flag.
+ * libc/include/math.h: Use _LDBL_EQ_DBL flag instead of
+ _HAVE_LDBL_MATH.
+ * libc/include/stdlib.h: Use _LDBL_EQ_DBL flag instead of
+ _HAVE_LDBL_STDLIB.
+ * libc/common/local.h: Remove _LDBL_EQ_DBL flag setting.
+ * libc/stdlib/local.h: Ditto.
+
2009-04-24 Joseph Myers <joseph@codesourcery.com>
* libc/include/stdint.h (UINTPTR_MAX): Define to __UINTPTR_MAX__
diff --git a/newlib/configure b/newlib/configure
index d2c7588b5..1d9108d88 100755
--- a/newlib/configure
+++ b/newlib/configure
@@ -11902,6 +11902,43 @@ _ACEOF
fi
+echo "$as_me:$LINENO: checking long double equals double" >&5
+echo $ECHO_N "checking long double equals double... $ECHO_C" >&6
+if test "${newlib_ldbl_eq_dbl+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat > conftest.c <<EOF
+#include <float.h>
+#if DBL_MANT_DIG == LDBL_MANT_DIG && LDBL_MIN_EXP == DBL_MIN_EXP && \
+ LDBL_MAX_EXP == DBL_MAX_EXP
+ #define _LDBL_EQ_DBL
+ #else
+ #error "LDBL != DBL"
+#endif
+EOF
+if { ac_try='${CC} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest conftest.c
+ -static -nostartfiles -nostdlib 1>&5'
+ { (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
+ newlib_ldbl_eq_dbl=yes;
+else
+ newlib_ldbl_eq_dbl=no;
+fi
+rm -f conftest*
+fi
+echo "$as_me:$LINENO: result: $newlib_ldbl_eq_dbl" >&5
+echo "${ECHO_T}$newlib_ldbl_eq_dbl" >&6
+if test $newlib_ldbl_eq_dbl = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define _LDBL_EQ_DBL 1
+_ACEOF
+
+fi
+
ac_config_files="$ac_config_files Makefile"
cat >confcache <<\_ACEOF
diff --git a/newlib/configure.in b/newlib/configure.in
index 01ca6a3a3..9ff520100 100644
--- a/newlib/configure.in
+++ b/newlib/configure.in
@@ -395,6 +395,29 @@ if test $libc_cv_initfinit_array = yes; then
AC_DEFINE_UNQUOTED(HAVE_INITFINI_ARRAY)
fi
+AC_CACHE_CHECK(long double equals double,
+ newlib_ldbl_eq_dbl, [dnl
+cat > conftest.c <<EOF
+#include <float.h>
+#if DBL_MANT_DIG == LDBL_MANT_DIG && LDBL_MIN_EXP == DBL_MIN_EXP && \
+ LDBL_MAX_EXP == DBL_MAX_EXP
+ #define _LDBL_EQ_DBL
+ #else
+ #error "LDBL != DBL"
+#endif
+EOF
+if AC_TRY_COMMAND([${CC} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest conftest.c
+ -static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD])
+then
+ newlib_ldbl_eq_dbl=yes;
+else
+ newlib_ldbl_eq_dbl=no;
+fi
+rm -f conftest*])
+if test $newlib_ldbl_eq_dbl = yes; then
+ AC_DEFINE_UNQUOTED(_LDBL_EQ_DBL)
+fi
+
AC_CONFIG_FILES([Makefile],
[if test -n "$CONFIG_FILES"; then
unset ac_file
diff --git a/newlib/libc/include/math.h b/newlib/libc/include/math.h
index 87b2626b5..3efdb3675 100644
--- a/newlib/libc/include/math.h
+++ b/newlib/libc/include/math.h
@@ -334,8 +334,8 @@ extern float log2f _PARAMS((float));
extern float hypotf _PARAMS((float, float));
#endif /* ! defined (_REENT_ONLY) */
-/* On platforms where long double math functions are supported. */
-#ifdef _HAVE_LDBL_MATH
+/* On platforms where long double equals double. */
+#ifdef _LDBL_EQ_DBL
/* Reentrant ANSI C functions. */
#ifndef __math_68881
extern long double atanl _PARAMS((long double));
@@ -400,14 +400,14 @@ extern long double lgammal _PARAMS((long double));
extern long double erfl _PARAMS((long double));
extern long double erfcl _PARAMS((long double));
#endif /* ! defined (_REENT_ONLY) */
-#else /* !_HAVE_LDBL_MATH */
+#else /* !_LDBL_EQ_DBL */
#ifdef __i386__
/* Other long double precision functions. */
extern _LONG_DOUBLE rintl _PARAMS((_LONG_DOUBLE));
extern long int lrintl _PARAMS((_LONG_DOUBLE));
extern _LONG_LONG_TYPE llrintl _PARAMS((_LONG_DOUBLE));
#endif /* __i386__ */
-#endif /* !_HAVE_LDBL_MATH */
+#endif /* !_LDBL_EQ_DBL */
#endif /* !defined (__STRICT_ANSI__) || defined(__cplusplus) || __STDC_VERSION__ >= 199901L */
diff --git a/newlib/libc/include/stdlib.h b/newlib/libc/include/stdlib.h
index 7dfb77983..8f7d31e18 100644
--- a/newlib/libc/include/stdlib.h
+++ b/newlib/libc/include/stdlib.h
@@ -199,11 +199,11 @@ int _EXFUN(_system_r,(struct _reent *, const char *));
_VOID _EXFUN(__eprintf,(const char *, const char *, unsigned int, const char *));
-/* On platforms where long double stdlib functions are supported. */
-#ifdef _HAVE_LDBL_STDLIB
+/* On platforms where long double equals double. */
+#ifdef _LDBL_EQ_DBL
extern long double strtold (const char *, char **);
extern long double wcstold (const wchar_t *, wchar_t **);
-#endif /* _HAVE_LDBL_STDLIB */
+#endif /* _LDBL_EQ_DBL */
_END_STD_C
diff --git a/newlib/libc/stdlib/local.h b/newlib/libc/stdlib/local.h
index 3e8eb02c6..703d70eed 100644
--- a/newlib/libc/stdlib/local.h
+++ b/newlib/libc/stdlib/local.h
@@ -63,13 +63,4 @@ int __iso_8859_index (const char *);
extern wchar_t __cp_conv[12][0x80];
int __cp_index (const char *);
-#include <float.h>
-
-/* Check if long double is as wide as double. */
-#if (!defined(__STRICT_ANSI__) || __STDC_VERSION__ > 199901L || \
- defined(__cplusplus)) && defined(LDBL_MANT_DIG) && \
- (DBL_MANT_DIG == LDBL_MANT_DIG && LDBL_MIN_EXP == DBL_MIN_EXP && \
- LDBL_MAX_EXP == DBL_MAX_EXP)
- #define _LDBL_EQ_DBL
-#endif
#endif
diff --git a/newlib/libm/common/local.h b/newlib/libm/common/local.h
index 9e32afacb..8461d0215 100644
--- a/newlib/libm/common/local.h
+++ b/newlib/libm/common/local.h
@@ -1,9 +1 @@
-#include <float.h>
-
-/* Check if long double is as wide as double. */
-#if (!defined(__STRICT_ANSI__) || __STDC_VERSION__ > 199901L || \
- defined(__cplusplus)) && defined(LDBL_MANT_DIG) && \
- (DBL_MANT_DIG == LDBL_MANT_DIG && LDBL_MIN_EXP == DBL_MIN_EXP && \
- LDBL_MAX_EXP == DBL_MAX_EXP)
- #define _LDBL_EQ_DBL
-#endif
+/* placeholder for future usage. */
diff --git a/newlib/newlib.hin b/newlib/newlib.hin
index b643411e9..f7afdebb7 100644
--- a/newlib/newlib.hin
+++ b/newlib/newlib.hin
@@ -46,6 +46,9 @@
functions. */
#undef _ATEXIT_DYNAMIC_ALLOC
+/* True if long double supported and it is equal to double. */
+#undef _LDBL_EQ_DBL
+
/*
* Iconv encodings enabled ("to" direction)
*/