diff options
author | Alan Modra <amodra@gmail.com> | 2010-10-11 09:11:34 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2010-10-11 09:11:34 +0000 |
commit | 0d13b9a6337cb3fcc07f38afc9da998e790ea939 (patch) | |
tree | 0a6d4245f3bf2a689aaaf72bfecf04dc50189278 /bfd/elf32-frv.c | |
parent | 0bc37e5bfe9a3e6d8d96983eba0ca9020f8e9459 (diff) | |
download | gdb-0d13b9a6337cb3fcc07f38afc9da998e790ea939.zip gdb-0d13b9a6337cb3fcc07f38afc9da998e790ea939.tar.gz gdb-0d13b9a6337cb3fcc07f38afc9da998e790ea939.tar.bz2 |
* elf32-frv.c (elf32_frv_relocate_section): Set "name" for global syms.
(elf32_frvfdpic_finish_dynamic_sections): Don't crash on
__ROFIXUP_END__ defined in shared lib.
Diffstat (limited to 'bfd/elf32-frv.c')
-rw-r--r-- | bfd/elf32-frv.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/bfd/elf32-frv.c b/bfd/elf32-frv.c index 2acc917..f6975f3 100644 --- a/bfd/elf32-frv.c +++ b/bfd/elf32-frv.c @@ -2770,7 +2770,7 @@ elf32_frv_relocate_section (output_bfd, info, input_bfd, input_section, struct elf_link_hash_entry *h; bfd_vma relocation; bfd_reloc_status_type r; - const char * name = NULL; + const char *name; int r_type; asection *osec; struct frvfdpic_relocs_info *picrel; @@ -2796,7 +2796,8 @@ elf32_frv_relocate_section (output_bfd, info, input_bfd, input_section, name = bfd_elf_string_from_elf_section (input_bfd, symtab_hdr->sh_link, sym->st_name); - name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name; + if (name == NULL || name[0] == 0) + name = bfd_section_name (input_bfd, sec); } else { @@ -2808,6 +2809,7 @@ elf32_frv_relocate_section (output_bfd, info, input_bfd, input_section, h, sec, relocation, unresolved_reloc, warned); osec = sec; + name = h->root.root.string; } if (sec != NULL && elf_discarded_section (sec)) @@ -5896,7 +5898,8 @@ elf32_frvfdpic_finish_dynamic_sections (bfd *output_bfd, FALSE, FALSE, TRUE); if (hend && (hend->type == bfd_link_hash_defined - || hend->type == bfd_link_hash_defweak)) + || hend->type == bfd_link_hash_defweak) + && hend->u.def.section->output_section != NULL) { bfd_vma value = frvfdpic_gotfixup_section (info)->output_section->vma |