aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCatherine Moore <clm@redhat.com>1999-05-25 11:56:16 +0000
committerCatherine Moore <clm@redhat.com>1999-05-25 11:56:16 +0000
commitfa0e42e45712133c4c2d95261c3c0ac8d87b6765 (patch)
tree58902935dc46ec4daf8a6e326d88c8a0da2cfd05
parent93dfcdf0615003799ac0a3d90c3fbb6443d9d615 (diff)
downloadfsf-binutils-gdb-fa0e42e45712133c4c2d95261c3c0ac8d87b6765.zip
fsf-binutils-gdb-fa0e42e45712133c4c2d95261c3c0ac8d87b6765.tar.gz
fsf-binutils-gdb-fa0e42e45712133c4c2d95261c3c0ac8d87b6765.tar.bz2
* coff-arm.c (coff_arm_relocate_section): Don't emit
base file entries for pc-relative values.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/coff-arm.c17
2 files changed, 10 insertions, 12 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 9dcc885..48cea47 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+1999-05-25 Catherine Moore <clm@cygnus.com>
+
+ * coff-arm.c (coff_arm_relocate_section): Don't emit
+ base file entries for pc-relative values.
+
1999-05-25 DJ Delorie <dj@cygnus.com>
* peicode.h (coff_swap_sym_in): When we create the actual section
diff --git a/bfd/coff-arm.c b/bfd/coff-arm.c
index 594e757..52baa85 100644
--- a/bfd/coff-arm.c
+++ b/bfd/coff-arm.c
@@ -1,5 +1,5 @@
/* BFD back-end for ARM COFF files.
- Copyright 1990, 91, 92, 93, 94, 95, 96, 97, 1998
+ Copyright 1990, 91, 92, 93, 94, 95, 96, 97, 98, 1999
Free Software Foundation, Inc.
Written by Cygnus Support.
@@ -934,8 +934,6 @@ static const insn32 a2t1_ldr_insn = 0xe59fc000;
static const insn32 a2t2_bx_r12_insn = 0xe12fff1c;
static const insn32 a2t3_func_addr_insn = 0x00000001;
-#define A2T3_OFFSET 8
-
/*
Thumb->ARM: Thumb->(non-interworking aware) ARM
@@ -959,8 +957,6 @@ static const insn16 t2a1_bx_pc_insn = 0x4778;
static const insn16 t2a2_noop_insn = 0x46c0;
static const insn32 t2a3_b_insn = 0xea000000;
-#define T2A3_OFFSET 8
-
static const insn16 t2a1_push_insn = 0xb540;
static const insn16 t2a2_ldr_insn = 0x4e03;
static const insn16 t2a3_mov_insn = 0x46fe;
@@ -1212,7 +1208,7 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
if (info->base_file)
arm_emit_base_file_entry (info, output_bfd, s,
- my_offset + A2T3_OFFSET);
+ my_offset + 8);
}
@@ -1319,6 +1315,9 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
/* Store the address of the function in the last word of the stub. */
bfd_put_32 (output_bfd, h_val,
s->contents + my_offset + 16);
+
+ if (info->base_file)
+ arm_emit_base_file_entry (info, output_bfd, s, my_offset + 16);
}
else
{
@@ -1341,9 +1340,6 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
t2a3_b_insn | ((ret_offset >> 2) & 0x00FFFFFF),
s->contents + my_offset + 4);
- if (info->base_file)
- arm_emit_base_file_entry (info, output_bfd, s,
- my_offset + T2A3_OFFSET);
}
}
@@ -1366,9 +1362,6 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
contents + rel->r_vaddr
- input_section->vma);
- if (info->base_file)
- arm_emit_base_file_entry (info, output_bfd, input_section, rel->r_vaddr);
-
done = 1;
}
}