ldlang.c (print_assignment): Do not rely upon a valid result having a section

associated with it.
elf32-arm.c (elf32_arm_final_link_relocate): Gracefully handle the situation
  where a symbols's section is not known but a section relative R_ARM_RELATIVE
  reloc has to be generated for the Symbian OS.
This commit is contained in:
Nick Clifton 2005-05-17 14:39:18 +00:00
parent 3b83e13a45
commit 10dbd1f36f
4 changed files with 22 additions and 3 deletions

View file

@ -7,6 +7,11 @@
2005-05-17 Nick Clifton <nickc@redhat.com>
* elf32-arm.c (elf32_arm_final_link_relocate): Gracefully handle
the situation where a symbols's section is not known but a section
relative R_ARM_RELATIVE reloc has to be generated for the Symbian
OS.
* elf32-v850.c (v850_elf_relocate_section): Move code to test for
the presence of a symbol table to just before the symbol table is
actually used.

View file

@ -2692,7 +2692,10 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto,
the section symbol as it is convenient. (We
cannot use the symbol given by "h" directly as it
will not appear in the dynamic symbol table.) */
symbol = elf_section_data (sym_sec->output_section)->dynindx;
if (sym_sec)
symbol = elf_section_data (sym_sec->output_section)->dynindx;
else
symbol = elf_section_data (input_section->output_section)->dynindx;
BFD_ASSERT (symbol != 0);
}
else

View file

@ -1,3 +1,8 @@
2005-05-17 Julian Brown <julian@codesourcery.com>
* ldlang.c (print_assignment): Do not rely upon a valid result
having a section associated with it.
2005-05-17 Nick Clifton <nickc@redhat.com>
* ldlang.c (Scan_for_self_assignment): Check an assignment tree to

View file

@ -3219,7 +3219,10 @@ print_assignment (lang_assignment_statement_type *assignment,
if (computation_is_valid)
{
value = result.value + result.section->bfd_section->vma;
value = result.value;
if (result.section)
value += result.section->bfd_section->vma;
minfo ("0x%V", value);
if (is_dot)
@ -3233,7 +3236,10 @@ print_assignment (lang_assignment_statement_type *assignment,
FALSE, FALSE, TRUE);
if (h)
{
value = h->u.def.value + result.section->bfd_section->vma;
value = h->u.def.value;
if (result.section)
value += result.section->bfd_section->vma;
minfo ("[0x%V]", value);
}