mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-24 04:00:07 +08:00
* elf32-i386.c (dtpoff_base, tpoff): Don't crash if tls_segment is
NULL. (elf_i386_relocate_section): Return false after printing error about unresolvable relocation.
This commit is contained in:
@ -1,3 +1,10 @@
|
|||||||
|
2002-09-12 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* elf32-i386.c (dtpoff_base, tpoff): Don't crash if tls_segment is
|
||||||
|
NULL.
|
||||||
|
(elf_i386_relocate_section): Return false after printing error about
|
||||||
|
unresolvable relocation.
|
||||||
|
|
||||||
2002-09-12 Nick Clifton <nickc@redhat.com>
|
2002-09-12 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
* elf32-arm.h (elf32_arm_final_link_relocate): Fix handling of
|
* elf32-arm.h (elf32_arm_final_link_relocate): Fix handling of
|
||||||
|
@ -1962,7 +1962,9 @@ static bfd_vma
|
|||||||
dtpoff_base (info)
|
dtpoff_base (info)
|
||||||
struct bfd_link_info *info;
|
struct bfd_link_info *info;
|
||||||
{
|
{
|
||||||
BFD_ASSERT (elf_hash_table (info)->tls_segment != NULL);
|
/* If tls_segment is NULL, we should have signalled an error already. */
|
||||||
|
if (elf_hash_table (info)->tls_segment == NULL)
|
||||||
|
return 0;
|
||||||
return elf_hash_table (info)->tls_segment->start;
|
return elf_hash_table (info)->tls_segment->start;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1977,7 +1979,9 @@ tpoff (info, address)
|
|||||||
struct elf_link_tls_segment *tls_segment
|
struct elf_link_tls_segment *tls_segment
|
||||||
= elf_hash_table (info)->tls_segment;
|
= elf_hash_table (info)->tls_segment;
|
||||||
|
|
||||||
BFD_ASSERT (tls_segment != NULL);
|
/* If tls_segment is NULL, we should have signalled an error already. */
|
||||||
|
if (tls_segment == NULL)
|
||||||
|
return 0;
|
||||||
return (align_power (tls_segment->size, tls_segment->align)
|
return (align_power (tls_segment->size, tls_segment->align)
|
||||||
+ tls_segment->start - address);
|
+ tls_segment->start - address);
|
||||||
}
|
}
|
||||||
@ -2756,12 +2760,15 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||||||
if (unresolved_reloc
|
if (unresolved_reloc
|
||||||
&& !((input_section->flags & SEC_DEBUGGING) != 0
|
&& !((input_section->flags & SEC_DEBUGGING) != 0
|
||||||
&& (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) != 0))
|
&& (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) != 0))
|
||||||
|
{
|
||||||
(*_bfd_error_handler)
|
(*_bfd_error_handler)
|
||||||
(_("%s(%s+0x%lx): unresolvable relocation against symbol `%s'"),
|
(_("%s(%s+0x%lx): unresolvable relocation against symbol `%s'"),
|
||||||
bfd_archive_filename (input_bfd),
|
bfd_archive_filename (input_bfd),
|
||||||
bfd_get_section_name (input_bfd, input_section),
|
bfd_get_section_name (input_bfd, input_section),
|
||||||
(long) rel->r_offset,
|
(long) rel->r_offset,
|
||||||
h->root.root.string);
|
h->root.root.string);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
r = _bfd_final_link_relocate (howto, input_bfd, input_section,
|
r = _bfd_final_link_relocate (howto, input_bfd, input_section,
|
||||||
contents, rel->r_offset,
|
contents, rel->r_offset,
|
||||||
|
Reference in New Issue
Block a user