summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2001-05-30 18:48:54 +0000
committerAndreas Jaeger <aj@suse.de>2001-05-30 18:48:54 +0000
commitaa4bc56285d6b8b7e6e918328a260bc97867ef99 (patch)
treed0b16d18974e07e86ac36a6b86cf9e76d05f343c
parent7bacaa80451c87af22f7b8a4a24faf95afc3cdb0 (diff)
downloadgdb-aa4bc56285d6b8b7e6e918328a260bc97867ef99.tar.gz
* elf64-x86-64.c (elf64_x86_64_check_relocs): Handle R_X86_64_64.
(elf64_x86_64_relocate_section): Likewise. * elf64-x86-64.c (elf64_86_64_size_info): Remove, we can use the generic version since we want a hashsize of 4. (elf_backend_size_info): Likewise.
-rw-r--r--bfd/ChangeLog11
-rw-r--r--bfd/elf64-x86-64.c38
2 files changed, 13 insertions, 36 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index a17863fcf76..9e24605d03b 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,14 @@
+2001-05-29 Andreas Jaeger <aj@suse.de>
+
+ * elf64-x86-64.c (elf64_x86_64_check_relocs): Handle R_X86_64_64.
+ (elf64_x86_64_relocate_section): Likewise.
+
+2001-05-28 Andreas Jaeger <aj@suse.de>
+
+ * elf64-x86-64.c (elf64_86_64_size_info): Remove, we can use the
+ generic version since we want a hashsize of 4.
+ (elf_backend_size_info): Likewise.
+
2001-05-28 Nicolas Pitre <nico@cam.org>
* elf32-arm.h: Fix PLT generation for big endian ARM.
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index 05ec57a59a5..59700906e24 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -469,6 +469,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs)
h->plt.refcount += 1;
break;
+ case R_X86_64_64:
case R_X86_64_32:
case R_X86_64_32S:
case R_X86_64_PC32:
@@ -1379,6 +1380,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
case R_X86_64_8:
case R_X86_64_16:
case R_X86_64_32:
+ case R_X86_64_64:
case R_X86_64_PC8:
case R_X86_64_PC16:
case R_X86_64_PC32:
@@ -1850,40 +1852,6 @@ elf64_x86_64_finish_dynamic_sections (output_bfd, info)
return true;
}
-/*
- * Why was the hash table entry size definition changed from
- * ARCH_SIZE/8 to 4? This breaks the 64 bit dynamic linker and
- * this is the only reason for the elf64_x86_64_size_info structure.
- */
-
-const struct elf_size_info elf64_86_64_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, /* hash-table entry size */
- 1, /* internal relocations per external relocations */
- 64, /* arch_size */
- 8, /* file_align */
- 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_x86_64_vec
#define TARGET_LITTLE_NAME "elf64-x86-64"
@@ -1891,8 +1859,6 @@ const struct elf_size_info elf64_86_64_size_info =
#define ELF_MACHINE_CODE EM_X86_64
#define ELF_MAXPAGESIZE 0x100000
-#define elf_backend_size_info elf64_86_64_size_info
-
#define elf_backend_can_gc_sections 1
#define elf_backend_want_got_plt 1
#define elf_backend_plt_readonly 1