diff options
author | Ulrich Drepper <drepper@redhat.com> | 1999-11-25 19:27:07 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1999-11-25 19:27:07 +0000 |
commit | c559a3ca84a0258e4773571ae73fa7bba4c927b0 (patch) | |
tree | 4a406270536b93867da0c903711b54f72e64792b /manual | |
parent | 281e6031736c13d1ead4d832d6beaf978d36ffdf (diff) | |
download | glibc-c559a3ca84a0258e4773571ae73fa7bba4c927b0.tar.gz glibc-c559a3ca84a0258e4773571ae73fa7bba4c927b0.tar.xz glibc-c559a3ca84a0258e4773571ae73fa7bba4c927b0.zip |
Update.
1999-11-25 H.J. Lu <hjl@gnu.org> * stdlib/exit.c (exit): Run funtions only if __exit_funcs->idx > 0. 1999-11-25 Ulrich Drepper <drepper@cygnus.com> * manual/charset.texi (iconv Examples): Add iconv call to flush state. Reported by Andrew Clausen <clausen@alphalink.com.au>. 1999-11-25 Andreas Jaeger <aj@suse.de> * manual/install.texi (Running make install): Better describe update from libc5. Patch by Michael Deutschmann <michael@talamasca.wkpowerlink.com>. 1999-11-25 Andreas Jaeger <aj@suse.de> * include/sys/mman.h: Remove K&R compatibility. 1999-11-15 Andreas Jaeger <aj@suse.de> * misc/sys/mman.h: Use __REDIRECT for mmap, correct prototype to use __off64_t. 1999-11-25 Ulrich Drepper <drepper@cygnus.com> * iconv/iconv_prog.c (process_block): For stateful charsets write out byte sequence to get to initial state at the end of the file. which was reported to not work (which proofed to be wrong).
Diffstat (limited to 'manual')
-rw-r--r-- | manual/charset.texi | 8 | ||||
-rw-r--r-- | manual/install.texi | 33 |
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 |