This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Hi! test-tgmath fails on alpha because fdim, fabs and floor get inlined eventhough __NO_MATH_INLINES is defined. While looking at it, I patched tgmath.h so that it does not use ##l suffixed functions if __NO_LONG_DOUBLE_MATH, since otherwise we get loads of warnings about using functions without prototypes. 2001-02-07 Jakub Jelinek <jakub@redhat.com> * math/tgmath.h: Only add l suffixes if __NO_LONG_DOUBLE_MATH is not defined. * sysdeps/alpha/fpu/bits/mathinline.h: Honour __NO_MATH_INLINES. --- libc/math/tgmath.h.jj Fri Feb 2 04:56:56 2001 +++ libc/math/tgmath.h Wed Feb 7 07:47:30 2001 @@ -36,6 +36,12 @@ #if __GNUC_PREREQ (2, 7) +# ifdef __NO_LONG_DOUBLE_MATH +# define __tgml(fct) fct +# else +# define __tgml(fct) fct ## l +# endif + /* This is ugly but unless gcc gets appropriate builtins we have to do something like this. Don't ask how it works. */ @@ -65,7 +71,7 @@ else if (sizeof (Val) == sizeof (float)) \ __tgmres = Fct##f (Val); \ else \ - __tgmres = Fct##l (Val); \ + __tgmres = __tgml(Fct) (Val); \ __tgmres; })) # define __TGMATH_BINARY_FIRST_REAL_ONLY(Val1, Val2, Fct) \ @@ -76,7 +82,7 @@ else if (sizeof (Val1) == sizeof (float)) \ __tgmres = Fct##f (Val1, Val2); \ else \ - __tgmres = Fct##l (Val1, Val2); \ + __tgmres = __tgml(Fct) (Val1, Val2); \ __tgmres; })) # define __TGMATH_BINARY_REAL_ONLY(Val1, Val2, Fct) \ @@ -84,7 +90,7 @@ if ((sizeof (Val1) > sizeof (double) \ || sizeof (Val2) > sizeof (double)) \ && __builtin_classify_type ((Val1) + (Val2)) == 8) \ - __tgmres = Fct##l (Val1, Val2); \ + __tgmres = __tgml(Fct) (Val1, Val2); \ else if (sizeof (Val1) == sizeof (double) \ || sizeof (Val2) == sizeof (double) \ || __builtin_classify_type ((Val1) \ @@ -99,7 +105,7 @@ if ((sizeof (Val1) > sizeof (double) \ || sizeof (Val2) > sizeof (double)) \ && __builtin_classify_type ((Val1) + (Val2)) == 8) \ - __tgmres = Fct##l (Val1, Val2, Val3); \ + __tgmres = __tgml(Fct) (Val1, Val2, Val3); \ else if (sizeof (Val1) == sizeof (double) \ || sizeof (Val2) == sizeof (double) \ || __builtin_classify_type ((Val1) \ @@ -116,7 +122,7 @@ || sizeof (Val3) > sizeof (double)) \ && __builtin_classify_type ((Val1) + (Val2) \ + (Val3)) == 8) \ - __tgmres = Fct##l (Val1, Val2, Val3); \ + __tgmres = __tgml(Fct) (Val1, Val2, Val3); \ else if (sizeof (Val1) == sizeof (double) \ || sizeof (Val2) == sizeof (double) \ || sizeof (Val3) == sizeof (double) \ @@ -135,9 +141,9 @@ && __builtin_classify_type (__real__ (Val)) == 8) \ { \ if (sizeof (__real__ (Val)) == sizeof (Val)) \ - __tgmres = Fct##l (Val); \ + __tgmres = __tgml(Fct) (Val); \ else \ - __tgmres = Cfct##l (Val); \ + __tgmres = __tgml(Cfct) (Val); \ } \ else if (sizeof (__real__ (Val)) == sizeof (double) \ || __builtin_classify_type (__real__ (Val)) \ @@ -167,7 +173,7 @@ else if (sizeof (Val) == sizeof (__complex__ float)) \ __tgmres = Fct##f (Val); \ else \ - __tgmres = Fct##l (Val); \ + __tgmres = __tgml(Fct) (Val); \ __tgmres; })) /* XXX This definition has to be changed as soon as the compiler understands @@ -182,9 +188,9 @@ { \ if (sizeof (__real__ (Val1)) == sizeof (Val1) \ && sizeof (__real__ (Val2)) == sizeof (Val2)) \ - __tgmres = Fct##l (Val1, Val2); \ + __tgmres = __tgml(Fct) (Val1, Val2); \ else \ - __tgmres = Cfct##l (Val1, Val2); \ + __tgmres = __tgml(Cfct) (Val1, Val2); \ } \ else if (sizeof (__real__ (Val1)) == sizeof (double) \ || sizeof (__real__ (Val2)) == sizeof(double) \ --- libc/sysdeps/alpha/fpu/bits/mathinline.h.jj Thu Jun 8 06:03:42 2000 +++ libc/sysdeps/alpha/fpu/bits/mathinline.h Wed Feb 7 08:31:40 2001 @@ -1,5 +1,5 @@ /* Inline math functions for Alpha. - Copyright (C) 1996, 1997, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1999, 2000, 2001 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by David Mosberger-Tang. @@ -58,6 +58,8 @@ !isunordered(__x, __y) && __x != __y; })) #endif /* ISO C99 */ +#if !defined __NO_MATH_INLINES && defined __OPTIMIZE__ + #define __inline_copysign(NAME, TYPE) \ __MATH_INLINE TYPE \ NAME (TYPE __x, TYPE __y) __THROW \ @@ -174,4 +176,6 @@ __MATH_INLINE double fdim (double __x, d return __x < __y ? 0.0 : __x - __y; } -#endif +#endif /* C99 */ + +#endif /* __NO_MATH_INLINES */ Jakub
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |