diff options
author | Peter S. Mazinger <ps.m@gmx.net> | 2011-03-24 01:33:14 +0100 |
---|---|---|
committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2012-06-15 14:00:32 +0200 |
commit | 47951f1e980e86761767111431ce2c1379034a3a (patch) | |
tree | 44bb08b6682c09bb9f05abbcecaab5e53e9777ef | |
parent | 07de755cffd6966a3a400a926c24e50233aae517 (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.c | 18 |
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__ |