This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH] MIPS: Fix GOT page counter in multi-got links
- From: James Cowgill <james dot cowgill at mips dot com>
- To: Cary Coutant <ccoutant at gmail dot com>
- Cc: Binutils <binutils at sourceware dot org>
- Date: Thu, 5 Apr 2018 17:10:42 +0100
- Subject: Re: [PATCH] MIPS: Fix GOT page counter in multi-got links
- Autocrypt: addr=james dot cowgill at mips dot com; prefer-encrypt=mutual; keydata= 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
- Openpgp: preference=signencrypt
- References: <20180220175141.23620-1-james.cowgill@mips.com> <CAJimCsFCBjSwe6iWxTuW+fBkn8gT18pGrv=naGV=Jej6BKnfCg@mail.gmail.com>
Hi Cary,
On 05/04/18 16:50, Cary Coutant wrote:
>> The record_got_page_entry function records and updates the maximum
>> number of GOT page entries which may be required by an object. In the
>> case where an existing GOT page entry was expanded, only the entry
>> belonging to output GOT would have its page count updated. This leaves
>> the entry belonging to the object GOT with the num_pages count of 1 it
>> was originally initialized with. Later on when GOTs are being merged in a
>> multi-got link, this causes the value of entry->num_pages in
>> add_got_page_entries to always be 1 and underestimates the number of pages
>> required for the new entry. This in turn leads to an assertion failure in
>> get_got_page_offset where we run out of pages.
>>
>> Fix by obtaining the object's GOT entry unconditionally and not just
>> the first time it gets created. Now that entry2 is always valid, remove
>> the useless NULL checks.
>>
>> I need someone to commit this for me.
>>
>> gold/
>> 2018-02-20 James Cowgill <james.cowgill@mips.com>
>>
>> PR gold/22770
>> * mips.cc (Mips_got_info::record_got_page_entry): Fetch existing
>> page entries for the object's GOT.
>
> Sorry, this patch slipped through my mail filters. I've committed the
> patch on your behalf.
Thanks, however there is a problem. When I originally submitted the
patch I thought the FSF copyright assignment for *@mips.com had been
sorted out but I have now learned that it was not (I think), so the
commit may have to be reverted.
Also, off list, someone pointed out some improvements to the patch (only
simplifications - the patch as committed still works). These ended up in
v3 which was attached to the bug report just now. Someone poked me to
submit the v3 which I was about to do until you committed the original
patch :)
James