summary refs log tree commit diff
path: root/elf
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-06-10 05:48:35 +0000
committerUlrich Drepper <drepper@redhat.com>2000-06-10 05:48:35 +0000
commit7e6d3809908ca640e5334ced033d6f905783731a (patch)
treeb9909d79838a176c7b5a0d58abc1e5f793f43ec2 /elf
parent000171e5098b7256642e91b9405cca250d93a0a5 (diff)
downloadglibc-7e6d3809908ca640e5334ced033d6f905783731a.tar.gz
glibc-7e6d3809908ca640e5334ced033d6f905783731a.tar.xz
glibc-7e6d3809908ca640e5334ced033d6f905783731a.zip
Update.
2000-06-10  Jakub Jelinek  <jakub@redhat.com>

	* elf/link.h: Remove libc internal declarations.
	* include/link.h: Move them here.
Diffstat (limited to 'elf')
-rw-r--r--elf/link.h126
1 files changed, 1 insertions, 125 deletions
diff --git a/elf/link.h b/elf/link.h
index 38652ca46a..4680dd9149 100644
--- a/elf/link.h
+++ b/elf/link.h
@@ -75,40 +75,11 @@ extern struct r_debug _r_debug;
    */
 extern ElfW(Dyn) _DYNAMIC[];
 
-
-/* Some internal data structures of the dynamic linker used in the
-   linker map.  We only provide forward declarations.  */
-struct libname_list;
-struct r_found_version;
-struct r_search_path_elem;
-
-/* Forward declaration.  */
-struct link_map;
-
-/* Structure to describe a single list of scope elements.  The lookup
-   functions get passed an array of pointers to such structures.  */
-struct r_scope_elem
-{
-  /* Array of maps for the scope.  */
-  struct link_map **r_list;
-  /* Number of entries in the scope.  */
-  unsigned int r_nlist;
-
-  /* Array of maps which also includes duplicates.  */
-  struct link_map **r_duplist;
-  /* Number of elements in this list.  */
-  unsigned int r_nduplist;
-};
-
-
 /* Structure describing a loaded shared object.  The `l_next' and `l_prev'
    members form a chain of all the shared objects loaded at startup.
 
    These data structures exist in space used by the run-time dynamic linker;
-   modifying them may have disastrous results.
-
-   This data structure might change in future, if necessary.  User-level
-   programs must avoid defining objects of this type.  */
+   modifying them may have disastrous results.  */
 
 struct link_map
   {
@@ -119,101 +90,6 @@ struct link_map
     char *l_name;		/* Absolute file name object was found in.  */
     ElfW(Dyn) *l_ld;		/* Dynamic section of the shared object.  */
     struct link_map *l_next, *l_prev; /* Chain of loaded objects.  */
-
-    /* All following members are internal to the dynamic linker.
-       They may change without notice.  */
-
-    struct libname_list *l_libname;
-    /* Indexed pointers to dynamic section.
-       [0,DT_NUM) are indexed by the processor-independent tags.
-       [DT_NUM,DT_NUM+DT_THISPROCNUM) are indexed by the tag minus DT_LOPROC.
-       [DT_NUM+DT_THISPROCNUM,DT_NUM+DT_THISPROCNUM+DT_EXTRANUM) are indexed
-       by DT_EXTRATAGIDX(tagvalue) and
-       [DT_NUM+DT_THISPROCNUM+DT_VERSIONTAGNUM,
-        DT_NUM+DT_THISPROCNUM+DT_VERSIONTAGNUM+DT_EXTRANUM)
-       are indexed by DT_EXTRATAGIDX(tagvalue) (see <elf.h>).  */
-
-    ElfW(Dyn) *l_info[DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGNUM
-		     + DT_EXTRANUM];
-    const ElfW(Phdr) *l_phdr;	/* Pointer to program header table in core.  */
-    ElfW(Addr) l_entry;		/* Entry point location.  */
-    ElfW(Half) l_phnum;		/* Number of program header entries.  */
-    ElfW(Half) l_ldnum;	/* Number of dynamic segment entries.  */
-
-    /* Array of DT_NEEDED dependencies and their dependencies, in
-       dependency order for symbol lookup (with and without
-       duplicates).  There is no entry before the dependencies have
-       been loaded.  */
-    struct r_scope_elem l_searchlist;
-
-    /* We need a special searchlist to process objects marked with
-       DT_SYMBOLIC.  */
-    struct r_scope_elem l_symbolic_searchlist;
-
-    /* Dependent object that first caused this object to be loaded.  */
-    struct link_map *l_loader;
-
-    /* Symbol hash table.  */
-    Elf_Symndx l_nbuckets;
-    const Elf_Symndx *l_buckets, *l_chain;
-
-    unsigned int l_opencount;	/* Reference count for dlopen/dlclose.  */
-    enum			/* Where this object came from.  */
-      {
-	lt_executable,		/* The main executable program.  */
-	lt_library,		/* Library needed by main executable.  */
-	lt_loaded		/* Extra run-time loaded shared object.  */
-      } l_type:2;
-    unsigned int l_relocated:1;	/* Nonzero if object's relocations done.  */
-    unsigned int l_init_called:1; /* Nonzero if DT_INIT function called.  */
-    unsigned int l_global:1;	/* Nonzero if object in _dl_global_scope.  */
-    unsigned int l_reserved:2;	/* Reserved for internal use.  */
-    unsigned int l_phdr_allocated:1; /* Nonzero if the data structure pointed
-					to by `l_phdr' is allocated.  */
-
-    /* Array with version names.  */
-    unsigned int l_nversions;
-    struct r_found_version *l_versions;
-
-    /* Collected information about own RPATH directories.  */
-    struct r_search_path_elem **l_rpath_dirs;
-
-    /* Collected results of relocation while profiling.  */
-    ElfW(Addr) *l_reloc_result;
-
-    /* Pointer to the version information if available.  */
-    ElfW(Versym) *l_versyms;
-
-    /* String specifying the path where this object was found.  */
-    const char *l_origin;
-
-    /* Start and finish of memory map for this object.  l_map_start
-       need not be the same as l_addr.  */
-    ElfW(Addr) l_map_start, l_map_end;
-
-    /* This is an array defining the lookup scope for this link map.
-     There are at most three different scope lists.  */
-    struct r_scope_elem *l_scope[4];
-
-    /* A similar array, this time only with the local scope.  This is
-       used occasionally.  */
-    struct r_scope_elem *l_local_scope[2];
-
-    /* This information is kept to check for sure whether a shared
-       object is the same as one already loaded.  */
-    dev_t l_dev;
-    ino_t l_ino;
-
-    /* Collected information about own RUNPATH directories.  */
-    struct r_search_path_elem **l_runpath_dirs;
-
-    /* List of object in order of the init and fini calls.  */
-    struct link_map **l_initfini;
-
-    /* List of the dependencies introduced through symbol binding.  */
-    unsigned int l_reldepsmax;
-    unsigned int l_reldepsact;
-    struct link_map **l_reldeps;
   };
 
 #endif /* link.h */