From 834cef7c02db3d9284ce2098519859ec81c3b996 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 28 May 2002 05:26:16 +0000 Subject: [PATCH] Update. 2002-05-27 Alexandre Oliva * configure.in (DO_STATIC_NSS): Define if --disable-shared. 2002-05-26 Bruno Haible * iconvdata/iso-2022-jp.c (BODY for TO_LOOP): Avoid running off the end of the ISO-8859-7 from idx table. 2002-05-27 Ulrich Drepper * manual/lang.texi: Fix FLT_EPSILON description [PR libc/3649]. 2002-05-24 David S. Miller * string/bits/string2.h (memset): Do not try to optimize when not _STRING_ARCH_unaligned if GCC will do the right thing. --- ChangeLog | 18 +++++++ configure | 2 +- configure.in | 3 +- iconvdata/iso-2022-jp.c | 110 +++++++++++++++++++++------------------- manual/lang.texi | 2 +- string/bits/string2.h | 4 +- 6 files changed, 83 insertions(+), 56 deletions(-) diff --git a/ChangeLog b/ChangeLog index 471f60fd2d..e4d2743d61 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +2002-05-27 Alexandre Oliva + + * configure.in (DO_STATIC_NSS): Define if --disable-shared. + +2002-05-26 Bruno Haible + + * iconvdata/iso-2022-jp.c (BODY for TO_LOOP): Avoid running off the + end of the ISO-8859-7 from idx table. + +2002-05-27 Ulrich Drepper + + * manual/lang.texi: Fix FLT_EPSILON description [PR libc/3649]. + +2002-05-24 David S. Miller + + * string/bits/string2.h (memset): Do not try to optimize when + not _STRING_ARCH_unaligned if GCC will do the right thing. + 2002-05-21 Isamu Hasegawa * posix/regex.c: Define `inline' as a macro into nothing for the diff --git a/configure b/configure index bb663a7983..27f2e23969 100755 --- a/configure +++ b/configure @@ -860,7 +860,7 @@ else static_nss=no fi -if test x"$static_nss" = xyes; then +if test x"$static_nss" = xyes || test x"$shared" = xno; then cat >> confdefs.h <<\EOF #define DO_STATIC_NSS 1 EOF diff --git a/configure.in b/configure.in index 3501f858c0..f763792750 100644 --- a/configure.in +++ b/configure.in @@ -177,7 +177,8 @@ dnl static NSS modules. AC_ARG_ENABLE(static-nss, dnl [ --enable-static-nss build static NSS modules [default=no]], static_nss=$enableval, static_nss=no) -if test x"$static_nss" = xyes; then +dnl Enable static NSS also if we build no shared objects. +if test x"$static_nss" = xyes || test x"$shared" = xno; then AC_DEFINE(DO_STATIC_NSS) fi diff --git a/iconvdata/iso-2022-jp.c b/iconvdata/iso-2022-jp.c index 5e4ddaa441..18a89cd16a 100644 --- a/iconvdata/iso-2022-jp.c +++ b/iconvdata/iso-2022-jp.c @@ -708,25 +708,29 @@ static const cvlist_t conversion_lists[4] = } \ else if (set2 == ISO88597_set) \ { \ - const struct gap *rp = from_idx; \ - \ - while (ch > rp->end) \ - ++rp; \ - if (ch >= rp->start) \ + if (__builtin_expect (ch < 0xffff, 1)) \ { \ - unsigned char res = iso88597_from_ucs4[ch - 0xa0 + rp->idx]; \ - if (res != '\0') \ - { \ - if (__builtin_expect (outptr + 3 > outend, 0)) \ - { \ - result = __GCONV_FULL_OUTPUT; \ - break; \ - } \ + const struct gap *rp = from_idx; \ \ - *outptr++ = ESC; \ - *outptr++ = 'N'; \ - *outptr++ = res; \ - written = 3; \ + while (ch > rp->end) \ + ++rp; \ + if (ch >= rp->start) \ + { \ + unsigned char res = \ + iso88597_from_ucs4[ch - 0xa0 + rp->idx]; \ + if (res != '\0') \ + { \ + if (__builtin_expect (outptr + 3 > outend, 0)) \ + { \ + result = __GCONV_FULL_OUTPUT; \ + break; \ + } \ + \ + *outptr++ = ESC; \ + *outptr++ = 'N'; \ + *outptr++ = res; \ + written = 3; \ + } \ } \ } \ } \ @@ -817,43 +821,45 @@ static const cvlist_t conversion_lists[4] = } \ \ /* Try ISO 8859-7 upper half. */ \ - { \ - const struct gap *rp = from_idx; \ + if (__builtin_expect (ch < 0xffff, 1)) \ + { \ + const struct gap *rp = from_idx; \ \ - while (ch > rp->end) \ - ++rp; \ - if (ch >= rp->start) \ - { \ - unsigned char res = \ - iso88597_from_ucs4[ch - 0xa0 + rp->idx]; \ - if (res != '\0') \ - { \ - if (set2 != ISO88597_set) \ - { \ - if (__builtin_expect (outptr + 3 > outend, 0))\ - { \ - result = __GCONV_FULL_OUTPUT; \ - break; \ - } \ - *outptr++ = ESC; \ - *outptr++ = '.'; \ - *outptr++ = 'F'; \ - set2 = ISO88597_set; \ - } \ + while (ch > rp->end) \ + ++rp; \ + if (ch >= rp->start) \ + { \ + unsigned char res = \ + iso88597_from_ucs4[ch - 0xa0 + rp->idx]; \ + if (res != '\0') \ + { \ + if (set2 != ISO88597_set) \ + { \ + if (__builtin_expect (outptr + 3 > outend, \ + 0)) \ + { \ + result = __GCONV_FULL_OUTPUT; \ + break; \ + } \ + *outptr++ = ESC; \ + *outptr++ = '.'; \ + *outptr++ = 'F'; \ + set2 = ISO88597_set; \ + } \ \ - if (__builtin_expect (outptr + 3 > outend, 0)) \ - { \ - result = __GCONV_FULL_OUTPUT; \ - break; \ - } \ - *outptr++ = ESC; \ - *outptr++ = 'N'; \ - *outptr++ = res; \ - result = __GCONV_OK; \ - break; \ - } \ - } \ - } \ + if (__builtin_expect (outptr + 3 > outend, 0)) \ + { \ + result = __GCONV_FULL_OUTPUT; \ + break; \ + } \ + *outptr++ = ESC; \ + *outptr++ = 'N'; \ + *outptr++ = res; \ + result = __GCONV_OK; \ + break; \ + } \ + } \ + } \ \ break; \ \ diff --git a/manual/lang.texi b/manual/lang.texi index ecde184c79..9f5c540735 100644 --- a/manual/lang.texi +++ b/manual/lang.texi @@ -1202,7 +1202,7 @@ macro's value is the same as the type it describes. @comment ISO @item FLT_EPSILON -This is the maximum positive floating point number of type @code{float} +This is the minimum positive floating point number of type @code{float} such that @code{1.0 + FLT_EPSILON != 1.0} is true. It's supposed to be no greater than @code{1E-5}. diff --git a/string/bits/string2.h b/string/bits/string2.h index da168facc2..a02b0558f1 100644 --- a/string/bits/string2.h +++ b/string/bits/string2.h @@ -178,10 +178,12 @@ __STRING2_COPY_TYPE (8); \ __s; }) # else -# define memset(s, c, n) \ +# if ! __GNUC_PREREQ (3, 0) +# define memset(s, c, n) \ (__extension__ (__builtin_constant_p (c) && (c) == '\0' \ ? ({ void *__s = (s); __bzero (__s, n); __s; }) \ : memset (s, c, n))) +# endif # endif /* GCC optimizes memset(s, 0, n) but not bzero(s, n).