aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPer Bothner <per@bothner.com>1991-09-26 18:26:28 +0000
committerPer Bothner <per@bothner.com>1991-09-26 18:26:28 +0000
commitd0a27c3b8e57cf15bb15292bf9e90efc7be5b710 (patch)
treef0c1c158d4eef9e09c000ff906c9bf24c676e248
parent905bb120d3865b055c08a78774eb96f9ed634b5a (diff)
downloadgdb-d0a27c3b8e57cf15bb15292bf9e90efc7be5b710.zip
gdb-d0a27c3b8e57cf15bb15292bf9e90efc7be5b710.tar.gz
gdb-d0a27c3b8e57cf15bb15292bf9e90efc7be5b710.tar.bz2
Fix bfd_perform_relocation to handle pc-relative relocs better.
-rw-r--r--bfd/ChangeLog43
-rw-r--r--bfd/reloc.c8
2 files changed, 47 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index db1e138..3e3e707 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,46 @@
+Thu Sep 26 11:24:24 1991 Per Bothner (bothner at cygnus.com)
+
+ * reloc.c (bfd_perform_relocation): Fix pc-relative relocation
+ to use correct segment.
+
+Mon Sep 23 18:24:34 1991 Per Bothner (bothner at cygnus.com)
+
+ * aoutx.h (print_symbol): Handle missing symbol->name.
+
+Fri Sep 20 12:26:01 1991 Stu Grossman (grossman at cygnus.com)
+
+ * aoutf1.h (swapcore_sparc): Change name of USRSTACK, fix comment
+ at top of routine.
+
+Tue Sep 17 17:23:49 1991 Stu Grossman (grossman at cygnus.com)
+
+ * oasys.c, configure.in, config/h-irix3, config/t-irix3:
+ add sgi/irix support.
+
+Thu Sep 12 14:29:09 1991 John Gilmore (gnu at cygint.cygnus.com)
+
+ Changes for the AMD 29000 Ultracomputer port from David Wood.
+ (wood@nyu.edu).
+
+ * opncls.c (bfd_fdopenr): Handle NO_FCNTL.
+
+ * Makefile.in: Make subdirs work by using $(INCDIR) in the
+ crude dependencies.
+
+ * coffcode.h (coff_real_object_p): Pass information about the
+ current file's coff symbol format to BFD via the coff_data struct.
+ (coff_find_nearest_line): obj_icof => coff_data.
+ (coff_swap_sym_{in,out}): Check that SYMNMLEN == E_SYMNMLEN.
+ (coff_swap_aux_{in,out}): Check that FILNMLEN == E_FILNMLEN
+ and DIMNUM == E_DIMNUM.
+ * configure.in: Handle a29k-*-* hosts, and targets
+ a29k-*-coff, a29k-*-aout, and a29k-*-sym1.
+ * libcoff-in.h: Add local_n_btmask, local_n_btshft,
+ local_n_tmask, local_n_tshift, local_symesz, local_auxesz,
+ local_linesz to `coff_data' (tdata) struct.
+ (coff_data, coff_data_type, coff_tdata): Rename struct icofdata.
+ * config/h-ultra3: Handle a29k-*-* hosts as Ultracomputers.
+
Thu Sep 12 14:07:22 1991 Roland H. Pesch (pesch at cygint.cygnus.com)
* Makefile.in: $(MAKE) for make, $(docdir) for doc
diff --git a/bfd/reloc.c b/bfd/reloc.c
index 466497e..2d931c9 100644
--- a/bfd/reloc.c
+++ b/bfd/reloc.c
@@ -84,7 +84,7 @@ The symbol to relocate against was undefined.
$ bfd_reloc_undefined,
-The relocaction was performed, but may not be ok - presently generated
+The relocation was performed, but may not be ok - presently generated
only when linking i960 coff files with i960 b.out symbols.
$ bfd_reloc_dangerous
@@ -131,7 +131,7 @@ $} arelent;
@table @code
@item sym_ptr_ptr
The symbol table pointer points to a pointer to the symbol ascociated with the
-relocation request. This would naturaly be the pointer into the table
+relocation request. This would naturally be the pointer into the table
returned by the back end's get_symtab action. @xref{Symbols}. The
symbol is referenced through a pointer to a pointer so that tools like
the linker can fixup all the symbols of the same name by modifying
@@ -148,7 +148,7 @@ two bytes of a four byte word would not touch the first byte pointed
to in a big endian world.
@item addend
The addend is a value provided by the back end to be added (!) to the
-relocation offset. It's interpretation is dependent upon the howto.
+relocation offset. Its interpretation is dependent upon the howto.
For example, on the 68k the code:
*+
@@ -513,7 +513,7 @@ DEFUN(bfd_perform_relocation,(abfd,
relocation -=
- output_base + input_section->output_offset;
+ input_section->output_section->vma + input_section->output_offset;
if (howto->pcrel_offset == true) {
relocation -= reloc_entry->address;