about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog36
-rw-r--r--INSTALL25
-rw-r--r--elf/elf.h4
-rw-r--r--elf/link.h2
-rw-r--r--resolv/nss_dns/dns-host.c43
-rw-r--r--stdio-common/vfprintf.c5
6 files changed, 79 insertions, 36 deletions
diff --git a/ChangeLog b/ChangeLog
index 49fca77b92..52f18de2d6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,39 @@
+1999-08-10  H.J. Lu  <hjl@gnu.org>
+
+	* resolv/nss_dns/dns-host.c (getanswer_r): Cleanup out-of-
+	buffer handling.
+
+1999-08-15  Ulrich Drepper  <drepper@cygnus.com>
+
+	* 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 <yosshy@tkf.att.ne.jp>.
+
+	* intl/locale.alias: Add catalan.
+
+1999-08-14  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
+
+	* manual/install.texi (Configuring and compiling): Mention
+	CFLAGS.
+
+1999-08-15  Ulrich Drepper  <drepper@cygnus.com>
+
+	* po/pt_BR.po: New file.
+
+1999-08-13  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
+
+	* math/libm-test.c (yn_test): Adjust deltas for i386.
+	(ccosh_test): Likewise.
+	(jn_test): Likewise.
+
+1999-08-15  Ulrich Drepper  <drepper@cygnus.com>
+
+	* sysdeps/generic/_G_config.h: Get definition of mbstate_t.
+
 1999-08-13  Ulrich Drepper  <drepper@cygnus.com>
 
 	* stdio-common/tstscanf.c: Add test for hexadecimal float parsing
diff --git a/INSTALL b/INSTALL
index 8eb8cacde7..9aac7d16a2 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 <bug-glibc@gnu.org>.
 
    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.
+<http://www.imaxx.net/~thrytis/glibc> 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 <http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl>.  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 a3ce2d98fc..9a6cfb6397 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 2de39e5711..9b6e9df7e6 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 1df7c23beb..fc00fe7796 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 742213282f..a3aa252cd1 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)						      \