diff --git a/ChangeLog b/ChangeLog index 96a7230681..3cb4aa85af 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,34 @@ +2000-12-09 Ulrich Drepper + + * Makeconfig (default_cflags): Make -O2 the default for stable + releases. + +2000-12-08 H.J. Lu + + * sysdeps/ia64/fpu/s_isinfl.S: Renamed to ... + * sysdeps/ia64/fpu/s_isinf.S: This. + Add a .pred.rel.mutex note to avoid false report. + + * sysdeps/ia64/fpu/s_isnanl.S: Renamed to ... + * sysdeps/ia64/fpu/s_isnan.S: This. + + * sysdeps/ia64/fpu/s_fpclassify.S: New file. + * sysdeps/ia64/fpu/s_fpclassifyf.S: New file. + * sysdeps/ia64/fpu/s_fpclassifyl.S: New file. + * sysdeps/ia64/fpu/s_isinff.S: New file. + * sysdeps/ia64/fpu/s_isinfl.S: New file. + * sysdeps/ia64/fpu/s_isnanf.S: New file. + * sysdeps/ia64/fpu/s_isnanl.S: New file. + * sysdeps/ia64/fpu/s_finite.S: New file. + * sysdeps/ia64/fpu/s_finitef.S: New file. + * sysdeps/ia64/fpu/s_finitel.S: New file. + * sysdeps/ia64/fpu/s_signbit.S: New file. + * sysdeps/ia64/fpu/s_signbitf.S: New file. + * sysdeps/ia64/fpu/s_signbitl.S: New file. + * sysdeps/ia64/fpu/s_copysign.S: New file. + * sysdeps/ia64/fpu/s_copysignf.S: New file. + * sysdeps/ia64/fpu/s_copysignl.S: New file. + 2000-12-08 Ulrich Drepper * math/libm-test.inc (main): Fix typos in messages. diff --git a/Makeconfig b/Makeconfig index b47ccda686..40f3a10674 100644 --- a/Makeconfig +++ b/Makeconfig @@ -345,8 +345,12 @@ endif # Default flags to pass the C compiler. ifndef default_cflags +ifeq ($(release),stable) +default_cflags := -g -O2 +else default_cflags := -g -O endif +endif # Flags to pass the C compiler when assembling preprocessed assembly code # (`.S' files). On some systems the assembler doesn't understand the `#' line diff --git a/nss/getnssent.c b/nss/getnssent.c index 1180e3c138..ea6cfc0d87 100644 --- a/nss/getnssent.c +++ b/nss/getnssent.c @@ -26,7 +26,6 @@ __nss_getent (getent_r_function func, void **resbuf, char **buffer, size_t buflen, size_t *buffer_size, int *h_errnop) { void *result; - int save; if (*buffer == NULL) { @@ -35,8 +34,7 @@ __nss_getent (getent_r_function func, void **resbuf, char **buffer, } while (buffer != NULL - && func (resbuf, *buffer, *buffer_size, &result, - h_errnop) == ERANGE + && func (resbuf, *buffer, *buffer_size, &result, h_errnop) == ERANGE && (h_errnop == NULL || *h_errnop == NETDB_INTERNAL)) { char *new_buf; @@ -46,7 +44,7 @@ __nss_getent (getent_r_function func, void **resbuf, char **buffer, { /* We are out of memory. Free the current buffer so that the process gets a chance for a normal termination. */ - save = errno; + int save = errno; free (*buffer); __set_errno (save); } @@ -56,9 +54,5 @@ __nss_getent (getent_r_function func, void **resbuf, char **buffer, if (*buffer == NULL) result = NULL; - /* Release lock. Preserve error value. */ - save = errno; - __set_errno (save); - return result; } diff --git a/sysdeps/ia64/fpu/s_copysign.S b/sysdeps/ia64/fpu/s_copysign.S new file mode 100644 index 0000000000..f0e90ed048 --- /dev/null +++ b/sysdeps/ia64/fpu/s_copysign.S @@ -0,0 +1,34 @@ +/* Copyright (C) 2000 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 + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include +#undef ret + +ENTRY (__copysign) +{ + fmerge.s fret0 = farg1, farg0 + br.ret.sptk.many rp +} +END (__copysign) + +strong_alias (__copysign, __copysignf) +strong_alias (__copysign, __copysignl) + +weak_alias (__copysign, copysign) +weak_alias (__copysignf, copysignf) +weak_alias (__copysignl, copysignl) diff --git a/sysdeps/ia64/fpu/s_copysignf.S b/sysdeps/ia64/fpu/s_copysignf.S new file mode 100644 index 0000000000..055251d0d2 --- /dev/null +++ b/sysdeps/ia64/fpu/s_copysignf.S @@ -0,0 +1 @@ +/* __copysignf is in s_copysign.S. */ diff --git a/sysdeps/ia64/fpu/s_copysignl.S b/sysdeps/ia64/fpu/s_copysignl.S new file mode 100644 index 0000000000..e772372678 --- /dev/null +++ b/sysdeps/ia64/fpu/s_copysignl.S @@ -0,0 +1 @@ +/* __copysignl is in s_copysign.S. */ diff --git a/sysdeps/ia64/fpu/s_finite.S b/sysdeps/ia64/fpu/s_finite.S new file mode 100644 index 0000000000..4d9fb5f967 --- /dev/null +++ b/sysdeps/ia64/fpu/s_finite.S @@ -0,0 +1,41 @@ +/* Copyright (C) 2000 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 + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include +#undef ret + +ENTRY (__finite) +{ +.mfi + fclass.m p6, p7 = farg0, @nat | @qnan | @snan | @inf + ;; +} +{ +.mib +(p6) mov ret0 = 0 +(p7) mov ret0 = 1 + br.ret.sptk.many rp +} +END (__finite) + +strong_alias (__finite, __finitef) +strong_alias (__finite, __finitel) + +weak_alias (__finite, finite) +weak_alias (__finitef, finitef) +weak_alias (__finitel, finitel) diff --git a/sysdeps/ia64/fpu/s_finitef.S b/sysdeps/ia64/fpu/s_finitef.S new file mode 100644 index 0000000000..cf9b5ce8ba --- /dev/null +++ b/sysdeps/ia64/fpu/s_finitef.S @@ -0,0 +1 @@ +/* __finitef is in s_finite.S. */ diff --git a/sysdeps/ia64/fpu/s_finitel.S b/sysdeps/ia64/fpu/s_finitel.S new file mode 100644 index 0000000000..362b186429 --- /dev/null +++ b/sysdeps/ia64/fpu/s_finitel.S @@ -0,0 +1 @@ +/* __finitel is in s_finite.S. */ diff --git a/sysdeps/ia64/fpu/s_fpclassify.S b/sysdeps/ia64/fpu/s_fpclassify.S new file mode 100644 index 0000000000..d196601369 --- /dev/null +++ b/sysdeps/ia64/fpu/s_fpclassify.S @@ -0,0 +1,59 @@ +/* Return classification value corresponding to argument. + Copyright (C) 2000 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 + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include +#undef ret + +ENTRY (__fpclassify) +{ +.mfi + fclass.m p6, p7 = farg0, @nat | @qnan | @snan + ;; +} +{ +.mfb +(p6) mov ret0 = 0 +(p7) fclass.m p7, p8 = farg0, @inf +(p6) br.ret.sptk.many rp + ;; +} +{ +.mfb +(p7) mov ret0 = 1 +(p8) fclass.m p8, p6 = farg0, @zero +(p7) br.ret.sptk.many rp + ;; +} +{ +.mfb +(p8) mov ret0 = 2 +(p6) fclass.m p6, p7 = farg0, @unorm +(p8) br.ret.sptk.many rp + ;; +} +{ + .pred.rel.mutex p6, p7 +(p6) mov ret0 = 3 +(p7) mov ret0 = 4 + br.ret.sptk.many rp +} +END (__fpclassify) + +strong_alias (__fpclassify, __fpclassifyf) +strong_alias (__fpclassify, __fpclassifyl) diff --git a/sysdeps/ia64/fpu/s_fpclassifyf.S b/sysdeps/ia64/fpu/s_fpclassifyf.S new file mode 100644 index 0000000000..cf31fca7ad --- /dev/null +++ b/sysdeps/ia64/fpu/s_fpclassifyf.S @@ -0,0 +1 @@ +/* __fpclassifyf is in s_fpclassify.S. */ diff --git a/sysdeps/ia64/fpu/s_fpclassifyl.S b/sysdeps/ia64/fpu/s_fpclassifyl.S new file mode 100644 index 0000000000..621e3c53a4 --- /dev/null +++ b/sysdeps/ia64/fpu/s_fpclassifyl.S @@ -0,0 +1 @@ +/* __fpclassifyl is in s_fpclassify.S. */ diff --git a/sysdeps/ia64/fpu/s_isinf.S b/sysdeps/ia64/fpu/s_isinf.S new file mode 100644 index 0000000000..29e649bc37 --- /dev/null +++ b/sysdeps/ia64/fpu/s_isinf.S @@ -0,0 +1,54 @@ +/* Test for inf/-inf + Copyright (C) 2000 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jes Sorensen , October 2000. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* + * isinf(x) returns 1 if x is inf, -1 for x == -inf, else 0; + */ + +#include +#undef ret + +ENTRY (__isinf) +{ +.mfi + fclass.m p6, p7 = farg0, @inf|@pos + ;; +} +{ +.mfb +(p6) mov ret0 = 1 +(p7) fclass.m p7, p8 = farg0, @inf|@neg +(p6) br.ret.sptk.many rp + ;; +} +{ + .pred.rel.mutex p7,p8 +(p7) mov ret0 = -1 +(p8) mov ret0 = 0 + br.ret.sptk.many rp +} +END (__isinf) + +strong_alias (__isinf, __isinff) +strong_alias (__isinf, __isinfl) + +weak_alias (__isinf, isinf) +weak_alias (__isinff, isinff) +weak_alias (__isinfl, isinfl) diff --git a/sysdeps/ia64/fpu/s_isinff.S b/sysdeps/ia64/fpu/s_isinff.S new file mode 100644 index 0000000000..37da979e19 --- /dev/null +++ b/sysdeps/ia64/fpu/s_isinff.S @@ -0,0 +1 @@ +/* __isinff is in s_isinf.S. */ diff --git a/sysdeps/ia64/fpu/s_isinfl.S b/sysdeps/ia64/fpu/s_isinfl.S index 9adbb2f0c7..c3bca40991 100644 --- a/sysdeps/ia64/fpu/s_isinfl.S +++ b/sysdeps/ia64/fpu/s_isinfl.S @@ -1,47 +1 @@ -/* Test for inf/-inf - Copyright (C) 2000 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Jes Sorensen , October 2000. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* - * isinfl(x) returns 1 if x is inf, -1 for x == -inf, else 0; - */ - -#include -#undef ret - -ENTRY (__isinfl) -{ -.mfi - fclass.m p6, p7 = farg0, @inf|@pos - ;; -} -{ -.mfb -(p6) mov ret0 = 1 -(p7) fclass.m p7, p8 = farg0, @inf|@neg -(p6) br.ret.sptk.many rp - ;; -} -(p7) mov ret0 = -1 -(p8) mov ret0 = 0 - br.ret.sptk.many rp -} -END (__isinfl) - -weak_alias (__isinfl, isinfl) +/* __isinfl is in s_isinf.S. */ diff --git a/sysdeps/ia64/fpu/s_isnan.S b/sysdeps/ia64/fpu/s_isnan.S new file mode 100644 index 0000000000..a0ed3547ca --- /dev/null +++ b/sysdeps/ia64/fpu/s_isnan.S @@ -0,0 +1,47 @@ +/* Test for NaN + Copyright (C) 2000 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jes Sorensen , October 2000. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* + * isnan(x) returns 1 is x is nan, else 0; + */ + +#include +#undef ret + +ENTRY (__isnan) +{ +.mfi + fclass.m p6, p7 = farg0, @nat | @qnan | @snan + ;; +} +{ +.mib +(p6) mov ret0 = 1 +(p7) mov ret0 = 0 + br.ret.sptk.many rp +} +END (__isnan) + +strong_alias (__isnan, __isnanf) +strong_alias (__isnan, __isnanl) + +weak_alias (__isnan, isnan) +weak_alias (__isnanf, isnanf) +weak_alias (__isnanl, isnanl) diff --git a/sysdeps/ia64/fpu/s_isnanf.S b/sysdeps/ia64/fpu/s_isnanf.S new file mode 100644 index 0000000000..a8911b15e3 --- /dev/null +++ b/sysdeps/ia64/fpu/s_isnanf.S @@ -0,0 +1 @@ +/* __isnanf is in s_isnan.S. */ diff --git a/sysdeps/ia64/fpu/s_isnanl.S b/sysdeps/ia64/fpu/s_isnanl.S index 4d4df05003..82fb19d72c 100644 --- a/sysdeps/ia64/fpu/s_isnanl.S +++ b/sysdeps/ia64/fpu/s_isnanl.S @@ -1,42 +1 @@ -/* Test for NaN - Copyright (C) 2000 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Jes Sorensen , October 2000. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* - * isnanl(x) returns 1 is x is nan, else 0; - */ - -#include -#undef ret - -ENTRY (__isnanl) -{ -.mfi - fclass.m p6, p7 = farg0, @nat | @qnan | @snan - ;; -} -{ -.mib -(p6) mov ret0 = 1 -(p7) mov ret0 = 0 - br.ret.sptk.many rp -} -END (__isnanl) - -weak_alias (__isnanl, isnanl) +/* __isnanl is in s_isnan.S. */ diff --git a/sysdeps/ia64/fpu/s_signbit.S b/sysdeps/ia64/fpu/s_signbit.S new file mode 100644 index 0000000000..0b6ab2c353 --- /dev/null +++ b/sysdeps/ia64/fpu/s_signbit.S @@ -0,0 +1,37 @@ +/* Copyright (C) 2000 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 + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include +#undef ret + +ENTRY (__signbit) +{ +.mfi + fclass.m p6, p7 = farg0, @zero | @unorm | @norm | @inf | @neg + ;; +} +{ +.mib +(p6) mov ret0 = 1 +(p7) mov ret0 = 0 + br.ret.sptk.many rp +} +END (__signbit) + +strong_alias (__signbit, __signbitf) +strong_alias (__signbit, __signbitl) diff --git a/sysdeps/ia64/fpu/s_signbitf.S b/sysdeps/ia64/fpu/s_signbitf.S new file mode 100644 index 0000000000..34eadfca36 --- /dev/null +++ b/sysdeps/ia64/fpu/s_signbitf.S @@ -0,0 +1 @@ +/* __signbitf is in s_signbit.S. */ diff --git a/sysdeps/ia64/fpu/s_signbitl.S b/sysdeps/ia64/fpu/s_signbitl.S new file mode 100644 index 0000000000..52d7678526 --- /dev/null +++ b/sysdeps/ia64/fpu/s_signbitl.S @@ -0,0 +1 @@ +/* __signbitl is in s_signbit.S. */