* reloc.c (BFD_RELOC_MIPS_GOT_HI16): Define.
(BFD_RELOC_MIPS_GOT_LO16): Define. * bfd-in2.h, libbfd.h: Rebuild. * elf32-mips.c (mips_reloc_map): Map new relocs.
This commit is contained in:
parent
9cb8a981e9
commit
e9f03cd450
|
@ -11,6 +11,11 @@ Tue Feb 13 15:36:37 1996 Michael Meissner <meissner@tiktok.cygnus.com>
|
|||
|
||||
Tue Feb 13 14:35:15 1996 Ian Lance Taylor <ian@cygnus.com>
|
||||
|
||||
* reloc.c (BFD_RELOC_MIPS_GOT_HI16): Define.
|
||||
(BFD_RELOC_MIPS_GOT_LO16): Define.
|
||||
* bfd-in2.h, libbfd.h: Rebuild.
|
||||
* elf32-mips.c (mips_reloc_map): Map new relocs.
|
||||
|
||||
* configure.host: Set HDLFLAGS for *-*-hpux with --enable-shared.
|
||||
|
||||
* Makefile.in ($(SHLINK)): Check ts against $(SHLIB), not
|
||||
|
|
|
@ -1523,7 +1523,9 @@ relocation types already defined. */
|
|||
BFD_RELOC_SPARC_WDISP16,
|
||||
BFD_RELOC_SPARC_WDISP19,
|
||||
BFD_RELOC_SPARC_GLOB_JMP,
|
||||
BFD_RELOC_SPARC_LO7,
|
||||
BFD_RELOC_SPARC_7,
|
||||
BFD_RELOC_SPARC_6,
|
||||
BFD_RELOC_SPARC_5,
|
||||
|
||||
/* Alpha ECOFF relocations. Some of these treat the symbol or "addend"
|
||||
in some special way.
|
||||
|
@ -1598,6 +1600,8 @@ to compensate for the borrow when the low bits are added. */
|
|||
BFD_RELOC_MIPS_GOT16,
|
||||
BFD_RELOC_MIPS_CALL16,
|
||||
#define BFD_RELOC_MIPS_GPREL32 BFD_RELOC_GPREL32
|
||||
BFD_RELOC_MIPS_GOT_HI16,
|
||||
BFD_RELOC_MIPS_GOT_LO16,
|
||||
|
||||
/* i386/elf relocations */
|
||||
BFD_RELOC_386_GOT32,
|
||||
|
|
|
@ -1250,7 +1250,9 @@ static CONST struct elf_reloc_map mips_reloc_map[] =
|
|||
{ BFD_RELOC_MIPS_GOT16, R_MIPS_GOT16 },
|
||||
{ BFD_RELOC_16_PCREL, R_MIPS_PC16 },
|
||||
{ BFD_RELOC_MIPS_CALL16, R_MIPS_CALL16 },
|
||||
{ BFD_RELOC_MIPS_GPREL32, R_MIPS_GPREL32 }
|
||||
{ BFD_RELOC_MIPS_GPREL32, R_MIPS_GPREL32 },
|
||||
{ BFD_RELOC_MIPS_GOT_HI16, R_MIPS_GOT_HI16 },
|
||||
{ BFD_RELOC_MIPS_GOT_LO16, R_MIPS_GOT_LO16 }
|
||||
};
|
||||
|
||||
/* Given a BFD reloc type, return a howto structure. */
|
||||
|
@ -3956,6 +3958,9 @@ mips_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
local = false;
|
||||
indx = r_symndx - extsymoff;
|
||||
h = elf_sym_hashes (input_bfd)[indx];
|
||||
while (h->root.type == bfd_link_hash_indirect
|
||||
|| h->root.type == bfd_link_hash_warning)
|
||||
h = (struct elf_link_hash_entry *) h->root.u.i.link;
|
||||
if (strcmp (h->root.root.string, "_gp_disp") == 0)
|
||||
{
|
||||
if (elf_gp (output_bfd) == 0)
|
||||
|
@ -4350,6 +4355,7 @@ mips_elf_create_dynamic_sections (abfd, info)
|
|||
get_elf_backend_data (abfd)->collect,
|
||||
(struct bfd_link_hash_entry **) &h)))
|
||||
return false;
|
||||
h->elf_link_hash_flags &=~ ELF_LINK_NON_ELF;
|
||||
h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
|
||||
h->type = STT_SECTION;
|
||||
|
||||
|
@ -4388,6 +4394,7 @@ mips_elf_create_dynamic_sections (abfd, info)
|
|||
get_elf_backend_data (abfd)->collect,
|
||||
(struct bfd_link_hash_entry **) &h)))
|
||||
return false;
|
||||
h->elf_link_hash_flags ^=~ ELF_LINK_NON_ELF;
|
||||
h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
|
||||
h->type = STT_SECTION;
|
||||
|
||||
|
@ -4458,6 +4465,7 @@ mips_elf_create_got_section (abfd, info)
|
|||
get_elf_backend_data (abfd)->collect,
|
||||
(struct bfd_link_hash_entry **) &h)))
|
||||
return false;
|
||||
h->elf_link_hash_flags &=~ ELF_LINK_NON_ELF;
|
||||
h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
|
||||
h->type = STT_OBJECT;
|
||||
|
||||
|
@ -5832,6 +5840,5 @@ static const struct ecoff_debug_swap mips_elf_ecoff_debug_swap =
|
|||
mips_elf_finish_dynamic_symbol
|
||||
#define elf_backend_finish_dynamic_sections \
|
||||
mips_elf_finish_dynamic_sections
|
||||
#define elf_backend_want_hdr_in_seg 1
|
||||
|
||||
#include "elf32-target.h"
|
||||
|
|
27
bfd/libbfd.h
27
bfd/libbfd.h
|
@ -347,6 +347,11 @@ extern long _bfd_generic_read_minisymbols
|
|||
extern asymbol *_bfd_generic_minisymbol_to_symbol
|
||||
PARAMS ((bfd *, boolean, const PTR, asymbol *));
|
||||
|
||||
/* Find the nearest line using .stab/.stabstr sections. */
|
||||
extern boolean _bfd_stab_section_find_nearest_line
|
||||
PARAMS ((bfd *, asymbol **, asection *, bfd_vma, boolean *, const char **,
|
||||
const char **, unsigned int *, PTR *));
|
||||
|
||||
/* A routine to create entries for a bfd_link_hash_table. */
|
||||
extern struct bfd_hash_entry *_bfd_link_hash_newfunc
|
||||
PARAMS ((struct bfd_hash_entry *entry,
|
||||
|
@ -601,7 +606,9 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
|
|||
"BFD_RELOC_SPARC_WDISP16",
|
||||
"BFD_RELOC_SPARC_WDISP19",
|
||||
"BFD_RELOC_SPARC_GLOB_JMP",
|
||||
"BFD_RELOC_SPARC_LO7",
|
||||
"BFD_RELOC_SPARC_7",
|
||||
"BFD_RELOC_SPARC_6",
|
||||
"BFD_RELOC_SPARC_5",
|
||||
"BFD_RELOC_ALPHA_GPDISP_HI16",
|
||||
"BFD_RELOC_ALPHA_GPDISP_LO16",
|
||||
"BFD_RELOC_ALPHA_LITERAL",
|
||||
|
@ -616,6 +623,8 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
|
|||
"BFD_RELOC_MIPS_LITERAL",
|
||||
"BFD_RELOC_MIPS_GOT16",
|
||||
"BFD_RELOC_MIPS_CALL16",
|
||||
"BFD_RELOC_MIPS_GOT_HI16",
|
||||
"BFD_RELOC_MIPS_GOT_LO16",
|
||||
"BFD_RELOC_386_GOT32",
|
||||
"BFD_RELOC_386_PLT32",
|
||||
"BFD_RELOC_386_COPY",
|
||||
|
@ -650,6 +659,22 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
|
|||
"BFD_RELOC_PPC_JMP_SLOT",
|
||||
"BFD_RELOC_PPC_RELATIVE",
|
||||
"BFD_RELOC_PPC_LOCAL24PC",
|
||||
"BFD_RELOC_PPC_EMB_NADDR32",
|
||||
"BFD_RELOC_PPC_EMB_NADDR16",
|
||||
"BFD_RELOC_PPC_EMB_NADDR16_LO",
|
||||
"BFD_RELOC_PPC_EMB_NADDR16_HI",
|
||||
"BFD_RELOC_PPC_EMB_NADDR16_HA",
|
||||
"BFD_RELOC_PPC_EMB_SDAI16",
|
||||
"BFD_RELOC_PPC_EMB_SDA2I16",
|
||||
"BFD_RELOC_PPC_EMB_SDA2REL",
|
||||
"BFD_RELOC_PPC_EMB_SDA21",
|
||||
"BFD_RELOC_PPC_EMB_MRKREF",
|
||||
"BFD_RELOC_PPC_EMB_RELSEC16",
|
||||
"BFD_RELOC_PPC_EMB_RELST_LO",
|
||||
"BFD_RELOC_PPC_EMB_RELST_HI",
|
||||
"BFD_RELOC_PPC_EMB_RELST_HA",
|
||||
"BFD_RELOC_PPC_EMB_BIT_FLD",
|
||||
"BFD_RELOC_PPC_EMB_RELSDA",
|
||||
"BFD_RELOC_CTOR",
|
||||
"BFD_RELOC_ARM_PCREL_BRANCH",
|
||||
"BFD_RELOC_ARM_IMMEDIATE",
|
||||
|
|
218
bfd/reloc.c
218
bfd/reloc.c
|
@ -1,5 +1,5 @@
|
|||
/* BFD support for handling relocation entries.
|
||||
Copyright (C) 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
|
||||
Copyright (C) 1990, 91, 92, 93, 94, 1995 Free Software Foundation, Inc.
|
||||
Written by Cygnus Support.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
@ -16,7 +16,7 @@ GNU General Public License for more details.
|
|||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
/*
|
||||
SECTION
|
||||
|
@ -105,7 +105,7 @@ CODE_FRAGMENT
|
|||
. bfd_vma addend;
|
||||
.
|
||||
. {* Pointer to how to perform the required relocation *}
|
||||
. const struct reloc_howto_struct *howto;
|
||||
. reloc_howto_type *howto;
|
||||
.
|
||||
.} arelent;
|
||||
|
||||
|
@ -286,9 +286,6 @@ SUBSUBSECTION
|
|||
CODE_FRAGMENT
|
||||
.struct symbol_cache_entry; {* Forward declaration *}
|
||||
.
|
||||
.typedef unsigned char bfd_byte;
|
||||
.typedef const struct reloc_howto_struct reloc_howto_type;
|
||||
.
|
||||
.struct reloc_howto_struct
|
||||
.{
|
||||
. {* The type field has mainly a documetary use - the back end can
|
||||
|
@ -719,16 +716,14 @@ space consuming. For each target:
|
|||
machine word.
|
||||
FIXME: We should also do overflow checking on the result after
|
||||
adding in the value contained in the object file. */
|
||||
if (howto->complain_on_overflow != complain_overflow_dont)
|
||||
if (howto->complain_on_overflow != complain_overflow_dont
|
||||
&& flag == bfd_reloc_ok)
|
||||
{
|
||||
bfd_vma check;
|
||||
|
||||
/* Get the value that will be used for the relocation, but
|
||||
starting at bit position zero. */
|
||||
if (howto->rightshift > howto->bitpos)
|
||||
check = relocation >> (howto->rightshift - howto->bitpos);
|
||||
else
|
||||
check = relocation << (howto->bitpos - howto->rightshift);
|
||||
check = relocation >> howto->rightshift;
|
||||
switch (howto->complain_on_overflow)
|
||||
{
|
||||
case complain_overflow_signed:
|
||||
|
@ -739,11 +734,11 @@ space consuming. For each target:
|
|||
|
||||
/* The above right shift is incorrect for a signed value.
|
||||
Fix it up by forcing on the upper bits. */
|
||||
if (howto->rightshift > howto->bitpos
|
||||
if (howto->rightshift > 0
|
||||
&& (bfd_signed_vma) relocation < 0)
|
||||
check |= ((bfd_vma) - 1
|
||||
& ~((bfd_vma) - 1
|
||||
>> (howto->rightshift - howto->bitpos)));
|
||||
>> howto->rightshift));
|
||||
if ((bfd_signed_vma) check > reloc_signed_max
|
||||
|| (bfd_signed_vma) check < reloc_signed_min)
|
||||
flag = bfd_reloc_overflow;
|
||||
|
@ -774,12 +769,12 @@ space consuming. For each target:
|
|||
/* The above right shift is incorrect for a signed
|
||||
value. See if turning on the upper bits fixes the
|
||||
overflow. */
|
||||
if (howto->rightshift > howto->bitpos
|
||||
if (howto->rightshift > 0
|
||||
&& (bfd_signed_vma) relocation < 0)
|
||||
{
|
||||
check |= ((bfd_vma) - 1
|
||||
& ~((bfd_vma) - 1
|
||||
>> (howto->rightshift - howto->bitpos)));
|
||||
>> howto->rightshift));
|
||||
if (((bfd_vma) check & ~reloc_bits) != (-1 & ~reloc_bits))
|
||||
flag = bfd_reloc_overflow;
|
||||
}
|
||||
|
@ -899,6 +894,15 @@ space consuming. For each target:
|
|||
}
|
||||
break;
|
||||
|
||||
case -1:
|
||||
{
|
||||
long x = bfd_get_16 (abfd, (bfd_byte *) data + addr);
|
||||
relocation = -relocation;
|
||||
DOIT (x);
|
||||
bfd_put_16 (abfd, x, (bfd_byte *) data + addr);
|
||||
}
|
||||
break;
|
||||
|
||||
case 3:
|
||||
/* Do nothing */
|
||||
break;
|
||||
|
@ -1176,10 +1180,7 @@ space consuming. For each target:
|
|||
|
||||
/* Get the value that will be used for the relocation, but
|
||||
starting at bit position zero. */
|
||||
if (howto->rightshift > howto->bitpos)
|
||||
check = relocation >> (howto->rightshift - howto->bitpos);
|
||||
else
|
||||
check = relocation << (howto->bitpos - howto->rightshift);
|
||||
check = relocation >> howto->rightshift;
|
||||
switch (howto->complain_on_overflow)
|
||||
{
|
||||
case complain_overflow_signed:
|
||||
|
@ -1190,11 +1191,11 @@ space consuming. For each target:
|
|||
|
||||
/* The above right shift is incorrect for a signed value.
|
||||
Fix it up by forcing on the upper bits. */
|
||||
if (howto->rightshift > howto->bitpos
|
||||
if (howto->rightshift > 0
|
||||
&& (bfd_signed_vma) relocation < 0)
|
||||
check |= ((bfd_vma) - 1
|
||||
& ~((bfd_vma) - 1
|
||||
>> (howto->rightshift - howto->bitpos)));
|
||||
>> howto->rightshift));
|
||||
if ((bfd_signed_vma) check > reloc_signed_max
|
||||
|| (bfd_signed_vma) check < reloc_signed_min)
|
||||
flag = bfd_reloc_overflow;
|
||||
|
@ -1225,12 +1226,12 @@ space consuming. For each target:
|
|||
/* The above right shift is incorrect for a signed
|
||||
value. See if turning on the upper bits fixes the
|
||||
overflow. */
|
||||
if (howto->rightshift > howto->bitpos
|
||||
if (howto->rightshift > 0
|
||||
&& (bfd_signed_vma) relocation < 0)
|
||||
{
|
||||
check |= ((bfd_vma) - 1
|
||||
& ~((bfd_vma) - 1
|
||||
>> (howto->rightshift - howto->bitpos)));
|
||||
>> howto->rightshift));
|
||||
if (((bfd_vma) check & ~reloc_bits) != (-1 & ~reloc_bits))
|
||||
flag = bfd_reloc_overflow;
|
||||
}
|
||||
|
@ -1692,12 +1693,70 @@ the section containing the relocation. It depends on the specific target.
|
|||
|
||||
The 24-bit relocation is used in some Intel 960 configurations.
|
||||
|
||||
ENUM
|
||||
BFD_RELOC_32_GOT_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_16_GOT_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_8_GOT_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_32_GOTOFF
|
||||
ENUMX
|
||||
BFD_RELOC_16_GOTOFF
|
||||
ENUMX
|
||||
BFD_RELOC_LO16_GOTOFF
|
||||
ENUMX
|
||||
BFD_RELOC_HI16_GOTOFF
|
||||
ENUMX
|
||||
BFD_RELOC_HI16_S_GOTOFF
|
||||
ENUMX
|
||||
BFD_RELOC_8_GOTOFF
|
||||
ENUMX
|
||||
BFD_RELOC_32_PLT_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_24_PLT_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_16_PLT_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_8_PLT_PCREL
|
||||
ENUMX
|
||||
BFD_RELOC_32_PLTOFF
|
||||
ENUMX
|
||||
BFD_RELOC_16_PLTOFF
|
||||
ENUMX
|
||||
BFD_RELOC_LO16_PLTOFF
|
||||
ENUMX
|
||||
BFD_RELOC_HI16_PLTOFF
|
||||
ENUMX
|
||||
BFD_RELOC_HI16_S_PLTOFF
|
||||
ENUMX
|
||||
BFD_RELOC_8_PLTOFF
|
||||
ENUMDOC
|
||||
For ELF.
|
||||
|
||||
ENUM
|
||||
BFD_RELOC_68K_GLOB_DAT
|
||||
ENUMX
|
||||
BFD_RELOC_68K_JMP_SLOT
|
||||
ENUMX
|
||||
BFD_RELOC_68K_RELATIVE
|
||||
ENUMDOC
|
||||
Relocations used by 68K ELF.
|
||||
|
||||
ENUM
|
||||
BFD_RELOC_32_BASEREL
|
||||
ENUMX
|
||||
BFD_RELOC_16_BASEREL
|
||||
ENUMX
|
||||
BFD_RELOC_LO16_BASEREL
|
||||
ENUMX
|
||||
BFD_RELOC_HI16_BASEREL
|
||||
ENUMX
|
||||
BFD_RELOC_HI16_S_BASEREL
|
||||
ENUMX
|
||||
BFD_RELOC_8_BASEREL
|
||||
ENUMX
|
||||
BFD_RELOC_RVA
|
||||
ENUMDOC
|
||||
Linkage-table relative.
|
||||
|
||||
|
@ -1813,7 +1872,11 @@ ENUMX
|
|||
ENUMX
|
||||
BFD_RELOC_SPARC_GLOB_JMP
|
||||
ENUMX
|
||||
BFD_RELOC_SPARC_LO7
|
||||
BFD_RELOC_SPARC_7
|
||||
ENUMX
|
||||
BFD_RELOC_SPARC_6
|
||||
ENUMX
|
||||
BFD_RELOC_SPARC_5
|
||||
ENUMDOC
|
||||
Some relocations we're using for SPARC V9 -- subject to change.
|
||||
|
||||
|
@ -1914,6 +1977,10 @@ ENUMX
|
|||
ENUMEQX
|
||||
BFD_RELOC_MIPS_GPREL32
|
||||
BFD_RELOC_GPREL32
|
||||
ENUMX
|
||||
BFD_RELOC_MIPS_GOT_HI16
|
||||
ENUMX
|
||||
BFD_RELOC_MIPS_GOT_LO16
|
||||
ENUMDOC
|
||||
MIPS ELF relocations.
|
||||
|
||||
|
@ -1965,18 +2032,66 @@ ENUMDOC
|
|||
|
||||
ENUM
|
||||
BFD_RELOC_PPC_B26
|
||||
ENUMDOC
|
||||
PowerPC/POWER (RS/6000) relocs.
|
||||
26 bit relative branch. Low two bits must be zero. High 24
|
||||
bits installed in bits 6 through 29 of instruction.
|
||||
ENUM
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_BA26
|
||||
ENUMDOC
|
||||
26 bit absolute branch, like BFD_RELOC_PPC_B26 but absolute.
|
||||
ENUM
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_TOC16
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_B16
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_B16_BRTAKEN
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_B16_BRNTAKEN
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_BA16
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_BA16_BRTAKEN
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_BA16_BRNTAKEN
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_COPY
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_GLOB_DAT
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_JMP_SLOT
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_RELATIVE
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_LOCAL24PC
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_EMB_NADDR32
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_EMB_NADDR16
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_EMB_NADDR16_LO
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_EMB_NADDR16_HI
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_EMB_NADDR16_HA
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_EMB_SDAI16
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_EMB_SDA2I16
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_EMB_SDA2REL
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_EMB_SDA21
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_EMB_MRKREF
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_EMB_RELSEC16
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_EMB_RELST_LO
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_EMB_RELST_HI
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_EMB_RELST_HA
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_EMB_BIT_FLD
|
||||
ENUMX
|
||||
BFD_RELOC_PPC_EMB_RELSDA
|
||||
ENUMDOC
|
||||
16 bit TOC relative reference.
|
||||
Power(rs6000) and PowerPC relocations.
|
||||
|
||||
ENUM
|
||||
BFD_RELOC_CTOR
|
||||
|
@ -2002,6 +2117,14 @@ ENUMX
|
|||
BFD_RELOC_ARM_MULTI
|
||||
ENUMX
|
||||
BFD_RELOC_ARM_CP_OFF_IMM
|
||||
ENUMX
|
||||
BFD_RELOC_ARM_ADR_IMM
|
||||
ENUMX
|
||||
BFD_RELOC_ARM_LDR_IMM
|
||||
ENUMX
|
||||
BFD_RELOC_ARM_LITERAL
|
||||
ENUMX
|
||||
BFD_RELOC_ARM_IN_POOL
|
||||
ENUMDOC
|
||||
These relocs are only used within the ARM assembler. They are not
|
||||
(at present) written to any object files.
|
||||
|
@ -2013,14 +2136,18 @@ ENUM
|
|||
ENUMDOC
|
||||
Argonaut RISC Core (ARC) relocs.
|
||||
ARC 22 bit pc-relative branch. The lowest two bits must be zero and are
|
||||
not stored in the instruction. High 20 bits installed in bits 7 through 26
|
||||
of instruction.
|
||||
not stored in the instruction. The high 20 bits are installed in bits 26
|
||||
through 7 of the instruction.
|
||||
ENUM
|
||||
BFD_RELOC_ARC_B26
|
||||
ENUMDOC
|
||||
ARC 26 bit absolute branch. The lowest two bits must be zero and are not
|
||||
stored in the instruction. The high 24 bits are installed in bits 23
|
||||
through 0.
|
||||
COMMENT
|
||||
{* end-sanitize-arc *}
|
||||
|
||||
ENDSENUM
|
||||
BFD_RELOC_UNUSED
|
||||
|
||||
CODE_FRAGMENT
|
||||
.
|
||||
.typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
|
||||
|
@ -2032,7 +2159,7 @@ FUNCTION
|
|||
bfd_reloc_type_lookup
|
||||
|
||||
SYNOPSIS
|
||||
const struct reloc_howto_struct *
|
||||
reloc_howto_type *
|
||||
bfd_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code);
|
||||
|
||||
DESCRIPTION
|
||||
|
@ -2043,7 +2170,7 @@ DESCRIPTION
|
|||
*/
|
||||
|
||||
|
||||
const struct reloc_howto_struct *
|
||||
reloc_howto_type *
|
||||
bfd_reloc_type_lookup (abfd, code)
|
||||
bfd *abfd;
|
||||
bfd_reloc_code_real_type code;
|
||||
|
@ -2060,7 +2187,7 @@ INTERNAL_FUNCTION
|
|||
bfd_default_reloc_type_lookup
|
||||
|
||||
SYNOPSIS
|
||||
const struct reloc_howto_struct *bfd_default_reloc_type_lookup
|
||||
reloc_howto_type *bfd_default_reloc_type_lookup
|
||||
(bfd *abfd, bfd_reloc_code_real_type code);
|
||||
|
||||
DESCRIPTION
|
||||
|
@ -2069,7 +2196,7 @@ DESCRIPTION
|
|||
|
||||
*/
|
||||
|
||||
const struct reloc_howto_struct *
|
||||
reloc_howto_type *
|
||||
bfd_default_reloc_type_lookup (abfd, code)
|
||||
bfd *abfd;
|
||||
bfd_reloc_code_real_type code;
|
||||
|
@ -2093,7 +2220,7 @@ bfd_default_reloc_type_lookup (abfd, code)
|
|||
default:
|
||||
BFD_FAIL ();
|
||||
}
|
||||
return (const struct reloc_howto_struct *) NULL;
|
||||
return (reloc_howto_type *) NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -2185,12 +2312,9 @@ bfd_generic_get_relocated_section_contents (abfd, link_info, link_order, data,
|
|||
if (reloc_size < 0)
|
||||
goto error_return;
|
||||
|
||||
reloc_vector = (arelent **) malloc (reloc_size);
|
||||
reloc_vector = (arelent **) bfd_malloc ((size_t) reloc_size);
|
||||
if (reloc_vector == NULL && reloc_size != 0)
|
||||
{
|
||||
bfd_set_error (bfd_error_no_memory);
|
||||
goto error_return;
|
||||
}
|
||||
goto error_return;
|
||||
|
||||
/* read in the section */
|
||||
if (!bfd_get_section_contents (input_bfd,
|
||||
|
|
Loading…
Reference in New Issue