http://sourceware.org/bugzilla/show_bug.cgi?id=14590
Bug #: 14590 Summary: ifunc problem: internal error, aborting at elf64-x86-64.c line 3175 in elf_x86_64_relocate_section Product: binutils Version: 2.24 (HEAD) Status: NEW Severity: normal Priority: P2 Component: ld AssignedTo: unassig...@sourceware.org ReportedBy: m...@suse.de Classification: Unclassified % cat x.c #include <stdio.h> int index; int main() { index=getchar(); return index; } % gcc -fno-builtin -static -g x.c /usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: BFD (GNU Binutils; devel:gcc / SLE-11) 2.22 internal error, aborting at ../../bfd/elf64-x86-64.c line 3094 in elf_x86_64_relocate_section This is a problem also with older binutils. This requires a libc which has the symbol 'index' defined as weak ifunc: 18: 0000000000000000 41 IFUNC WEAK DEFAULT 1 index It only happens when linking statically. The abort is this one: 3170 bfd_vma plt_index; 3171 const char *name; 3172 3173 if ((input_section->flags & SEC_ALLOC) == 0 3174 || h->plt.offset == (bfd_vma) -1) 3175 abort (); The reference this is about is from .debug_info (i.e. !SEC_ALLOC), hence the abort. I don't know why it things it finds the ifunc definition first (h->type is STT_GNU_IFUNC here), not the one in the COMMON section. -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils