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] |
Other format: | [Raw text] |
Hi! This is just a RFC, libm should be done while *printf, *scanf and *told etc. are not done yet. The patch requires on the platforms converting to TFmode long double from long double == double to use compiler which supports TFmode at least with some switch and should keep binary compatibility with old programs, newly linked programs using DFmode long double and newly linked programs using TFmode long double. What I wonder whether the <math.h> magic to __REDIRECT *l functions to their non-l counterparts should be done for all arches which have DFmode long double, I find it weird when #include <math.h> and logl etc. are prototyped on some arches and are missing on others. And the last thing I wonder is what to do about the *printf/*scanf family, where unlike the rest of the functions the DFmode symver cannot be simply alias to non-l function. I'd think printf@GLIBC_2.0 // uses DFmode long double - for old programs printf@@GLIBC_2.3 // uses TFmode long double - for new programs __nldbl_printf@@GLIBC_2.3 // uses DFmode long double - for new programs, // coming from printf __REDIRECT could work. Those would just pass an additional argument to the underlying *printf implementation (of course on the ldbl-64-128 arches only, via macros). Also, I wonder whether I should just add some macros to the end of each libio/ and stdio-common/ relevant file, or move those files to sysdeps/generic and override them in sysdeps/ieee754/ldbl-64-128. The disadvantage of the latter would be that we'd loose CVS history. --- libc/include/stdlib.h.jj Tue Apr 30 12:52:49 2002 +++ libc/include/stdlib.h Wed Jul 3 21:02:05 2002 @@ -148,6 +148,28 @@ __strtoull_l (__const char * __restrict return ____strtoull_l_internal (__nptr, __endptr, __base, 0, __loc); } +extern char *__ecvt (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign); +extern char *__fcvt (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign); +extern char *__gcvt (double __value, int __ndigit, char *__buf); +extern int __ecvt_r (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign, char *__restrict __buf, + size_t __len); +extern int __fcvt_r (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign, char *__restrict __buf, + size_t __len); +extern char *__qecvt (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign); +extern char *__qfcvt (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign); +extern char *__qgcvt (long double __value, int __ndigit, char *__buf); +extern int __qecvt_r (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign, + char *__restrict __buf, size_t __len); +extern int __qfcvt_r (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign, + char *__restrict __buf, size_t __len); # ifndef NOT_IN_libc # undef MB_CUR_MAX --- libc/math/bits/mathcalls.h.jj Thu Nov 29 13:37:41 2001 +++ libc/math/bits/mathcalls.h Mon Jul 1 12:56:48 2002 @@ -253,7 +253,9 @@ __MATHCALL (rint,, (_Mdouble_ __x)); /* Return X + epsilon if X < Y, X - epsilon if X > Y. */ __MATHCALLX (nextafter,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); -# ifdef __USE_ISOC99 +# if defined __USE_ISOC99 \ + && (!defined __LONG_DOUBLE_MATH_OPTIONAL \ + || !defined __NO_LONG_DOUBLE_MATH) __MATHCALLX (nexttoward,, (_Mdouble_ __x, long double __y), (__const__)); # endif --- libc/math/math.h.jj Thu Aug 23 18:48:30 2001 +++ libc/math/math.h Mon Jul 1 12:56:48 2002 @@ -83,9 +83,35 @@ __BEGIN_DECLS # undef _Mdouble_ # undef __MATH_PRECNAME -# if (__STDC__ - 0 || __GNUC__ - 0) && !defined __NO_LONG_DOUBLE_MATH +# if (__STDC__ - 0 || __GNUC__ - 0) \ + && (!defined __NO_LONG_DOUBLE_MATH \ + || defined __LONG_DOUBLE_MATH_OPTIONAL) +#ifdef __NO_LONG_DOUBLE_MATH + +# ifdef __USE_ISOC99 +extern _Mfloat_ __nexttowardfd (_Mfloat_ __x, long double __y) + __attribute__ ((__const__)) __THROW; +# ifdef __REDIRECT +extern _Mfloat_ __REDIRECT (nexttowardf, (_Mfloat_ __x, long double __y), + __nexttowardfd) __attribute__ ((__const__)) __THROW; +extern _Mdouble_ __REDIRECT (nexttoward, (_Mdouble_ __x, long double __y), + nextafter) __attribute__ ((__const__)) __THROW; +# else +# define nexttowardf __nexttowardfd +# define nexttoward nextafter +# endif +# endif + /* Include the file of declarations again, this time using `long double' instead of `double' and appending l to each function name. */ + +# undef __MATHDECL_1 +# define __MATHDECL_2(type, function,suffix, args, alias) \ + extern type __REDIRECT(__MATH_PRECNAME(function,suffix), \ + args, alias) __THROW +# define __MATHDECL_1(type, function,suffix, args) \ + __MATHDECL_2(type, function,suffix, args, __CONCAT(function,suffix)) +#endif # ifndef _Mlong_double_ # define _Mlong_double_ long double --- libc/math/Makefile.jj Sat Mar 23 11:50:41 2002 +++ libc/math/Makefile Wed Jul 3 19:32:37 2002 @@ -68,6 +68,7 @@ libm-routines = $(strip $(libm-support) long-m-routines = $(patsubst %_rl,%l_r,$(libm-calls:=l)) long-m-support = t_sincosl k_sincosl long-m-yes = $(long-m-routines) $(long-m-support) +long-m-optional = $(long-m-yes) distribute += $(long-m-yes:=.c) # These functions are in libc instead of libm because __printf_fp @@ -77,6 +78,7 @@ calls = s_isinf s_isnan s_finite s_copys s_signbit routines = $(calls) $(calls:=f) $(long-c-$(long-double-fcts)) long-c-yes = $(calls:=l) +long-c-optional = $(long-c-yes) distribute += $(long-c-yes:=.c) include ../Makeconfig @@ -87,6 +89,7 @@ tests = test-matherr test-fenv atest-exp # We do the `long double' tests only if this data type is available and # distinct from `double'. test-longdouble-yes = test-ldouble test-ildoubl +test-longdouble-optional = $(test-longdouble-yes) distribute += $(test-longdouble-yes:=.c) ifneq (no,$(PERL)) @@ -148,6 +151,14 @@ CPPFLAGS-s_lib_version.c := -D_POSIX_MOD math-CPPFLAGS += -D__NO_MATH_INLINES -D__LIBC_INTERNAL_MATH_INLINES ifneq ($(long-double-fcts),yes) +ifeq ($(long-double-fcts),optional) +# The `double' and `long double' types are the same on this machine +# when some compiler switch is used, different when other switch is +# used, while before it has been the same. +# Tell the `double' code to define compatibility symbols for the `FUNCl' +# names. +math-CPPFLAGS += -DLONG_DOUBLE_OPTIONAL=$(long-double-fcts-ver) +else # The `double' and `long double' types are the same on this machine. # We won't compile the `long double' code at all. Tell the `double' code # to define aliases for the `FUNCl' names. To avoid type conflicts in @@ -155,6 +166,7 @@ ifneq ($(long-double-fcts),yes) # `double' instead of `long double'. math-CPPFLAGS += -DNO_LONG_DOUBLE -D_Mlong_double_=double endif +endif # The fdlibm code generates a lot of these warnings but is otherwise clean. override CFLAGS += -Wno-uninitialized --- libc/math/complex.h.jj Thu Aug 23 18:48:30 2001 +++ libc/math/complex.h Mon Jul 1 12:56:48 2002 @@ -84,7 +84,15 @@ __BEGIN_DECLS /* And the long double versions. It is non-critical to define them here unconditionally since `long double' is required in ISO C99. */ -#if __STDC__ - 0 || __GNUC__ - 0 && !defined __NO_LONG_DOUBLE_MATH +#if __STDC__ - 0 || __GNUC__ - 0 \ + && (!defined __NO_LONG_DOUBLE_MATH \ + || defined __LONG_DOUBLE_MATH_OPTIONAL) +# ifdef __NO_LONG_DOUBLE_MATH +# undef __MATHDECL_1 +# define __MATHDECL_1(type, function, args) \ + extern type __REDIRECT(__MATH_PRECNAME(function), args, function) __THROW +# endif + # ifndef _Mlong_double_ # define _Mlong_double_ long double # endif --- libc/math/cabs.c.jj Thu Aug 23 18:48:30 2001 +++ libc/math/cabs.c Wed Jul 3 21:41:20 2002 @@ -1,33 +0,0 @@ -/* Return the complex absolute value of double complex value. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -double -__cabs (double _Complex z) -{ - return __hypot (__real__ z, __imag__ z); -} -weak_alias (__cabs, cabs) -#ifdef NO_LONG_DOUBLE -strong_alias (__cabs, __cabsl) -weak_alias (__cabs, cabsl) -#endif --- libc/math/cabsf.c.jj Thu Aug 23 18:48:30 2001 +++ libc/math/cabsf.c Wed Jul 3 21:41:20 2002 @@ -1,29 +0,0 @@ -/* Return the complex absolute value of float complex value. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -float -__cabsf (float _Complex z) -{ - return __hypotf (__real__ z, __imag__ z); -} -weak_alias (__cabsf, cabsf) --- libc/math/cabsl.c.jj Thu Aug 23 18:48:30 2001 +++ libc/math/cabsl.c Wed Jul 3 21:41:20 2002 @@ -1,29 +0,0 @@ -/* Return the complex absolute value of long double complex value. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -long double -__cabsl (long double _Complex z) -{ - return __hypotl (__real__ z, __imag__ z); -} -weak_alias (__cabsl, cabsl) --- libc/math/carg.c.jj Thu Aug 23 18:48:30 2001 +++ libc/math/carg.c Wed Jul 3 21:41:20 2002 @@ -1,33 +0,0 @@ -/* Compute argument of complex double value. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -double -__carg (__complex__ double x) -{ - return __atan2 (__imag__ x, __real__ x); -} -weak_alias (__carg, carg) -#ifdef NO_LONG_DOUBLE -strong_alias (__carg, __cargl) -weak_alias (__carg, cargl) -#endif --- libc/math/cargf.c.jj Thu Aug 23 18:48:30 2001 +++ libc/math/cargf.c Wed Jul 3 21:41:20 2002 @@ -1,29 +0,0 @@ -/* Compute argument of complex float value. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -float -__cargf (__complex__ float x) -{ - return __atan2f (__imag__ x, __real__ x); -} -weak_alias (__cargf, cargf) --- libc/math/cargl.c.jj Thu Aug 23 18:48:30 2001 +++ libc/math/cargl.c Wed Jul 3 21:41:21 2002 @@ -1,29 +0,0 @@ -/* Compute argument of complex long double value. - Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> -#include <math.h> - -long double -__cargl (__complex__ long double x) -{ - return __atan2l (__imag__ x, __real__ x); -} -weak_alias (__cargl, cargl) --- libc/math/cimag.c.jj Thu Aug 23 18:48:30 2001 +++ libc/math/cimag.c Wed Jul 3 21:41:21 2002 @@ -1,32 +0,0 @@ -/* Return imaginary part of complex double value. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> - -double -__cimag (double _Complex z) -{ - return __imag__ z; -} -weak_alias (__cimag, cimag) -#ifdef NO_LONG_DOUBLE -strong_alias (__cimag, __cimagl) -weak_alias (__cimag, cimagl) -#endif --- libc/math/cimagf.c.jj Thu Aug 23 18:48:30 2001 +++ libc/math/cimagf.c Wed Jul 3 21:41:21 2002 @@ -1,28 +0,0 @@ -/* Return imaginary part of complex float value. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> - -float -__cimagf (float _Complex z) -{ - return __imag__ z; -} -weak_alias (__cimagf, cimagf) --- libc/math/cimagl.c.jj Thu Aug 23 18:48:30 2001 +++ libc/math/cimagl.c Wed Jul 3 21:41:21 2002 @@ -1,28 +0,0 @@ -/* Return imaginary part of complex long double value. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> - -long double -__cimagl (long double _Complex z) -{ - return __imag__ z; -} -weak_alias (__cimagl, cimagl) --- libc/math/conj.c.jj Thu Aug 23 18:48:30 2001 +++ libc/math/conj.c Wed Jul 3 21:41:21 2002 @@ -1,32 +0,0 @@ -/* Return complex conjugate of complex double value. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> - -double _Complex -__conj (double _Complex z) -{ - return ~z; -} -weak_alias (__conj, conj) -#ifdef NO_LONG_DOUBLE -strong_alias (__conj, __conjl) -weak_alias (__conj, conjl) -#endif --- libc/math/conjf.c.jj Thu Aug 23 18:48:30 2001 +++ libc/math/conjf.c Wed Jul 3 21:41:21 2002 @@ -1,28 +0,0 @@ -/* Return complex conjugate of complex float value. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> - -float _Complex -__conjf (float _Complex z) -{ - return ~z; -} -weak_alias (__conjf, conjf) --- libc/math/conjl.c.jj Thu Aug 23 18:48:30 2001 +++ libc/math/conjl.c Wed Jul 3 21:41:21 2002 @@ -1,28 +0,0 @@ -/* Return complex conjugate of complex long double value. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> - -long double _Complex -__conjl (long double _Complex z) -{ - return ~z; -} -weak_alias (__conjl, conjl) --- libc/math/creal.c.jj Thu Aug 23 18:48:30 2001 +++ libc/math/creal.c Wed Jul 3 21:41:21 2002 @@ -1,32 +0,0 @@ -/* Return real part of complex double value. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> - -double -__creal (double _Complex z) -{ - return __real__ z; -} -weak_alias (__creal, creal) -#ifdef NO_LONG_DOUBLE -strong_alias (__creal, __creall) -weak_alias (__creal, creall) -#endif --- libc/math/crealf.c.jj Thu Aug 23 18:48:30 2001 +++ libc/math/crealf.c Wed Jul 3 21:41:21 2002 @@ -1,28 +0,0 @@ -/* Return real part of complex float value. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> - -float -__crealf (float _Complex z) -{ - return __real__ z; -} -weak_alias (__crealf, crealf) --- libc/math/creall.c.jj Thu Aug 23 18:48:30 2001 +++ libc/math/creall.c Wed Jul 3 21:41:21 2002 @@ -1,28 +0,0 @@ -/* Return real part of complex long double value. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <complex.h> - -long double -__creall (long double _Complex z) -{ - return __real__ z; -} -weak_alias (__creall, creall) --- libc/misc/efgcvt.c.jj Thu Aug 23 18:48:30 2001 +++ libc/misc/efgcvt.c Wed Jul 3 21:30:11 2002 @@ -1,5 +1,5 @@ /* Compatibility functions for floating point formatting. - Copyright (C) 1995, 1996, 1997, 1999 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1999, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -23,6 +23,7 @@ #include <sys/param.h> #include <float.h> #include <bits/libc-lock.h> +#include <shlib-compat.h> #ifndef FLOAT_TYPE # define FLOAT_TYPE double @@ -44,30 +45,33 @@ # error "NDIGIT_MAX must be precomputed" # define NDIGIT_MAX (lrint (ceil (M_LN2 / M_LN10 * DBL_MANT_DIG + 1.0))) # endif +#else +# define LONG_DOUBLE_CVT #endif #define APPEND(a, b) APPEND2 (a, b) #define APPEND2(a, b) a##b +#define __APPEND(a, b) __APPEND2 (a, b) +#define __APPEND2(a, b) __##a##b #define FCVT_BUFFER APPEND (FUNC_PREFIX, fcvt_buffer) #define FCVT_BUFPTR APPEND (FUNC_PREFIX, fcvt_bufptr) #define ECVT_BUFFER APPEND (FUNC_PREFIX, ecvt_buffer) - static char FCVT_BUFFER[MAXDIG]; static char ECVT_BUFFER[MAXDIG]; static char *FCVT_BUFPTR; char * -APPEND (FUNC_PREFIX, fcvt) (value, ndigit, decpt, sign) +__APPEND (FUNC_PREFIX, fcvt) (value, ndigit, decpt, sign) FLOAT_TYPE value; int ndigit, *decpt, *sign; { if (FCVT_BUFPTR == NULL) { - if (APPEND (FUNC_PREFIX, fcvt_r) (value, ndigit, decpt, sign, - FCVT_BUFFER, MAXDIG) != -1) + if (__APPEND (FUNC_PREFIX, fcvt_r) (value, ndigit, decpt, sign, + FCVT_BUFFER, MAXDIG) != -1) return FCVT_BUFFER; FCVT_BUFPTR = (char *) malloc (FCVT_MAXDIG); @@ -75,26 +79,26 @@ APPEND (FUNC_PREFIX, fcvt) (value, ndigi return FCVT_BUFFER; } - (void) APPEND (FUNC_PREFIX, fcvt_r) (value, ndigit, decpt, sign, - FCVT_BUFPTR, FCVT_MAXDIG); + (void) __APPEND (FUNC_PREFIX, fcvt_r) (value, ndigit, decpt, sign, + FCVT_BUFPTR, FCVT_MAXDIG); return FCVT_BUFPTR; } char * -APPEND (FUNC_PREFIX, ecvt) (value, ndigit, decpt, sign) +__APPEND (FUNC_PREFIX, ecvt) (value, ndigit, decpt, sign) FLOAT_TYPE value; int ndigit, *decpt, *sign; { - (void) APPEND (FUNC_PREFIX, ecvt_r) (value, ndigit, decpt, sign, - ECVT_BUFFER, MAXDIG); + (void) __APPEND (FUNC_PREFIX, ecvt_r) (value, ndigit, decpt, sign, + ECVT_BUFFER, MAXDIG); return ECVT_BUFFER; } char * -APPEND (FUNC_PREFIX, gcvt) (value, ndigit, buf) +__APPEND (FUNC_PREFIX, gcvt) (value, ndigit, buf) FLOAT_TYPE value; int ndigit; char *buf; @@ -112,3 +116,27 @@ free_mem (void) } text_set_element (__libc_subfreeres, free_mem); + +#if defined LONG_DOUBLE_OPTIONAL && \ + SHLIB_COMPAT(libc, GLIBC_2_0, LONG_DOUBLE_OPTIONAL) +# ifdef LONG_DOUBLE_CVT +# define cvt_symbol(symbol) \ + cvt_symbol_1 (libc, __APPEND (FUNC_PREFIX, symbol), \ + APPEND (FUNC_PREFIX, symbol), LONG_DOUBLE_OPTIONAL) +# define cvt_symbol_1(lib, local, symbol, version) \ + versioned_symbol (lib, local, symbol, version) +# else +# define cvt_symbol(symbol) \ + cvt_symbol_1 (libc, __APPEND (FUNC_PREFIX, symbol), \ + APPEND (q, symbol), GLIBC_2_0); \ + strong_alias (__APPEND (FUNC_PREFIX, symbol), APPEND (FUNC_PREFIX, symbol)) +# define cvt_symbol_1(lib, local, symbol, version) \ + compat_symbol (lib, local, symbol, version) +# endif +#else +# define cvt_symbol(symbol) \ + strong_alias (__APPEND (FUNC_PREFIX, symbol), APPEND (FUNC_PREFIX, symbol)) +#endif +cvt_symbol(fcvt); +cvt_symbol(ecvt); +cvt_symbol(gcvt); --- libc/misc/efgcvt_r.c.jj Thu Aug 23 18:48:30 2001 +++ libc/misc/efgcvt_r.c Wed Jul 3 21:30:58 2002 @@ -1,5 +1,6 @@ /* Compatibility functions for floating point formatting, reentrant versions. - Copyright (C) 1995,1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc. + Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 + Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -25,6 +26,7 @@ #include <math.h> #include <stdlib.h> #include <sys/param.h> +#include <shlib-compat.h> #ifndef FLOAT_TYPE # define FLOAT_TYPE double @@ -43,10 +45,14 @@ # error "NDIGIT_MAX must be precomputed" # define NDIGIT_MAX (lrint (ceil (M_LN2 / M_LN10 * DBL_MANT_DIG + 1.0))) # endif +#else +# define LONG_DOUBLE_CVT #endif #define APPEND(a, b) APPEND2 (a, b) #define APPEND2(a, b) a##b +#define __APPEND(a, b) __APPEND2 (a, b) +#define __APPEND2(a, b) __##a##b #define FLOOR APPEND(floor, FLOAT_NAME_EXT) #define FABS APPEND(fabs, FLOAT_NAME_EXT) @@ -55,7 +61,7 @@ int -APPEND (FUNC_PREFIX, fcvt_r) (value, ndigit, decpt, sign, buf, len) +__APPEND (FUNC_PREFIX, fcvt_r) (value, ndigit, decpt, sign, buf, len) FLOAT_TYPE value; int ndigit, *decpt, *sign; char *buf; @@ -153,7 +159,7 @@ APPEND (FUNC_PREFIX, fcvt_r) (value, ndi } int -APPEND (FUNC_PREFIX, ecvt_r) (value, ndigit, decpt, sign, buf, len) +__APPEND (FUNC_PREFIX, ecvt_r) (value, ndigit, decpt, sign, buf, len) FLOAT_TYPE value; int ndigit, *decpt, *sign; char *buf; @@ -205,10 +211,33 @@ APPEND (FUNC_PREFIX, ecvt_r) (value, ndi *sign = isfinite (value) ? signbit (value) != 0 : 0; } else - if (APPEND (FUNC_PREFIX, fcvt_r) (value, MIN (ndigit, NDIGIT_MAX) - 1, - decpt, sign, buf, len)) + if (__APPEND (FUNC_PREFIX, fcvt_r) (value, MIN (ndigit, NDIGIT_MAX) - 1, + decpt, sign, buf, len)) return -1; *decpt += exponent; return 0; } + +#if defined LONG_DOUBLE_OPTIONAL && \ + SHLIB_COMPAT(libc, GLIBC_2_0, LONG_DOUBLE_OPTIONAL) +# ifdef LONG_DOUBLE_CVT +# define cvt_symbol(symbol) \ + cvt_symbol_1 (libc, __APPEND (FUNC_PREFIX, symbol), \ + APPEND (FUNC_PREFIX, symbol), LONG_DOUBLE_OPTIONAL) +# define cvt_symbol_1(lib, local, symbol, version) \ + versioned_symbol (lib, local, symbol, version) +# else +# define cvt_symbol(symbol) \ + cvt_symbol_1 (libc, __APPEND (FUNC_PREFIX, symbol), \ + APPEND (q, symbol), GLIBC_2_0); \ + strong_alias (__APPEND (FUNC_PREFIX, symbol), APPEND (FUNC_PREFIX, symbol)) +# define cvt_symbol_1(lib, local, symbol, version) \ + compat_symbol (lib, local, symbol, version) +# endif +#else +# define cvt_symbol(symbol) \ + strong_alias (__APPEND (FUNC_PREFIX, symbol), APPEND (FUNC_PREFIX, symbol)) +#endif +cvt_symbol(fcvt_r); +cvt_symbol(ecvt_r); --- libc/stdlib/stdlib.h.jj Wed Nov 21 13:32:34 2001 +++ libc/stdlib/stdlib.h Mon Jul 1 12:56:48 2002 @@ -31,6 +31,7 @@ # define __need_NULL #endif #include <stddef.h> +#include <bits/wordsize.h> __BEGIN_DECLS @@ -155,8 +156,18 @@ extern double strtod (__const char *__re extern float strtof (__const char *__restrict __nptr, char **__restrict __endptr) __THROW; +# if defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH +# ifdef __REDIRECT +extern long double __REDIRECT (strtold, (__const char *__restrict __nptr, + char **__restrict __endptr) __THROW, + strtod); +# else +# define strtold strtod +# endif +# else extern long double strtold (__const char *__restrict __nptr, char **__restrict __endptr) __THROW; +# endif #endif /* Convert a string to a long integer. */ @@ -238,9 +249,20 @@ extern double __strtod_l (__const char * extern float __strtof_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) __THROW; +# if defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH +# ifdef __REDIRECT +extern long double __REDIRECT (__strtold_l, (__const char *__restrict __nptr, + char **__restrict __endptr, + __locale_t __loc) __THROW, + __strtod_l); +# else +# define __strtold_l __strtod_l +# endif +# else extern long double __strtold_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) __THROW; +# endif #endif /* GNU */ @@ -253,9 +275,20 @@ extern double __strtod_internal (__const extern float __strtof_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) __THROW; +# if defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH +# ifdef __REDIRECT +extern long double __REDIRECT (__strtold_internal, + (__const char *__restrict __nptr, + char **__restrict __endptr, + int __group) __THROW, __strtod_internal); +# else +# define __strtold_internal __strtod_internal +# endif +# else extern long double __strtold_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) __THROW; +# endif #ifndef __strtol_internal_defined extern long int __strtol_internal (__const char *__restrict __nptr, char **__restrict __endptr, @@ -314,11 +347,13 @@ strtof (__const char *__restrict __nptr, { return __strtof_internal (__nptr, __endptr, 0); } +# if !defined __LONG_DOUBLE_MATH_OPTIONAL || !defined __NO_LONG_DOUBLE_MATH extern __inline long double strtold (__const char *__restrict __nptr, char **__restrict __endptr) __THROW { return __strtold_internal (__nptr, __endptr, 0); } +# endif # endif # ifdef __USE_BSD @@ -741,14 +776,6 @@ extern char *gcvt (double __value, int _ # ifdef __USE_MISC -/* Long double versions of above functions. */ -extern char *qecvt (long double __value, int __ndigit, - int *__restrict __decpt, int *__restrict __sign) __THROW; -extern char *qfcvt (long double __value, int __ndigit, - int *__restrict __decpt, int *__restrict __sign) __THROW; -extern char *qgcvt (long double __value, int __ndigit, char *__buf) __THROW; - - /* Reentrant version of the functions above which provide their own buffers. */ extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, @@ -758,12 +785,53 @@ extern int fcvt_r (double __value, int _ int *__restrict __sign, char *__restrict __buf, size_t __len) __THROW; +/* Long double versions of above functions. */ +# if defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH +# ifdef __REDIRECT +extern char *__REDIRECT (qecvt, (long double __value, int __ndigit, + int *__restrict __decpt, + int *__restrict __sign) __THROW, ecvt); +extern char *__REDIRECT (qfcvt, (long double __value, int __ndigit, + int *__restrict __decpt, + int *__restrict __sign) __THROW, fcvt); +extern char *__REDIRECT (qgcvt, (long double __value, int __ndigit, + char *__buf) __THROW, gcvt); + +/* Reentrant version of the functions above which provide their own + buffers. */ +extern int __REDIRECT (qecvt_r, (long double __value, int __ndigit, + int *__restrict __decpt, + int *__restrict __sign, + char *__restrict __buf, + size_t __len) __THROW, ecvt_r); +extern int __REDIRECT (qfcvt_r, (long double __value, int __ndigit, + int *__restrict __decpt, + int *__restrict __sign, + char *__restrict __buf, + size_t __len) __THROW, fcvt_r); +# else +# define qecvt ecvt +# define qfcvt fcvt +# define qgcvt gcvt +# define qecvt_r ecvt_r +# define qfcvt_r fcvt_r +# endif /* no __REDIRECT */ +# else +extern char *qecvt (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign) __THROW; +extern char *qfcvt (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign) __THROW; +extern char *qgcvt (long double __value, int __ndigit, char *__buf) __THROW; + +/* Reentrant version of the functions above which provide their own + buffers. */ extern int qecvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __THROW; extern int qfcvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __THROW; +# endif /* no double = long double compatibility */ # endif /* misc */ #endif /* use MISC || use X/Open Unix */ --- libc/sysdeps/generic/w_j0l.c.jj Sat Feb 17 02:43:10 2001 +++ libc/sysdeps/generic/w_j0l.c Mon Jul 1 12:56:48 2002 @@ -26,9 +26,9 @@ static char rcsid[] = "$NetBSD: $"; #include "math_private.h" #ifdef __STDC__ - long double j0l(long double x) /* wrapper j0l */ + long double __j0l(long double x) /* wrapper j0l */ #else - long double j0l(x) /* wrapper j0 */ + long double __j0l(x) /* wrapper j0 */ long double x; #endif { @@ -43,11 +43,12 @@ static char rcsid[] = "$NetBSD: $"; return z; #endif } +weak_alias (__j0l, j0l) #ifdef __STDC__ - long double y0l(long double x) /* wrapper y0l */ + long double __y0l(long double x) /* wrapper y0l */ #else - long double y0l(x) /* wrapper y0 */ + long double __y0l(x) /* wrapper y0 */ long double x; #endif { @@ -71,3 +72,5 @@ static char rcsid[] = "$NetBSD: $"; return z; #endif } + +weak_alias (__y0l, y0l) --- libc/sysdeps/generic/w_j1l.c.jj Sat Feb 17 02:43:24 2001 +++ libc/sysdeps/generic/w_j1l.c Mon Jul 1 12:56:48 2002 @@ -26,9 +26,9 @@ static char rcsid[] = "$NetBSD: $"; #include "math_private.h" #ifdef __STDC__ - long double j1l(long double x) /* wrapper j1l */ + long double __j1l(long double x) /* wrapper j1l */ #else - long double j1l(x) /* wrapper j1l */ + long double __j1l(x) /* wrapper j1l */ long double x; #endif { @@ -44,11 +44,12 @@ static char rcsid[] = "$NetBSD: $"; return z; #endif } +weak_alias (__j1l, j1l) #ifdef __STDC__ - long double y1l(long double x) /* wrapper y1l */ + long double __y1l(long double x) /* wrapper y1l */ #else - long double y1l(x) /* wrapper y1l */ + long double __y1l(x) /* wrapper y1l */ long double x; #endif { @@ -72,3 +73,4 @@ static char rcsid[] = "$NetBSD: $"; return z; #endif } +weak_alias (__y1l, y1l) --- libc/sysdeps/generic/w_jnl.c.jj Sat Feb 17 02:43:38 2001 +++ libc/sysdeps/generic/w_jnl.c Mon Jul 1 12:56:48 2002 @@ -48,9 +48,9 @@ static char rcsid[] = "$NetBSD: $"; #include "math_private.h" #ifdef __STDC__ - long double jnl(int n, long double x) /* wrapper jnl */ + long double __jnl(int n, long double x) /* wrapper jnl */ #else - long double jnl(n,x) /* wrapper jnl */ + long double __jnl(n,x) /* wrapper jnl */ long double x; int n; #endif { @@ -66,11 +66,12 @@ static char rcsid[] = "$NetBSD: $"; return z; #endif } +weak_alias (__jnl, jnl) #ifdef __STDC__ - long double ynl(int n, long double x) /* wrapper ynl */ + long double __ynl(int n, long double x) /* wrapper ynl */ #else - long double ynl(n,x) /* wrapper ynl */ + long double __ynl(n,x) /* wrapper ynl */ long double x; int n; #endif { @@ -94,3 +95,4 @@ static char rcsid[] = "$NetBSD: $"; return z; #endif } +weak_alias (__ynl, ynl) --- libc/sysdeps/generic/cabs.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/generic/cabs.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,33 @@ +/* Return the complex absolute value of double complex value. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <complex.h> +#include <math.h> + +double +__cabs (double _Complex z) +{ + return __hypot (__real__ z, __imag__ z); +} +weak_alias (__cabs, cabs) +#ifdef NO_LONG_DOUBLE +strong_alias (__cabs, __cabsl) +weak_alias (__cabs, cabsl) +#endif --- libc/sysdeps/generic/cabsf.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/generic/cabsf.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,29 @@ +/* Return the complex absolute value of float complex value. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <complex.h> +#include <math.h> + +float +__cabsf (float _Complex z) +{ + return __hypotf (__real__ z, __imag__ z); +} +weak_alias (__cabsf, cabsf) --- libc/sysdeps/generic/cabsl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/generic/cabsl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,29 @@ +/* Return the complex absolute value of long double complex value. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <complex.h> +#include <math.h> + +long double +__cabsl (long double _Complex z) +{ + return __hypotl (__real__ z, __imag__ z); +} +weak_alias (__cabsl, cabsl) --- libc/sysdeps/generic/carg.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/generic/carg.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,33 @@ +/* Compute argument of complex double value. + Copyright (C) 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <complex.h> +#include <math.h> + +double +__carg (__complex__ double x) +{ + return __atan2 (__imag__ x, __real__ x); +} +weak_alias (__carg, carg) +#ifdef NO_LONG_DOUBLE +strong_alias (__carg, __cargl) +weak_alias (__carg, cargl) +#endif --- libc/sysdeps/generic/cargf.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/generic/cargf.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,29 @@ +/* Compute argument of complex float value. + Copyright (C) 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <complex.h> +#include <math.h> + +float +__cargf (__complex__ float x) +{ + return __atan2f (__imag__ x, __real__ x); +} +weak_alias (__cargf, cargf) --- libc/sysdeps/generic/cargl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/generic/cargl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,29 @@ +/* Compute argument of complex long double value. + Copyright (C) 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <complex.h> +#include <math.h> + +long double +__cargl (__complex__ long double x) +{ + return __atan2l (__imag__ x, __real__ x); +} +weak_alias (__cargl, cargl) --- libc/sysdeps/generic/cimag.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/generic/cimag.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,32 @@ +/* Return imaginary part of complex double value. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <complex.h> + +double +__cimag (double _Complex z) +{ + return __imag__ z; +} +weak_alias (__cimag, cimag) +#ifdef NO_LONG_DOUBLE +strong_alias (__cimag, __cimagl) +weak_alias (__cimag, cimagl) +#endif --- libc/sysdeps/generic/cimagf.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/generic/cimagf.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,28 @@ +/* Return imaginary part of complex float value. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <complex.h> + +float +__cimagf (float _Complex z) +{ + return __imag__ z; +} +weak_alias (__cimagf, cimagf) --- libc/sysdeps/generic/cimagl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/generic/cimagl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,28 @@ +/* Return imaginary part of complex long double value. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <complex.h> + +long double +__cimagl (long double _Complex z) +{ + return __imag__ z; +} +weak_alias (__cimagl, cimagl) --- libc/sysdeps/generic/conj.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/generic/conj.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,32 @@ +/* Return complex conjugate of complex double value. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <complex.h> + +double _Complex +__conj (double _Complex z) +{ + return ~z; +} +weak_alias (__conj, conj) +#ifdef NO_LONG_DOUBLE +strong_alias (__conj, __conjl) +weak_alias (__conj, conjl) +#endif --- libc/sysdeps/generic/conjf.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/generic/conjf.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,28 @@ +/* Return complex conjugate of complex float value. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <complex.h> + +float _Complex +__conjf (float _Complex z) +{ + return ~z; +} +weak_alias (__conjf, conjf) --- libc/sysdeps/generic/conjl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/generic/conjl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,28 @@ +/* Return complex conjugate of complex long double value. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <complex.h> + +long double _Complex +__conjl (long double _Complex z) +{ + return ~z; +} +weak_alias (__conjl, conjl) --- libc/sysdeps/generic/creal.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/generic/creal.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,32 @@ +/* Return real part of complex double value. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <complex.h> + +double +__creal (double _Complex z) +{ + return __real__ z; +} +weak_alias (__creal, creal) +#ifdef NO_LONG_DOUBLE +strong_alias (__creal, __creall) +weak_alias (__creal, creall) +#endif --- libc/sysdeps/generic/crealf.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/generic/crealf.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,28 @@ +/* Return real part of complex float value. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <complex.h> + +float +__crealf (float _Complex z) +{ + return __real__ z; +} +weak_alias (__crealf, crealf) --- libc/sysdeps/generic/creall.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/generic/creall.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,28 @@ +/* Return real part of complex long double value. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <complex.h> + +long double +__creall (long double _Complex z) +{ + return __real__ z; +} +weak_alias (__creall, creall) --- libc/sysdeps/ieee754/ldbl-96/s_erfl.c.jj Wed Jan 30 18:03:35 2002 +++ libc/sysdeps/ieee754/ldbl-96/s_erfl.c Mon Jul 1 12:56:48 2002 @@ -323,10 +323,6 @@ __erfl (x) } weak_alias (__erfl, erfl) -#ifdef NO_LONG_DOUBLE -strong_alias (__erf, __erfl) -weak_alias (__erf, erfl) -#endif #ifdef __STDC__ long double __erfcl (long double x) @@ -438,7 +434,3 @@ weak_alias (__erf, erfl) } weak_alias (__erfcl, erfcl) -#ifdef NO_LONG_DOUBLE -strong_alias (__erfc, __erfcl) -weak_alias (__erfc, erfcl) -#endif --- libc/sysdeps/ieee754/ldbl-96/s_nexttoward.c.jj Mon Jun 25 10:34:49 2001 +++ libc/sysdeps/ieee754/ldbl-96/s_nexttoward.c Mon Jul 1 12:56:48 2002 @@ -92,7 +92,3 @@ static char rcsid[] = "$NetBSD: $"; return x; } weak_alias (__nexttoward, nexttoward) -#ifdef NO_LONG_DOUBLE -strong_alias (__nexttoward, __nexttowardl) -weak_alias (__nexttoward, nexttowardl) -#endif --- libc/sysdeps/ieee754/ldbl-64-128/cabs.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/cabs.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#include <sysdeps/generic/cabs.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __cabs, cabsl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/cabsl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/cabsl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/cabsl.c> +long_double_symbol (libm, __cabsl, cabsl); --- libc/sysdeps/ieee754/ldbl-64-128/carg.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/carg.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#include <sysdeps/generic/carg.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __carg, cargl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/cargl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/cargl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/cargl.c> +long_double_symbol (libm, __cargl, cargl); --- libc/sysdeps/ieee754/ldbl-64-128/cimag.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/cimag.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#include <sysdeps/generic/cimag.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __cimag, cimagl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/cimagl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/cimagl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/cimagl.c> +long_double_symbol (libm, __cimagl, cimagl); --- libc/sysdeps/ieee754/ldbl-64-128/conj.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/conj.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#include <sysdeps/generic/conj.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __conj, conjl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/conjl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/conjl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/conjl.c> +long_double_symbol (libm, __conjl, conjl); --- libc/sysdeps/ieee754/ldbl-64-128/creal.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/creal.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#include <sysdeps/generic/creal.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __creal, creall, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/creall.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/creall.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/creall.c> +long_double_symbol (libm, __creall, creall); --- libc/sysdeps/ieee754/ldbl-64-128/math_ldbl_opt.h.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/math_ldbl_opt.h Mon Jul 1 16:12:02 2002 @@ -0,0 +1,23 @@ +#include <math.h> +#include "math_private.h" +#include <shlib-compat.h> +#ifdef LONG_DOUBLE_OPTIONAL +# define LONG_DOUBLE_COMPAT(lib, introduced) \ + SHLIB_COMPAT(lib, introduced, LONG_DOUBLE_OPTIONAL) +#else +# define LONG_DOUBLE_COMPAT(lib, introduced) 0 +#endif +#define long_double_symbol(lib, local, symbol) \ + long_double_symbol_1 (lib, local, symbol, LONG_DOUBLE_OPTIONAL) +#if defined HAVE_ELF && defined SHARED && defined DO_VERSIONING +# define long_double_symbol_1(lib, local, symbol, version) \ + versioned_symbol (lib, local, symbol, version) +#elif defined HAVE_WEAK_SYMBOLS +/* Note that weak_alias cannot be used - it is defined to nothing + in most of the files. */ +# define long_double_symbol_1(lib, local, symbol, version) \ + _weak_alias (local, symbol) +#else +# define long_double_symbol_1(lib, local, symbol, version) \ + strong_alias (local, symbol) +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_asinh.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_asinh.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_asinh.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __asinh, asinhl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_asinhl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_asinhl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_asinhl.c> +long_double_symbol (libm, __asinhl, asinhl); --- libc/sysdeps/ieee754/ldbl-64-128/s_atan.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_atan.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_atan.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, atan, atanl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_atanl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_atanl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_atanl.c> +long_double_symbol (libm, __atanl, atanl); --- libc/sysdeps/ieee754/ldbl-64-128/s_cacos.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_cacos.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_cacos.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __cacos, cacosl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_cacosh.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_cacosh.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_cacosh.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __cacosh, cacoshl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_cacoshl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_cacoshl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/s_cacoshl.c> +long_double_symbol (libm, __cacoshl, cacoshl); --- libc/sysdeps/ieee754/ldbl-64-128/s_cacosl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_cacosl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/s_cacosl.c> +long_double_symbol (libm, __cacosl, cacosl); --- libc/sysdeps/ieee754/ldbl-64-128/s_casin.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_casin.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_casin.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __casin, casinl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_casinh.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_casinh.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_casinh.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __casinh, casinhl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_casinhl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_casinhl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/s_casinhl.c> +long_double_symbol (libm, __casinhl, casinhl); --- libc/sysdeps/ieee754/ldbl-64-128/s_casinl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_casinl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/s_casinl.c> +long_double_symbol (libm, __casinl, casinl); --- libc/sysdeps/ieee754/ldbl-64-128/s_catan.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_catan.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_catan.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __catan, catanl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_catanh.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_catanh.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_catanh.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __catanh, catanhl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_catanhl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_catanhl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/s_catanhl.c> +long_double_symbol (libm, __catanhl, catanhl); --- libc/sysdeps/ieee754/ldbl-64-128/s_catanl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_catanl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/s_catanl.c> +long_double_symbol (libm, __catanl, catanl); --- libc/sysdeps/ieee754/ldbl-64-128/s_cbrt.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_cbrt.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_cbrt.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __cbrt, cbrtl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_cbrtl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_cbrtl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_cbrtl.c> +long_double_symbol (libm, __cbrtl, cbrtl); --- libc/sysdeps/ieee754/ldbl-64-128/s_ccos.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_ccos.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_ccos.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __ccos, ccosl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_ccosh.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_ccosh.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_ccosh.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __ccosh, ccoshl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_ccoshl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_ccoshl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/s_ccoshl.c> +long_double_symbol (libm, __ccoshl, ccoshl); --- libc/sysdeps/ieee754/ldbl-64-128/s_ccosl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_ccosl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/s_ccosl.c> +long_double_symbol (libm, __ccosl, ccosl); --- libc/sysdeps/ieee754/ldbl-64-128/s_ceil.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_ceil.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_ceil.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __ceil, ceill, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_ceill.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_ceill.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_ceill.c> +long_double_symbol (libm, __ceill, ceill); --- libc/sysdeps/ieee754/ldbl-64-128/s_cexp.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_cexp.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_cexp.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __cexp, cexpl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_cexpl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_cexpl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/s_cexpl.c> +long_double_symbol (libm, __cexpl, cexpl); --- libc/sysdeps/ieee754/ldbl-64-128/s_clog.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_clog.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_clog.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __clog, clogl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_clog10.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_clog10.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,7 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_clog10.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __clog10, __clog10l, GLIBC_2_1); +compat_symbol (libm, clog10, clog10l, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_clog10l.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_clog10l.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,10 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#define __clog10l __clog10l_internal +#include <sysdeps/generic/s_clog10l.c> +#undef __clog10l +strong_alias (__clog10l_internal, __clog10l__internal) +long_double_symbol (libm, __clog10l_internal, __clog10l); +long_double_symbol (libm, __clog10l__internal, clog10l); --- libc/sysdeps/ieee754/ldbl-64-128/s_clogl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_clogl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/s_clogl.c> +long_double_symbol (libm, __clogl, clogl); --- libc/sysdeps/ieee754/ldbl-64-128/s_copysign.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_copysign.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_copysign.c> +#if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) +compat_symbol (libc, __copysign, copysignl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_copysignl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_copysignl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_copysignl.c> +long_double_symbol (libc, __copysignl, copysignl); --- libc/sysdeps/ieee754/ldbl-64-128/s_cosl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_cosl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_cosl.c> +long_double_symbol (libm, __cosl, cosl); --- libc/sysdeps/ieee754/ldbl-64-128/s_cpow.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_cpow.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_cpow.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __cpow, cpowl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_cpowl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_cpowl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/s_cpowl.c> +long_double_symbol (libm, __cpowl, cpowl); --- libc/sysdeps/ieee754/ldbl-64-128/s_cproj.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_cproj.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_cproj.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __cproj, cprojl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_cprojl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_cprojl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/s_cprojl.c> +long_double_symbol (libm, __cprojl, cprojl); --- libc/sysdeps/ieee754/ldbl-64-128/s_csin.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_csin.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_csin.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __csin, csinl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_csinh.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_csinh.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_csinh.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __csinh, csinhl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_csinhl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_csinhl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/s_csinhl.c> +long_double_symbol (libm, __csinhl, csinhl); --- libc/sysdeps/ieee754/ldbl-64-128/s_csinl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_csinl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/s_csinl.c> +long_double_symbol (libm, __csinl, csinl); --- libc/sysdeps/ieee754/ldbl-64-128/s_csqrt.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_csqrt.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_csqrt.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __csqrt, csqrtl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_csqrtl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_csqrtl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/s_csqrtl.c> +long_double_symbol (libm, __csqrtl, csqrtl); --- libc/sysdeps/ieee754/ldbl-64-128/s_ctan.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_ctan.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_ctan.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __ctan, ctanl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_ctanh.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_ctanh.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_ctanh.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __ctanh, ctanhl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_ctanhl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_ctanhl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/s_ctanhl.c> +long_double_symbol (libm, __ctanhl, ctanhl); --- libc/sysdeps/ieee754/ldbl-64-128/s_ctanl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_ctanl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include <complex.h> +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/s_ctanl.c> +long_double_symbol (libm, __ctanl, ctanl); --- libc/sysdeps/ieee754/ldbl-64-128/s_erf.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_erf.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_erf.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __erf, erfl, GLIBC_2_0); +compat_symbol (libm, __erfc, erfcl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_erfl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_erfl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_erfl.c> +long_double_symbol (libm, __erfl, erfl); +long_double_symbol (libm, __erfcl, erfcl); --- libc/sysdeps/ieee754/ldbl-64-128/s_expm1.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_expm1.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_expm1.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __expm1, expm1l, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_expm1l.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_expm1l.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_expm1l.c> +long_double_symbol (libm, __expm1l, expm1l); --- libc/sysdeps/ieee754/ldbl-64-128/s_fabs.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_fabs.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_fabs.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __fabs, fabsl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_fabsl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_fabsl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_fabsl.c> +long_double_symbol (libm, __fabsl, fabsl); --- libc/sysdeps/ieee754/ldbl-64-128/s_fdim.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_fdim.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_fdim.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __fdim, fdiml, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_fdiml.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_fdiml.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/s_fdiml.c> +long_double_symbol (libm, __fdiml, fdiml); --- libc/sysdeps/ieee754/ldbl-64-128/s_finite.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_finite.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_finite.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __finite, finitel, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_finitel.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_finitel.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_finitel.c> +long_double_symbol (libm, __finitel, finitel); --- libc/sysdeps/ieee754/ldbl-64-128/s_floor.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_floor.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_floor.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __floor, floorl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_floorl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_floorl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_floorl.c> +long_double_symbol (libm, __floorl, floorl); --- libc/sysdeps/ieee754/ldbl-64-128/s_fma.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_fma.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_fma.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __fma, fmal, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_fmal.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_fmal.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/s_fmal.c> +long_double_symbol (libm, __fmal, fmal); --- libc/sysdeps/ieee754/ldbl-64-128/s_fmax.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_fmax.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_fmax.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __fmax, fmaxl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_fmaxl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_fmaxl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/s_fmaxl.c> +long_double_symbol (libm, __fmaxl, fmaxl); --- libc/sysdeps/ieee754/ldbl-64-128/s_fmin.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_fmin.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_fmin.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __fmin, fminl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_fminl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_fminl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/s_fminl.c> +long_double_symbol (libm, __fminl, fminl); --- libc/sysdeps/ieee754/ldbl-64-128/s_frexp.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_frexp.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_frexp.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __frexp, frexpl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_frexpl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_frexpl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_frexpl.c> +long_double_symbol (libm, __frexpl, frexpl); --- libc/sysdeps/ieee754/ldbl-64-128/s_ilogb.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_ilogb.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_ilogb.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __ilogb, ilogbl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_ilogbl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_ilogbl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_ilogbl.c> +long_double_symbol (libm, __ilogbl, ilogbl); --- libc/sysdeps/ieee754/ldbl-64-128/s_isinf.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_isinf.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_isinf.c> +#if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) +compat_symbol (libc, __isinf, isinfl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_isinfl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_isinfl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_isinfl.c> +long_double_symbol (libc, __isinfl, isinfl); --- libc/sysdeps/ieee754/ldbl-64-128/s_isnan.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_isnan.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_isnan.c> +#if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) +compat_symbol (libm, __isnan, isnanl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_isnanl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_isnanl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_isnanl.c> +long_double_symbol (libm, __isnanl, isnanl); --- libc/sysdeps/ieee754/ldbl-64-128/s_ldexp.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_ldexp.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_ldexp.c> +#if LONG_DOUBLE_COMPAT(libc, GLIBC_2_1) +compat_symbol (libc, __ldexp, ldexpl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_ldexpl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_ldexpl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/s_ldexpl.c> +long_double_symbol (libc, __ldexpl, ldexpl); --- libc/sysdeps/ieee754/ldbl-64-128/s_llrint.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_llrint.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_llrint.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __llrint, llrintl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_llrintl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_llrintl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_llrintl.c> +long_double_symbol (libm, __llrintl, llrintl); --- libc/sysdeps/ieee754/ldbl-64-128/s_llround.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_llround.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_llround.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __llround, llroundl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_llroundl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_llroundl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_llroundl.c> +long_double_symbol (libm, __llroundl, llroundl); --- libc/sysdeps/ieee754/ldbl-64-128/s_log1p.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_log1p.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_log1p.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __log1p, log1pl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_log1pl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_log1pl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_log1pl.c> +long_double_symbol (libm, __log1pl, log1pl); --- libc/sysdeps/ieee754/ldbl-64-128/s_logb.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_logb.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_logb.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __logb, logbl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_logbl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_logbl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_logbl.c> +long_double_symbol (libm, __logbl, logbl); --- libc/sysdeps/ieee754/ldbl-64-128/s_lrint.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_lrint.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_lrint.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __lrint, lrintl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_lrintl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_lrintl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_lrintl.c> +long_double_symbol (libm, __lrintl, lrintl); --- libc/sysdeps/ieee754/ldbl-64-128/s_lround.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_lround.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_lround.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __lround, lroundl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_lroundl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_lroundl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_lroundl.c> +long_double_symbol (libm, __lroundl, lroundl); --- libc/sysdeps/ieee754/ldbl-64-128/s_modf.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_modf.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_modf.c> +#if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) +compat_symbol (libm, __modf, modfl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_modfl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_modfl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_modfl.c> +long_double_symbol (libm, __modfl, modfl); --- libc/sysdeps/ieee754/ldbl-64-128/s_nan.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_nan.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_nan.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __nan, nanl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_nanl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_nanl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/s_nanl.c> +long_double_symbol (libm, __nanl, nanl); --- libc/sysdeps/ieee754/ldbl-64-128/s_nearbyint.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_nearbyint.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_nearbyint.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __nearbyint, nearbyintl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_nearbyintl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_nearbyintl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_nearbyintl.c> +long_double_symbol (libm, __nearbyintl, nearbyintl); --- libc/sysdeps/ieee754/ldbl-64-128/s_nextafter.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_nextafter.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,12 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_nextafter.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __nextafter, nextafterl, GLIBC_2_0); +#endif +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +strong_alias (__nextafter, __nexttowardd) +strong_alias (__nextafter, __nexttowardld) +#undef nexttoward +compat_symbol (libm, __nexttowardd, nexttoward, GLIBC_2_1); +compat_symbol (libm, __nexttowardld, nexttowardl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_nextafterl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_nextafterl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_nextafterl.c> +long_double_symbol (libm, __nextafterl, nextafterl); +long_double_symbol (libm, __nexttowardl, nexttowardl); --- libc/sysdeps/ieee754/ldbl-64-128/s_nexttoward.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_nexttoward.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_nexttoward.c> +long_double_symbol (libm, __nexttoward, nexttoward); --- libc/sysdeps/ieee754/ldbl-64-128/s_nexttowardf.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_nexttowardf.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_nexttowardf.c> +long_double_symbol (libm, __nexttowardf, nexttowardf); --- libc/sysdeps/ieee754/ldbl-64-128/s_nexttowardfd.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_nexttowardfd.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,77 @@ +/* Single precision version of nexttoward.c. + Conversion to IEEE single float by Jakub Jelinek, jj@ultra.linux.cz. */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* IEEE functions + * __nexttowardfd(x,y) + * return the next machine floating-point number of x in the + * direction toward y. + * This is for machines which use different binary type for double and + * long double conditionally, y is long double equal to double. + * Special cases: + */ + +#include "math_ldbl_opt.h" + +float __nexttowardfd(float x, double y); + +float __nexttowardfd(float x, double y) +{ + int32_t hx,hy,ix,iy; + u_int32_t ly; + + GET_FLOAT_WORD(hx,x); + EXTRACT_WORDS(hy,ly,y); + ix = hx&0x7fffffff; /* |x| */ + iy = hy&0x7fffffff; /* |y| */ + + if((ix>0x7f800000) || /* x is nan */ + ((iy>=0x7ff00000)&&((iy-0x7ff00000)|ly)!=0)) /* y is nan */ + return x+y; + if((double) x==y) return y; /* x=y, return y */ + if(ix==0) { /* x == 0 */ + float x2; + SET_FLOAT_WORD(x,(u_int32_t)(hy&0x80000000)|1);/* return +-minsub*/ + x2 = x*x; + if(x2==x) return x2; else return x; /* raise underflow flag */ + } + if(hx>=0) { /* x > 0 */ + if(hy<0||(ix>>23)>(iy>>20)-0x380 + || ((ix>>23)==(iy>>20)-0x380 + && (ix&0x7fffff)>(((hy<<3)|(ly>>29))&0x7fffff))) /* x > y, x -= ulp */ + hx -= 1; + else /* x < y, x += ulp */ + hx += 1; + } else { /* x < 0 */ + if(hy>=0||(ix>>23)>(iy>>20)-0x380 + || ((ix>>23)==(iy>>20)-0x380 + && (ix&0x7fffff)>(((hy<<3)|(ly>>29))&0x7fffff))) /* x < y, x -= ulp */ + hx -= 1; + else /* x > y, x += ulp */ + hx += 1; + } + hy = hx&0x7f800000; + if(hy>=0x7f800000) return x+x; /* overflow */ + if(hy<0x00800000) { /* underflow */ + float x2 = x*x; + if(x2!=x) { /* raise underflow flag */ + SET_FLOAT_WORD(x2,hx); + return x2; + } + } + SET_FLOAT_WORD(x,hx); + return x; +} + +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __nexttowardfd, nexttowardf, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_remquo.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_remquo.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_remquo.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __remquo, remquol, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_remquol.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_remquol.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_remquol.c> +long_double_symbol (libm, __remquol, remquol); --- libc/sysdeps/ieee754/ldbl-64-128/s_rint.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_rint.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_rint.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __rint, rintl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_rintl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_rintl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_rintl.c> +long_double_symbol (libm, __rintl, rintl); --- libc/sysdeps/ieee754/ldbl-64-128/s_round.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_round.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_round.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __round, roundl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_roundl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_roundl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_roundl.c> +long_double_symbol (libm, __roundl, roundl); --- libc/sysdeps/ieee754/ldbl-64-128/s_scalbln.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_scalbln.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_scalbln.c> +#if LONG_DOUBLE_COMPAT(libc, GLIBC_2_1) +compat_symbol (libc, __scalbln, scalblnl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_scalblnl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_scalblnl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_scalblnl.c> +long_double_symbol (libc, __scalblnl, scalblnl); --- libc/sysdeps/ieee754/ldbl-64-128/s_scalbn.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_scalbn.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_scalbn.c> +#if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) +compat_symbol (libc, __scalbn, scalbnl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_scalbnl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_scalbnl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_scalbnl.c> +long_double_symbol (libc, __scalbnl, scalbnl); --- libc/sysdeps/ieee754/ldbl-64-128/s_significand.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_significand.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/s_significand.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __significand, significandl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_significandl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_significandl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/s_significandl.c> +long_double_symbol (libm, __significandl, significandl); --- libc/sysdeps/ieee754/ldbl-64-128/s_sin.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_sin.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,10 @@ +/* dbl-64/s_sin.c uses NAN and sincos identifiers internally. */ +#define sincos sincos_disable +#include "math_ldbl_opt.h" +#undef NAN +#undef sincos +#include <sysdeps/ieee754/dbl-64/s_sin.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __sin, sinl, GLIBC_2_0); +compat_symbol (libm, __cos, cosl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_sincos.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_sincos.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_sincos.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __sincos, sincosl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_sincosl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_sincosl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_sincosl.c> +long_double_symbol (libm, __sincosl, sincosl); --- libc/sysdeps/ieee754/ldbl-64-128/s_sinl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_sinl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_sinl.c> +long_double_symbol (libm, __sinl, sinl); --- libc/sysdeps/ieee754/ldbl-64-128/s_tan.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_tan.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_tan.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, tan, tanl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_tanh.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_tanh.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_tanh.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __tanh, tanhl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_tanhl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_tanhl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_tanhl.c> +long_double_symbol (libm, __tanhl, tanhl); --- libc/sysdeps/ieee754/ldbl-64-128/s_tanl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_tanl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_tanl.c> +long_double_symbol (libm, __tanl, tanl); --- libc/sysdeps/ieee754/ldbl-64-128/s_trunc.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_trunc.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/s_trunc.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __trunc, truncl, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/s_truncl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/s_truncl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/s_truncl.c> +long_double_symbol (libm, __truncl, truncl); --- libc/sysdeps/ieee754/ldbl-64-128/w_acos.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_acos.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_acos.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __acos, acosl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_acosh.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_acosh.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_acosh.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __acosh, acoshl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_acoshl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_acoshl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_acoshl.c> +long_double_symbol (libm, __acoshl, acoshl); --- libc/sysdeps/ieee754/ldbl-64-128/w_acosl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_acosl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_acosl.c> +long_double_symbol (libm, __acosl, acosl); --- libc/sysdeps/ieee754/ldbl-64-128/w_asin.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_asin.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_asin.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __asin, asinl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_asinl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_asinl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_asinl.c> +long_double_symbol (libm, __asinl, asinl); --- libc/sysdeps/ieee754/ldbl-64-128/w_atan2.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_atan2.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_atan2.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __atan2, atan2l, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_atan2l.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_atan2l.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_atan2l.c> +long_double_symbol (libm, __atan2l, atan2l); --- libc/sysdeps/ieee754/ldbl-64-128/w_atanh.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_atanh.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_atanh.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __atanh, atanhl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_atanhl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_atanhl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_atanhl.c> +long_double_symbol (libm, __atanhl, atanhl); --- libc/sysdeps/ieee754/ldbl-64-128/w_cosh.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_cosh.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_cosh.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __cosh, coshl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_coshl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_coshl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_coshl.c> +long_double_symbol (libm, __coshl, coshl); --- libc/sysdeps/ieee754/ldbl-64-128/w_drem.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_drem.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_drem.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __drem, dreml, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_dreml.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_dreml.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_dreml.c> +long_double_symbol (libm, __dreml, dreml); --- libc/sysdeps/ieee754/ldbl-64-128/w_exp.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_exp.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/ieee754/dbl-64/w_exp.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __exp, expl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_exp10.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_exp10.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_exp10.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __exp10, exp10l, GLIBC_2_0); +compat_symbol (libm, __pow10, pow10l, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_exp10l.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_exp10l.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_exp10l.c> +long_double_symbol (libm, __exp10l, exp10l); +long_double_symbol (libm, __pow10l, pow10l); --- libc/sysdeps/ieee754/ldbl-64-128/w_exp2.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_exp2.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_exp2.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __exp2, exp2l, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_exp2l.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_exp2l.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_exp2l.c> +long_double_symbol (libm, __exp2l, exp2l); --- libc/sysdeps/ieee754/ldbl-64-128/w_expl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_expl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/ieee754/ldbl-128/w_expl.c> +long_double_symbol (libm, __expl, expl); --- libc/sysdeps/ieee754/ldbl-64-128/w_fmod.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_fmod.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_fmod.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __fmod, fmodl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_fmodl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_fmodl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_fmodl.c> +long_double_symbol (libm, __fmodl, fmodl); --- libc/sysdeps/ieee754/ldbl-64-128/w_hypot.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_hypot.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_hypot.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __hypot, hypotl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_hypotl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_hypotl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_hypotl.c> +long_double_symbol (libm, __hypotl, hypotl); --- libc/sysdeps/ieee754/ldbl-64-128/w_j0.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_j0.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_j0.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, j0, j0l, GLIBC_2_0); +compat_symbol (libm, y0, y0l, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_j0l.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_j0l.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_j0l.c> +long_double_symbol (libm, __j0l, j0l); +long_double_symbol (libm, __y0l, y0l); --- libc/sysdeps/ieee754/ldbl-64-128/w_j1.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_j1.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_j1.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, j1, j1l, GLIBC_2_0); +compat_symbol (libm, y1, y1l, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_j1l.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_j1l.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_j1l.c> +long_double_symbol (libm, __j1l, j1l); +long_double_symbol (libm, __y1l, y1l); --- libc/sysdeps/ieee754/ldbl-64-128/w_jn.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_jn.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_jn.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, jn, jnl, GLIBC_2_0); +compat_symbol (libm, yn, ynl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_jnl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_jnl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_jnl.c> +long_double_symbol (libm, __jnl, jnl); +long_double_symbol (libm, __ynl, ynl); --- libc/sysdeps/ieee754/ldbl-64-128/w_lgamma.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_lgamma.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_lgamma.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __lgamma, lgammal, GLIBC_2_0); +compat_symbol (libm, __gamma, gammal, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_lgamma_r.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_lgamma_r.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_lgamma_r.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __lgamma_r, lgammal_r, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_lgammal.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_lgammal.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,6 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_lgammal.c> +long_double_symbol (libm, __lgammal, lgammal); +long_double_symbol (libm, __gammal, gammal); --- libc/sysdeps/ieee754/ldbl-64-128/w_lgammal_r.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_lgammal_r.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_lgammal_r.c> +long_double_symbol (libm, __lgammal_r, lgammal_r); --- libc/sysdeps/ieee754/ldbl-64-128/w_log.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_log.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_log.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __log, logl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_log10.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_log10.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_log10.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __log10, log10l, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_log10l.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_log10l.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_log10l.c> +long_double_symbol (libm, __log10l, log10l); --- libc/sysdeps/ieee754/ldbl-64-128/w_log2.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_log2.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_log2.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __log2, log2l, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_log2l.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_log2l.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_log2l.c> +long_double_symbol (libm, __log2l, log2l); --- libc/sysdeps/ieee754/ldbl-64-128/w_logl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_logl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_logl.c> +long_double_symbol (libm, __logl, logl); --- libc/sysdeps/ieee754/ldbl-64-128/w_pow.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_pow.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_pow.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __pow, powl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_powl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_powl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_powl.c> +long_double_symbol (libm, __powl, powl); --- libc/sysdeps/ieee754/ldbl-64-128/w_remainder.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_remainder.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_remainder.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __remainder, remainderl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_remainderl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_remainderl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_remainderl.c> +long_double_symbol (libm, __remainderl, remainderl); --- libc/sysdeps/ieee754/ldbl-64-128/w_scalb.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_scalb.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_scalb.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __scalb, scalbl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_scalbl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_scalbl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_scalbl.c> +long_double_symbol (libm, __scalbl, scalbl); --- libc/sysdeps/ieee754/ldbl-64-128/w_sinh.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_sinh.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_sinh.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __sinh, sinhl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_sinhl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_sinhl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_sinhl.c> +long_double_symbol (libm, __sinhl, sinhl); --- libc/sysdeps/ieee754/ldbl-64-128/w_sqrt.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_sqrt.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_sqrt.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) +compat_symbol (libm, __sqrt, sqrtl, GLIBC_2_0); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_sqrtl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_sqrtl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_sqrtl.c> +long_double_symbol (libm, __sqrtl, sqrtl); --- libc/sysdeps/ieee754/ldbl-64-128/w_tgamma.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_tgamma.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#include <sysdeps/generic/w_tgamma.c> +#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) +compat_symbol (libm, __tgamma, tgammal, GLIBC_2_1); +#endif --- libc/sysdeps/ieee754/ldbl-64-128/w_tgammal.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/ieee754/ldbl-64-128/w_tgammal.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +#include "math_ldbl_opt.h" +#undef weak_alias +#define weak_alias(n,a) +#include <sysdeps/generic/w_tgammal.c> +long_double_symbol (libm, __tgammal, tgammal); --- libc/sysdeps/sparc/fpu/bits/mathdef.h.jj Thu Aug 23 18:50:19 2001 +++ libc/sysdeps/sparc/fpu/bits/mathdef.h Mon Jul 1 12:56:48 2002 @@ -64,14 +64,3 @@ typedef double double_t; # define FP_ILOGBNAN (2147483647) #endif /* ISO C99 */ - -#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. */ -# define __NO_LONG_DOUBLE_MATH 1 -# endif - -#endif --- libc/sysdeps/sparc/fpu/bits/mathinline.h.jj Sat Jun 8 22:45:06 2002 +++ libc/sysdeps/sparc/fpu/bits/mathinline.h Mon Jul 1 12:56:48 2002 @@ -30,23 +30,52 @@ # if __WORDSIZE == 32 -# define __unordered_cmp(x, y) \ +# ifndef __NO_LONG_DOUBLE_MATH + +# define __unordered_cmp(x, y) \ (__extension__ \ ({ unsigned __r; \ - if (sizeof(x) == 4 && sizeof(y) == 4) \ + if (sizeof (x) == 4 && sizeof (y) == 4) \ { \ float __x = (x); float __y = (y); \ - __asm__("fcmps %1,%2; st %%fsr, %0" : "=m" (__r) : "f" (__x), \ - "f" (__y) : "cc"); \ + __asm__ ("fcmps %1,%2; st %%fsr, %0" : "=m" (__r) : "f" (__x), \ + "f" (__y) : "cc"); \ + } \ + else if (sizeof (x) <= 8 && sizeof (y) <= 8) \ + { \ + double __x = (x); double __y = (y); \ + __asm__ ("fcmpd\t%1,%2\n\tst\t%%fsr,%0" : "=m" (__r) : "f" (__x), \ + "f" (__y) : "cc"); \ + } \ + else \ + { \ + long double __x = (x); long double __y = (y); \ + extern int _Q_cmp (const long double a, const long double b); \ + __r = _Q_cmp (__x, __y) << 10; \ + } \ + __r; })) + +# else + +# define __unordered_cmp(x, y) \ + (__extension__ \ + ({ unsigned __r; \ + if (sizeof (x) == 4 && sizeof (y) == 4) \ + { \ + float __x = (x); float __y = (y); \ + __asm__ ("fcmps %1,%2; st %%fsr, %0" : "=m" (__r) : "f" (__x), \ + "f" (__y) : "cc"); \ } \ else \ { \ double __x = (x); double __y = (y); \ - __asm__("fcmpd\t%1,%2\n\tst\t%%fsr,%0" : "=m" (__r) : "f" (__x), \ - "f" (__y) : "cc"); \ + __asm__ ("fcmpd\t%1,%2\n\tst\t%%fsr,%0" : "=m" (__r) : "f" (__x), \ + "f" (__y) : "cc"); \ } \ __r; })) +# endif + # define isgreater(x, y) ((__unordered_cmp (x, y) & (3 << 10)) == (2 << 10)) # define isgreaterequal(x, y) ((__unordered_cmp (x, y) & (1 << 10)) == 0) # define isless(x, y) ((__unordered_cmp (x, y) & (3 << 10)) == (1 << 10)) @@ -59,22 +88,22 @@ # define __unordered_v9cmp(x, y, op, qop) \ (__extension__ \ ({ unsigned __r; \ - if (sizeof(x) == 4 && sizeof(y) == 4) \ + if (sizeof (x) == 4 && sizeof (y) == 4) \ { \ float __x = (x); float __y = (y); \ - __asm__("fcmps\t%%fcc3,%1,%2\n\tmov" op "\t%%fcc3,1,%0" \ - : "=r" (__r) : "f" (__x), "f" (__y), "0" (0) : "cc"); \ + __asm__ ("fcmps\t%%fcc3,%1,%2\n\tmov" op "\t%%fcc3,1,%0" \ + : "=r" (__r) : "f" (__x), "f" (__y), "0" (0) : "cc"); \ } \ - else if (sizeof(x) <= 8 && sizeof(y) <= 8) \ + else if (sizeof (x) <= 8 && sizeof (y) <= 8) \ { \ double __x = (x); double __y = (y); \ - __asm__("fcmpd\t%%fcc3,%1,%2\n\tmov" op "\t%%fcc3,1,%0" \ - : "=r" (__r) : "f" (__x), "f" (__y), "0" (0) : "cc"); \ + __asm__ ("fcmpd\t%%fcc3,%1,%2\n\tmov" op "\t%%fcc3,1,%0" \ + : "=r" (__r) : "f" (__x), "f" (__y), "0" (0) : "cc"); \ } \ else \ { \ long double __x = (x); long double __y = (y); \ - extern int _Qp_cmp(const long double *a, const long double *b); \ + extern int _Qp_cmp (const long double *a, const long double *b); \ __r = qop; \ } \ __r; })) @@ -121,11 +150,23 @@ __signbit (double __x) __THROW return __u.__i[0] < 0; } +# ifndef __NO_LONG_DOUBLE_MATH + +__MATH_INLINE int +__signbitl (long double __x) __THROW +{ + __extension__ union { long double __l; int __i[4]; } __u = { __l: __x }; + return __u.__i[0] < 0; +} + +# else + __MATH_INLINE int __signbitl (long double __x) __THROW { return __signbit ((double)__x); } + #endif /* __NO_LONG_DOUBLE_MATH */ # else /* sparc64 */ @@ -174,6 +215,13 @@ sqrtl (long double __x) __THROW _Qp_sqrt (&__r, &__x); return __r; } +# elif !defined __NO_LONG_DOUBLE_MATH +__MATH_INLINE long double +sqrtl (long double __x) __THROW +{ + extern long double _Q_sqrt (__const__ long double); + return _Q_sqrt (__x); +} # endif /* sparc64 */ # endif /* !__NO_MATH_INLINES */ @@ -205,6 +253,13 @@ __ieee754_sqrtl (long double __x) _Qp_sqrt(&__r, &__x); return __r; } +# elif !defined __NO_LONG_DOUBLE_MATH +__MATH_INLINE long double +__ieee754_sqrtl (long double __x) +{ + extern long double _Q_sqrt (__const__ long double); + return _Q_sqrt (__x); +} # endif /* sparc64 */ # endif /* __LIBC_INTERNAL_MATH_INLINES */ # endif /* gcc 2.8+ */ --- libc/sysdeps/sparc/sparc32/fpu/e_sqrtl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/sparc/sparc32/fpu/e_sqrtl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1 @@ +/* __ieee754_sqrtl is defined in q_sqrt.c. */ --- libc/sysdeps/sparc/sparc32/fpu/s_fabsf.S.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/sparc/sparc32/fpu/s_fabsf.S Mon Jul 1 12:56:48 2002 @@ -0,0 +1,28 @@ +/* Float absolute value, sparc32 version. + Copyright (C) 2002 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek <jakub@redhat.com>, 2002. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <sysdep.h> + +ENTRY (__fabsf) + st %o0, [%sp+64] + ld [%sp+64], %f0 + retl + fabss %f0, %f0 +END (__fabsf) --- libc/sysdeps/sparc/sparc32/fpu/s_fabs.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/sparc/sparc32/fpu/s_fabs.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +double __fabs (double x) +{ + return __builtin_fabs (x); +} +weak_alias (__fabs, fabs) --- libc/sysdeps/sparc/sparc32/fpu/s_fabsl.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/sparc/sparc32/fpu/s_fabsl.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,5 @@ +long double __fabsl (long double x) +{ + return __builtin_fabsl (x); +} +weak_alias (__fabsl, fabsl) --- libc/sysdeps/sparc/sparc32/soft-fp/Makefile.jj Thu Aug 23 18:50:21 2001 +++ libc/sysdeps/sparc/sparc32/soft-fp/Makefile Mon Jul 1 12:56:48 2002 @@ -1,6 +1,6 @@ # Software floating-point emulation. # Makefile for SPARC v8 long double utility functions (_Q_*). -# Copyright (C) 1999, 2000 Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc. # This file is part of the GNU C Library. # Contributed by Jakub Jelinek (jj@ultra.linux.cz). # @@ -20,13 +20,11 @@ # Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA # 02111-1307 USA. -# Currently gcc does not support TFmode long double on sparc32 -# so these routines are not used. -#ifeq ($(subdir),soft-fp) -#sparc32-quad-routines := q_add q_cmp q_cmpe q_div q_dtoq q_feq q_fge \ -# q_fgt q_fle q_flt q_fne q_itoq q_mul q_neg q_qtod q_qtoi \ -# q_qtos q_qtoui q_qtoux q_qtox q_sqrt q_stoq q_sub q_uitoq \ -# q_uxtoq q_xtoq q_util -#sysdep_routines += $(sparc32-quad-routines) -# -#endif +ifeq ($(subdir),soft-fp) +sparc32-quad-routines := q_add q_cmp q_cmpe q_div q_dtoq q_feq q_fge \ + q_fgt q_fle q_flt q_fne q_itoq q_mul q_neg q_qtod q_qtoi \ + q_qtos q_qtou q_qtoull q_qtoll q_sqrt q_stoq q_sub q_utoq \ + q_ulltoq q_lltoq q_util +sysdep_routines += $(sparc32-quad-routines) + +endif --- libc/sysdeps/sparc/sparc32/soft-fp/q_div.c.jj Thu Aug 23 18:50:21 2001 +++ libc/sysdeps/sparc/sparc32/soft-fp/q_div.c Mon Jul 1 12:56:48 2002 @@ -35,5 +35,5 @@ long double _Q_div(const long double a, FP_DIV_Q(C, A, B); FP_PACK_Q(c, C); FP_HANDLE_EXCEPTIONS; - return long double; + return c; } --- libc/sysdeps/sparc/sparc32/soft-fp/Versions.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/sparc/sparc32/soft-fp/Versions Mon Jul 1 12:56:48 2002 @@ -0,0 +1,8 @@ +libc { + GLIBC_2.3 { + _Q_add; _Q_cmp; _Q_cmpe; _Q_div; _Q_dtoq; _Q_feq; _Q_fge; _Q_fgt; + _Q_fle; _Q_flt; _Q_fne; _Q_itoq; _Q_mul; _Q_neg; _Q_qtod; _Q_qtoi; + _Q_qtos; _Q_qtou; _Q_qtoull; _Q_qtoll; _Q_sqrt; _Q_stoq; _Q_sub; + _Q_utoq; _Q_ulltoq; _Q_lltoq; + } +} --- libc/sysdeps/sparc/sparc32/soft-fp/sfp-machine.h.jj Thu Aug 23 18:50:21 2001 +++ libc/sysdeps/sparc/sparc32/soft-fp/sfp-machine.h Mon Jul 1 12:56:48 2002 @@ -22,6 +22,7 @@ 02111-1307 USA. */ #include <fpu_control.h> +#include <stdlib.h> #define _FP_W_TYPE_SIZE 32 #define _FP_W_TYPE unsigned long @@ -202,20 +203,11 @@ do { \ * We need to clear cexc bits if any. \ */ \ extern unsigned long long ___Q_numbers[]; \ - __asm__ __volatile__(" - ldd [%0], %%f30 - faddd %%f30, %%f30, %%f30 - " : : "r" (___Q_numbers) : "f30"); \ + __asm__ __volatile__( \ + "ldd [%0], %%f30\n\t" \ + "faddd %%f30, %%f30, %%f30\n\t" \ + : : "r" (___Q_numbers) : "f30"); \ } \ else \ - { \ - __asm__ __volatile__(" - mov %0, %%o0 - mov %%o7, %%g1 - call ___Q_simulate_exceptions - mov %%g1, %%o7 - " : : "r" (_fex) : \ - "g1", "g2", "g3", "g4", "g5", "o0", \ - "o1", "o2", "o3", "o4", "o5", "cc"); \ - } \ + ___Q_simulate_exceptions(_fex); \ } while (0) --- libc/sysdeps/sparc/sparc32/soft-fp/q_qtoui.c.jj Thu Aug 23 18:50:21 2001 +++ libc/sysdeps/sparc/sparc32/soft-fp/q_qtoui.c Wed Jul 3 21:41:35 2002 @@ -1,38 +0,0 @@ -/* Software floating-point emulation. - Return (unsigned int)a - Copyright (C) 1997,1999 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Richard Henderson (rth@cygnus.com) and - Jakub Jelinek (jj@ultra.linux.cz). - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#define FP_ROUNDMODE FP_RND_ZERO -#include "soft-fp.h" -#include "quad.h" - -unsigned int _Q_qtoui(const long double a) -{ - FP_DECL_EX; - FP_DECL_Q(A); - unsigned int r; - - FP_UNPACK_Q(A, a); - FP_TO_INT_Q(r, A, 32, -1); - FP_HANDLE_EXCEPTIONS; - - return r; -} --- libc/sysdeps/sparc/sparc32/soft-fp/q_qtou.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/sparc/sparc32/soft-fp/q_qtou.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,38 @@ +/* Software floating-point emulation. + Return (unsigned int)a + Copyright (C) 1997,1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Richard Henderson (rth@cygnus.com) and + Jakub Jelinek (jj@ultra.linux.cz). + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#define FP_ROUNDMODE FP_RND_ZERO +#include "soft-fp.h" +#include "quad.h" + +unsigned int _Q_qtou(const long double a) +{ + FP_DECL_EX; + FP_DECL_Q(A); + unsigned int r; + + FP_UNPACK_Q(A, a); + FP_TO_INT_Q(r, A, 32, -1); + FP_HANDLE_EXCEPTIONS; + + return r; +} --- libc/sysdeps/sparc/sparc32/soft-fp/q_sqrt.c.jj Thu Aug 23 18:50:21 2001 +++ libc/sysdeps/sparc/sparc32/soft-fp/q_sqrt.c Mon Jul 1 12:56:48 2002 @@ -36,3 +36,4 @@ long double _Q_sqrt(const long double a) FP_HANDLE_EXCEPTIONS; return c; } +strong_alias (_Q_sqrt, __ieee754_sqrtl); --- libc/sysdeps/sparc/sparc32/soft-fp/q_qtoux.c.jj Thu Aug 23 18:50:21 2001 +++ libc/sysdeps/sparc/sparc32/soft-fp/q_qtoux.c Wed Jul 3 21:41:35 2002 @@ -1,38 +0,0 @@ -/* Software floating-point emulation. - Return (unsigned long)a - Copyright (C) 1997,1999 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Richard Henderson (rth@cygnus.com) and - Jakub Jelinek (jj@ultra.linux.cz). - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#define FP_ROUNDMODE FP_RND_ZERO -#include "soft-fp.h" -#include "quad.h" - -unsigned long long _Q_qtoux(const long double a) -{ - FP_DECL_EX; - FP_DECL_Q(A); - unsigned long long r; - - FP_UNPACK_Q(A, a); - FP_TO_INT_Q(r, A, 64, -1); - FP_HANDLE_EXCEPTIONS; - - return r; -} --- libc/sysdeps/sparc/sparc32/soft-fp/q_qtoull.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/sparc/sparc32/soft-fp/q_qtoull.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,38 @@ +/* Software floating-point emulation. + Return (unsigned long long)a + Copyright (C) 1997,1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Richard Henderson (rth@cygnus.com) and + Jakub Jelinek (jj@ultra.linux.cz). + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#define FP_ROUNDMODE FP_RND_ZERO +#include "soft-fp.h" +#include "quad.h" + +unsigned long long _Q_qtoull(const long double a) +{ + FP_DECL_EX; + FP_DECL_Q(A); + unsigned long long r; + + FP_UNPACK_Q(A, a); + FP_TO_INT_Q(r, A, 64, -1); + FP_HANDLE_EXCEPTIONS; + + return r; +} --- libc/sysdeps/sparc/sparc32/soft-fp/q_qtox.c.jj Thu Aug 23 18:50:21 2001 +++ libc/sysdeps/sparc/sparc32/soft-fp/q_qtox.c Wed Jul 3 21:41:35 2002 @@ -1,38 +0,0 @@ -/* Software floating-point emulation. - Return (long)a - Copyright (C) 1997,1999 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Richard Henderson (rth@cygnus.com) and - Jakub Jelinek (jj@ultra.linux.cz). - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#define FP_ROUNDMODE FP_RND_ZERO -#include "soft-fp.h" -#include "quad.h" - -long long _Q_qtox(const long double a) -{ - FP_DECL_EX; - FP_DECL_Q(A); - long long r; - - FP_UNPACK_Q(A, a); - FP_TO_INT_Q(r, A, 64, 1); - FP_HANDLE_EXCEPTIONS; - - return r; -} --- libc/sysdeps/sparc/sparc32/soft-fp/q_qtoll.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/sparc/sparc32/soft-fp/q_qtoll.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,38 @@ +/* Software floating-point emulation. + Return (long long)a + Copyright (C) 1997,1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Richard Henderson (rth@cygnus.com) and + Jakub Jelinek (jj@ultra.linux.cz). + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#define FP_ROUNDMODE FP_RND_ZERO +#include "soft-fp.h" +#include "quad.h" + +long long _Q_qtoll(const long double a) +{ + FP_DECL_EX; + FP_DECL_Q(A); + long long r; + + FP_UNPACK_Q(A, a); + FP_TO_INT_Q(r, A, 64, 1); + FP_HANDLE_EXCEPTIONS; + + return r; +} --- libc/sysdeps/sparc/sparc32/soft-fp/q_uitoq.c.jj Thu Aug 23 18:50:21 2001 +++ libc/sysdeps/sparc/sparc32/soft-fp/q_uitoq.c Wed Jul 3 21:41:35 2002 @@ -1,38 +0,0 @@ -/* Software floating-point emulation. - c = (long double)(a) - Copyright (C) 1997,1999 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Richard Henderson (rth@cygnus.com) and - Jakub Jelinek (jj@ultra.linux.cz). - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include "soft-fp.h" -#include "quad.h" - -long double _Q_uitoq(const unsigned int a) -{ - FP_DECL_EX; - FP_DECL_Q(C); - long double c; - unsigned int b = a; - - FP_FROM_INT_Q(C, b, 32, int); - FP_PACK_Q(c, C); - FP_CLEAR_EXCEPTIONS; - FP_HANDLE_EXCEPTIONS; - return c; -} --- libc/sysdeps/sparc/sparc32/soft-fp/q_utoq.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/sparc/sparc32/soft-fp/q_utoq.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,38 @@ +/* Software floating-point emulation. + c = (long double)(a) + Copyright (C) 1997,1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Richard Henderson (rth@cygnus.com) and + Jakub Jelinek (jj@ultra.linux.cz). + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include "soft-fp.h" +#include "quad.h" + +long double _Q_utoq(const unsigned int a) +{ + FP_DECL_EX; + FP_DECL_Q(C); + long double c; + unsigned int b = a; + + FP_FROM_INT_Q(C, b, 32, int); + FP_PACK_Q(c, C); + FP_CLEAR_EXCEPTIONS; + FP_HANDLE_EXCEPTIONS; + return c; +} --- libc/sysdeps/sparc/sparc32/soft-fp/q_xtoq.c.jj Thu Aug 23 18:50:21 2001 +++ libc/sysdeps/sparc/sparc32/soft-fp/q_xtoq.c Wed Jul 3 21:41:36 2002 @@ -1,38 +0,0 @@ -/* Software floating-point emulation. - Return (long double)a - Copyright (C) 1997,1999 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Richard Henderson (rth@cygnus.com) and - Jakub Jelinek (jj@ultra.linux.cz). - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include "soft-fp.h" -#include "quad.h" - -long double _Q_xtoq(const long long a) -{ - FP_DECL_EX; - FP_DECL_Q(C); - long double c; - long long b = a; - - FP_FROM_INT_Q(C, b, 64, long long); - FP_PACK_Q(c, C); - FP_CLEAR_EXCEPTIONS; - FP_HANDLE_EXCEPTIONS; - return c; -} --- libc/sysdeps/sparc/sparc32/soft-fp/q_lltoq.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/sparc/sparc32/soft-fp/q_lltoq.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,38 @@ +/* Software floating-point emulation. + Return (long double)a + Copyright (C) 1997,1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Richard Henderson (rth@cygnus.com) and + Jakub Jelinek (jj@ultra.linux.cz). + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include "soft-fp.h" +#include "quad.h" + +long double _Q_lltoq(const long long a) +{ + FP_DECL_EX; + FP_DECL_Q(C); + long double c; + long long b = a; + + FP_FROM_INT_Q(C, b, 64, long long); + FP_PACK_Q(c, C); + FP_CLEAR_EXCEPTIONS; + FP_HANDLE_EXCEPTIONS; + return c; +} --- libc/sysdeps/sparc/sparc32/soft-fp/q_uxtoq.c.jj Thu Aug 23 18:50:21 2001 +++ libc/sysdeps/sparc/sparc32/soft-fp/q_uxtoq.c Wed Jul 3 21:41:36 2002 @@ -1,38 +0,0 @@ -/* Software floating-point emulation. - Return (long double)(a) - Copyright (C) 1997,1999 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Richard Henderson (rth@cygnus.com) and - Jakub Jelinek (jj@ultra.linux.cz). - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include "soft-fp.h" -#include "quad.h" - -long double _Q_uxtoq(const unsigned long long a) -{ - FP_DECL_EX; - FP_DECL_Q(C); - long double c; - unsigned long long b = a; - - FP_FROM_INT_Q(C, b, 64, long long); - FP_PACK_Q(c, C); - FP_CLEAR_EXCEPTIONS; - FP_HANDLE_EXCEPTIONS; - return c; -} --- libc/sysdeps/sparc/sparc32/soft-fp/q_ulltoq.c.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/sparc/sparc32/soft-fp/q_ulltoq.c Mon Jul 1 12:56:48 2002 @@ -0,0 +1,38 @@ +/* Software floating-point emulation. + Return (long double)(a) + Copyright (C) 1997,1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Richard Henderson (rth@cygnus.com) and + Jakub Jelinek (jj@ultra.linux.cz). + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include "soft-fp.h" +#include "quad.h" + +long double _Q_ulltoq(const unsigned long long a) +{ + FP_DECL_EX; + FP_DECL_Q(C); + long double c; + unsigned long long b = a; + + FP_FROM_INT_Q(C, b, 64, long long); + FP_PACK_Q(c, C); + FP_CLEAR_EXCEPTIONS; + FP_HANDLE_EXCEPTIONS; + return c; +} --- libc/sysdeps/sparc/sparc32/Implies.jj Fri Sep 8 17:51:35 2000 +++ libc/sysdeps/sparc/sparc32/Implies Mon Jul 1 12:56:48 2002 @@ -1,5 +1,6 @@ wordsize-32 # SPARC uses IEEE 754 floating point. -ieee754/flt-32 +ieee754/ldbl-128 ieee754/dbl-64 +ieee754/flt-32 sparc/sparc32/soft-fp --- libc/sysdeps/sparc/sparc64/soft-fp/sfp-machine.h.jj Thu Aug 23 18:50:27 2001 +++ libc/sysdeps/sparc/sparc64/soft-fp/sfp-machine.h Mon Jul 1 12:56:48 2002 @@ -23,6 +23,7 @@ #include <fpu_control.h> #include <fenv.h> +#include <stdlib.h> #define _FP_W_TYPE_SIZE 64 #define _FP_W_TYPE unsigned long --- libc/sysdeps/unix/sysv/linux/sparc/bits/wordsize.h.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/unix/sysv/linux/sparc/bits/wordsize.h Mon Jul 1 12:56:48 2002 @@ -0,0 +1,20 @@ +/* Determine the wordsize from the preprocessor defines. */ + +#if defined __arch64__ || defined __sparcv9 +# define __WORDSIZE 64 +#else +# define __WORDSIZE 32 +#endif + +#if !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'. + 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__ +# define __NO_LONG_DOUBLE_MATH 1 +# endif +# endif +#endif --- libc/sysdeps/unix/sysv/linux/sparc/sparc32/Makefile.jj Tue Apr 18 08:13:27 2000 +++ libc/sysdeps/unix/sysv/linux/sparc/sparc32/Makefile Wed Jul 3 19:34:59 2002 @@ -1,9 +1,22 @@ +# The Sparc `long double' is a distinct type we support if +# -mlong-double-128 option is used (or when it becomes a default +# when -mlong-double-64 is not used). +long-double-fcts = optional +long-double-fcts-ver = GLIBC_2_3 + asm-CPPFLAGS = -D__ASSEMBLY__ ASFLAGS-.os += -fPIC LD += -melf32_sparc +sysdep-CFLAGS += -mlong-double-128 + ifeq ($(subdir),misc) sysdep_routines += setfsgid setfsuid +misc-CPPFLAGS += -DLONG_DOUBLE_OPTIONAL=$(long-double-fcts-ver) +endif + +ifeq ($(subdir),math) +libm-routines += s_nexttowardfd endif # When I get this to work, this is the right thing --- libc/sysdeps/unix/sysv/linux/sparc/sparc32/configure.in.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/unix/sysv/linux/sparc/sparc32/configure.in Mon Jul 1 12:56:48 2002 @@ -0,0 +1,11 @@ +sinclude(./aclocal.m4)dnl Autoconf lossage +GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. +# Local configure fragment for sysdeps/sparc/sparc32. + +# Check whether compiler supports -mlong-double-128 +if ${CC-cc} $CFLAGS -mlong-double-128 -S -xc /dev/null -o /dev/null 2>&1 +then + : +else + AC_ERROR(sparc32 glibc requires gcc which supports -mlong-double-128 option) +fi --- libc/sysdeps/unix/sysv/linux/sparc/sparc32/configure.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/unix/sysv/linux/sparc/sparc32/configure Mon Jul 1 12:56:48 2002 @@ -0,0 +1,9 @@ + # Local configure fragment for sysdeps/sparc/sparc32. + +# Check whether compiler supports -mlong-double-128 +if ${CC-cc} $CFLAGS -mlong-double-128 -S -xc /dev/null -o /dev/null 2>&1 +then + : +else + { echo "configure: error: sparc32 glibc requires gcc which supports -mlong-double-128 option" 1>&2; exit 1; } +fi --- libc/sysdeps/unix/sysv/linux/sparc/sparc32/Versions.jj Wed Nov 21 13:33:00 2001 +++ libc/sysdeps/unix/sysv/linux/sparc/sparc32/Versions Wed Jul 3 21:32:05 2002 @@ -17,4 +17,31 @@ libc { # s* scandir64; } + GLIBC_2.3 { + # IEEE quad long double functions (older symver is for + # IEEE double long double). + ldexpl; copysignl; finitel; frexpl; isinfl; isnanl; modfl; + scalblnl; scalbnl; + qecvt; qfcvt; qgcvt; qecvt_r; qfcvt_r; + } +} +libm { + GLIBC_2.3 { + # IEEE quad long double functions (older symver is for + # IEEE double long double). + cabsl; cargl; cimagl; conjl; creall; cacosl; cacoshl; casinl; + catanl; catanhl; ccosl; ccoshl; casinhl; cexpl; clogl; __clog10l; + clog10l; cpowl; cprojl; csinl; csinhl; csqrtl; ctanl; ctanhl; + fdiml; fmal; fmaxl; fminl; ldexpl; nanl; nextafterl; nexttowardl; + significandl; acosl; acoshl; asinl; atan2l; atanhl; coshl; dreml; + exp10l; pow10l; exp2l; fmodl; hypotl; j0l; y0l; j1l; y1l; jnl; ynl; + lgammal; gammal; lgamma_r; logl; log10l; log2l; powl; remainderl; + scalbl; sinhl; sqrtl; tgammal; asinhl; atanl; cbrtl; ceill; copysignl; + erfl; erfcl; expm1l; fabsl; finitel; floorl; frexpl; ilogbl; + llrintl; llroundl; log1pl; logbl; lrintl; lroundl; modfl; + nearbyintl; remquol; rintl; roundl; scalblnl; scalbnl; sinl; cosl; + sincosl; tanl; tanhl; truncl; expl; + + __nexttowardfd; + } } --- libc/sysdeps/unix/sysv/linux/sparc/sparc32/Implies.jj Mon Jul 1 12:56:48 2002 +++ libc/sysdeps/unix/sysv/linux/sparc/sparc32/Implies Mon Jul 1 12:56:48 2002 @@ -0,0 +1 @@ +ieee754/ldbl-64-128 --- libc/Versions.def.jj Sat Mar 23 11:50:04 2002 +++ libc/Versions.def Mon Jul 1 12:56:48 2002 @@ -15,6 +15,7 @@ libc { GLIBC_2.2.4 GLIBC_2.2.5 GLIBC_2.2.6 + GLIBC_2.3 %ifdef USE_IN_LIBIO HURD_CTHREADS_0.3 %endif @@ -35,6 +36,7 @@ libm { GLIBC_2.1 GLIBC_2.2 GLIBC_2.2.3 + GLIBC_2.3 } libnsl { GLIBC_2.0 Jakub
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |