summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorJoakim Tjernlund <joakim.tjernlund@transmode.se>2004-10-06 07:34:17 +0000
committerJoakim Tjernlund <joakim.tjernlund@transmode.se>2004-10-06 07:34:17 +0000
commit9f9ab4922338d58f5adf8353286039eae09e1c2f (patch)
treea9149db236c6d220b3fd10c72855ea1a720292e1 /utils
parente93138024a06eab6edeaa542c4660d246ef2cfce (diff)
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.
Diffstat (limited to 'utils')
-rw-r--r--utils/Makefile2
-rw-r--r--utils/dl-cache.h34
-rw-r--r--utils/ldconfig.c17
-rw-r--r--utils/ldd.c4
4 files changed, 11 insertions, 46 deletions
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 <dmalloc.h>
@@ -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
;