From ada1953ecdd174aaad246792e88f09febe1e1106 Mon Sep 17 00:00:00 2001 From: Hans-Peter Nilsson Date: Tue, 7 Sep 2004 18:33:22 +0000 Subject: * elf32-cris.c (cris_elf_relocate_section) : For internal error message, handle NULL symname. (cris_elf_check_relocs) : Don't try to handle symbol visibility here. --- bfd/ChangeLog | 8 ++++++++ bfd/elf32-cris.c | 13 +++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 220dc7d..d74e8fe 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,11 @@ +2004-09-07 Hans-Peter Nilsson + + * elf32-cris.c (cris_elf_relocate_section) : For internal error message, handle NULL + symname. + (cris_elf_check_relocs) : Don't try to + handle symbol visibility here. + 2004-09-07 Alan Modra * elf64-ppc.c (struct ppc_link_hash_table): Add stub_globals. diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c index 4994e08..aedf774 100644 --- a/bfd/elf32-cris.c +++ b/bfd/elf32-cris.c @@ -982,7 +982,8 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section, input_bfd, input_section, cris_elf_howto_table[r_type].name, - symname[0] != '\0' ? symname : _("[whose name is lost]")); + (symname != NULL && symname[0] != '\0' + ? symname : _("[whose name is lost]"))); /* FIXME: Perhaps blaming input is not the right thing to do; this is probably an internal error. But it is true @@ -2468,9 +2469,13 @@ cris_elf_check_relocs (abfd, info, sec, relocs) don't need to generate a procedure linkage table entry after all. */ - /* If this is a local symbol, we resolve it directly without - creating a procedure linkage table entry. */ - if (h == NULL || ELF_ST_VISIBILITY (h->other) != STV_DEFAULT) + /* Beware: if we'd check for visibility of the symbol here + (and not marking the need for a PLT when non-visible), we'd + get into trouble with keeping handling consistent with + regards to relocs found before definition and GOTPLT + handling. Eliminable PLT entries will be dealt with later + anyway. */ + if (h == NULL) continue; h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT; -- cgit v1.1