Line 12785... |
Line 12785... |
struct elf_dyn_relocs *p;
|
struct elf_dyn_relocs *p;
|
|
|
if (h->root.type == bfd_link_hash_indirect)
|
if (h->root.type == bfd_link_hash_indirect)
|
return TRUE;
|
return TRUE;
|
|
|
if (h->root.type == bfd_link_hash_warning)
|
|
/* When warning symbols are created, they **replace** the "real"
|
|
entry in the hash table, thus we never get to see the real
|
|
symbol in a hash traversal. So look at it now. */
|
|
h = (struct elf_link_hash_entry *) h->root.u.i.link;
|
|
|
|
eh = (struct elf32_arm_link_hash_entry *) h;
|
eh = (struct elf32_arm_link_hash_entry *) h;
|
|
|
info = (struct bfd_link_info *) inf;
|
info = (struct bfd_link_info *) inf;
|
htab = elf32_arm_hash_table (info);
|
htab = elf32_arm_hash_table (info);
|
if (htab == NULL)
|
if (htab == NULL)
|
Line 13154... |
Line 13148... |
elf32_arm_readonly_dynrelocs (struct elf_link_hash_entry * h, void * inf)
|
elf32_arm_readonly_dynrelocs (struct elf_link_hash_entry * h, void * inf)
|
{
|
{
|
struct elf32_arm_link_hash_entry * eh;
|
struct elf32_arm_link_hash_entry * eh;
|
struct elf_dyn_relocs * p;
|
struct elf_dyn_relocs * p;
|
|
|
if (h->root.type == bfd_link_hash_warning)
|
|
h = (struct elf_link_hash_entry *) h->root.u.i.link;
|
|
|
|
eh = (struct elf32_arm_link_hash_entry *) h;
|
eh = (struct elf32_arm_link_hash_entry *) h;
|
for (p = eh->dyn_relocs; p != NULL; p = p->next)
|
for (p = eh->dyn_relocs; p != NULL; p = p->next)
|
{
|
{
|
asection *s = p->sec;
|
asection *s = p->sec;
|
|
|
Line 13742... |
Line 13733... |
return FALSE;
|
return FALSE;
|
|
|
dynobj = elf_hash_table (info)->dynobj;
|
dynobj = elf_hash_table (info)->dynobj;
|
|
|
sgot = htab->root.sgotplt;
|
sgot = htab->root.sgotplt;
|
|
/* A broken linker script might have discarded the dynamic sections.
|
|
Catch this here so that we do not seg-fault later on. */
|
|
if (sgot != NULL && bfd_is_abs_section (sgot->output_section))
|
|
return FALSE;
|
sdyn = bfd_get_section_by_name (dynobj, ".dynamic");
|
sdyn = bfd_get_section_by_name (dynobj, ".dynamic");
|
|
|
if (elf_hash_table (info)->dynamic_sections_created)
|
if (elf_hash_table (info)->dynamic_sections_created)
|
{
|
{
|
asection *splt;
|
asection *splt;
|