summary refs log tree commit diff
path: root/manual
diff options
context:
space:
mode:
Diffstat (limited to 'manual')
-rw-r--r--manual/charset.texi8
-rw-r--r--manual/install.texi33
2 files changed, 29 insertions, 12 deletions
diff --git a/manual/charset.texi b/manual/charset.texi
index 7a5237edfb..76b189f5fc 100644
--- a/manual/charset.texi
+++ b/manual/charset.texi
@@ -1837,6 +1837,11 @@ file2wcs (int fd, const char *charset, wchar_t *outbuf, size_t avail)
              @r{characters in the @code{inbuf}.  Put them back.}  */
           if (lseek (fd, -insize, SEEK_CUR) == -1)
             result = -1;
+
+          /* @r{Now write out the byte sequence to get into the}
+             @r{initial state if this is necessary.}  */
+          iconv (cd, NULL, NULL, &wrptr, &avail);
+
           break;
         @}
       insize += nread;
@@ -1867,7 +1872,8 @@ file2wcs (int fd, const char *charset, wchar_t *outbuf, size_t avail)
     @}
 
   /* @r{Terminate the output string.}  */
-  *((wchar_t *) wrptr) = L'\0';
+  if (avail >= sizeof (wchar_t))
+    *((wchar_t *) wrptr) = L'\0';
 
   if (iconv_close (cd) != 0)
     perror ("iconv_close");
diff --git a/manual/install.texi b/manual/install.texi
index 992203a056..3f98b270aa 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -232,18 +232,29 @@ shut the system down to single-user mode first, and reboot afterward.
 This minimizes the risk of breaking things when the library changes out
 from underneath.
 
+If you're upgrading from Linux libc5 or some other C library, you need to
+replace the @file{/usr/include} with a fresh directory before installing it.
+The new @file{/usr/include} should contain the Linux headers, but nothing else.  
+
+You must first build the library (@samp{make}), optionally check it
+(@samp{make check}), switch the include directories and then install
+(@samp{make install}).  The steps must be done in this order.  Not moving
+the directory before install will result in an unusable mixture of header
+files from both libraries, but configuring, building, and checking the
+library requires the ability to compile and run programs against the old
+library. 
+
 If you are upgrading from a previous installation of glibc 2.0 or 2.1,
-@samp{make install} will do the entire job.  If you're upgrading from
-Linux libc5 or some other C library, you need to rename the old
-@file{/usr/include} directory before running @samp{make install},
-or you will end up with a mixture of header files from both
-libraries, and you won't be able to compile anything.  You may also need
-to reconfigure GCC to work with the new library.  The easiest way to do
-that is to figure out the compiler switches to make it work again
-(@samp{-Wl,--dynamic-linker=/lib/ld-linux.so.2} should work on Linux
-systems) and use them to recompile gcc.  You can also edit the specs
-file (@file{/usr/lib/gcc-lib/@var{TARGET}/@var{VERSION}/specs}), but
-that is a bit of a black art.
+@samp{make install} will do the entire job.  You do not need to remove 
+the old includes -- if you want to do so anyway you must then follow the 
+order given above.
+
+You may also need to reconfigure GCC to work with the new library.  The
+easiest way to do that is to figure out the compiler switches to make it
+work again (@samp{-Wl,--dynamic-linker=/lib/ld-linux.so.2} should work on
+Linux systems) and use them to recompile gcc.  You can also edit the specs
+file (@file{/usr/lib/gcc-lib/@var{TARGET}/@var{VERSION}/specs}), but that
+is a bit of a black art. 
 
 You can install glibc somewhere other than where you configured it to go
 by setting the @code{install_root} variable on the command line for