summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorthorpej <thorpej@NetBSD.org>2001-12-14 01:12:24 +0000
committerthorpej <thorpej@NetBSD.org>2001-12-14 01:12:24 +0000
commit5ddefb1229ff110ee751a85d52f38a84cab0babc (patch)
tree195283fa87d876ecb247cda5ce61ea0140490fcf /gnu
parent6e94624a627c388f3ecf306f99a064e7b3d685cc (diff)
Garbage-collect the code that created old-format PLT entires.
The NetBSD/alpha ld.elf_so understands both formats, now.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/dist/bfd/elf64-alpha.c21
1 files changed, 0 insertions, 21 deletions
diff --git a/gnu/dist/bfd/elf64-alpha.c b/gnu/dist/bfd/elf64-alpha.c
index bbfb102feea..be2a76618d6 100644
--- a/gnu/dist/bfd/elf64-alpha.c
+++ b/gnu/dist/bfd/elf64-alpha.c
@@ -1012,16 +1012,9 @@ elf64_alpha_info_to_howto (abfd, cache_ptr, dst)
#define PLT_HEADER_WORD4 0x6b7b0000 /* jmp $27,($27) */
#define PLT_ENTRY_SIZE 12
-#ifdef __NetBSD__
-/* XXX. XXX. For NetBSD 1.3 compatibility - should be fixed better */
-#define PLT_ENTRY_WORD1 0x279f0000 /* ldah $28, 0($31) */
-#define PLT_ENTRY_WORD2 0x239c0000 /* lda $28, 0($28) */
-#define PLT_ENTRY_WORD3 0xc3e00000 /* br $31, plt0 */
-#else
#define PLT_ENTRY_WORD1 0xc3800000 /* br $28, plt0 */
#define PLT_ENTRY_WORD2 0
#define PLT_ENTRY_WORD3 0
-#endif
#define MAX_GOT_ENTRIES (64*1024 / 8)
@@ -3117,23 +3110,9 @@ elf64_alpha_finish_dynamic_symbol (output_bfd, info, h, sym)
{
unsigned insn1, insn2, insn3;
-#ifdef __NetBSD__
-/* XXX. XXX. For NetBSD 1.3 compatibility - should be fixed better */
- long hi, lo;
-
- /* decompose the reloc offset for the plt for ldah+lda */
- hi = plt_index * sizeof(Elf64_External_Rela);
- lo = ((hi & 0xffff) ^ 0x8000) - 0x8000;
- hi = (hi - lo) >> 16;
-
- insn1 = PLT_ENTRY_WORD1 | (hi & 0xffff);
- insn2 = PLT_ENTRY_WORD2 | (lo & 0xffff);
- insn3 = PLT_ENTRY_WORD3 | ((-(h->plt_offset + 12) >> 2) & 0x1fffff);
-#else
insn1 = PLT_ENTRY_WORD1 | ((-(h->plt_offset + 4) >> 2) & 0x1fffff);
insn2 = PLT_ENTRY_WORD2;
insn3 = PLT_ENTRY_WORD3;
-#endif
bfd_put_32 (output_bfd, insn1, splt->contents + h->plt_offset);
bfd_put_32 (output_bfd, insn2, splt->contents + h->plt_offset + 4);