PR ld/13131
* elf64-ppc.c (adjust_toc_syms): Delete redundant code. (ppc64_elf_edit_toc): Fix style nit. Report some details on linker failure due to reference in debug or non-alloc sections to optimized away toc entry, and don't abort.
This commit is contained in:
parent
79610daafd
commit
b140b0101b
@ -1,3 +1,11 @@
|
|||||||
|
2011-09-06 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
PR ld/13131
|
||||||
|
* elf64-ppc.c (adjust_toc_syms): Delete redundant code.
|
||||||
|
(ppc64_elf_edit_toc): Fix style nit. Report some details
|
||||||
|
on linker failure due to reference in debug or non-alloc
|
||||||
|
sections to optimized away toc entry, and don't abort.
|
||||||
|
|
||||||
2011-09-01 Christophe Lyon <christophe.lyon@st.com>
|
2011-09-01 Christophe Lyon <christophe.lyon@st.com>
|
||||||
|
|
||||||
* elf32-arm.c (elf32_arm_output_arch_local_syms): Skip excluded
|
* elf32-arm.c (elf32_arm_output_arch_local_syms): Skip excluded
|
||||||
|
@ -7881,9 +7881,6 @@ adjust_toc_syms (struct elf_link_hash_entry *h, void *inf)
|
|||||||
struct adjust_toc_info *toc_inf = (struct adjust_toc_info *) inf;
|
struct adjust_toc_info *toc_inf = (struct adjust_toc_info *) inf;
|
||||||
unsigned long i;
|
unsigned long i;
|
||||||
|
|
||||||
if (h->root.type == bfd_link_hash_indirect)
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
if (h->root.type != bfd_link_hash_defined
|
if (h->root.type != bfd_link_hash_defined
|
||||||
&& h->root.type != bfd_link_hash_defweak)
|
&& h->root.type != bfd_link_hash_defweak)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -8267,7 +8264,7 @@ ppc64_elf_edit_toc (struct bfd_link_info *info)
|
|||||||
some_unused = 1;
|
some_unused = 1;
|
||||||
last = 0;
|
last = 0;
|
||||||
}
|
}
|
||||||
else if (*drop & ref_from_discarded)
|
else if ((*drop & ref_from_discarded) != 0)
|
||||||
{
|
{
|
||||||
some_unused = 1;
|
some_unused = 1;
|
||||||
last = ref_from_discarded;
|
last = ref_from_discarded;
|
||||||
@ -8385,7 +8382,13 @@ ppc64_elf_edit_toc (struct bfd_link_info *info)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
abort ();
|
info->callbacks->einfo
|
||||||
|
(_("%P: %H: %s relocation references "
|
||||||
|
"optimized away TOC entry\n"),
|
||||||
|
ibfd, sec, rel->r_offset,
|
||||||
|
ppc64_elf_howto_table[r_type]->name);
|
||||||
|
bfd_set_error (bfd_error_bad_value);
|
||||||
|
goto error_ret;
|
||||||
}
|
}
|
||||||
rel->r_addend = tocrel->r_addend;
|
rel->r_addend = tocrel->r_addend;
|
||||||
elf_section_data (sec)->relocs = relstart;
|
elf_section_data (sec)->relocs = relstart;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user