diff options
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | bits/elfclass.h | 3 | ||||
-rw-r--r-- | elf/dl-load.c | 2 | ||||
-rw-r--r-- | elf/dl-lookup.c | 4 | ||||
-rw-r--r-- | elf/do-lookup.h | 2 | ||||
-rw-r--r-- | elf/elf.h | 4 | ||||
-rw-r--r-- | elf/link.h | 4 | ||||
-rw-r--r-- | sysdeps/generic/bits/elfclass.h | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/alpha/bits/elfclass.h | 14 |
9 files changed, 37 insertions, 10 deletions
@@ -1,3 +1,14 @@ +1999-07-25 Jakub Jelinek <jj@ultra.linux.cz> + + * elf/link.h (struct link_map): Use Elf_Symndx instead of ElfXX_Symndx. + * elf/dl-lookup.c (_dl_setup_hash): Likewise. + * elf/dl-load.c (_dl_map_object): Likewise. + * elf/do-lookup.h (do_lookup*): Likewise. + * sysdeps/generic/bits/elfclass.h: Define Elf_Symndx as uint32_t. + * sysdeps/unix/sysv/linux/alpha/bits/elfclass.h: Define Elf_symndx + as uint64_t. + * elf/elf.h: Remove Elf32_Symndx and Elf64_Symndx. + 1999-07-26 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/sysv4/setsid.c: Correct types. diff --git a/bits/elfclass.h b/bits/elfclass.h index bb4dd54..180227d 100644 --- a/bits/elfclass.h +++ b/bits/elfclass.h @@ -9,3 +9,6 @@ #include <bits/wordsize.h> #define __ELF_NATIVE_CLASS __WORDSIZE + +/* The entries in the .hash table always have a size of 32 bits. */ +typedef uint32_t Elf_Symndx; diff --git a/elf/dl-load.c b/elf/dl-load.c index e8b42a9..7640ec3 100644 --- a/elf/dl-load.c +++ b/elf/dl-load.c @@ -1416,7 +1416,7 @@ _dl_map_object (struct link_map *loader, const char *name, int preloaded, are only interested in the list of libraries this isn't so severe. Fake an entry with all the information we have. */ - static const ElfW(Symndx) dummy_bucket = STN_UNDEF; + static const Elf_Symndx dummy_bucket = STN_UNDEF; /* Enter the new object in the list of loaded objects. */ if ((name_copy = local_strdup (name)) == NULL diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c index 4120cb1..611effe 100644 --- a/elf/dl-lookup.c +++ b/elf/dl-lookup.c @@ -320,8 +320,8 @@ void internal_function _dl_setup_hash (struct link_map *map) { - ElfW(Symndx) *hash; - ElfW(Symndx) nchain; + Elf_Symndx *hash; + Elf_Symndx nchain; if (!map->l_info[DT_HASH]) return; diff --git a/elf/do-lookup.h b/elf/do-lookup.h index f83b13c..3c5e6f4 100644 --- a/elf/do-lookup.h +++ b/elf/do-lookup.h @@ -43,7 +43,7 @@ FCT (const char *undef_name, struct link_map *undef_map, const ElfW(Sym) *symtab; const char *strtab; const ElfW(Half) *verstab; - ElfW(Symndx) symidx; + Elf_Symndx symidx; const ElfW(Sym) *sym; #if ! VERSIONED int num_versions = 0; @@ -56,10 +56,6 @@ typedef uint64_t Elf64_Off; typedef uint16_t Elf32_Section; typedef uint16_t Elf64_Section; -/* Type of symbol indices. */ -typedef uint32_t Elf32_Symndx; -typedef uint64_t Elf64_Symndx; - /* The ELF file header. This appears at the start of every ELF file. */ @@ -151,8 +151,8 @@ struct link_map struct link_map *l_loader; /* Symbol hash table. */ - ElfW(Symndx) l_nbuckets; - const ElfW(Symndx) *l_buckets, *l_chain; + 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. */ diff --git a/sysdeps/generic/bits/elfclass.h b/sysdeps/generic/bits/elfclass.h index bb4dd54..180227d 100644 --- a/sysdeps/generic/bits/elfclass.h +++ b/sysdeps/generic/bits/elfclass.h @@ -9,3 +9,6 @@ #include <bits/wordsize.h> #define __ELF_NATIVE_CLASS __WORDSIZE + +/* The entries in the .hash table always have a size of 32 bits. */ +typedef uint32_t Elf_Symndx; diff --git a/sysdeps/unix/sysv/linux/alpha/bits/elfclass.h b/sysdeps/unix/sysv/linux/alpha/bits/elfclass.h new file mode 100644 index 0000000..e5aa4a0 --- /dev/null +++ b/sysdeps/unix/sysv/linux/alpha/bits/elfclass.h @@ -0,0 +1,14 @@ +/* This file specifies the native word size of the machine, which indicates + the ELF file class used for executables and shared objects on this + machine. */ + +#ifndef _LINK_H +# error "Never use <bits/elfclass.h> directly; include <link.h> instead." +#endif + +#include <bits/wordsize.h> + +#define __ELF_NATIVE_CLASS __WORDSIZE + +/* Linux/Alpha is exceptional as it has .hash section with 64 bit entries. */ +typedef uint64_t Elf_Symndx; |