Fix bfd_perform_relocation to handle pc-relative relocs better.

This commit is contained in:
Per Bothner 1991-09-26 18:26:28 +00:00
parent 905bb120d3
commit d0a27c3b8e
2 changed files with 47 additions and 4 deletions

View File

@ -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

View File

@ -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;