aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Wilson <wilson@tuliptree.org>2000-07-04 02:18:06 +0000
committerJim Wilson <wilson@tuliptree.org>2000-07-04 02:18:06 +0000
commit70bcb1452f241edac96dc697f430b5fa3cb9a5dd (patch)
tree4d7a2e1ab32d6665925912207ea9eb05b05153bb
parentb8ee63fa4009b17a7b786f77fecd19bb91ad84b1 (diff)
downloadgdb-70bcb1452f241edac96dc697f430b5fa3cb9a5dd.zip
gdb-70bcb1452f241edac96dc697f430b5fa3cb9a5dd.tar.gz
gdb-70bcb1452f241edac96dc697f430b5fa3cb9a5dd.tar.bz2
Fix hash section entry size to match ELF standard. Override for alpha-linux.
* elf64-alpha.c (alpha_elf_size_info): New. (elf_backend_size_info): Define to alpha_elf_size_info. * elfcode.h (elf_size_info): Change hash bucket size to 4.
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/elf64-alpha.c33
-rw-r--r--bfd/elfcode.h2
3 files changed, 40 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 99626ff..e44ee9b 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2000-07-03 Jim Wilson <wilson@cygnus.com>
+
+ * elf64-alpha.c (alpha_elf_size_info): New.
+ (elf_backend_size_info): Define to alpha_elf_size_info.
+ * elfcode.h (elf_size_info): Change hash bucket size to 4.
+
2000-07-03 Ulf Carlsson <ulfc@engr.sgi.com>
* elf32-mips.c: Include elf32-target.h again for the traditional
diff --git a/bfd/elf64-alpha.c b/bfd/elf64-alpha.c
index 4c083fa..84f3075 100644
--- a/bfd/elf64-alpha.c
+++ b/bfd/elf64-alpha.c
@@ -4643,6 +4643,36 @@ elf64_alpha_ecoff_debug_swap =
elf64_alpha_read_ecoff_info
};
+/* Use a non-standard hash bucket size of 8. */
+
+const struct elf_size_info alpha_elf_size_info =
+{
+ sizeof (Elf64_External_Ehdr),
+ sizeof (Elf64_External_Phdr),
+ sizeof (Elf64_External_Shdr),
+ sizeof (Elf64_External_Rel),
+ sizeof (Elf64_External_Rela),
+ sizeof (Elf64_External_Sym),
+ sizeof (Elf64_External_Dyn),
+ sizeof (Elf_External_Note),
+ 8,
+ 1,
+ 64, 8,
+ ELFCLASS64, EV_CURRENT,
+ bfd_elf64_write_out_phdrs,
+ bfd_elf64_write_shdrs_and_ehdr,
+ bfd_elf64_write_relocs,
+ bfd_elf64_swap_symbol_out,
+ bfd_elf64_slurp_reloc_table,
+ bfd_elf64_slurp_symbol_table,
+ bfd_elf64_swap_dyn_in,
+ bfd_elf64_swap_dyn_out,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+};
+
#define TARGET_LITTLE_SYM bfd_elf64_alpha_vec
#define TARGET_LITTLE_NAME "elf64-alpha"
#define ELF_ARCH bfd_arch_alpha
@@ -4698,6 +4728,9 @@ elf64_alpha_ecoff_debug_swap =
#define elf_backend_ecoff_debug_swap \
&elf64_alpha_ecoff_debug_swap
+#define elf_backend_size_info \
+ alpha_elf_size_info
+
/*
* A few constants that determine how the .plt section is set up.
*/
diff --git a/bfd/elfcode.h b/bfd/elfcode.h
index cd8e9a6..f1b825d 100644
--- a/bfd/elfcode.h
+++ b/bfd/elfcode.h
@@ -1525,7 +1525,7 @@ const struct elf_size_info NAME(_bfd_elf,size_info) = {
sizeof (Elf_External_Sym),
sizeof (Elf_External_Dyn),
sizeof (Elf_External_Note),
- ARCH_SIZE / 8,
+ 4,
1,
ARCH_SIZE, FILE_ALIGN,
ELFCLASS, EV_CURRENT,