This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 02/27/2017 07:49 PM, Alan Modra wrote:
A number of places in elf32-nios.c created dynamic sections but didn't set the hash table dynobj. That meant we could have duplicate dynamic sections connected to a number of bfds, so size_dynamic_sections didn't properly discard or allocate contents. All sorts of havoc ensued. Also, the entire set of dynamic sections was created in check_relocs on seeing GOT relocs when only .got related sections are needed, probably done to hide segfaults later in finish_dynamic_sections. The patch fixes these issues and makes the assembler emit errors when nios2 lacks the necessary pc-relative relocs for subtraction expressions, rather than silently generating bad code. eg. ld-elf/merge. I've also tidied uses of elf32_nios2_hash_table and elf_hash_table.
Thanks for helping out with this. This code has been hacked on by a lot of people over the years and I'm starting to think the reason why it's been so hard to understand is that it was broken. ;-) I really want to apologize for not catching the breakage earlier, too -- I've been more focused on GCC the past couple of months, and hadn't refreshed the binutils checkout in my mainline nios2-linux-gnu build tree since mid-December.
Anyway, I've verified that I get working executables again with this patch, and I've kicked off some more thorough testing to run overnight.
-Sandra
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |