diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | math/math_private.h | 14 | ||||
-rw-r--r-- | sysdeps/alpha/fpu/bits/mathinline.h | 17 |
3 files changed, 29 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog index 14bb890be7..d66af56070 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2005-01-07 Richard Henderson <rth@redhat.com> + + * math/math_private.h (__copysign): Define as builtin for gcc 4. + (__copysignf, __copysignl): Likewise. + * sysdeps/alpha/fpu/bits/mathinline.h (copysign): Don't define + for gcc 4.0. + (copysignf, copysignl, fabsf, fabs): Likewise. + (__copysign, __copysignf, __copysignl): Remove. + (__fabs, __fabsf): Remove. + 2005-01-07 Jakub Jelinek <jakub@redhat.com> * elf/dl-load.c (open_path): If rtld_search_dirs is in RELRO segment, diff --git a/math/math_private.h b/math/math_private.h index f545841df0..a6a85d3b1e 100644 --- a/math/math_private.h +++ b/math/math_private.h @@ -192,6 +192,10 @@ extern int __kernel_rem_pio2 (double*,double*,int,int,int, const int32_t*); /* internal functions. */ extern double __copysign (double x, double __y); +#if __GNUC_PREREQ (4, 0) +extern inline double __copysign (double x, double y) +{ return __builtin_copysign (x, y); } +#endif /* ieee style elementary float functions */ extern float __ieee754_sqrtf (float); @@ -235,6 +239,10 @@ extern int __kernel_rem_pio2f (float*,float*,int,int,int, const int32_t*); /* internal functions. */ extern float __copysignf (float x, float __y); +#if __GNUC_PREREQ (4, 0) +extern inline float __copysignf (float x, float y) +{ return __builtin_copysignf (x, y); } +#endif /* ieee style elementary long double functions */ extern long double __ieee754_sqrtl (long double); @@ -298,6 +306,12 @@ extern long double fabsl (long double x); extern void __sincosl (long double, long double *, long double *); extern long double __logbl (long double x); extern long double __significandl (long double x); + +#if __GNUC_PREREQ (4, 0) +extern inline long double __copysignl (long double x, long double y) +{ return __builtin_copysignl (x, y); } +#endif + #endif /* Prototypes for functions of the IBM Accurate Mathematical Library. */ diff --git a/sysdeps/alpha/fpu/bits/mathinline.h b/sysdeps/alpha/fpu/bits/mathinline.h index 187bd42f33..87d40058c3 100644 --- a/sysdeps/alpha/fpu/bits/mathinline.h +++ b/sysdeps/alpha/fpu/bits/mathinline.h @@ -46,7 +46,8 @@ #if (!defined __NO_MATH_INLINES || defined __LIBC_INTERNAL_MATH_INLINES) \ && defined __OPTIMIZE__ -#define __inline_copysign(NAME, TYPE) \ +#if !__GNUC_PREREQ (4, 0) +# define __inline_copysign(NAME, TYPE) \ __MATH_INLINE TYPE \ __NTH (NAME (TYPE __x, TYPE __y)) \ { \ @@ -60,19 +61,11 @@ __inline_copysign (copysignf, float) __inline_copysign (__copysign, double) __inline_copysign (copysign, double) -#undef __MATH_INLINE_copysign +# undef __inline_copysign +#endif -#if __GNUC_PREREQ (2, 8) -__MATH_INLINE float -__NTH (__fabsf (float __x)) { return __builtin_fabsf (__x); } -__MATH_INLINE float -__NTH (fabsf (float __x)) { return __builtin_fabsf (__x); } -__MATH_INLINE double -__NTH (__fabs (double __x)) { return __builtin_fabs (__x); } -__MATH_INLINE double -__NTH (fabs (double __x)) { return __builtin_fabs (__x); } -#else +#if !__GNUC_PREREQ (2, 8) # define __inline_fabs(NAME, TYPE) \ __MATH_INLINE TYPE \ __NTH (NAME (TYPE __x)) \ |