about summary refs log tree commit diff
path: root/elf
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-04-14 16:51:08 +0000
committerUlrich Drepper <drepper@redhat.com>1998-04-14 16:51:08 +0000
commit310b3460e0740903996b838e9f9f5842c579cb0f (patch)
tree990ca922d3253d536fb71f3f70ac90467e5dc75e /elf
parentbbdc8261f84c22c8c82cc51fa84c70efb1b7ab99 (diff)
downloadglibc-310b3460e0740903996b838e9f9f5842c579cb0f.tar.gz
glibc-310b3460e0740903996b838e9f9f5842c579cb0f.tar.xz
glibc-310b3460e0740903996b838e9f9f5842c579cb0f.zip
Update.
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.
Diffstat (limited to 'elf')
-rw-r--r--elf/dl-error.c5
-rw-r--r--elf/dl-minimal.c32
-rw-r--r--elf/dl-profile.c10
3 files changed, 21 insertions, 26 deletions
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;
     }