about summary refs log tree commit diff
path: root/elf/link.h
diff options
context:
space:
mode:
Diffstat (limited to 'elf/link.h')
-rw-r--r--elf/link.h23
1 files changed, 14 insertions, 9 deletions
diff --git a/elf/link.h b/elf/link.h
index 58041332e9..b0b920074b 100644
--- a/elf/link.h
+++ b/elf/link.h
@@ -25,6 +25,8 @@
 
 #include <elf.h>
 
+__BEGIN_DECLS
+
 /* We use this macro to refer to ELF types independent of the native wordsize.
    `ElfW(TYPE)' is used in place of `Elf32_TYPE' or `Elf64_TYPE'.  */
 #define ElfW(type)	_ElfW (Elf, __ELF_NATIVE_CLASS, type)
@@ -76,11 +78,13 @@ extern ElfW(Dyn) _DYNAMIC[];
 
 /* For the version handling we need an array with only names and their
    hash values.  */
-typedef struct
-{
-  const char *name;
-  ElfW(Word) hash;
-} hash_name_pair;
+struct r_found_version
+  {
+    const char *name;
+    ElfW(Word) hash;
+
+    const char *filename;
+  };
 
 /* Structure describing a loaded shared object.  The `l_next' and `l_prev'
    members form a chain of all the shared objects loaded at startup.
@@ -153,14 +157,14 @@ struct link_map
 
     /* Array with version names.  */
     unsigned int l_nversions;
-    hash_name_pair *l_versions;
+    struct r_found_version *l_versions;
   };
 
 
 /* Test whether given NAME matches any of the names of the given object.  */
 static inline int
 __attribute__ ((unused))
-_dl_does_name_match_p (const char *__name, struct link_map *__map)
+_dl_name_match_p (const char *__name, struct link_map *__map)
 {
   int __found = strcmp (__name, __map->l_name) == 0;
   struct libname_list *__runp = __map->l_libname;
@@ -301,7 +305,7 @@ extern ElfW(Addr) _dl_lookup_versioned_symbol (const char *undef,
 					       const ElfW(Sym) **sym,
 					       struct link_map *symbol_scope[],
 					       const char *reference_name,
-					       const hash_name_pair *version,
+					       const struct r_found_version *version,
 					       int flags);
 
 /* For handling RTLD_NEXT we must be able to skip shared objects.  */
@@ -318,7 +322,7 @@ extern ElfW(Addr) _dl_lookup_versioned_symbol_skip (const char *undef,
 						    const ElfW(Sym) **sym,
 						    struct link_map *symbol_scope[],
 						    const char *reference_name,
-						    const char *version_name,
+						    const struct r_found_version *version,
 						    struct link_map *skip_this,
 						    int flags);
 
@@ -398,5 +402,6 @@ extern void _dl_debug_state (void);
    in the `r_ldbase' member.  Returns the address of the structure.  */
 extern struct r_debug *_dl_debug_initialize (ElfW(Addr) ldbase);
 
+__END_DECLS
 
 #endif /* link.h */