From Franz Sirl <Franz.Sirl-kernel@lauterbach.com>:

* elf32-ppc.c (ppc_elf_size_dynamic_sections): Set unused dynindx
	field to 0, not -1.
	(ppc_elf_finish_dynamic_sections): Check for positive section
	dynindx field, rather than comparing against -1.
	(ppc_elf_relocate_section): Only return false if undefined_symbol
	or reloc_overflow fail, not always upon encountering an error.
This commit is contained in:
Ian Lance Taylor 1999-06-22 21:01:24 +00:00
parent 75945f9f4c
commit 464e1740d2
2 changed files with 33 additions and 22 deletions

View File

@ -1,3 +1,13 @@
1999-06-22 Ian Lance Taylor <ian@zembu.com>
From Franz Sirl <Franz.Sirl-kernel@lauterbach.com>:
* elf32-ppc.c (ppc_elf_size_dynamic_sections): Set unused dynindx
field to 0, not -1.
(ppc_elf_finish_dynamic_sections): Check for positive section
dynindx field, rather than comparing against -1.
(ppc_elf_relocate_section): Only return false if undefined_symbol
or reloc_overflow fail, not always upon encountering an error.
1999-06-22 Mark Mitchell <mark@codesourcery.com>
* elflink.h (link_read_relocs): Explicitly cast external_relocs to

View File

@ -2102,7 +2102,7 @@ ppc_elf_size_dynamic_sections (output_bfd, info)
if ((s->flags & SEC_LINKER_CREATED) != 0
|| (s->flags & SEC_ALLOC) == 0)
{
elf_section_data (s)->dynindx = -1;
elf_section_data (s)->dynindx = 0;
continue;
}
@ -2949,7 +2949,7 @@ ppc_elf_finish_dynamic_sections (output_bfd, info)
indx = elf_section_data (s)->this_idx;
dindx = elf_section_data (s)->dynindx;
if (dindx != -1)
if (dindx > 0)
{
BFD_ASSERT(indx > 0);
BFD_ASSERT(dindx > 0);
@ -3200,12 +3200,13 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
relocation = 0;
else
{
(*info->callbacks->undefined_symbol)(info,
h->root.root.string,
input_bfd,
input_section,
rel->r_offset);
ret = false;
if (! (*info->callbacks->undefined_symbol)(info,
h->root.root.string,
input_bfd,
input_section,
rel->r_offset))
return false;
relocation = 0;
continue;
}
}
@ -3230,12 +3231,12 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|| h->root.type == bfd_link_hash_defweak)
&& sec->output_section == NULL)
{
(*info->callbacks->undefined_symbol) (info,
h->root.root.string,
input_bfd,
input_section,
rel->r_offset);
ret = false;
if (! (*info->callbacks->undefined_symbol) (info,
h->root.root.string,
input_bfd,
input_section,
rel->r_offset))
return false;
continue;
}
break;
@ -3784,14 +3785,14 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
name = bfd_section_name (input_bfd, sec);
}
(*info->callbacks->reloc_overflow)(info,
name,
howto->name,
(bfd_vma) 0,
input_bfd,
input_section,
offset);
ret = false;
if (! (*info->callbacks->reloc_overflow)(info,
name,
howto->name,
(bfd_vma) 0,
input_bfd,
input_section,
offset))
return false;
}
else
ret = false;