* elf32-hppa.c (hppa_get_stub_entry): Remove debug message that
happens to trigger on undefined symbols. (final_link_relocate): Return bfd_reloc_undefined for undefined stubs. (elf32_hppa_relocate_section): Don't say we can't handle a reloc if we have already warned about an undefined symbol.
This commit is contained in:
parent
14e534aa35
commit
f09ebc7d49
@ -1,3 +1,12 @@
|
|||||||
|
2001-12-03 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* elf32-hppa.c (hppa_get_stub_entry): Remove debug message that
|
||||||
|
happens to trigger on undefined symbols.
|
||||||
|
(final_link_relocate): Return bfd_reloc_undefined for undefined
|
||||||
|
stubs.
|
||||||
|
(elf32_hppa_relocate_section): Don't say we can't handle a reloc
|
||||||
|
if we have already warned about an undefined symbol.
|
||||||
|
|
||||||
2001-12-02 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
|
2001-12-02 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
|
||||||
|
|
||||||
* elf32-mips.c (NEWABI_P): New define.
|
* elf32-mips.c (NEWABI_P): New define.
|
||||||
@ -68,7 +77,7 @@ Mon Nov 26 12:33:44 2001 Jeffrey A Law (law@cygnus.com)
|
|||||||
2001-11-24 Alan Modra <amodra@bigpond.net.au>
|
2001-11-24 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
* elf32-hppa.c (elf32_hppa_size_stubs): Decrease default stub
|
* elf32-hppa.c (elf32_hppa_size_stubs): Decrease default stub
|
||||||
group sizes to accomodate c++.
|
group sizes to accommodate c++.
|
||||||
|
|
||||||
2001-11-23 Jakub Jelinek <jakub@redhat.com>
|
2001-11-23 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
@ -591,20 +591,8 @@ hppa_get_stub_entry (input_section, sym_sec, hash, rel, htab)
|
|||||||
|
|
||||||
stub_entry = hppa_stub_hash_lookup (&htab->stub_hash_table,
|
stub_entry = hppa_stub_hash_lookup (&htab->stub_hash_table,
|
||||||
stub_name, false, false);
|
stub_name, false, false);
|
||||||
if (stub_entry == NULL)
|
|
||||||
{
|
|
||||||
if (hash == NULL || hash->elf.root.type != bfd_link_hash_undefweak)
|
|
||||||
(*_bfd_error_handler) (_("%s(%s+0x%lx): cannot find stub entry %s"),
|
|
||||||
bfd_archive_filename (input_section->owner),
|
|
||||||
input_section->name,
|
|
||||||
(long) rel->r_offset,
|
|
||||||
stub_name);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (hash != NULL)
|
if (hash != NULL)
|
||||||
hash->stub_cache = stub_entry;
|
hash->stub_cache = stub_entry;
|
||||||
}
|
|
||||||
|
|
||||||
free (stub_name);
|
free (stub_name);
|
||||||
}
|
}
|
||||||
@ -3385,7 +3373,7 @@ final_link_relocate (input_section, contents, rel, value, htab, sym_sec, h)
|
|||||||
addend = 8;
|
addend = 8;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return bfd_reloc_notsupported;
|
return bfd_reloc_undefined;
|
||||||
}
|
}
|
||||||
/* Fall thru. */
|
/* Fall thru. */
|
||||||
|
|
||||||
@ -3513,7 +3501,7 @@ final_link_relocate (input_section, contents, rel, value, htab, sym_sec, h)
|
|||||||
stub_entry = hppa_get_stub_entry (input_section, sym_sec,
|
stub_entry = hppa_get_stub_entry (input_section, sym_sec,
|
||||||
h, rel, htab);
|
h, rel, htab);
|
||||||
if (stub_entry == NULL)
|
if (stub_entry == NULL)
|
||||||
return bfd_reloc_notsupported;
|
return bfd_reloc_undefined;
|
||||||
|
|
||||||
/* Munge up the value and addend so that we call the stub
|
/* Munge up the value and addend so that we call the stub
|
||||||
rather than the procedure directly. */
|
rather than the procedure directly. */
|
||||||
@ -3612,6 +3600,7 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||||||
bfd_reloc_status_type r;
|
bfd_reloc_status_type r;
|
||||||
const char *sym_name;
|
const char *sym_name;
|
||||||
boolean plabel;
|
boolean plabel;
|
||||||
|
boolean warned_undef;
|
||||||
|
|
||||||
r_type = ELF32_R_TYPE (rel->r_info);
|
r_type = ELF32_R_TYPE (rel->r_info);
|
||||||
if (r_type >= (unsigned int) R_PARISC_UNIMPLEMENTED)
|
if (r_type >= (unsigned int) R_PARISC_UNIMPLEMENTED)
|
||||||
@ -3647,6 +3636,7 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||||||
h = NULL;
|
h = NULL;
|
||||||
sym = NULL;
|
sym = NULL;
|
||||||
sym_sec = NULL;
|
sym_sec = NULL;
|
||||||
|
warned_undef = false;
|
||||||
if (r_symndx < symtab_hdr->sh_info)
|
if (r_symndx < symtab_hdr->sh_info)
|
||||||
{
|
{
|
||||||
/* This is a local symbol, h defaults to NULL. */
|
/* This is a local symbol, h defaults to NULL. */
|
||||||
@ -3685,10 +3675,13 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||||||
&& h->elf.type != STT_PARISC_MILLI)
|
&& h->elf.type != STT_PARISC_MILLI)
|
||||||
{
|
{
|
||||||
if (info->symbolic && !info->allow_shlib_undefined)
|
if (info->symbolic && !info->allow_shlib_undefined)
|
||||||
|
{
|
||||||
if (!((*info->callbacks->undefined_symbol)
|
if (!((*info->callbacks->undefined_symbol)
|
||||||
(info, h->elf.root.root.string, input_bfd,
|
(info, h->elf.root.root.string, input_bfd,
|
||||||
input_section, rel->r_offset, false)))
|
input_section, rel->r_offset, false)))
|
||||||
return false;
|
return false;
|
||||||
|
warned_undef = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -3696,6 +3689,7 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||||||
(info, h->elf.root.root.string, input_bfd,
|
(info, h->elf.root.root.string, input_bfd,
|
||||||
input_section, rel->r_offset, true)))
|
input_section, rel->r_offset, true)))
|
||||||
return false;
|
return false;
|
||||||
|
warned_undef = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4061,6 +4055,8 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||||||
howto = elf_hppa_howto_table + r_type;
|
howto = elf_hppa_howto_table + r_type;
|
||||||
|
|
||||||
if (r == bfd_reloc_undefined || r == bfd_reloc_notsupported)
|
if (r == bfd_reloc_undefined || r == bfd_reloc_notsupported)
|
||||||
|
{
|
||||||
|
if (r == bfd_reloc_notsupported || !warned_undef)
|
||||||
{
|
{
|
||||||
(*_bfd_error_handler)
|
(*_bfd_error_handler)
|
||||||
(_("%s(%s+0x%lx): cannot handle %s for %s"),
|
(_("%s(%s+0x%lx): cannot handle %s for %s"),
|
||||||
@ -4072,6 +4068,7 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||||||
bfd_set_error (bfd_error_bad_value);
|
bfd_set_error (bfd_error_bad_value);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!((*info->callbacks->reloc_overflow)
|
if (!((*info->callbacks->reloc_overflow)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user