diff options
| -rw-r--r-- | .cvsignore | 2 | ||||
| -rw-r--r-- | ChangeLog | 67 | ||||
| -rw-r--r-- | FAQ.in | 2 | ||||
| -rw-r--r-- | assert/assert-perr.c | 8 | ||||
| -rw-r--r-- | catgets/open_catalog.c | 10 | ||||
| -rwxr-xr-x | configure | 2 | ||||
| -rw-r--r-- | configure.in | 2 | ||||
| -rw-r--r-- | elf/dl-error.c | 5 | ||||
| -rw-r--r-- | elf/dl-minimal.c | 32 | ||||
| -rw-r--r-- | elf/dl-profile.c | 10 | ||||
| -rw-r--r-- | gmon/gmon.c | 4 | ||||
| -rw-r--r-- | libc.map | 13 | ||||
| -rw-r--r-- | libio/fcloseall.c | 5 | ||||
| -rw-r--r-- | libio/genops.c | 8 | ||||
| -rw-r--r-- | libio/libioP.h | 2 | ||||
| -rw-r--r-- | manual/creature.texi | 8 | ||||
| -rw-r--r-- | manual/socket.texi | 6 | ||||
| -rw-r--r-- | manual/time.texi | 4 | ||||
| -rw-r--r-- | posix/regex.c | 22 | ||||
| -rw-r--r-- | rt/tst-aio.c | 41 | ||||
| -rw-r--r-- | stdio-common/perror.c | 6 | ||||
| -rw-r--r-- | stdio-common/vfprintf.c | 8 | ||||
| -rw-r--r-- | stdlib/Makefile | 2 | ||||
| -rw-r--r-- | stdlib/canonicalize.c | 26 | ||||
| -rw-r--r-- | stdlib/test-canon2.c | 74 | ||||
| -rw-r--r-- | string/Makefile | 4 | ||||
| -rw-r--r-- | string/strerror.c | 6 | ||||
| -rw-r--r-- | string/strerror_r.c | 31 | ||||
| -rw-r--r-- | sysdeps/generic/_strerror.c | 7 | ||||
| -rw-r--r-- | sysdeps/mach/_strerror.c | 3 | ||||
| -rw-r--r-- | sysdeps/unix/sysv/linux/Makefile | 4 | ||||
| -rw-r--r-- | test-skeleton.c | 11 |
32 files changed, 278 insertions, 157 deletions
diff --git a/.cvsignore b/.cvsignore index 7654da865a..b907f7a024 100644 --- a/.cvsignore +++ b/.cvsignore @@ -17,9 +17,9 @@ distinfo test-include analysis docs +releases crypt linuxthreads -secure_rpc aio @@ -1,3 +1,70 @@ +1998-04-14 16:34 Ulrich Drepper <drepper@cygnus.com> + + * test-skeleton.c: Provide hook for initializing code before the fork. + * rt/tst-aio.c: Use PREPARE hook to make suer temp files are always + removed. + + * libio/fcloseall.c (__fcloseall): Return return value of _IO_cleanup. + * libio/genops.c (_IO_cleanup): Return return value of _IO_flush_all. + * libio/libioP.h: Adopt _IO_cleanup prototype. + + * stdlib/Makefile (tests): Add test-canon2. + * stdlib/test-canon2.c: New file. + * stdlib/canonicalize.c (canonicalize): Allow RESOLVED parameter to + be NULL. Use __lxstat, not __lstat. Correctly recognize long + symlink sequences. + (__realpath): Make real function which checks RESOLVED parameter for + not being NULL. + +1998-04-14 Ulrich Drepper <drepper@cygnus.com> + + * catgets/open_catalog.c (__open_catalog): Fix problems with + reading non-files. Always close file. + Reported by Cristian Gafton <gafton@redhat.com>. + + * elf/dl-minimal.c (__strtol_internal): Prevent overflow warnings. + +1998-04-14 13:28 Ulrich Drepper <drepper@cygnus.com> + + * libc.map: Add various low-level I/O functions. + +1998-04-14 10:35 Ulrich Drepper <drepper@cygnus.com> + + * string/Makefile (routines): Remove strerror_r. + * string/strerror_r.c: Removed. + * string/strerror.c: Call __strerror_r for doing the real work. + * sysdeps/generic/_strerror.c: Rename function to __strerror_r and + add weak alias strerror_r. + * sysdeps/mach/_strerror.c: Likewise. + * assert/assert-perr.c: Use __strerror_r instead of _strerror_internal. + * elf/dl-error.c (_dl_signal_error): Likewise. + * elf/dl-profile.c (_dl_start_profile): Likewise. + * gmon/gmon.c (write_gmon): Likewise. + * stdio-common/perror.c: Likewise. + * stdio-common/vfprintf.c: Likewise. + +1998-04-10 Mark Kettenis <kettenis@phys.uva.nl> + + * sysdeps/unix/sysv/linux/Makefile [$(subdir)=inet] + (sysdep_headers): Add netatalk/at.h. + +1998-04-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * manual/socket.texi, manual/creature.texi, manual/time.texi: + Formatting fixes. + +1998-04-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * posix/regex.c: Rename __re_syntax_options back to + re_syntax_options, aliases do not work with global variables due + to copy relocations. + (regex_compile): Use syntax parameter instead of + re_syntax_options. + +1998-04-14 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * configure.in: Document that enable-force-install is default. + 1998-04-13 Ulrich Drepper <drepper@cygnus.com> * sysdeps/posix/mktemp.c: Increment `value' in a way which touches @@ -945,7 +945,7 @@ Also, make sure you have a suitably recent kernel. As of the 970401 snapshot, according to Philip Blundell <Philip.Blundell@pobox.com>, the required kernel version is at least 2.1.30. -?? When I set the timezone I'm by setting the TZ environment variable +?? When I set the timezone by setting the TZ environment variable to EST5EDT things go wrong since glibc computes the wrong time from this information. diff --git a/assert/assert-perr.c b/assert/assert-perr.c index 246727ee94..cdc07b56f9 100644 --- a/assert/assert-perr.c +++ b/assert/assert-perr.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -22,10 +22,6 @@ #include <sysdep.h> -/* This is the internal function we use to generate the error string. */ -extern char *_strerror_internal __P ((int, char *, size_t)); - - extern const char *__assert_program_name; /* In assert.c. */ /* This function, when passed an error number, a filename, and a line @@ -53,7 +49,7 @@ __assert_perror_fail (int errnum, __assert_program_name ? ": " : "", file, line, function ? function : "", function ? ": " : "", - _strerror_internal (errnum, errbuf, sizeof errbuf)); + __strerror_r (errnum, errbuf, sizeof errbuf)); (void) fflush (stderr); abort (); diff --git a/catgets/open_catalog.c b/catgets/open_catalog.c index 62fb111e43..2197eb8363 100644 --- a/catgets/open_catalog.c +++ b/catgets/open_catalog.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>. @@ -35,7 +35,7 @@ void __open_catalog (__nl_catd catalog) { - int fd; + int fd = -1; struct stat st; int swapping; @@ -169,7 +169,8 @@ __open_catalog (__nl_catd catalog) } } - if (fd < 0 || __fstat (fd, &st) < 0) + /* Avoid dealing with directories and block devices */ + if (fd < 0 || __fstat (fd, &st) < 0 || !S_ISREG (st.st_mode)) { catalog->status = nonexisting; goto unlock_return; @@ -225,6 +226,7 @@ __open_catalog (__nl_catd catalog) /* We don't need the file anymore. */ __close (fd); + fd = -1; /* Determine whether the file is a catalog file and if yes whether it is written using the correct byte order. Else we have to swap @@ -271,5 +273,7 @@ __open_catalog (__nl_catd catalog) /* Release the lock again. */ unlock_return: + if (fd != -1) + __close (fd); __libc_lock_unlock (catalog->lock); } @@ -63,7 +63,7 @@ ac_help="$ac_help ac_help="$ac_help --enable-static-nss build static NSS modules [default=no]" ac_help="$ac_help - --enable-force-install force installation of files from this package, + --disable-force-install don't force installation of files from this package, even if they are older than the installed files" # Initialize some variables set by options. diff --git a/configure.in b/configure.in index 6d17bb30cb..86eec3c942 100644 --- a/configure.in +++ b/configure.in @@ -128,7 +128,7 @@ if test x"$static_nss" = xyes; then fi AC_ARG_ENABLE(force-install, -[ --enable-force-install force installation of files from this package, +[ --disable-force-install don't force installation of files from this package, even if they are older than the installed files], force_install=$enableval, force_install=yes) AC_SUBST(force_install) diff --git a/elf/dl-error.c b/elf/dl-error.c index 446ba627b5..03292abaf4 100644 --- a/elf/dl-error.c +++ b/elf/dl-error.c @@ -23,9 +23,6 @@ #include <unistd.h> #include <elf/ldsodefs.h> -/* This is the internal function we use to generate the error string. */ -extern char *_strerror_internal __P ((int, char *, size_t)); - /* This structure communicates state between _dl_catch_error and _dl_signal_error. */ struct catch @@ -89,7 +86,7 @@ _dl_signal_error (int errcode, objname ?: "", objname && *objname ? ": " : "", errstring, errcode ? ": " : "", (errcode - ? _strerror_internal (errcode, buffer, sizeof buffer) + ? __strerror_r (errcode, buffer, sizeof buffer) : ""), "\n", NULL); } } diff --git a/elf/dl-minimal.c b/elf/dl-minimal.c index 4c15d83f8e..c9a0575fd0 100644 --- a/elf/dl-minimal.c +++ b/elf/dl-minimal.c @@ -131,7 +131,7 @@ longjmp (jmp_buf env, int val) in the whole error list. */ char * weak_function -_strerror_internal (int errnum, char *buf, size_t buflen) +__strerror_r (int errnum, char *buf, size_t buflen) { char *msg; @@ -205,11 +205,10 @@ __assert_perror_fail (int errnum, #endif /* This function is only used in eval.c. */ -long int -weak_function +long int weak_function __strtol_internal (const char *nptr, char **endptr, int base, int group) { - long int result = 0; + unsigned long int result = 0; long int sign = 1; while (*nptr == ' ' || *nptr == '\t') @@ -246,10 +245,14 @@ __strtol_internal (const char *nptr, char **endptr, int base, int group) while (*nptr >= '0' && *nptr <= '9') { - long int digval = *nptr - '0'; + unsigned long int digval = *nptr - '0'; if (result > LONG_MAX / 10 - || (result == (sign ? LONG_MAX : LONG_MAX + 1) / 10 - && digval > (sign ? LONG_MAX : LONG_MAX + 1) % 10)) + || (result == (sign + ? (unsigned long int) LONG_MAX + : (unsigned long int) LONG_MAX + 1) / 10 + && digval > (sign + ? (unsigned long int) LONG_MAX + : (unsigned long int) LONG_MAX + 1) % 10)) { errno = ERANGE; return LONG_MAX * sign; @@ -258,21 +261,19 @@ __strtol_internal (const char *nptr, char **endptr, int base, int group) result += digval; } - return result * sign; + return (long int) result * sign; } -long int -weak_function +long int weak_function strtol (const char *nptr, char **endptr, int base) { return __strtol_internal (nptr, endptr, base, 0); } -unsigned long int -weak_function +unsigned long int weak_function __strtoul_internal (const char *nptr, char **endptr, int base, int group) { - long int result = 0; + unsigned long int result = 0; long int sign = 1; while (*nptr == ' ' || *nptr == '\t') @@ -309,7 +310,7 @@ __strtoul_internal (const char *nptr, char **endptr, int base, int group) while (*nptr >= '0' && *nptr <= '9') { - long int digval = *nptr - '0'; + unsigned long int digval = *nptr - '0'; if (result > LONG_MAX / 10 || (result == ULONG_MAX / 10 && digval > ULONG_MAX % 10)) { @@ -323,8 +324,7 @@ __strtoul_internal (const char *nptr, char **endptr, int base, int group) return result * sign; } -unsigned long int -weak_function +unsigned long int weak_function strtoul (const char *nptr, char **endptr, int base) { return (unsigned long int) __strtoul_internal (nptr, endptr, base, 0); diff --git a/elf/dl-profile.c b/elf/dl-profile.c index 669fee7a43..c7ac360811 100644 --- a/elf/dl-profile.c +++ b/elf/dl-profile.c @@ -124,8 +124,6 @@ extern ssize_t __libc_write __P ((int __fd, __const __ptr_t __buf, data structures at the program start. To do this we'll simply visit all entries in the call graph table and add it to the appropriate list. */ -extern char *_strerror_internal __P ((int, char *buf, size_t)); - extern int __profile_frequency __P ((void)); /* We define a special type to address the elements of the arc table. @@ -271,7 +269,7 @@ _dl_start_profile (struct link_map *map, const char *output_dir) /* We cannot write the profiling data so don't do anything. */ char buf[400]; _dl_sysdep_message (filename, ": cannot open file: ", - _strerror_internal (errno, buf, sizeof buf), + __strerror_r (errno, buf, sizeof buf), "\n", NULL); return; } @@ -283,7 +281,7 @@ _dl_start_profile (struct link_map *map, const char *output_dir) int errnum = errno; __close (fd); _dl_sysdep_message (filename, ": cannot stat file: ", - _strerror_internal (errnum, buf, sizeof buf), + __strerror_r (errnum, buf, sizeof buf), "\n", NULL); return; } @@ -305,7 +303,7 @@ _dl_start_profile (struct link_map *map, const char *output_dir) errnum = errno; __close (fd); _dl_sysdep_message (filename, ": cannot create file: ", - _strerror_internal (errnum, buf, sizeof buf), + __strerror_r (errnum, buf, sizeof buf), "\n", NULL); return; } @@ -337,7 +335,7 @@ _dl_start_profile (struct link_map *map, const char *output_dir) int errnum = errno; __close (fd); _dl_sysdep_message (filename, ": cannot map file: ", - _strerror_internal (errnum, buf, sizeof buf), + __strerror_r (errnum, buf, sizeof buf), "\n", NULL); return; } diff --git a/gmon/gmon.c b/gmon/gmon.c index 0087e8c0f7..834351eeec 100644 --- a/gmon/gmon.c +++ b/gmon/gmon.c @@ -46,8 +46,6 @@ #include <string.h> #include <unistd.h> -extern char *_strerror_internal __P ((int, char *buf, size_t)); - extern int __profile_frequency __P ((void)); struct __bb *__bb_head; /* Head of basic-block list or NULL. */ @@ -330,7 +328,7 @@ write_gmon (void) char buf[300]; int errnum = errno; fprintf (stderr, "_mcleanup: gmon.out: %s\n", - _strerror_internal (errnum, buf, sizeof buf)); + __strerror_r (errnum, buf, sizeof buf)); return; } } @@ -146,7 +146,8 @@ GLIBC_2.0 { # b* basename; bcmp; bcopy; bdflush; bind; bindresvport; - bindtextdomain; brk; bsd_signal; bsearch; btowc; bzero; + bindtextdomain; brk; bsd_signal; bsearch; btowc; bus_base; bus_base_sparse; + bzero; # c* cachectl; cacheflush; calloc; callrpc; canonicalize_file_name; @@ -225,14 +226,14 @@ GLIBC_2.0 { globfree; gmtime; gmtime_r; group_member; gsignal; gtty; # h* - hasmntopt; hcreate; hcreate_r; hdestroy; hdestroy_r; herror; + hae_shift; hasmntopt; hcreate; hcreate_r; hdestroy; hdestroy_r; herror; hsearch; hsearch_r; hstrerror; htonl; htons; # i* - index; inet_addr; inet_aton; inet_lnaof; inet_makeaddr; + inb; index; inet_addr; inet_aton; inet_lnaof; inet_makeaddr; inet_netof; inet_network; inet_nsap_addr; inet_nsap_ntoa; inet_ntoa; inet_ntop; inet_pton; init_module; initgroups; initstate; initstate_r; - innetgr; insque; ioctl; ioperm; iopl; iruserok; + inl; innetgr; insque; inw; ioctl; ioperm; iopl; iruserok; isalnum; isalpha; isascii; isatty; isblank; iscntrl; isdigit; isfdtype; isgraph; isinf; isinff; isinfl; islower; isnan; isnanf; @@ -275,7 +276,7 @@ GLIBC_2.0 { # o* obstack_free; obstack_printf; obstack_vprintf; on_exit; open; - open_memstream; opendir; openlog; + open_memstream; opendir; openlog; outb; outl; outw; # p* parse_printf_format; pathconf; pause; pciconfig_read; @@ -328,7 +329,7 @@ GLIBC_2.0 { semctl; semget; semop; send; sendmsg; sendto; setaliasent; setbuf; setbuffer; setcontext; setdomainname; setegid; setenv; seteuid; setfsent; - setfsgid; setfsuid; setgid; setgrent; setgroups; sethostent; + setfsgid; setfsuid; setgid; setgrent; setgroups; sethae; sethostent; sethostid; sethostname; setitimer; setjmp; setlinebuf; setlocale; setlogin; setlogmask; setmntent; setnetent; setnetgrent; setpgid; setpgrp; setpriority; setprotoent; setpwent; setregid; setresgid; diff --git a/libio/fcloseall.c b/libio/fcloseall.c index cd01655450..9b980c6cde 100644 --- a/libio/fcloseall.c +++ b/libio/fcloseall.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1995, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU IO Library. This library is free software; you can redistribute it and/or @@ -30,8 +30,7 @@ int __fcloseall () { /* Close all streams. */ - _IO_cleanup (); - return 0; + return _IO_cleanup (); } #ifdef weak_alias diff --git a/libio/genops.c b/libio/genops.c index ea602eda39..b0334d6d0e 100644 --- a/libio/genops.c +++ b/libio/genops.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1995, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU IO Library. This library is free software; you can redistribute it and/or @@ -714,10 +714,10 @@ _IO_unbuffer_all () _IO_SETBUF (fp, NULL, 0); } -void +int _IO_cleanup () { - _IO_flush_all (); + int result = _IO_flush_all (); /* We currently don't have a reliable mechanism for making sure that C++ static destructors are executed in the correct order. @@ -727,6 +727,8 @@ _IO_cleanup () The following will make the standard streambufs be unbuffered, which forces any output fr |
