From 9f9ab4922338d58f5adf8353286039eae09e1c2f Mon Sep 17 00:00:00 2001 From: Joakim Tjernlund Date: Wed, 6 Oct 2004 07:34:17 +0000 Subject: Puts common defines into dl-defs.h (in ldso/include) from dl-elf.h and dl-cache.h and make use of it. Also disables the lib-path-redundancy check for the case the cache is not used. Makes use of _PRELOAD_FILE_SUPPORT. From Peter Mazinger. --- utils/Makefile | 2 +- utils/dl-cache.h | 34 ---------------------------------- utils/ldconfig.c | 17 ++++++++--------- utils/ldd.c | 4 ++-- 4 files changed, 11 insertions(+), 46 deletions(-) (limited to 'utils') diff --git a/utils/Makefile b/utils/Makefile index 55591c244..9b5517000 100644 --- a/utils/Makefile +++ b/utils/Makefile @@ -55,7 +55,7 @@ ldconfig: ldconfig.c readsoname.c ldd: ldd.c $(CC) $(CFLAGS) $(XXFLAGS) -Wl,-s \ -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" \ - -DUCLIBC_LDSO=$(UCLIBC_LDSO) \ + -DUCLIBC_LDSO=$(UCLIBC_LDSO) -I. -I../ldso/include \ $^ -o $@ $(LDADD_LIBFLOAT) -L../lib $(STRIPTOOL) -x -R .note -R .comment $@ diff --git a/utils/dl-cache.h b/utils/dl-cache.h index ba7cd3f28..e69de29bb 100644 --- a/utils/dl-cache.h +++ b/utils/dl-cache.h @@ -1,34 +0,0 @@ -#define LDSO_BASE_PATH UCLIBC_RUNTIME_PREFIX "etc/" __LDSO_BASE_FILENAME__ -#define LDSO_CONF LDSO_BASE_PATH ".conf" -#define LDSO_CACHE LDSO_BASE_PATH ".cache" -#define LDSO_PRELOAD LDSO_BASE_PATH ".preload" - -#define LIB_ANY -1 -#define LIB_DLL 0 -#define LIB_ELF 1 -#define LIB_ELF64 0x80 -#define LIB_ELF_LIBC5 2 -#define LIB_ELF_LIBC6 3 -#define LIB_ELF_LIBC0 4 - -/* Definitions and prototypes for cache stuff */ -#ifdef __LDSO_CACHE_SUPPORT__ - -#define LDSO_CACHE_MAGIC "ld.so-" -#define LDSO_CACHE_MAGIC_LEN (sizeof LDSO_CACHE_MAGIC -1) -#define LDSO_CACHE_VER "1.7.0" -#define LDSO_CACHE_VER_LEN (sizeof LDSO_CACHE_VER -1) - -typedef struct { - char magic [LDSO_CACHE_MAGIC_LEN]; - char version [LDSO_CACHE_VER_LEN]; - int nlibs; -} header_t; - -typedef struct { - int flags; - int sooffset; - int liboffset; -} libentry_t; - -#endif diff --git a/utils/ldconfig.c b/utils/ldconfig.c index e466a42fb..52dc55b1d 100644 --- a/utils/ldconfig.c +++ b/utils/ldconfig.c @@ -876,7 +876,7 @@ int main(int argc, char **argv) { scan_dir(UCLIBC_RUNTIME_PREFIX "lib"); scan_dir(UCLIBC_RUNTIME_PREFIX "usr/lib"); -#if !defined (__LDSO_CACHE_SUPPORT__) +#ifndef __LDSO_CACHE_SUPPORT__ scan_dir(UCLIBC_RUNTIME_PREFIX "usr/X11R6/lib"); #endif @@ -884,21 +884,20 @@ int main(int argc, char **argv) if ((extpath = get_extpath())) { for (cp = strtok(extpath, DIR_SEP); cp; cp = strtok(NULL, DIR_SEP)) { - /* strip traling slashes */ + /* we do the redundancy check only if cache usage is enabled */ +#ifdef __LDSO_CACHE_SUPPORT__ + /* strip trailing slashes */ int len = strlen(cp); if (len) while (cp[--len] == '/' && len) cp[len] = 0; - if (strcmp(UCLIBC_RUNTIME_PREFIX "lib", cp) == 0 - || strcmp(UCLIBC_RUNTIME_PREFIX "usr/lib", cp) == 0 -#if !defined (__LDSO_CACHE_SUPPORT__) - || strcmp(UCLIBC_RUNTIME_PREFIX "usr/X11R6/lib", cp) == 0 -#endif - ) { + if (strcmp(UCLIBC_RUNTIME_PREFIX "lib", cp) == 0 || + strcmp(UCLIBC_RUNTIME_PREFIX "usr/lib", cp) == 0) { if (verbose >= 0) - warnx("Path `%s' given more than once\n", cp); + warnx("Remove `%s' from `%s'\n", cp, LDSO_CONF); continue; } +#endif scan_dir(cp); } free(extpath); diff --git a/utils/ldd.c b/utils/ldd.c index cc50109fc..a4877e31a 100644 --- a/utils/ldd.c +++ b/utils/ldd.c @@ -45,7 +45,7 @@ #else #include "elf.h" #endif -#include "dl-cache.h" +#include "dl-defs.h" #ifdef DMALLOC #include @@ -439,7 +439,7 @@ void locate_library_file(Elf32_Ehdr* ehdr, Elf32_Dyn* dynamic, int is_suid, stru This list must exactly match the list in uClibc/ldso/ldso/dl-elf.c */ path = UCLIBC_RUNTIME_PREFIX "lib:" UCLIBC_RUNTIME_PREFIX "usr/lib" -#if !defined (__LDSO_CACHE_SUPPORT__) +#ifndef __LDSO_CACHE_SUPPORT__ ":" UCLIBC_RUNTIME_PREFIX "usr/X11R6/lib" #endif ; -- cgit v1.2.3