mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-09-10 12:22:20 +08:00
* elf32-ppc.c (ppc_elf_install_value): Tidy.
(ppc_elf_relax_section): Remove dead code. Remove unnecessary casts. Formatting. * elfxx-target.h: Remove PARAMS macro. Formatting.
This commit is contained in:
@ -1,3 +1,10 @@
|
|||||||
|
2003-07-30 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* elf32-ppc.c (ppc_elf_install_value): Tidy.
|
||||||
|
(ppc_elf_relax_section): Remove dead code. Remove unnecessary casts.
|
||||||
|
Formatting.
|
||||||
|
* elfxx-target.h: Remove PARAMS macro. Formatting.
|
||||||
|
|
||||||
2003-07-30 Alan Modra <amodra@bigpond.net.au>
|
2003-07-30 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
* elf.c (bfd_section_from_r_symndx): Test for SHN_UNDEF.
|
* elf.c (bfd_section_from_r_symndx): Test for SHN_UNDEF.
|
||||||
|
249
bfd/elf32-ppc.c
249
bfd/elf32-ppc.c
@ -1615,7 +1615,10 @@ ppc_elf_howto_init (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bfd_reloc_status_type
|
static bfd_reloc_status_type
|
||||||
ppc_elf_install_value (bfd *abfd, bfd_byte *hit_addr, bfd_vma v, unsigned int r_type)
|
ppc_elf_install_value (bfd *abfd,
|
||||||
|
bfd_byte *hit_addr,
|
||||||
|
bfd_vma v,
|
||||||
|
unsigned int r_type)
|
||||||
{
|
{
|
||||||
bfd_vma t0, t1;
|
bfd_vma t0, t1;
|
||||||
#ifdef BFD_HOST_U_64_BIT
|
#ifdef BFD_HOST_U_64_BIT
|
||||||
@ -1633,13 +1636,12 @@ ppc_elf_install_value (bfd *abfd, bfd_byte *hit_addr, bfd_vma v, unsigned int r_
|
|||||||
|
|
||||||
/* We're clearing the bits for R_PPC_ADDR16_HA
|
/* We're clearing the bits for R_PPC_ADDR16_HA
|
||||||
and R_PPC_ADDR16_LO here. */
|
and R_PPC_ADDR16_LO here. */
|
||||||
t0 &= ~(0xffff);
|
t0 &= ~0xffff;
|
||||||
t1 &= ~(0xffff);
|
t1 &= ~0xffff;
|
||||||
|
|
||||||
/* t0 is HA, t1 is lo */
|
/* t0 is HA, t1 is lo */
|
||||||
t0 |= ((val + 0x8000) >> 16) & 0xffff;
|
t0 |= ((val + 0x8000) >> 16) & 0xffff;
|
||||||
/* t0 |= (((val >> 16) + ((val & 0x8000) ? 1 : 0)) & 0xffff); */
|
t1 |= val & 0xffff;
|
||||||
t1 |= (val & 0xffff);
|
|
||||||
|
|
||||||
bfd_put_32 (abfd, t0, hit_addr);
|
bfd_put_32 (abfd, t0, hit_addr);
|
||||||
bfd_put_32 (abfd, t1, hit_addr + 4);
|
bfd_put_32 (abfd, t1, hit_addr + 4);
|
||||||
@ -1647,8 +1649,8 @@ ppc_elf_install_value (bfd *abfd, bfd_byte *hit_addr, bfd_vma v, unsigned int r_
|
|||||||
|
|
||||||
case R_PPC_REL24:
|
case R_PPC_REL24:
|
||||||
t0 = bfd_get_32 (abfd, hit_addr);
|
t0 = bfd_get_32 (abfd, hit_addr);
|
||||||
t0 &= ~(0x3fffffc);
|
t0 &= ~0x3fffffc;
|
||||||
t0 |= (val & 0x3fffffc);
|
t0 |= val & 0x3fffffc;
|
||||||
bfd_put_32 (abfd, t0, hit_addr);
|
bfd_put_32 (abfd, t0, hit_addr);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1656,16 +1658,16 @@ ppc_elf_install_value (bfd *abfd, bfd_byte *hit_addr, bfd_vma v, unsigned int r_
|
|||||||
case R_PPC_REL14_BRTAKEN:
|
case R_PPC_REL14_BRTAKEN:
|
||||||
case R_PPC_REL14_BRNTAKEN:
|
case R_PPC_REL14_BRNTAKEN:
|
||||||
t0 = bfd_get_32 (abfd, hit_addr);
|
t0 = bfd_get_32 (abfd, hit_addr);
|
||||||
t0 &= ~(0xfffc);
|
t0 &= ~0xfffc;
|
||||||
t0 |= (val & 0xfffc);
|
t0 |= val & 0xfffc;
|
||||||
bfd_put_32 (abfd, t0, hit_addr);
|
bfd_put_32 (abfd, t0, hit_addr);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case R_PPC_LOCAL24PC:
|
case R_PPC_LOCAL24PC:
|
||||||
case R_PPC_PLTREL24:
|
case R_PPC_PLTREL24:
|
||||||
t0 = bfd_get_32 (abfd, hit_addr);
|
t0 = bfd_get_32 (abfd, hit_addr);
|
||||||
t0 &= ~(0x3fffffc);
|
t0 &= ~0x3fffffc;
|
||||||
t0 |= (val & 0x3fffffc);
|
t0 |= val & 0x3fffffc;
|
||||||
bfd_put_32 (abfd, t0, hit_addr);
|
bfd_put_32 (abfd, t0, hit_addr);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1716,24 +1718,20 @@ ppc_elf_relax_section (bfd *abfd,
|
|||||||
Elf_Internal_Shdr *symtab_hdr;
|
Elf_Internal_Shdr *symtab_hdr;
|
||||||
bfd_byte *contents = NULL;
|
bfd_byte *contents = NULL;
|
||||||
Elf_Internal_Sym *isymbuf = NULL;
|
Elf_Internal_Sym *isymbuf = NULL;
|
||||||
bfd_byte *free_contents = NULL;
|
|
||||||
Elf_Internal_Rela *internal_relocs = NULL;
|
Elf_Internal_Rela *internal_relocs = NULL;
|
||||||
Elf_Internal_Rela *irel, *irelend;
|
Elf_Internal_Rela *irel, *irelend;
|
||||||
Elf_Internal_Rela *free_relocs = NULL;
|
|
||||||
struct one_fixup *fixups = NULL;
|
struct one_fixup *fixups = NULL;
|
||||||
bfd_boolean changed_contents = FALSE;
|
bfd_boolean changed_contents = FALSE;
|
||||||
bfd_boolean changed_relocs = FALSE;
|
bfd_boolean changed_relocs = FALSE;
|
||||||
struct ppc_elf_link_hash_table *ppc_info;
|
struct ppc_elf_link_hash_table *ppc_info;
|
||||||
|
|
||||||
/* We never have to do this more than once per input section. */
|
|
||||||
*again = FALSE;
|
*again = FALSE;
|
||||||
|
|
||||||
/* Nothing to do if there are no relocations or there is no need for
|
/* Nothing to do if there are no relocations and no need for
|
||||||
the relax finalize pass. */
|
the relax finalize pass. */
|
||||||
if ((isec->flags & SEC_RELOC) == 0
|
if ((isec->flags & SEC_RELOC) == 0
|
||||||
|| isec->reloc_count == 0
|
|| isec->reloc_count == 0
|
||||||
|| (link_info->relax_finalizing
|
|| link_info->relax_finalizing)
|
||||||
&& isec->need_finalize_relax == 0))
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
/* If needed, initialize this section's cooked size. */
|
/* If needed, initialize this section's cooked size. */
|
||||||
@ -1743,44 +1741,38 @@ ppc_elf_relax_section (bfd *abfd,
|
|||||||
symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
|
symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
|
||||||
|
|
||||||
/* Get a copy of the native relocations. */
|
/* Get a copy of the native relocations. */
|
||||||
internal_relocs
|
internal_relocs = _bfd_elf_link_read_relocs (abfd, isec, NULL, NULL,
|
||||||
= _bfd_elf_link_read_relocs (abfd, isec, (PTR) NULL,
|
link_info->keep_memory);
|
||||||
(Elf_Internal_Rela *) NULL,
|
|
||||||
link_info->keep_memory);
|
|
||||||
if (internal_relocs == NULL)
|
if (internal_relocs == NULL)
|
||||||
goto error_return;
|
goto error_return;
|
||||||
if (! link_info->keep_memory)
|
|
||||||
free_relocs = internal_relocs;
|
|
||||||
|
|
||||||
ppc_info = ppc_elf_hash_table (link_info);
|
ppc_info = ppc_elf_hash_table (link_info);
|
||||||
irelend = internal_relocs + isec->reloc_count;
|
irelend = internal_relocs + isec->reloc_count;
|
||||||
|
|
||||||
/* Get the section contents. */
|
/* Get the section contents. */
|
||||||
/* Get cached copy if it exists. */
|
/* Get cached copy if it exists. */
|
||||||
if (elf_section_data (isec)->this_hdr.contents != NULL)
|
if (elf_section_data (isec)->this_hdr.contents != NULL)
|
||||||
contents = elf_section_data (isec)->this_hdr.contents;
|
contents = elf_section_data (isec)->this_hdr.contents;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Go get them off disk. */
|
/* Go get them off disk. */
|
||||||
contents = bfd_malloc (isec->_raw_size);
|
contents = bfd_malloc (isec->_raw_size);
|
||||||
if (contents == NULL)
|
if (contents == NULL)
|
||||||
goto error_return;
|
goto error_return;
|
||||||
free_contents = contents;
|
|
||||||
|
|
||||||
if (! bfd_get_section_contents (abfd, isec, contents,
|
if (!bfd_get_section_contents (abfd, isec, contents, 0, isec->_raw_size))
|
||||||
(file_ptr) 0, isec->_raw_size))
|
goto error_return;
|
||||||
goto error_return;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
for (irel = internal_relocs; irel < irelend; irel++)
|
for (irel = internal_relocs; irel < irelend; irel++)
|
||||||
{
|
{
|
||||||
unsigned long r_type = ELF32_R_TYPE (irel->r_info);
|
unsigned long r_type = ELF32_R_TYPE (irel->r_info);
|
||||||
bfd_boolean is_branch;
|
|
||||||
bfd_vma symaddr, reladdr, trampoff, toff, roff;
|
bfd_vma symaddr, reladdr, trampoff, toff, roff;
|
||||||
asection *tsec;
|
asection *tsec;
|
||||||
bfd_size_type amt;
|
bfd_size_type amt;
|
||||||
struct one_fixup *f;
|
struct one_fixup *f;
|
||||||
size_t insn_offset = 0;
|
size_t insn_offset = 0;
|
||||||
|
bfd_vma max_branch_offset;
|
||||||
|
|
||||||
switch (r_type)
|
switch (r_type)
|
||||||
{
|
{
|
||||||
@ -1790,9 +1782,6 @@ ppc_elf_relax_section (bfd *abfd,
|
|||||||
case R_PPC_REL14_BRTAKEN:
|
case R_PPC_REL14_BRTAKEN:
|
||||||
case R_PPC_REL14_BRNTAKEN:
|
case R_PPC_REL14_BRNTAKEN:
|
||||||
case R_PPC_PLTREL24:
|
case R_PPC_PLTREL24:
|
||||||
if (link_info->relax_finalizing)
|
|
||||||
continue;
|
|
||||||
is_branch = TRUE;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -1823,7 +1812,7 @@ ppc_elf_relax_section (bfd *abfd,
|
|||||||
tsec = bfd_abs_section_ptr;
|
tsec = bfd_abs_section_ptr;
|
||||||
else if (isym->st_shndx == SHN_COMMON)
|
else if (isym->st_shndx == SHN_COMMON)
|
||||||
tsec = bfd_com_section_ptr;
|
tsec = bfd_com_section_ptr;
|
||||||
else
|
else
|
||||||
tsec = bfd_section_from_elf_index (abfd, isym->st_shndx);
|
tsec = bfd_section_from_elf_index (abfd, isym->st_shndx);
|
||||||
|
|
||||||
toff = isym->st_value;
|
toff = isym->st_value;
|
||||||
@ -1846,7 +1835,7 @@ ppc_elf_relax_section (bfd *abfd,
|
|||||||
Elf_Internal_Sym *isym;
|
Elf_Internal_Sym *isym;
|
||||||
|
|
||||||
if (h->plt.offset == (bfd_vma) -1
|
if (h->plt.offset == (bfd_vma) -1
|
||||||
|| ppc_info->plt == NULL)
|
|| ppc_info->plt == NULL)
|
||||||
{
|
{
|
||||||
|
|
||||||
/* Read this BFD's local symbols. */
|
/* Read this BFD's local symbols. */
|
||||||
@ -1863,7 +1852,8 @@ ppc_elf_relax_section (bfd *abfd,
|
|||||||
isym = isymbuf + ELF32_R_SYM (irel->r_info);
|
isym = isymbuf + ELF32_R_SYM (irel->r_info);
|
||||||
|
|
||||||
if (isym->st_shndx == SHN_UNDEF)
|
if (isym->st_shndx == SHN_UNDEF)
|
||||||
continue; /* We can't do anthing with undefined symbols. */
|
/* We can't do anthing with undefined symbols. */
|
||||||
|
continue;
|
||||||
else if (isym->st_shndx == SHN_ABS)
|
else if (isym->st_shndx == SHN_ABS)
|
||||||
tsec = bfd_abs_section_ptr;
|
tsec = bfd_abs_section_ptr;
|
||||||
else if (isym->st_shndx == SHN_COMMON)
|
else if (isym->st_shndx == SHN_COMMON)
|
||||||
@ -1893,8 +1883,7 @@ ppc_elf_relax_section (bfd *abfd,
|
|||||||
if (tsec->sec_info_type == ELF_INFO_TYPE_MERGE)
|
if (tsec->sec_info_type == ELF_INFO_TYPE_MERGE)
|
||||||
toff = _bfd_merged_section_offset (abfd, &tsec,
|
toff = _bfd_merged_section_offset (abfd, &tsec,
|
||||||
elf_section_data (tsec)->sec_info,
|
elf_section_data (tsec)->sec_info,
|
||||||
toff + irel->r_addend,
|
toff + irel->r_addend, 0);
|
||||||
(bfd_vma) 0);
|
|
||||||
else
|
else
|
||||||
toff += irel->r_addend;
|
toff += irel->r_addend;
|
||||||
|
|
||||||
@ -1902,104 +1891,93 @@ ppc_elf_relax_section (bfd *abfd,
|
|||||||
|
|
||||||
roff = irel->r_offset;
|
roff = irel->r_offset;
|
||||||
|
|
||||||
if (is_branch)
|
reladdr = (isec->output_section->vma
|
||||||
|
+ isec->output_offset
|
||||||
|
+ roff) & (bfd_vma) -4;
|
||||||
|
|
||||||
|
/* If the branch is in range, no need to do anything. */
|
||||||
|
max_branch_offset = 1 << 25;
|
||||||
|
if (r_type != R_PPC_REL24
|
||||||
|
&& r_type != R_PPC_LOCAL24PC
|
||||||
|
&& r_type != R_PPC_PLTREL24)
|
||||||
|
max_branch_offset = 1 << 15;
|
||||||
|
|
||||||
|
if ((bfd_vma) (symaddr - reladdr) + max_branch_offset
|
||||||
|
<= 2 * max_branch_offset)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
/* If the branch and target are in the same section, you have
|
||||||
|
no hope. We'll error out later. */
|
||||||
|
if (tsec == isec)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
/* Look for an existing fixup to this address. */
|
||||||
|
for (f = fixups; f ; f = f->next)
|
||||||
|
if (f->tsec == tsec && f->toff == toff)
|
||||||
|
break;
|
||||||
|
|
||||||
|
if (f == NULL)
|
||||||
{
|
{
|
||||||
bfd_vma max_branch_offset;
|
size_t size;
|
||||||
|
|
||||||
reladdr = (isec->output_section->vma
|
if (link_info->shared
|
||||||
+ isec->output_offset
|
|| tsec == ppc_info->plt
|
||||||
+ roff) & (bfd_vma) -4;
|
|| r_type == R_PPC_LOCAL24PC)
|
||||||
|
|
||||||
/* If the branch is in range, no need to do anything. */
|
|
||||||
max_branch_offset = 1 << 25;
|
|
||||||
if (r_type != R_PPC_REL24
|
|
||||||
&& r_type != R_PPC_LOCAL24PC
|
|
||||||
&& r_type != R_PPC_PLTREL24)
|
|
||||||
max_branch_offset = 1 << 15;
|
|
||||||
|
|
||||||
if ((bfd_vma) (symaddr - reladdr) + max_branch_offset <= 2 * max_branch_offset)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
/* If the branch and target are in the same section, you have
|
|
||||||
no hope. We'll error out later. */
|
|
||||||
if (tsec == isec)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
/* Look for an existing fixup to this address. */
|
|
||||||
for (f = fixups; f ; f = f->next)
|
|
||||||
if (f->tsec == tsec && f->toff == toff)
|
|
||||||
break;
|
|
||||||
|
|
||||||
if (f == NULL)
|
|
||||||
{
|
{
|
||||||
size_t size;
|
size = sizeof (shared_stub_entry);
|
||||||
|
insn_offset = 16;
|
||||||
if (link_info->shared
|
|
||||||
|| tsec == ppc_info->plt
|
|
||||||
|| r_type == R_PPC_LOCAL24PC)
|
|
||||||
{
|
|
||||||
size = sizeof (shared_stub_entry);
|
|
||||||
insn_offset = 16;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
size = sizeof (stub_entry);
|
|
||||||
insn_offset = 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Resize the current section to make room for the new branch. */
|
|
||||||
trampoff = (isec->_cooked_size + 3) & (bfd_vma) - 4;
|
|
||||||
amt = trampoff + size;
|
|
||||||
contents = (bfd_byte *) bfd_realloc (contents, amt);
|
|
||||||
if (contents == NULL)
|
|
||||||
abort ();
|
|
||||||
|
|
||||||
isec->_cooked_size = amt;
|
|
||||||
|
|
||||||
if (link_info->shared
|
|
||||||
|| tsec == ppc_info->plt
|
|
||||||
|| r_type == R_PPC_LOCAL24PC)
|
|
||||||
{
|
|
||||||
memcpy (contents + trampoff, shared_stub_entry, size);
|
|
||||||
/* Hijack the old relocation. Since we need two
|
|
||||||
relocations for this use a "composite" reloc. */
|
|
||||||
irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
|
|
||||||
R_PPC_RELAX32);
|
|
||||||
irel->r_offset = trampoff + insn_offset;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
memcpy (contents + trampoff, stub_entry, size);
|
|
||||||
irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
|
|
||||||
R_PPC_RELAX32);
|
|
||||||
irel->r_offset = trampoff + insn_offset;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Record the fixup so we don't do it again this section. */
|
|
||||||
f = (struct one_fixup *)
|
|
||||||
bfd_malloc ((bfd_size_type) sizeof (*f));
|
|
||||||
f->next = fixups;
|
|
||||||
f->tsec = tsec;
|
|
||||||
f->toff = toff;
|
|
||||||
f->trampoff = trampoff;
|
|
||||||
fixups = f;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Nop out the reloc, since we're finalizing things here. */
|
size = sizeof (stub_entry);
|
||||||
irel->r_info = ELF32_R_INFO (0, R_PPC_NONE);
|
insn_offset = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Fix up the existing branch to hit the trampoline. Hope like
|
/* Resize the current section to make room for the new branch. */
|
||||||
hell this doesn't overflow too. */
|
trampoff = (isec->_cooked_size + 3) & (bfd_vma) - 4;
|
||||||
if (ppc_elf_install_value (abfd, contents + roff,
|
amt = trampoff + size;
|
||||||
f->trampoff - (roff & (bfd_vma) -3) + 4,
|
contents = bfd_realloc (contents, amt);
|
||||||
r_type) != bfd_reloc_ok)
|
if (contents == NULL)
|
||||||
abort ();
|
abort ();
|
||||||
|
|
||||||
changed_contents = TRUE;
|
isec->_cooked_size = amt;
|
||||||
changed_relocs = TRUE;
|
|
||||||
|
if (link_info->shared
|
||||||
|
|| tsec == ppc_info->plt
|
||||||
|
|| r_type == R_PPC_LOCAL24PC)
|
||||||
|
memcpy (contents + trampoff, shared_stub_entry, size);
|
||||||
|
else
|
||||||
|
memcpy (contents + trampoff, stub_entry, size);
|
||||||
|
|
||||||
|
/* Hijack the old relocation. Since we need two
|
||||||
|
relocations for this use a "composite" reloc. */
|
||||||
|
irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
|
||||||
|
R_PPC_RELAX32);
|
||||||
|
irel->r_offset = trampoff + insn_offset;
|
||||||
|
|
||||||
|
/* Record the fixup so we don't do it again this section. */
|
||||||
|
f = bfd_malloc (sizeof (*f));
|
||||||
|
f->next = fixups;
|
||||||
|
f->tsec = tsec;
|
||||||
|
f->toff = toff;
|
||||||
|
f->trampoff = trampoff;
|
||||||
|
fixups = f;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Nop out the reloc, since we're finalizing things here. */
|
||||||
|
irel->r_info = ELF32_R_INFO (0, R_PPC_NONE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Fix up the existing branch to hit the trampoline. Hope like
|
||||||
|
hell this doesn't overflow too. */
|
||||||
|
if (ppc_elf_install_value (abfd, contents + roff,
|
||||||
|
f->trampoff - (roff & (bfd_vma) -3) + 4,
|
||||||
|
r_type) != bfd_reloc_ok)
|
||||||
|
abort ();
|
||||||
|
|
||||||
|
changed_contents = TRUE;
|
||||||
|
changed_relocs = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Clean up. */
|
/* Clean up. */
|
||||||
@ -2041,9 +2019,6 @@ ppc_elf_relax_section (bfd *abfd,
|
|||||||
elf_section_data (isec)->relocs = internal_relocs;
|
elf_section_data (isec)->relocs = internal_relocs;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (link_info->relax_finalizing)
|
|
||||||
isec->need_finalize_relax = 0;
|
|
||||||
|
|
||||||
*again = changed_contents || changed_relocs;
|
*again = changed_contents || changed_relocs;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
|
@ -32,7 +32,8 @@
|
|||||||
#define bfd_elfNN_get_section_contents _bfd_generic_get_section_contents
|
#define bfd_elfNN_get_section_contents _bfd_generic_get_section_contents
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define bfd_elfNN_canonicalize_dynamic_symtab _bfd_elf_canonicalize_dynamic_symtab
|
#define bfd_elfNN_canonicalize_dynamic_symtab \
|
||||||
|
_bfd_elf_canonicalize_dynamic_symtab
|
||||||
#ifndef bfd_elfNN_canonicalize_reloc
|
#ifndef bfd_elfNN_canonicalize_reloc
|
||||||
#define bfd_elfNN_canonicalize_reloc _bfd_elf_canonicalize_reloc
|
#define bfd_elfNN_canonicalize_reloc _bfd_elf_canonicalize_reloc
|
||||||
#endif
|
#endif
|
||||||
@ -41,7 +42,8 @@
|
|||||||
#endif
|
#endif
|
||||||
#define bfd_elfNN_read_minisymbols _bfd_elf_read_minisymbols
|
#define bfd_elfNN_read_minisymbols _bfd_elf_read_minisymbols
|
||||||
#define bfd_elfNN_minisymbol_to_symbol _bfd_elf_minisymbol_to_symbol
|
#define bfd_elfNN_minisymbol_to_symbol _bfd_elf_minisymbol_to_symbol
|
||||||
#define bfd_elfNN_get_dynamic_symtab_upper_bound _bfd_elf_get_dynamic_symtab_upper_bound
|
#define bfd_elfNN_get_dynamic_symtab_upper_bound \
|
||||||
|
_bfd_elf_get_dynamic_symtab_upper_bound
|
||||||
#define bfd_elfNN_get_lineno _bfd_elf_get_lineno
|
#define bfd_elfNN_get_lineno _bfd_elf_get_lineno
|
||||||
#ifndef bfd_elfNN_get_reloc_upper_bound
|
#ifndef bfd_elfNN_get_reloc_upper_bound
|
||||||
#define bfd_elfNN_get_reloc_upper_bound _bfd_elf_get_reloc_upper_bound
|
#define bfd_elfNN_get_reloc_upper_bound _bfd_elf_get_reloc_upper_bound
|
||||||
@ -51,9 +53,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#define bfd_elfNN_get_symtab _bfd_elf_get_symtab
|
#define bfd_elfNN_get_symtab _bfd_elf_get_symtab
|
||||||
#define bfd_elfNN_get_symtab_upper_bound _bfd_elf_get_symtab_upper_bound
|
#define bfd_elfNN_get_symtab_upper_bound _bfd_elf_get_symtab_upper_bound
|
||||||
#if 0 /* done in elf-bfd.h */
|
|
||||||
#define bfd_elfNN_link_record_dynamic_symbol _bfd_elf_link_record_dynamic_symbol
|
|
||||||
#endif
|
|
||||||
#define bfd_elfNN_make_empty_symbol _bfd_elf_make_empty_symbol
|
#define bfd_elfNN_make_empty_symbol _bfd_elf_make_empty_symbol
|
||||||
#ifndef bfd_elfNN_new_section_hook
|
#ifndef bfd_elfNN_new_section_hook
|
||||||
#define bfd_elfNN_new_section_hook _bfd_elf_new_section_hook
|
#define bfd_elfNN_new_section_hook _bfd_elf_new_section_hook
|
||||||
@ -100,11 +99,11 @@
|
|||||||
#define bfd_elfNN_bfd_debug_info_start bfd_void
|
#define bfd_elfNN_bfd_debug_info_start bfd_void
|
||||||
#define bfd_elfNN_bfd_debug_info_end bfd_void
|
#define bfd_elfNN_bfd_debug_info_end bfd_void
|
||||||
#define bfd_elfNN_bfd_debug_info_accumulate \
|
#define bfd_elfNN_bfd_debug_info_accumulate \
|
||||||
(void (*) PARAMS ((bfd*, struct sec *))) bfd_void
|
((void (*) (bfd*, struct sec *)) bfd_void)
|
||||||
|
|
||||||
#ifndef bfd_elfNN_bfd_get_relocated_section_contents
|
#ifndef bfd_elfNN_bfd_get_relocated_section_contents
|
||||||
#define bfd_elfNN_bfd_get_relocated_section_contents \
|
#define bfd_elfNN_bfd_get_relocated_section_contents \
|
||||||
bfd_generic_get_relocated_section_contents
|
bfd_generic_get_relocated_section_contents
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef bfd_elfNN_bfd_relax_section
|
#ifndef bfd_elfNN_bfd_relax_section
|
||||||
@ -141,7 +140,7 @@
|
|||||||
|
|
||||||
#ifndef bfd_elfNN_bfd_make_debug_symbol
|
#ifndef bfd_elfNN_bfd_make_debug_symbol
|
||||||
#define bfd_elfNN_bfd_make_debug_symbol \
|
#define bfd_elfNN_bfd_make_debug_symbol \
|
||||||
((asymbol *(*) PARAMS ((bfd *, void *, unsigned long))) bfd_nullvoidptr)
|
((asymbol * (*) (bfd *, void *, unsigned long)) bfd_nullvoidptr)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef bfd_elfNN_bfd_copy_private_symbol_data
|
#ifndef bfd_elfNN_bfd_copy_private_symbol_data
|
||||||
@ -163,11 +162,11 @@
|
|||||||
#endif
|
#endif
|
||||||
#ifndef bfd_elfNN_bfd_merge_private_bfd_data
|
#ifndef bfd_elfNN_bfd_merge_private_bfd_data
|
||||||
#define bfd_elfNN_bfd_merge_private_bfd_data \
|
#define bfd_elfNN_bfd_merge_private_bfd_data \
|
||||||
((bfd_boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
|
((bfd_boolean (*) (bfd *, bfd *)) bfd_true)
|
||||||
#endif
|
#endif
|
||||||
#ifndef bfd_elfNN_bfd_set_private_flags
|
#ifndef bfd_elfNN_bfd_set_private_flags
|
||||||
#define bfd_elfNN_bfd_set_private_flags \
|
#define bfd_elfNN_bfd_set_private_flags \
|
||||||
((bfd_boolean (*) PARAMS ((bfd *, flagword))) bfd_true)
|
((bfd_boolean (*) (bfd *, flagword)) bfd_true)
|
||||||
#endif
|
#endif
|
||||||
#ifndef bfd_elfNN_bfd_is_local_label_name
|
#ifndef bfd_elfNN_bfd_is_local_label_name
|
||||||
#define bfd_elfNN_bfd_is_local_label_name _bfd_elf_is_local_label_name
|
#define bfd_elfNN_bfd_is_local_label_name _bfd_elf_is_local_label_name
|
||||||
@ -600,19 +599,19 @@ const bfd_target TARGET_BIG_SYM =
|
|||||||
bfd_elfNN_write_corefile_contents,
|
bfd_elfNN_write_corefile_contents,
|
||||||
},
|
},
|
||||||
|
|
||||||
BFD_JUMP_TABLE_GENERIC (bfd_elfNN),
|
BFD_JUMP_TABLE_GENERIC (bfd_elfNN),
|
||||||
BFD_JUMP_TABLE_COPY (bfd_elfNN),
|
BFD_JUMP_TABLE_COPY (bfd_elfNN),
|
||||||
BFD_JUMP_TABLE_CORE (bfd_elfNN),
|
BFD_JUMP_TABLE_CORE (bfd_elfNN),
|
||||||
#ifdef bfd_elfNN_archive_functions
|
#ifdef bfd_elfNN_archive_functions
|
||||||
BFD_JUMP_TABLE_ARCHIVE (bfd_elfNN_archive),
|
BFD_JUMP_TABLE_ARCHIVE (bfd_elfNN_archive),
|
||||||
#else
|
#else
|
||||||
BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff),
|
BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff),
|
||||||
#endif
|
#endif
|
||||||
BFD_JUMP_TABLE_SYMBOLS (bfd_elfNN),
|
BFD_JUMP_TABLE_SYMBOLS (bfd_elfNN),
|
||||||
BFD_JUMP_TABLE_RELOCS (bfd_elfNN),
|
BFD_JUMP_TABLE_RELOCS (bfd_elfNN),
|
||||||
BFD_JUMP_TABLE_WRITE (bfd_elfNN),
|
BFD_JUMP_TABLE_WRITE (bfd_elfNN),
|
||||||
BFD_JUMP_TABLE_LINK (bfd_elfNN),
|
BFD_JUMP_TABLE_LINK (bfd_elfNN),
|
||||||
BFD_JUMP_TABLE_DYNAMIC (bfd_elfNN),
|
BFD_JUMP_TABLE_DYNAMIC (bfd_elfNN),
|
||||||
|
|
||||||
/* Alternative endian target. */
|
/* Alternative endian target. */
|
||||||
#ifdef TARGET_LITTLE_SYM
|
#ifdef TARGET_LITTLE_SYM
|
||||||
@ -696,19 +695,19 @@ const bfd_target TARGET_LITTLE_SYM =
|
|||||||
bfd_elfNN_write_corefile_contents,
|
bfd_elfNN_write_corefile_contents,
|
||||||
},
|
},
|
||||||
|
|
||||||
BFD_JUMP_TABLE_GENERIC (bfd_elfNN),
|
BFD_JUMP_TABLE_GENERIC (bfd_elfNN),
|
||||||
BFD_JUMP_TABLE_COPY (bfd_elfNN),
|
BFD_JUMP_TABLE_COPY (bfd_elfNN),
|
||||||
BFD_JUMP_TABLE_CORE (bfd_elfNN),
|
BFD_JUMP_TABLE_CORE (bfd_elfNN),
|
||||||
#ifdef bfd_elfNN_archive_functions
|
#ifdef bfd_elfNN_archive_functions
|
||||||
BFD_JUMP_TABLE_ARCHIVE (bfd_elfNN_archive),
|
BFD_JUMP_TABLE_ARCHIVE (bfd_elfNN_archive),
|
||||||
#else
|
#else
|
||||||
BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff),
|
BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff),
|
||||||
#endif
|
#endif
|
||||||
BFD_JUMP_TABLE_SYMBOLS (bfd_elfNN),
|
BFD_JUMP_TABLE_SYMBOLS (bfd_elfNN),
|
||||||
BFD_JUMP_TABLE_RELOCS (bfd_elfNN),
|
BFD_JUMP_TABLE_RELOCS (bfd_elfNN),
|
||||||
BFD_JUMP_TABLE_WRITE (bfd_elfNN),
|
BFD_JUMP_TABLE_WRITE (bfd_elfNN),
|
||||||
BFD_JUMP_TABLE_LINK (bfd_elfNN),
|
BFD_JUMP_TABLE_LINK (bfd_elfNN),
|
||||||
BFD_JUMP_TABLE_DYNAMIC (bfd_elfNN),
|
BFD_JUMP_TABLE_DYNAMIC (bfd_elfNN),
|
||||||
|
|
||||||
/* Alternative endian target. */
|
/* Alternative endian target. */
|
||||||
#ifdef TARGET_BIG_SYM
|
#ifdef TARGET_BIG_SYM
|
||||||
|
Reference in New Issue
Block a user