forked from Imagelibrary/binutils-gdb
2000-11-05 Philip Blundell <philb@gnu.org>
* elf32-arm.h (elf32_arm_merge_private_bfd_data): Always permit BFDs containing no sections to be merged, regardless of their flags. 2000-11-04 Philip Blundell <philb@gnu.org> * elf32-arm.h (elf32_arm_relocate_section): Suppress error message if a relocation for an undefined symbol also results in an overflow.
This commit is contained in:
@@ -1,3 +1,14 @@
|
|||||||
|
2000-11-05 Philip Blundell <philb@gnu.org>
|
||||||
|
|
||||||
|
* elf32-arm.h (elf32_arm_merge_private_bfd_data): Always permit
|
||||||
|
BFDs containing no sections to be merged, regardless of their flags.
|
||||||
|
|
||||||
|
2000-11-04 Philip Blundell <philb@gnu.org>
|
||||||
|
|
||||||
|
* elf32-arm.h (elf32_arm_relocate_section): Suppress error message
|
||||||
|
if a relocation for an undefined symbol also results in an
|
||||||
|
overflow.
|
||||||
|
|
||||||
2000-10-31 Philip Blundell <philb@gnu.org>
|
2000-10-31 Philip Blundell <philb@gnu.org>
|
||||||
|
|
||||||
* elf32-arm.h (elf32_arm_merge_private_bfd_data): Only handle
|
* elf32-arm.h (elf32_arm_merge_private_bfd_data): Only handle
|
||||||
|
|||||||
@@ -1846,10 +1846,15 @@ elf32_arm_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||||||
switch (r)
|
switch (r)
|
||||||
{
|
{
|
||||||
case bfd_reloc_overflow:
|
case bfd_reloc_overflow:
|
||||||
if (!((*info->callbacks->reloc_overflow)
|
/* If the overflowing reloc was to an undefined symbol,
|
||||||
(info, name, howto->name, (bfd_vma) 0,
|
we have already printed one error message and there
|
||||||
input_bfd, input_section, rel->r_offset)))
|
is no point complaining again. */
|
||||||
return false;
|
if ((! h ||
|
||||||
|
h->root.type != bfd_link_hash_undefined)
|
||||||
|
&& (!((*info->callbacks->reloc_overflow)
|
||||||
|
(info, name, howto->name, (bfd_vma) 0,
|
||||||
|
input_bfd, input_section, rel->r_offset))))
|
||||||
|
return false;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case bfd_reloc_undefined:
|
case bfd_reloc_undefined:
|
||||||
@@ -1974,6 +1979,8 @@ elf32_arm_merge_private_bfd_data (ibfd, obfd)
|
|||||||
flagword out_flags;
|
flagword out_flags;
|
||||||
flagword in_flags;
|
flagword in_flags;
|
||||||
boolean flags_compatible = true;
|
boolean flags_compatible = true;
|
||||||
|
boolean null_input_bfd = true;
|
||||||
|
asection *sec;
|
||||||
|
|
||||||
if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour
|
if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour
|
||||||
|| bfd_get_flavour (obfd) != bfd_target_elf_flavour)
|
|| bfd_get_flavour (obfd) != bfd_target_elf_flavour)
|
||||||
@@ -2029,6 +2036,22 @@ elf32_arm_merge_private_bfd_data (ibfd, obfd)
|
|||||||
if (in_flags == out_flags)
|
if (in_flags == out_flags)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
/* Check to see if the input BFD actually contains any sections.
|
||||||
|
If not, its flags may not have been initialised either, but it cannot
|
||||||
|
actually cause any incompatibility. */
|
||||||
|
for (sec = ibfd->sections; sec != NULL; sec = sec->next)
|
||||||
|
{
|
||||||
|
/* Ignore synthetic glue sections. */
|
||||||
|
if (strcmp (sec->name, ".glue_7")
|
||||||
|
&& strcmp (sec->name, ".glue_7t"))
|
||||||
|
{
|
||||||
|
null_input_bfd = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (null_input_bfd)
|
||||||
|
return true;
|
||||||
|
|
||||||
/* If any of the input BFDs is non-PIC, the output is also position
|
/* If any of the input BFDs is non-PIC, the output is also position
|
||||||
dependent. */
|
dependent. */
|
||||||
if (!(in_flags & EF_PIC))
|
if (!(in_flags & EF_PIC))
|
||||||
|
|||||||
Reference in New Issue
Block a user