https://sourceware.org/bugzilla/show_bug.cgi?id=27659
--- Comment #16 from Alan Modra <amodra at gmail dot com> --- (In reply to Nick Clifton from comment #12) > It may be that a NULL shndx pointer is > actually allowed No, it isn't allowed (and passing a 0 as the *pointer* arg to H_PUT_32, see bfd_putl32/bfd_putb32, will surely result in a segfault). The patch was commited with 6e0dfbf420, accidentally I assume.. If you have an internal st_shndx greater than a little less than 64k, then ELF requires those symbols to be represented externally with st_shndx 0xffff and have the actual section index stored in an array of 32-bit words in a SHT_SYMTAB_SHNDX section. See elflink.c:bfd_elf_final_link /* The real buffer will be allocated in elf_link_swap_symbols_out. */ flinfo.symshndxbuf = (elf_numsections (abfd) > (SHN_LORESERVE & 0xFFFF) ? (Elf_External_Sym_Shndx *) -1 : NULL); I think the most likely cause of this problem is a symbol st_shndx entry being overwritten with bogus data somehow. -- You are receiving this mail because: You are on the CC list for the bug.