Fix bfd_perform_relocation to handle pc-relative relocs better.
This commit is contained in:
parent
905bb120d3
commit
d0a27c3b8e
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue