diff options
Diffstat (limited to 'ldso')
-rw-r--r-- | ldso/include/dl-defs.h | 44 | ||||
-rw-r--r-- | ldso/include/dl-elf.h | 35 | ||||
-rw-r--r-- | ldso/ldso/dl-elf.c | 2 |
3 files changed, 46 insertions, 35 deletions
diff --git a/ldso/include/dl-defs.h b/ldso/include/dl-defs.h new file mode 100644 index 000000000..1894a56dd --- /dev/null +++ b/ldso/include/dl-defs.h @@ -0,0 +1,44 @@ +#ifndef _LD_DEFS_H +#define _LD_DEFS_H + +#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 + +/* should we include features.h? */ +#if defined(__LDSO_PRELOAD_FILE_SUPPORT__) || defined(__LDSO_CACHE_SUPPORT__) +#define LDSO_BASE_PATH UCLIBC_RUNTIME_PREFIX "etc/" __LDSO_BASE_FILENAME__ + +#ifdef __LDSO_PRELOAD_FILE_SUPPORT__ +#define LDSO_PRELOAD LDSO_BASE_PATH ".preload" +#endif + +#ifdef __LDSO_CACHE_SUPPORT__ +#define LDSO_CONF LDSO_BASE_PATH ".conf" +#define LDSO_CACHE LDSO_BASE_PATH ".cache" + +#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 /* __LDSO_CACHE_SUPPORT__ */ + +#endif + +#endif /* _LD_DEFS_H */ diff --git a/ldso/include/dl-elf.h b/ldso/include/dl-elf.h index 5a6e56c80..66843096c 100644 --- a/ldso/include/dl-elf.h +++ b/ldso/include/dl-elf.h @@ -5,47 +5,14 @@ #include <elf.h> #include <link.h> -#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 - /* Forward declarations for stuff defined in ld_hash.h */ struct dyn_elf; struct elf_resolve; - -/* Definitions and prototypes for cache stuff */ +#include <dl-defs.h> #ifdef __LDSO_CACHE_SUPPORT__ extern int _dl_map_cache(void); extern int _dl_unmap_cache(void); - -#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; - #else static inline void _dl_map_cache(void) { } static inline void _dl_unmap_cache(void) { } diff --git a/ldso/ldso/dl-elf.c b/ldso/ldso/dl-elf.c index 7e1252df7..2dda6e5da 100644 --- a/ldso/ldso/dl-elf.c +++ b/ldso/ldso/dl-elf.c @@ -358,7 +358,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt, if ((tpnt1 = search_for_named_library(libname, secure, 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 , rpnt) |