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: Cary Coutant <ccoutant at gmail dot com>
- To: James Cowgill <james dot cowgill at mips dot com>
- Cc: Binutils <binutils at sourceware dot org>
- Date: Thu, 5 Apr 2018 08:50:14 -0700
- Subject: Re: [PATCH] MIPS: Fix GOT page counter in multi-got links
- References: <20180220175141.23620-1-james.cowgill@mips.com>
> 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.
-cary