From 310b3460e0740903996b838e9f9f5842c579cb0f Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 14 Apr 1998 16:51:08 +0000 Subject: Update. 1998-04-14 16:34 Ulrich Drepper * 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 * catgets/open_catalog.c (__open_catalog): Fix problems with reading non-files. Always close file. Reported by Cristian Gafton . * elf/dl-minimal.c (__strtol_internal): Prevent overflow warnings. 1998-04-14 13:28 Ulrich Drepper * libc.map: Add various low-level I/O functions. 1998-04-14 10:35 Ulrich Drepper * 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 * sysdeps/unix/sysv/linux/Makefile [$(subdir)=inet] (sysdep_headers): Add netatalk/at.h. 1998-04-12 Andreas Schwab * manual/socket.texi, manual/creature.texi, manual/time.texi: Formatting fixes. 1998-04-13 Andreas Schwab * 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 * configure.in: Document that enable-force-install is default. --- elf/dl-error.c | 5 +---- elf/dl-minimal.c | 32 ++++++++++++++++---------------- elf/dl-profile.c | 10 ++++------ 3 files changed, 21 insertions(+), 26 deletions(-) (limited to 'elf') diff --git a/elf/dl-error.c b/elf/dl-error.c index 446ba62..03292ab 100644 --- a/elf/dl-error.c +++ b/elf/dl-error.c @@ -23,9 +23,6 @@ #include #include -/* 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 4c15d83..c9a0575 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 669fee7..c7ac360 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; } -- cgit v1.1