about summary refs log tree commit diff
path: root/elf/dl-minimal.c
diff options
context:
space:
mode:
Diffstat (limited to 'elf/dl-minimal.c')
-rw-r--r--elf/dl-minimal.c32
1 files changed, 16 insertions, 16 deletions
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);