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> 1999-06-22 Mark Mitchell <mark@codesourcery.com>
* elflink.h (link_read_relocs): Explicitly cast external_relocs to * 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 if ((s->flags & SEC_LINKER_CREATED) != 0
|| (s->flags & SEC_ALLOC) == 0) || (s->flags & SEC_ALLOC) == 0)
{ {
elf_section_data (s)->dynindx = -1; elf_section_data (s)->dynindx = 0;
continue; continue;
} }
@ -2949,7 +2949,7 @@ ppc_elf_finish_dynamic_sections (output_bfd, info)
indx = elf_section_data (s)->this_idx; indx = elf_section_data (s)->this_idx;
dindx = elf_section_data (s)->dynindx; dindx = elf_section_data (s)->dynindx;
if (dindx != -1) if (dindx > 0)
{ {
BFD_ASSERT(indx > 0); BFD_ASSERT(indx > 0);
BFD_ASSERT(dindx > 0); BFD_ASSERT(dindx > 0);
@ -3200,12 +3200,13 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
relocation = 0; relocation = 0;
else else
{ {
(*info->callbacks->undefined_symbol)(info, if (! (*info->callbacks->undefined_symbol)(info,
h->root.root.string, h->root.root.string,
input_bfd, input_bfd,
input_section, input_section,
rel->r_offset); rel->r_offset))
ret = false; return false;
relocation = 0;
continue; continue;
} }
} }
@ -3230,12 +3231,12 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|| h->root.type == bfd_link_hash_defweak) || h->root.type == bfd_link_hash_defweak)
&& sec->output_section == NULL) && sec->output_section == NULL)
{ {
(*info->callbacks->undefined_symbol) (info, if (! (*info->callbacks->undefined_symbol) (info,
h->root.root.string, h->root.root.string,
input_bfd, input_bfd,
input_section, input_section,
rel->r_offset); rel->r_offset))
ret = false; return false;
continue; continue;
} }
break; break;
@ -3784,14 +3785,14 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
name = bfd_section_name (input_bfd, sec); name = bfd_section_name (input_bfd, sec);
} }
(*info->callbacks->reloc_overflow)(info, if (! (*info->callbacks->reloc_overflow)(info,
name, name,
howto->name, howto->name,
(bfd_vma) 0, (bfd_vma) 0,
input_bfd, input_bfd,
input_section, input_section,
offset); offset))
ret = false; return false;
} }
else else
ret = false; ret = false;