summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJake Burkholder <jake@FreeBSD.org>2001-07-31 03:46:39 +0000
committerJake Burkholder <jake@FreeBSD.org>2001-07-31 03:46:39 +0000
commit7e5102989ed96d7cb3b11b8b7fb67ae4e813ed3c (patch)
treebb7222b6df769fb8c1baffd9425be229c7589573
parentbaa444b77eda20bf4ceeb65a5107e037eb34c904 (diff)
Notes
-rw-r--r--sys/alpha/include/elf.h11
-rw-r--r--sys/amd64/include/elf.h11
-rw-r--r--sys/i386/include/elf.h11
-rw-r--r--sys/ia64/include/elf.h11
-rw-r--r--sys/kern/link_elf.c10
-rw-r--r--sys/kern/link_elf_obj.c10
-rw-r--r--sys/powerpc/include/elf.h11
7 files changed, 65 insertions, 10 deletions
diff --git a/sys/alpha/include/elf.h b/sys/alpha/include/elf.h
index aacfb3db54b2..e57e3cb4f268 100644
--- a/sys/alpha/include/elf.h
+++ b/sys/alpha/include/elf.h
@@ -60,6 +60,17 @@ typedef struct { /* Auxiliary vector entry on initial stack */
__ElfType(Auxinfo);
+/*
+ * Types of dynamic symbol hash table bucket and chain elements.
+ *
+ * This is inconsistent among 64 bit architectures, so a machine dependent
+ * typedef is required.
+ */
+
+typedef Elf64_Off Elf64_Hashelt;
+
+__ElfType(Hashelt);
+
/* Values for a_type. */
#define AT_NULL 0 /* Terminates the vector. */
#define AT_IGNORE 1 /* Ignored entry. */
diff --git a/sys/amd64/include/elf.h b/sys/amd64/include/elf.h
index 314dd9ce0699..eb411d85fc00 100644
--- a/sys/amd64/include/elf.h
+++ b/sys/amd64/include/elf.h
@@ -60,6 +60,17 @@ typedef struct { /* Auxiliary vector entry on initial stack */
__ElfType(Auxinfo);
+/*
+ * Types of dynamic symbol hash table bucket and chain elements.
+ *
+ * This is inconsistent among 64 bit architectures, so a machine dependent
+ * typedef is required.
+ */
+
+typedef Elf32_Off Elf32_Hashelt;
+
+__ElfType(Hashelt);
+
/* Values for a_type. */
#define AT_NULL 0 /* Terminates the vector. */
#define AT_IGNORE 1 /* Ignored entry. */
diff --git a/sys/i386/include/elf.h b/sys/i386/include/elf.h
index 314dd9ce0699..eb411d85fc00 100644
--- a/sys/i386/include/elf.h
+++ b/sys/i386/include/elf.h
@@ -60,6 +60,17 @@ typedef struct { /* Auxiliary vector entry on initial stack */
__ElfType(Auxinfo);
+/*
+ * Types of dynamic symbol hash table bucket and chain elements.
+ *
+ * This is inconsistent among 64 bit architectures, so a machine dependent
+ * typedef is required.
+ */
+
+typedef Elf32_Off Elf32_Hashelt;
+
+__ElfType(Hashelt);
+
/* Values for a_type. */
#define AT_NULL 0 /* Terminates the vector. */
#define AT_IGNORE 1 /* Ignored entry. */
diff --git a/sys/ia64/include/elf.h b/sys/ia64/include/elf.h
index db8bbcddcb00..a35b156c6e00 100644
--- a/sys/ia64/include/elf.h
+++ b/sys/ia64/include/elf.h
@@ -60,6 +60,17 @@ typedef struct { /* Auxiliary vector entry on initial stack */
__ElfType(Auxinfo);
+/*
+ * Types of dynamic symbol hash table bucket and chain elements.
+ *
+ * This is inconsistent among 64 bit architectures, so a machine dependent
+ * typedef is required.
+ */
+
+typedef Elf64_Off Elf64_Hashelt;
+
+__ElfType(Hashelt);
+
/* Values for a_type. */
#define AT_NULL 0 /* Terminates the vector. */
#define AT_IGNORE 1 /* Ignored entry. */
diff --git a/sys/kern/link_elf.c b/sys/kern/link_elf.c
index 439b9deca9a7..faaf160ee77a 100644
--- a/sys/kern/link_elf.c
+++ b/sys/kern/link_elf.c
@@ -67,10 +67,10 @@ typedef struct elf_file {
vm_object_t object; /* VM object to hold file pages */
#endif
Elf_Dyn* dynamic; /* Symbol table etc. */
- Elf_Off nbuckets; /* DT_HASH info */
- Elf_Off nchains;
- const Elf_Off* buckets;
- const Elf_Off* chains;
+ Elf_Hashelt nbuckets; /* DT_HASH info */
+ Elf_Hashelt nchains;
+ const Elf_Hashelt* buckets;
+ const Elf_Hashelt* chains;
caddr_t hash;
caddr_t strtab; /* DT_STRTAB */
int strsz; /* DT_STRSZ */
@@ -299,7 +299,7 @@ parse_dynamic(elf_file_t ef)
case DT_HASH:
{
/* From src/libexec/rtld-elf/rtld.c */
- const Elf_Off *hashtab = (const Elf_Off *)
+ const Elf_Hashelt *hashtab = (const Elf_Hashelt *)
(ef->address + dp->d_un.d_ptr);
ef->nbuckets = hashtab[0];
ef->nchains = hashtab[1];
diff --git a/sys/kern/link_elf_obj.c b/sys/kern/link_elf_obj.c
index 439b9deca9a7..faaf160ee77a 100644
--- a/sys/kern/link_elf_obj.c
+++ b/sys/kern/link_elf_obj.c
@@ -67,10 +67,10 @@ typedef struct elf_file {
vm_object_t object; /* VM object to hold file pages */
#endif
Elf_Dyn* dynamic; /* Symbol table etc. */
- Elf_Off nbuckets; /* DT_HASH info */
- Elf_Off nchains;
- const Elf_Off* buckets;
- const Elf_Off* chains;
+ Elf_Hashelt nbuckets; /* DT_HASH info */
+ Elf_Hashelt nchains;
+ const Elf_Hashelt* buckets;
+ const Elf_Hashelt* chains;
caddr_t hash;
caddr_t strtab; /* DT_STRTAB */
int strsz; /* DT_STRSZ */
@@ -299,7 +299,7 @@ parse_dynamic(elf_file_t ef)
case DT_HASH:
{
/* From src/libexec/rtld-elf/rtld.c */
- const Elf_Off *hashtab = (const Elf_Off *)
+ const Elf_Hashelt *hashtab = (const Elf_Hashelt *)
(ef->address + dp->d_un.d_ptr);
ef->nbuckets = hashtab[0];
ef->nchains = hashtab[1];
diff --git a/sys/powerpc/include/elf.h b/sys/powerpc/include/elf.h
index c10dfb46a6ea..81c748caf6b9 100644
--- a/sys/powerpc/include/elf.h
+++ b/sys/powerpc/include/elf.h
@@ -63,6 +63,17 @@ typedef struct { /* Auxiliary vector entry on initial stack */
__ElfType(Auxinfo);
+/*
+ * Types of dynamic symbol hash table bucket and chain elements.
+ *
+ * This is inconsistent among 64 bit architectures, so a machine dependent
+ * typedef is required.
+ */
+
+typedef Elf32_Off Elf32_Hashelt;
+
+__ElfType(Hashelt);
+
/* Values for a_type. */
#define AT_NULL 0 /* Terminates the vector. */
#define AT_IGNORE 1 /* Ignored entry. */