summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter S. Mazinger <ps.m@gmx.net>2011-03-24 01:33:14 +0100
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2012-06-15 14:00:32 +0200
commit47951f1e980e86761767111431ce2c1379034a3a (patch)
tree44bb08b6682c09bb9f05abbcecaab5e53e9777ef
parent07de755cffd6966a3a400a926c24e50233aae517 (diff)
ldconfig.c: fix strncmp() usage
While there, remove unused __strtok. Use err() and warn() if uClibc provides them (if ldconfig is not static). Signed-off-by: Peter S. Mazinger <ps.m@gmx.net> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-rw-r--r--utils/ldconfig.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/utils/ldconfig.c b/utils/ldconfig.c
index 024be7ca4..e6b788118 100644
--- a/utils/ldconfig.c
+++ b/utils/ldconfig.c
@@ -57,8 +57,6 @@ struct exec {
/* Code indicating core file. */
#define CMAGIC 0421
-char *___strtok = NULL;
-
char *prog = NULL;
int debug = 0; /* debug mode */
int verbose = 0; /* verbose mode */
@@ -96,6 +94,7 @@ struct needed_tab needed_tab[] = {
extern char *chroot_realpath(const char *chroot, const char *path,
char resolved_path[]);
+#if defined __UCLIBC_STATIC_LDCONFIG__ || !defined __UCLIBC_HAS_BSD_ERR__
/* These two are used internally -- you shouldn't need to use them */
static void verror_msg(const char *s, va_list p)
{
@@ -114,8 +113,7 @@ static void warnx(const char *s, ...)
fprintf(stderr, "\n");
}
-static void err(int errnum, const char *s, ...) attribute_noreturn;
-static void err(int errnum, const char *s, ...)
+static attribute_noreturn void err(int errnum, const char *s, ...)
{
va_list p;
@@ -146,6 +144,9 @@ static void warn(const char *s, ...)
vperror_msg(s, p);
va_end(p);
}
+#else
+# include <err.h>
+#endif
static void *xmalloc(size_t size)
{
@@ -257,10 +258,10 @@ static char *is_shlib(const char *dir, const char *name, int *type,
&& N_MAGIC_SWAP(exec) != QMAGIC) {
elf_hdr = (ElfW(Ehdr) *) & exec;
if (elf_hdr->e_ident[0] != 0x7f ||
- strncmp((char *)elf_hdr->e_ident + 1, "ELF", 3) != 0)
+ strncmp((const char *)elf_hdr->e_ident + 1, "ELF", 3) != 0)
{
/* silently ignore linker scripts */
- if (strncmp((char *)&exec, "/* GNU ld", 9) != 0)
+ if (strncmp((const char *)&exec, "/* GNU ld", 9) != 0)
warnx("%s is not a shared library, skipping", buff);
} else {
/* always call readsoname to update type */
@@ -282,7 +283,7 @@ static char *is_shlib(const char *dir, const char *name, int *type,
/* if the soname does not match the filename,
issue a warning, but only in debug mode. */
int len = strlen(good);
- if (debug && (strncmp(good, name, len) != 0
+ if (debug && (strncmp((const char *)good, name, len) != 0
|| (name[len] != '\0' && name[len] != '.')))
warnx("%s has inconsistent soname (%s)", buff, good);
}
@@ -784,8 +785,7 @@ void cache_print(void)
}
#endif
-static void usage(void) attribute_noreturn;
-static void usage(void)
+static attribute_noreturn void usage(void)
{
fprintf(stderr,
#ifdef __LDSO_CACHE_SUPPORT__