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).
This commit is contained in:
Ulrich Drepper 1999-11-25 19:27:07 +00:00
parent 281e603173
commit c559a3ca84
9 changed files with 105 additions and 27 deletions

View File

@ -1,3 +1,33 @@
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.
1999-11-25 Andreas Schwab <schwab@suse.de>
* Makeconfig: Include sys-dirs and sys-sorted earlier.
@ -21,8 +51,7 @@
* sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_IEEE802_TR): Added.
* string/stratcliff.c: Add one more strchr test for something
which was reported to not work
(which proofed to be wrong).
which was reported to not work (which proofed to be wrong).
* iconv/skeleton.c: It's __is_last, not is_last.

View File

@ -338,8 +338,32 @@ conversion stopped due to problem in writing the output"));
}
if (n != (size_t) -1)
/* Everything is processed. */
break;
{
/* All the input test is processed. For state-dependent
character sets we have to flush the state now. */
outptr = outbuf;
outlen = OUTBUF_SIZE;
n = iconv (cd, NULL, NULL, &outptr, &outlen);
if (outptr != outbuf)
{
/* We have something to write out. */
int errno_save = errno;
if (fwrite (outbuf, 1, outptr - outbuf, output) < outptr - outbuf
|| ferror (output))
{
/* Error occurred while printing the result. */
error (0, 0, _("\
conversion stopped due to problem in writing the output"));
return -1;
}
errno = errno_save;
}
break;
}
if (errno != E2BIG)
{

View File

@ -3,13 +3,13 @@
/* Now define the internal interfaces. */
extern void *__mmap (void *__addr, size_t __len, int __prot,
int __flags, int __fd, __off_t __offset) __THROW;
int __flags, int __fd, __off_t __offset);
extern void *__mmap64 (void *__addr, size_t __len, int __prot,
int __flags, int __fd, __off64_t __offset) __THROW;
extern int __munmap (void *__addr, size_t __len) __THROW;
extern int __mprotect (void *__addr, size_t __len, int __prot) __THROW;
int __flags, int __fd, __off64_t __offset);
extern int __munmap (void *__addr, size_t __len);
extern int __mprotect (void *__addr, size_t __len, int __prot);
/* This one is Linux specific. */
extern void *__mremap (void *__addr, size_t __old_len,
size_t __new_len, int __may_move) __THROW;
size_t __new_len, int __may_move);
#endif

View File

@ -1,3 +1,7 @@
1999-11-25 Ulrich Drepper <drepper@cygnus.com>
* Makefile: Don't run tests for now.
1999-11-23 Ulrich Drepper <drepper@cygnus.com>
* locales/ko_KR: New file.

View File

@ -72,7 +72,7 @@ $(inst_i18ndir)/repertoiremaps/%: repertoiremaps/% $(+force); $(do-install)
ifeq (no,$(cross-compiling))
ifeq (yes,$(build-shared))
.PHONY: do-collate-test do-tst-fmon do-tst-locale do-tst-rpmatch do-tst-trans
tests: do-collate-test do-tst-fmon do-tst-locale do-tst-rpmatch do-tst-trans
#tests: do-collate-test do-tst-fmon do-tst-locale do-tst-rpmatch do-tst-trans
do-collate-test: sort-test.sh $(objpfx)collate-test $(objpfx)xfrm-test \
$(test-input-data)
$(SHELL) -e $< $(common-objpfx) $(test-input)

View File

@ -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");

View File

@ -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

View File

@ -44,9 +44,14 @@ __BEGIN_DECLS
extern void *mmap (void *__addr, size_t __len, int __prot,
int __flags, int __fd, __off_t __offset) __THROW;
#else
extern void *mmap (void *__addr, size_t __len, int __prot,
int __flags, int __fd, __off_t __offset) __THROW
__asm__ ("mmap64");
# ifdef __REDIRECT
extern void * __REDIRECT (mmap,
(void *__addr, size_t __len, int __prot,
int __flags, int __fd, __off64_t __offset) __THROW,
mmap64);
# else
# define mmap mmap64
# endif
#endif
#ifdef __USE_LARGEFILE64
extern void *mmap64 (void *__addr, size_t __len, int __prot,

View File

@ -41,7 +41,7 @@ exit (int status)
{
struct exit_function_list *old;
do
while (__exit_funcs->idx > 0)
{
const struct exit_function *const f =
&__exit_funcs->fns[--__exit_funcs->idx];
@ -58,7 +58,6 @@ exit (int status)
break;
}
}
while (__exit_funcs->idx > 0);
old = __exit_funcs;
__exit_funcs = __exit_funcs->next;