Update.
authorUlrich Drepper <drepper@redhat.com>
Tue, 27 Jul 1999 05:53:25 +0000 (05:53 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 27 Jul 1999 05:53:25 +0000 (05:53 +0000)
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.

ChangeLog
bits/elfclass.h
elf/dl-load.c
elf/dl-lookup.c
elf/do-lookup.h
elf/elf.h
elf/link.h
sysdeps/generic/bits/elfclass.h
sysdeps/unix/sysv/linux/alpha/bits/elfclass.h [new file with mode: 0644]

index a09a398..310d9a7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
index bb4dd54..180227d 100644 (file)
@@ -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;
index e8b42a9..7640ec3 100644 (file)
@@ -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
index 4120cb1..611effe 100644 (file)
@@ -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;
index f83b13c..3c5e6f4 100644 (file)
@@ -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;
index e541be8..e722acb 100644 (file)
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -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.  */
 
index d3a54fc..2de39e5 100644 (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.  */
index bb4dd54..180227d 100644 (file)
@@ -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 (file)
index 0000000..e5aa4a0
--- /dev/null
@@ -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;