[git commit ldso-future] libdl.c: move some prototypes to ldsodefs.h
Peter S. Mazinger
ps.m at gmx.net
Wed Mar 30 11:53:36 UTC 2011
commit: http://git.uclibc.org/uClibc/commit/?id=c6c67e75099064f2302d34e16d9d7641f4f4a97c
branch: http://git.uclibc.org/uClibc/commit/?id=refs/heads/ldso-future
Signed-off-by: Peter S. Mazinger <ps.m at gmx.net>
---
ldso/include/dl-elf.h | 2 +-
ldso/include/ldsodefs.h | 10 ++++++++++
ldso/libdl/libdl.c | 47 +----------------------------------------------
3 files changed, 12 insertions(+), 47 deletions(-)
diff --git a/ldso/include/dl-elf.h b/ldso/include/dl-elf.h
index 4047399..addf23a 100644
--- a/ldso/include/dl-elf.h
+++ b/ldso/include/dl-elf.h
@@ -27,7 +27,7 @@ static __inline__ void _dl_map_cache(void) { }
static __inline__ void _dl_unmap_cache(void) { }
#endif
-/* Function prototypes for non-static stuff in elfinterp.c */
+/* Function prototypes for non-static stuff in dl-elf.c and elfinterp.c */
extern void _dl_parse_lazy_relocation_information(struct dyn_elf *rpnt,
ElfW(Addr) rel_addr, ElfW(Word) rel_size);
extern int _dl_parse_relocation_information(struct dyn_elf *rpnt,
diff --git a/ldso/include/ldsodefs.h b/ldso/include/ldsodefs.h
index 5df0332..7eb4c8f 100644
--- a/ldso/include/ldsodefs.h
+++ b/ldso/include/ldsodefs.h
@@ -44,6 +44,16 @@
copy. */
extern void *__libc_stack_end attribute_relro;
+#ifdef SHARED
+extern unsigned long _dl_error_number;
+extern struct r_debug *_dl_debug_addr;
+extern void *(*_dl_malloc_function)(size_t);
+extern void (*_dl_free_function) (void *p);
+struct elf_resolve;
+extern void _dl_run_init_array(struct elf_resolve *);
+extern void _dl_run_fini_array(struct elf_resolve *);
+#endif
+
#ifdef __UCLIBC_HAS_TLS__
/* Determine next available module ID. */
extern size_t _dl_next_tls_modid (void) internal_function attribute_hidden;
diff --git a/ldso/libdl/libdl.c b/ldso/libdl/libdl.c
index a50fc25..aa244ee 100644
--- a/ldso/libdl/libdl.c
+++ b/ldso/libdl/libdl.c
@@ -35,50 +35,7 @@
#include <string.h>
#include <stdbool.h>
-#ifdef __UCLIBC_HAS_TLS__
-#include <tls.h>
-#endif
-
-#ifdef __UCLIBC_HAS_TLS__
-#include <ldsodefs.h>
-extern void _dl_add_to_slotinfo(struct link_map *l);
-#endif
-
-#ifdef SHARED
-# ifdef __UCLIBC_HAS_TLS__
-# include <dl-tls.h>
-extern struct link_map *_dl_update_slotinfo(unsigned long int req_modid);
-# endif
-
-/* When libdl is loaded as a shared library, we need to load in
- * and use a pile of symbols from ldso... */
-
-extern struct elf_resolve * _dl_load_shared_library(int, struct dyn_elf **,
- struct elf_resolve *, char *, int);
-extern int _dl_fixup(struct dyn_elf *rpnt, int lazy);
-extern int _dl_errno;
-extern struct dyn_elf *_dl_symbol_tables;
-extern struct elf_resolve *_dl_loaded_modules;
-extern void _dl_free (void *__ptr);
-extern struct r_debug *_dl_debug_addr;
-extern unsigned long _dl_error_number;
-extern void *(*_dl_malloc_function)(size_t);
-extern void (*_dl_free_function) (void *p);
-extern void _dl_run_init_array(struct elf_resolve *);
-extern void _dl_run_fini_array(struct elf_resolve *);
-#ifdef __LDSO_CACHE_SUPPORT__
-int _dl_map_cache(void);
-int _dl_unmap_cache(void);
-#endif
-#ifdef __mips__
-extern void _dl_perform_mips_global_got_relocations(struct elf_resolve *tpnt, int lazy);
-#endif
-#ifdef __SUPPORT_LD_DEBUG__
-extern char *_dl_debug;
-#endif
-
-#else /* !SHARED */
-
+#ifndef SHARED
#define _dl_malloc malloc
#define _dl_free free
@@ -88,9 +45,7 @@ extern char *_dl_debug;
const char *_dl_progname = ""; /* Program name */
void *(*_dl_malloc_function)(size_t);
void (*_dl_free_function) (void *p);
-#ifndef SHARED
char *_dl_library_path = NULL; /* Where we look for libraries */
-#endif
char *_dl_ldsopath = NULL; /* Location of the shared lib loader */
int _dl_errno = 0; /* We can't use the real errno in ldso */
size_t _dl_pagesize = PAGE_SIZE; /* Store the page size for use later */
--
1.7.3.4
More information about the uClibc-cvs
mailing list