Warn relocation in readonly section in a shared object.
2011-04-22 H.J. Lu <hongjiu.lu@intel.com> * elf32-i386.c (elf_i386_readonly_dynrelocs): Warn relocation in readonly section in a shared object. (elf_i386_size_dynamic_sections): Likewise. * elf64-x86-64.c (elf_x86_64_readonly_dynrelocs): Likewise. (elf_x86_64_size_dynamic_sections): Likewise.
This commit is contained in:
parent
d0c8589a6b
commit
b70321a200
|
@ -1,3 +1,11 @@
|
||||||
|
2011-04-22 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
* elf32-i386.c (elf_i386_readonly_dynrelocs): Warn relocation
|
||||||
|
in readonly section in a shared object.
|
||||||
|
(elf_i386_size_dynamic_sections): Likewise.
|
||||||
|
* elf64-x86-64.c (elf_x86_64_readonly_dynrelocs): Likewise.
|
||||||
|
(elf_x86_64_size_dynamic_sections): Likewise.
|
||||||
|
|
||||||
2011-04-21 H.J. Lu <hongjiu.lu@intel.com>
|
2011-04-21 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
PR ld/12694
|
PR ld/12694
|
||||||
|
|
|
@ -2399,6 +2399,11 @@ elf_i386_readonly_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
||||||
|
|
||||||
info->flags |= DF_TEXTREL;
|
info->flags |= DF_TEXTREL;
|
||||||
|
|
||||||
|
if (info->warn_shared_textrel && info->shared)
|
||||||
|
info->callbacks->einfo (_("%P: %B: warning: relocation against `%s' in readonly section `%A'.\n"),
|
||||||
|
p->sec->owner, h->root.root.string,
|
||||||
|
p->sec);
|
||||||
|
|
||||||
/* Not an error, just cut short the traversal. */
|
/* Not an error, just cut short the traversal. */
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
@ -2482,7 +2487,13 @@ elf_i386_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
|
||||||
srel = elf_section_data (p->sec)->sreloc;
|
srel = elf_section_data (p->sec)->sreloc;
|
||||||
srel->size += p->count * sizeof (Elf32_External_Rel);
|
srel->size += p->count * sizeof (Elf32_External_Rel);
|
||||||
if ((p->sec->output_section->flags & SEC_READONLY) != 0)
|
if ((p->sec->output_section->flags & SEC_READONLY) != 0)
|
||||||
info->flags |= DF_TEXTREL;
|
{
|
||||||
|
info->flags |= DF_TEXTREL;
|
||||||
|
if (info->warn_shared_textrel && info->shared)
|
||||||
|
info->callbacks->einfo (_("%P: %B: warning: relocation in readonly section `%A'.\n"),
|
||||||
|
p->sec->owner, p->sec);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2314,6 +2314,11 @@ elf_x86_64_readonly_dynrelocs (struct elf_link_hash_entry *h,
|
||||||
|
|
||||||
info->flags |= DF_TEXTREL;
|
info->flags |= DF_TEXTREL;
|
||||||
|
|
||||||
|
if (info->warn_shared_textrel && info->shared)
|
||||||
|
info->callbacks->einfo (_("%P: %B: warning: relocation against `%s' in readonly section `%A'.\n"),
|
||||||
|
p->sec->owner, h->root.root.string,
|
||||||
|
p->sec);
|
||||||
|
|
||||||
/* Not an error, just cut short the traversal. */
|
/* Not an error, just cut short the traversal. */
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
@ -2393,7 +2398,13 @@ elf_x86_64_size_dynamic_sections (bfd *output_bfd,
|
||||||
srel = elf_section_data (p->sec)->sreloc;
|
srel = elf_section_data (p->sec)->sreloc;
|
||||||
srel->size += p->count * bed->s->sizeof_rela;
|
srel->size += p->count * bed->s->sizeof_rela;
|
||||||
if ((p->sec->output_section->flags & SEC_READONLY) != 0)
|
if ((p->sec->output_section->flags & SEC_READONLY) != 0)
|
||||||
info->flags |= DF_TEXTREL;
|
{
|
||||||
|
info->flags |= DF_TEXTREL;
|
||||||
|
if (info->warn_shared_textrel && info->shared)
|
||||||
|
info->callbacks->einfo (_("%P: %B: warning: relocation in readonly section `%A'.\n"),
|
||||||
|
p->sec->owner, p->sec);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue