From ad8e1035c3feb1650640c2cfc995c1f5f917bbc7 Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Thu, 12 Mar 2009 16:51:53 +0000 Subject: honour NO_LONG_DOUBLE_MATH This fixes compilation errors on hosts that turn off long double support for C99 like powerpc32. Signed-off-by: Khem Raj Signed-off-by: Bernhard Reutner-Fischer --- libc/sysdeps/linux/alpha/bits/mathdef.h | 4 ++++ libc/sysdeps/linux/alpha/bits/wordsize.h | 4 ++-- libc/sysdeps/linux/arm/bits/mathdef.h | 8 ++++++++ libc/sysdeps/linux/common/bits/mathdef.h | 6 ++++++ libc/sysdeps/linux/i386/bits/mathdef.h | 4 ++++ libc/sysdeps/linux/ia64/bits/mathdef.h | 4 ++++ libc/sysdeps/linux/m68k/bits/mathdef.h | 4 ++++ libc/sysdeps/linux/mips/bits/mathdef.h | 6 ++++-- libc/sysdeps/linux/nios/bits/mathdef.h | 8 ++++++++ libc/sysdeps/linux/nios2/bits/mathdef.h | 8 ++++++++ libc/sysdeps/linux/powerpc/bits/mathdef.h | 8 +++++--- libc/sysdeps/linux/powerpc/bits/wordsize.h | 4 ++-- libc/sysdeps/linux/sh/bits/mathdef.h | 6 ++++++ libc/sysdeps/linux/sparc/bits/mathdef.h | 6 ++++-- libc/sysdeps/linux/sparc/bits/mathinline.h | 8 ++++---- libc/sysdeps/linux/sparc/bits/wordsize.h | 4 ++-- libc/sysdeps/linux/x86_64/bits/mathdef.h | 4 ++++ libc/sysdeps/linux/xtensa/bits/mathdef.h | 4 ++-- 18 files changed, 81 insertions(+), 19 deletions(-) (limited to 'libc/sysdeps') diff --git a/libc/sysdeps/linux/alpha/bits/mathdef.h b/libc/sysdeps/linux/alpha/bits/mathdef.h index cbfaf68e2..3b52ec7d5 100644 --- a/libc/sysdeps/linux/alpha/bits/mathdef.h +++ b/libc/sysdeps/linux/alpha/bits/mathdef.h @@ -78,3 +78,7 @@ typedef double double_t; # endif /* GNUC before 3.4 */ #endif /* COMPLEX_H */ + +#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ +# define __NO_LONG_DOUBLE_MATH 1 +#endif diff --git a/libc/sysdeps/linux/alpha/bits/wordsize.h b/libc/sysdeps/linux/alpha/bits/wordsize.h index 029a7dfb2..22fc64109 100644 --- a/libc/sysdeps/linux/alpha/bits/wordsize.h +++ b/libc/sysdeps/linux/alpha/bits/wordsize.h @@ -18,13 +18,13 @@ #define __WORDSIZE 64 -#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __LONG_DOUBLE_MATH_OPTIONAL +#if !defined __NO_LONG_DOUBLE_MATH && !defined __LONG_DOUBLE_MATH_OPTIONAL /* Signal that we didn't used to have a `long double'. The changes all the `long double' function variants to be redirects to the double functions. */ # define __LONG_DOUBLE_MATH_OPTIONAL 1 # ifndef __LONG_DOUBLE_128__ -# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__ +# define __NO_LONG_DOUBLE_MATH 1 # endif #endif diff --git a/libc/sysdeps/linux/arm/bits/mathdef.h b/libc/sysdeps/linux/arm/bits/mathdef.h index 22722e37a..e013e74b7 100644 --- a/libc/sysdeps/linux/arm/bits/mathdef.h +++ b/libc/sysdeps/linux/arm/bits/mathdef.h @@ -34,3 +34,11 @@ typedef double double_t; /* `double' expressions are evaluated as # define FP_ILOGBNAN (2147483647) #endif /* ISO C99 */ + +#ifndef __NO_LONG_DOUBLE_MATH +/* Signal that we do not really have a `long double'. This disables the + declaration of all the `long double' function variants. */ +/* XXX The FPA does support this but the patterns in GCC are currently + turned off. */ +# define __NO_LONG_DOUBLE_MATH 1 +#endif diff --git a/libc/sysdeps/linux/common/bits/mathdef.h b/libc/sysdeps/linux/common/bits/mathdef.h index 1927299f9..00c67241a 100644 --- a/libc/sysdeps/linux/common/bits/mathdef.h +++ b/libc/sysdeps/linux/common/bits/mathdef.h @@ -35,3 +35,9 @@ typedef double double_t; /* `double' expressions are evaluated as # define FP_ILOGBNAN 2147483647 #endif /* ISO C99 */ + +#ifndef __NO_LONG_DOUBLE_MATH +/* Signal that we do not really have a `long double'. The disables the + declaration of all the `long double' function variants. */ +# define __NO_LONG_DOUBLE_MATH 1 +#endif diff --git a/libc/sysdeps/linux/i386/bits/mathdef.h b/libc/sysdeps/linux/i386/bits/mathdef.h index ec42ed5df..a3786fc81 100644 --- a/libc/sysdeps/linux/i386/bits/mathdef.h +++ b/libc/sysdeps/linux/i386/bits/mathdef.h @@ -44,3 +44,7 @@ typedef long double double_t; /* `double' expressions are evaluated as # define FP_ILOGBNAN (-2147483647 - 1) #endif /* ISO C99 */ + +#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ +# define __NO_LONG_DOUBLE_MATH 1 +#endif diff --git a/libc/sysdeps/linux/ia64/bits/mathdef.h b/libc/sysdeps/linux/ia64/bits/mathdef.h index 3dc286022..5da23cc8a 100644 --- a/libc/sysdeps/linux/ia64/bits/mathdef.h +++ b/libc/sysdeps/linux/ia64/bits/mathdef.h @@ -35,3 +35,7 @@ typedef double double_t; /* `double' expressions are evaluated as # define FP_ILOGBNAN 2147483647 #endif /* ISO C99 */ + +#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ +# define __NO_LONG_DOUBLE_MATH 1 +#endif diff --git a/libc/sysdeps/linux/m68k/bits/mathdef.h b/libc/sysdeps/linux/m68k/bits/mathdef.h index 65cf8d49f..a69e93089 100644 --- a/libc/sysdeps/linux/m68k/bits/mathdef.h +++ b/libc/sysdeps/linux/m68k/bits/mathdef.h @@ -36,3 +36,7 @@ typedef long double double_t; /* `double' expressions are evaluated as # define FP_ILOGBNAN (2147483647) #endif /* ISO C99 */ + +#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ +# define __NO_LONG_DOUBLE_MATH 1 +#endif diff --git a/libc/sysdeps/linux/mips/bits/mathdef.h b/libc/sysdeps/linux/mips/bits/mathdef.h index b741f6551..331da13a9 100644 --- a/libc/sysdeps/linux/mips/bits/mathdef.h +++ b/libc/sysdeps/linux/mips/bits/mathdef.h @@ -39,8 +39,10 @@ typedef double double_t; /* `double' expressions are evaluated as #endif /* ISO C99 */ -#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && _MIPS_SIM == _ABIO32 +#if ! defined __NO_LONG_DOUBLE_MATH && _MIPS_SIM == _ABIO32 /* Signal that we do not really have a `long double'. This disables the declaration of all the `long double' function variants. */ -# error defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ and _MIPS_SIM == _ABIO32 +# define __NO_LONG_DOUBLE_MATH 1 +#elif !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ +# define __NO_LONG_DOUBLE_MATH 1 #endif diff --git a/libc/sysdeps/linux/nios/bits/mathdef.h b/libc/sysdeps/linux/nios/bits/mathdef.h index 22722e37a..e013e74b7 100644 --- a/libc/sysdeps/linux/nios/bits/mathdef.h +++ b/libc/sysdeps/linux/nios/bits/mathdef.h @@ -34,3 +34,11 @@ typedef double double_t; /* `double' expressions are evaluated as # define FP_ILOGBNAN (2147483647) #endif /* ISO C99 */ + +#ifndef __NO_LONG_DOUBLE_MATH +/* Signal that we do not really have a `long double'. This disables the + declaration of all the `long double' function variants. */ +/* XXX The FPA does support this but the patterns in GCC are currently + turned off. */ +# define __NO_LONG_DOUBLE_MATH 1 +#endif diff --git a/libc/sysdeps/linux/nios2/bits/mathdef.h b/libc/sysdeps/linux/nios2/bits/mathdef.h index 22722e37a..e013e74b7 100644 --- a/libc/sysdeps/linux/nios2/bits/mathdef.h +++ b/libc/sysdeps/linux/nios2/bits/mathdef.h @@ -34,3 +34,11 @@ typedef double double_t; /* `double' expressions are evaluated as # define FP_ILOGBNAN (2147483647) #endif /* ISO C99 */ + +#ifndef __NO_LONG_DOUBLE_MATH +/* Signal that we do not really have a `long double'. This disables the + declaration of all the `long double' function variants. */ +/* XXX The FPA does support this but the patterns in GCC are currently + turned off. */ +# define __NO_LONG_DOUBLE_MATH 1 +#endif diff --git a/libc/sysdeps/linux/powerpc/bits/mathdef.h b/libc/sysdeps/linux/powerpc/bits/mathdef.h index 81a46ddcd..f28bacece 100644 --- a/libc/sysdeps/linux/powerpc/bits/mathdef.h +++ b/libc/sysdeps/linux/powerpc/bits/mathdef.h @@ -65,11 +65,13 @@ typedef double double_t; #endif /* ISO C99 */ -#ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__ +#ifndef __NO_LONG_DOUBLE_MATH #include /* Signal that we do not really have a `long double'. The disables the declaration of all the `long double' function variants. */ # if __WORDSIZE == 32 -# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__ +# define __NO_LONG_DOUBLE_MATH 1 +# elif !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ +# define __NO_LONG_DOUBLE_MATH 1 # endif /* __WORDSIZE == 32 */ -#endif /* __UCLIBC_HAS_LONG_DOUBLE_MATH__ */ +#endif /* __NO_LONG_DOUBLE_MATH */ diff --git a/libc/sysdeps/linux/powerpc/bits/wordsize.h b/libc/sysdeps/linux/powerpc/bits/wordsize.h index dc19246d7..cf934234f 100644 --- a/libc/sysdeps/linux/powerpc/bits/wordsize.h +++ b/libc/sysdeps/linux/powerpc/bits/wordsize.h @@ -7,13 +7,13 @@ # define __WORDSIZE 32 #endif -#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __LONG_DOUBLE_MATH_OPTIONAL +#if !defined __NO_LONG_DOUBLE_MATH && !defined __LONG_DOUBLE_MATH_OPTIONAL /* Signal the glibc ABI didn't used to have a `long double'. The changes all the `long double' function variants to be redirects to the double functions. */ # define __LONG_DOUBLE_MATH_OPTIONAL 1 # ifndef __LONG_DOUBLE_128__ -# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__ +# define __NO_LONG_DOUBLE_MATH 1 # endif #endif diff --git a/libc/sysdeps/linux/sh/bits/mathdef.h b/libc/sysdeps/linux/sh/bits/mathdef.h index c419fcd4a..2b8caf194 100644 --- a/libc/sysdeps/linux/sh/bits/mathdef.h +++ b/libc/sysdeps/linux/sh/bits/mathdef.h @@ -61,3 +61,9 @@ typedef double double_t; # define FP_ILOGBNAN 0x7fffffff #endif /* ISO C99 */ + +#ifndef __NO_LONG_DOUBLE_MATH +/* Signal that we do not really have a `long double'. The disables the + declaration of all the `long double' function variants. */ +# define __NO_LONG_DOUBLE_MATH 1 +#endif diff --git a/libc/sysdeps/linux/sparc/bits/mathdef.h b/libc/sysdeps/linux/sparc/bits/mathdef.h index b1a0d917c..7f9bbee81 100644 --- a/libc/sysdeps/linux/sparc/bits/mathdef.h +++ b/libc/sysdeps/linux/sparc/bits/mathdef.h @@ -57,13 +57,15 @@ typedef double double_t; #endif /* ISO C99 */ -#ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__ +#ifndef __NO_LONG_DOUBLE_MATH # if __WORDSIZE == 32 /* Signal that in 32bit ABI we do not really have a `long double'. The disables the declaration of all the `long double' function variants. */ -# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__ +# define __NO_LONG_DOUBLE_MATH 1 +# elif !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ +# define __NO_LONG_DOUBLE_MATH 1 # endif #endif diff --git a/libc/sysdeps/linux/sparc/bits/mathinline.h b/libc/sysdeps/linux/sparc/bits/mathinline.h index 66ca0473d..c774dea9b 100644 --- a/libc/sysdeps/linux/sparc/bits/mathinline.h +++ b/libc/sysdeps/linux/sparc/bits/mathinline.h @@ -37,7 +37,7 @@ # if __WORDSIZE == 32 -# ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__ +# ifndef __NO_LONG_DOUBLE_MATH # define __unordered_cmp(x, y) \ (__extension__ \ @@ -157,7 +157,7 @@ __NTH (__signbit (double __x)) return __u.__i[0] < 0; } -# ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__ +# ifndef __NO_LONG_DOUBLE_MATH __MATH_INLINE int __NTH (__signbitl (long double __x)) { @@ -219,7 +219,7 @@ __NTH (sqrtl (long double __x)) _Qp_sqrt (&__r, &__x); return __r; } -# elif defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ +# elif !defined __NO_LONG_DOUBLE_MATH __MATH_INLINE long double sqrtl (long double __x) __THROW { @@ -257,7 +257,7 @@ __ieee754_sqrtl (long double __x) _Qp_sqrt(&__r, &__x); return __r; } -# elif defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ +# elif !defined __NO_LONG_DOUBLE_MATH __MATH_INLINE long double __ieee754_sqrtl (long double __x) { diff --git a/libc/sysdeps/linux/sparc/bits/wordsize.h b/libc/sysdeps/linux/sparc/bits/wordsize.h index c8e5bfdea..c0e600ed5 100644 --- a/libc/sysdeps/linux/sparc/bits/wordsize.h +++ b/libc/sysdeps/linux/sparc/bits/wordsize.h @@ -6,7 +6,7 @@ # define __WORDSIZE 32 #endif -#if 0 /* uClibc: done in mathdefs.h: defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __LONG_DOUBLE_MATH_OPTIONAL*/ +#if 0 /* uClibc: done in mathdefs.h: !defined __NO_LONG_DOUBLE_MATH && !defined __LONG_DOUBLE_MATH_OPTIONAL*/ # if __WORDSIZE == 32 /* Signal that in 32bit ABI we didn't used to have a `long double'. @@ -14,7 +14,7 @@ to the double functions. */ # define __LONG_DOUBLE_MATH_OPTIONAL 1 # ifndef __LONG_DOUBLE_128__ -# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__ +# define __NO_LONG_DOUBLE_MATH 1 # endif # endif #endif diff --git a/libc/sysdeps/linux/x86_64/bits/mathdef.h b/libc/sysdeps/linux/x86_64/bits/mathdef.h index 7b1618959..b0567e4d4 100644 --- a/libc/sysdeps/linux/x86_64/bits/mathdef.h +++ b/libc/sysdeps/linux/x86_64/bits/mathdef.h @@ -46,3 +46,7 @@ typedef long double double_t; /* `double' expressions are evaluated as # define FP_ILOGBNAN (-2147483647 - 1) #endif /* ISO C99 */ + +#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ +# define __NO_LONG_DOUBLE_MATH 1 +#endif diff --git a/libc/sysdeps/linux/xtensa/bits/mathdef.h b/libc/sysdeps/linux/xtensa/bits/mathdef.h index 99a4a318d..0177fa9fc 100644 --- a/libc/sysdeps/linux/xtensa/bits/mathdef.h +++ b/libc/sysdeps/linux/xtensa/bits/mathdef.h @@ -36,8 +36,8 @@ typedef double double_t; /* `double' expressions are evaluated as #endif /* ISO C99 */ -#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ +#ifndef __NO_LONG_DOUBLE_MATH /* Signal that we do not really have a `long double'. The disables the declaration of all the `long double' function variants. */ -# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__ +# define __NO_LONG_DOUBLE_MATH 1 #endif -- cgit v1.2.3