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)
|
Thu Sep 12 14:07:22 1991 Roland H. Pesch (pesch at cygint.cygnus.com)
|
||||||
|
|
||||||
* Makefile.in: $(MAKE) for make, $(docdir) for doc
|
* Makefile.in: $(MAKE) for make, $(docdir) for doc
|
||||||
|
|
|
@ -84,7 +84,7 @@ The symbol to relocate against was undefined.
|
||||||
|
|
||||||
$ bfd_reloc_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.
|
only when linking i960 coff files with i960 b.out symbols.
|
||||||
|
|
||||||
$ bfd_reloc_dangerous
|
$ bfd_reloc_dangerous
|
||||||
|
@ -131,7 +131,7 @@ $} arelent;
|
||||||
@table @code
|
@table @code
|
||||||
@item sym_ptr_ptr
|
@item sym_ptr_ptr
|
||||||
The symbol table pointer points to a pointer to the symbol ascociated with the
|
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
|
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
|
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
|
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.
|
to in a big endian world.
|
||||||
@item addend
|
@item addend
|
||||||
The addend is a value provided by the back end to be added (!) to the
|
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:
|
For example, on the 68k the code:
|
||||||
|
|
||||||
*+
|
*+
|
||||||
|
@ -513,7 +513,7 @@ DEFUN(bfd_perform_relocation,(abfd,
|
||||||
|
|
||||||
|
|
||||||
relocation -=
|
relocation -=
|
||||||
output_base + input_section->output_offset;
|
input_section->output_section->vma + input_section->output_offset;
|
||||||
|
|
||||||
if (howto->pcrel_offset == true) {
|
if (howto->pcrel_offset == true) {
|
||||||
relocation -= reloc_entry->address;
|
relocation -= reloc_entry->address;
|
||||||
|
|
Loading…
Reference in New Issue