aboutsummaryrefslogtreecommitdiff
path: root/elf
diff options
context:
space:
mode:
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;
}