[ bfd/ChangeLog ]

2004-04-23  Chris Demetriou  <cgd@broadcom.com>

        * coff-mips.c (mips_relhi_reloc, mips_rello_reloc)
        (mips_switch_reloc, mips_read_relocs, mips_relax_section)
        (mips_relax_pcrel16, PCREL16_EXPANSION_ADJUSTMENT): Remove.
        (mips_relocate_hi): Remove now-unused 'adjust' and 'pcrel' arguments,
        and update comments to reflect current usage.
        (mips_howto_table): Remove entries for MIPS_R_RELHI, MIPS_R_RELLO,
        and MIPS_R_SWITCH, as well as several empty entries.  Update comment
        for MIPS_R_PCREL16.
        (mips_ecoff_swap_reloc_in, mips_ecoff_swap_reloc_out)
        (mips_adjust_reloc_out, mips_bfd_reloc_type_lookup): Remove support
        for MIPS_R_SWITCH, MIPS_R_RELLO, and MIPS_R_RELHI relocations.
        (mips_adjust_reloc_in): Likewise, adjust maximum accepted relocation
        type number to be MIPS_R_PCREL16.
        (mips_relocate_section): Remove support for link-time relaxation
        of branches used by embedded-PIC.  Remove support for MIPS_R_SWITCH,
        MIPS_R_RELLO, and MIPS_R_RELHI relocations.
        (_bfd_ecoff_bfd_relax_section): Redefine to bfd_generic_relax_section.
        * ecoff.c (ecoff_indirect_link_order): Remove support for link-time
        relaxation of branches used by embedded-PIC.
        * ecofflink.c (bfd_ecoff_debug_accumulate): Likewise.
        * libecoff.h (struct ecoff_section_tdata): Remove embedded-PIC
        related members, update comment.
        * pe-mips.c: Remove disabled (commented-out and #if 0'd)
        code related to embedded-PIC.
        * elfxx-mips.c (_bfd_mips_elf_read_ecoff_info): Remove
        initialization of now-removed 'adjust' member of
        'struct ecoff_debug_info'.

[ include/coff/ChangeLog ]
2004-04-23  Chris Demetriou  <cgd@broadcom.com>

        * mips.h (MIPS_R_RELHI, MIPS_R_RELLO, MIPS_R_SWITCH): Remove
        (MIPS_R_PCREL16): Update comment.
        * ecoff.h (struct ecoff_value_adjust): Remove structure.
        (struct ecoff_debug_info): Remove 'adjust' member.
This commit is contained in:
Chris Demetriou 2004-04-24 06:12:25 +00:00
parent f777e3a5ac
commit b9717c7294
3 changed files with 10 additions and 55 deletions

View File

@ -1,3 +1,10 @@
2004-04-23 Chris Demetriou <cgd@broadcom.com>
* mips.h (MIPS_R_RELHI, MIPS_R_RELLO, MIPS_R_SWITCH): Remove
(MIPS_R_PCREL16): Update comment.
* ecoff.h (struct ecoff_value_adjust): Remove structure.
(struct ecoff_debug_info): Remove 'adjust' member.
2004-04-20 DJ Delorie <dj@redhat.com>
* internal.h (R_SECREL32): Add.

View File

@ -322,34 +322,6 @@ struct ecoff_debug_info
this changes in the future. This is a pointer to an array, not a
single structure. */
FDR *fdr;
/* When relaxing MIPS embedded PIC code, we may need to adjust
symbol values when they are output. This is a linked list of
structures indicating how values should be adjusted. There is no
requirement that the entries be in any order, or that they not
overlap. This field is normally NULL, in which case no
adjustments need to be made. */
struct ecoff_value_adjust *adjust;
};
/* This structure describes how to adjust symbol values when
outputting MIPS embedded PIC code. These adjustments only apply to
the internal symbols, as the external symbol values will come from
the hash table and have already been adjusted. */
struct ecoff_value_adjust
{
/* Next entry on adjustment list. */
struct ecoff_value_adjust *next;
/* Starting VMA of adjustment. This is the VMA in the ECOFF file,
not the offset from the start of the section. Thus it should
indicate a particular section. */
bfd_vma start;
/* Ending VMA of adjustment. */
bfd_vma end;
/* Adjustment. This should be added to the value of the symbol, or
FDR. This is zero for the last entry in the array. */
long adjust;
};
/* These structures are used by the ECOFF find_nearest_line function. */

View File

@ -105,34 +105,10 @@ struct external_reloc
#define MIPS_R_GPREL 6
#define MIPS_R_LITERAL 7
/* These reloc types are a Cygnus extension used when generating
position independent code for embedded systems. The numbers are
taken from Irix 4, but at least for internal relocs Irix 5 does not
give them the same meaning. For an internal reloc the symbol index
of RELHI and RELLO is modified as described below for
MIPS_R_SWITCH. */
/* FIXME: This relocation is used (internally only) to represent branches
when assembling. It should never appear in output files, and
be removed. (It used to be used for embedded-PIC support.) */
#define MIPS_R_PCREL16 12
#define MIPS_R_RELHI 13
#define MIPS_R_RELLO 14
/* This reloc type is a Cygnus extension used when generating position
independent code for embedded systems. It is used for an entry in
a switch table, which looks like this:
.word $L3-$LS12
The object file will contain the correct difference, and does not
require adjustment. However, when the linker is relaxing PC
relative calls, it is possible for $L3 to move farther away. This
reloc always appears in the .text section, and is always against
the .text section. However, the symbol index is not
RELOC_SECTION_TEXT. It is, instead, the distance between this
switch table entry and $LS12. Thus, the original value of $L12 is
vaddr - symndx
and the original value of $L3 is
vaddr - symndx + addend
where addend is the value in the object file. Knowing this, the
linker can know whether the addend in the object file must be
adjusted. */
#define MIPS_R_SWITCH 22
/********************** STABS **********************/