From: Ulrich Drepper Date: Sun, 15 Aug 1999 16:50:20 +0000 (+0000) Subject: Update. X-Git-Tag: upstream/2.20~19900 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0cc70fcf82fefca2d186af4de0b6625a62dd31a0;p=platform%2Fupstream%2Flinaro-glibc.git Update. 1999-08-10 H.J. Lu * resolv/nss_dns/dns-host.c (getanswer_r): Cleanup out-of- buffer handling. 1999-08-15 Ulrich Drepper * elf/elf.h: Define ElfXX_Versym. * elf/link.h (struct link_map): Use ElfXX_Versym for l_versyms definition. * stdio-common/vfprintf.c (process_string_arg): Handle precisions for string output correctly in the wide character case. Patch by Akira YOSHIYAMA . * intl/locale.alias: Add catalan. 1999-08-14 Andreas Jaeger * manual/install.texi (Configuring and compiling): Mention CFLAGS. 1999-08-15 Ulrich Drepper * po/pt_BR.po: New file. 1999-08-13 Andreas Jaeger * math/libm-test.c (yn_test): Adjust deltas for i386. (ccosh_test): Likewise. (jn_test): Likewise. 1999-08-15 Ulrich Drepper * sysdeps/generic/_G_config.h: Get definition of mbstate_t. --- diff --git a/ChangeLog b/ChangeLog index 49fca77..52f18de 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,39 @@ +1999-08-10 H.J. Lu + + * resolv/nss_dns/dns-host.c (getanswer_r): Cleanup out-of- + buffer handling. + +1999-08-15 Ulrich Drepper + + * elf/elf.h: Define ElfXX_Versym. + * elf/link.h (struct link_map): Use ElfXX_Versym for l_versyms + definition. + + * stdio-common/vfprintf.c (process_string_arg): Handle precisions + for string output correctly in the wide character case. + Patch by Akira YOSHIYAMA . + + * intl/locale.alias: Add catalan. + +1999-08-14 Andreas Jaeger + + * manual/install.texi (Configuring and compiling): Mention + CFLAGS. + +1999-08-15 Ulrich Drepper + + * po/pt_BR.po: New file. + +1999-08-13 Andreas Jaeger + + * math/libm-test.c (yn_test): Adjust deltas for i386. + (ccosh_test): Likewise. + (jn_test): Likewise. + +1999-08-15 Ulrich Drepper + + * sysdeps/generic/_G_config.h: Get definition of mbstate_t. + 1999-08-13 Ulrich Drepper * stdio-common/tstscanf.c: Add test for hexadecimal float parsing diff --git a/INSTALL b/INSTALL index 8eb8cac..9aac7d1 100644 --- a/INSTALL +++ b/INSTALL @@ -87,7 +87,7 @@ will be used, and CFLAGS sets optimization options for the compiler. given with no list, it enables all the add-on packages it finds. If you do not wish to use some add-on package that you have present in your source tree, give this option a list of the - add-ons that you *do* want used, like this: + add-ons that you _do_ want used, like this: `--enable-add-ons=crypt,linuxthreads' `--with-binutils=DIRECTORY' @@ -144,9 +144,10 @@ will be used, and CFLAGS sets optimization options for the compiler. is. This is most useful to change the CPU submodel. For example, if configure guesses your machine as `i586-pc-linux-gnu' but you want to compile a library optimized for 386es, give - `--host=i386-pc-linux-gnu' or just `--host=i386-linux'. (A - library compiled for a Pentium (`i586') will still work on a 386, - but it may be slower.) + `--host=i386-pc-linux-gnu' or just `--host=i386-linux' and add the + appropriate compiler flags (`-mcpu=i386' will do the trick) to + CFLAGS. (A library compiled for a Pentium (`i586') will still work + on a 386, but it may be slower.) If you give just `--build', configure will get confused. @@ -304,6 +305,7 @@ build the GNU C library: Perl is not required, but it is used if present to test the installation. We may decide to use it elsewhere in the future. + If you change any of the `configure.in' files you will also need * GNU `autoconf' 2.12 or higher @@ -367,10 +369,13 @@ maintainers by sending electronic mail to . Each case of `iX86' can be `i386', `i486', `i586', or `i686'. All of those configurations produce a library that can run on any of these -processors. The library will be optimized for the specified processor, -but will not use instructions not available on all of them. If you -want the library to use instructions only available on newer -processors, give GCC the appropriate `-m' switches via CFLAGS. +processors if the compiler is configured correctly. The GCC compiler +by default generates code that's optimized for the machine it's +configured for and will use the instructions available on that machine. +For example if your GCC is configured for `i686', gcc will optimize +for `i686' and might issue some `i686' specific instructions. To +generate code for other models you should give GCC the appropriate +`-march=' and `-mcpu=' compiler switches via CFLAGS. Specific advice for Linux systems ================================= @@ -407,7 +412,7 @@ installed there. library on your system against the new library for the sake of new code, but keep the old libraries around for old binaries to use. This is complicated and difficult. Consult the Glibc2 HOWTO at -`http://www.imaxx.net/~thrytis/glibc' for details. + for details. You cannot use `nscd' with 2.0 kernels, due to bugs in the kernel-side thread support. `nscd' happens to hit these bugs @@ -425,7 +430,7 @@ remain unfixed for all eternity, if not longer. It is a good idea to check first that the problem was not reported before. Bugs are documented in two places: The file `BUGS' describes a number of well known bugs and the bug tracking system has a WWW -interface at `http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl'. The +interface at . The WWW interface gives you access to open and closed reports. The closed reports normally include a patch or a hint on solving the problem. diff --git a/elf/elf.h b/elf/elf.h index a3ce2d9..9a6cfb6 100644 --- a/elf/elf.h +++ b/elf/elf.h @@ -56,6 +56,10 @@ typedef uint64_t Elf64_Off; typedef uint16_t Elf32_Section; typedef uint16_t Elf64_Section; +/* Type for version symbol information. */ +typedef Elf32_Half Elf32_Versym; +typedef Elf64_Half Elf64_Versym; + /* The ELF file header. This appears at the start of every ELF file. */ diff --git a/elf/link.h b/elf/link.h index 2de39e5..9b6e9df 100644 --- a/elf/link.h +++ b/elf/link.h @@ -177,7 +177,7 @@ struct link_map ElfW(Addr) *l_reloc_result; /* Pointer to the version information if available. */ - ElfW(Half) *l_versyms; + ElfW(Versym) *l_versyms; /* String specifying the path where this object was found. */ const char *l_origin; diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c index 1df7c23..fc00fe7 100644 --- a/resolv/nss_dns/dns-host.c +++ b/resolv/nss_dns/dns-host.c @@ -143,7 +143,7 @@ _nss_dns_gethostbyname2_r (const char *name, int af, struct hostent *result, type = T_AAAA; break; default: - *h_errnop = NETDB_INTERNAL; + *h_errnop = NO_DATA; *errnop = EAFNOSUPPORT; return NSS_STATUS_UNAVAIL; } @@ -191,6 +191,14 @@ _nss_dns_gethostbyname_r (const char *name, struct hostent *result, enum nss_status +_nss_dns_getipnodebyname (const char *name, int af, struct hostent *result, + char *buffer, size_t buflen, int *errnop, + int *h_errnop) +{ +} + + +enum nss_status _nss_dns_gethostbyaddr_r (const char *addr, size_t len, int af, struct hostent *result, char *buffer, size_t buflen, int *errnop, int *h_errnop) @@ -419,11 +427,7 @@ getanswer_r (const querybuf *answer, int anslen, const char *qname, int qtype, if (n != -1 && __ns_name_ntop (packtmp, bp, linebuflen) == -1) { if (errno == EMSGSIZE) - { - *errnop = ERANGE; - *h_errnop = NETDB_INTERNAL; - return NSS_STATUS_TRYAGAIN; - } + goto too_small; n = -1; } @@ -470,7 +474,9 @@ getanswer_r (const querybuf *answer, int anslen, const char *qname, int qtype, linebuflen -= n; /* Get canonical name. */ n = strlen (tbuf) + 1; /* For the \0. */ - if ((size_t) n > buflen || n >= MAXHOSTNAMELEN) + if (n > linebuflen) + goto too_small; + if (n >= MAXHOSTNAMELEN) { ++had_error; continue; @@ -492,7 +498,9 @@ getanswer_r (const querybuf *answer, int anslen, const char *qname, int qtype, cp += n; /* Get canonical name. */ n = strlen (tbuf) + 1; /* For the \0. */ - if ((size_t) n > buflen || n >= MAXHOSTNAMELEN) + if (n > linebuflen) + goto too_small; + if (n >= MAXHOSTNAMELEN) { ++had_error; continue; @@ -536,11 +544,7 @@ getanswer_r (const querybuf *answer, int anslen, const char *qname, int qtype, if (n != -1 && __ns_name_ntop (packtmp, bp, linebuflen) == -1) { if (errno == EMSGSIZE) - { - *errnop = ERANGE; - *h_errnop = NETDB_INTERNAL; - return NSS_STATUS_TRYAGAIN; - } + goto too_small; n = -1; } @@ -613,11 +617,8 @@ getanswer_r (const querybuf *answer, int anslen, const char *qname, int qtype, linebuflen -= sizeof (align) - ((u_long) bp % sizeof (align)); bp += sizeof (align) - ((u_long) bp % sizeof (align)); - if (n >= linebuflen) - { - ++had_error; - continue; - } + if (n > linebuflen) + goto too_small; if (hap >= &host_data->h_addr_ptrs[MAX_NR_ADDRS-1]) { cp += n; @@ -652,11 +653,7 @@ getanswer_r (const querybuf *answer, int anslen, const char *qname, int qtype, { n = strlen (qname) + 1; /* For the \0. */ if (n > linebuflen) - { - *errnop = ERANGE; - *h_errnop = NETDB_INTERNAL; - return NSS_STATUS_TRYAGAIN; - } + goto too_small; if (n >= MAXHOSTNAMELEN) goto no_recovery; result->h_name = bp; diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c index 7422132..a3aa252 100644 --- a/stdio-common/vfprintf.c +++ b/stdio-common/vfprintf.c @@ -1115,9 +1115,10 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap) assert (__mbsinit (&mbstate)); \ s2 = (const wchar_t *) string; \ string = alloca (len + 1); \ - (void) __wcsrtombs (string, &s2, len + 1, &mbstate); \ if (prec > 0 && prec < len) \ - len = prec; \ + len = __wcsrtombs (string, &s2, prec, &mbstate); \ + else \ + (void) __wcsrtombs (string, &s2, len + 1, &mbstate); \ } \ \ if ((width -= len) < 0) \