[PATCH] PR ld/18160: Segmentation Fault in lang_gc_sections when linking elf_x86_64 output

H.J. Lu hjl.tools@gmail.com
Thu Mar 26 01:58:00 GMT 2015


On Wed, Mar 25, 2015 at 6:27 PM, Alan Modra <amodra@gmail.com> wrote:
> On Wed, Mar 25, 2015 at 06:14:29PM -0700, H.J. Lu wrote:
>> On Wed, Mar 25, 2015 at 5:38 PM, Alan Modra <amodra@gmail.com> wrote:
>> > On Wed, Mar 25, 2015 at 04:21:14PM -0700, H.J. Lu wrote:
>> >> This patch ignores gc-sections if input relocation is incompatible with
>> >> output.  OK for master?
>> >
>> > No.  For one, it looks like you can't call _bfd_elf_relocs_compatible
>> > with a non-ELF input, which is either a bug in that function or you
>> > need to first test for ELF.
>> >
>> > Secondly, if you take a look at the gc-sections code you'll see that
>> > it handles non-ELF input files by simply not garbage collecting those
>> > files.  Your patch would disable gc-sections entirely on finding a
>> > non-ELF file.  I'm not sure how important it is to keep the old
>> > behaviour, but I'm guessing you did not intend to make that change.
>> >
>>
>> How about this one?
>>
>> This patch skips gc-sections if input relocation is incompatible with
>> output.
>
> Is the warning really necessary?  Also, it looks to me that the
> relocs_compatible test should be in more places, eg. to stop the
> backend gc_mark_hook from being confused by incompatible relocs.

Like this?

This patch skips gc-sections if input relocation is incompatible with
output.

bfd/

PR ld/18160
* elflink.c (elf_gc_sweep): Skip if relocation is incompatible.
(bfd_elf_gc_sections): Likewise.

ld/testsuite/

PR ld/18160
* ld-x86-64/pr18160.d: New file.
* ld-x86-64/pr18160.s: Likewise.
* ld-x86-64/pr18160.t: Likewise.
* ld-x86-64/x86-64.exp: Run pr18160.



-- 
H.J.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Skip-gc-sections-if-relocation-is-incompatible.patch
Type: text/x-patch
Size: 3586 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20150326/6e7d7c28/attachment.bin>


More information about the Binutils mailing list