This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH] (version 2) Change MIPS linker stubs to allow for more than 2^15 symbols.
- From: Richard Sandiford <richard at codesourcery dot com>
- To: Thiemo Seufer <ths at networkno dot de>
- Cc: David Daney <ddaney at avtrex dot com>, binutils at sourceware dot org, Daniel Jacobowitz <drow at false dot org>
- Date: Fri, 09 Jun 2006 20:39:52 +0100
- Subject: Re: [PATCH] (version 2) Change MIPS linker stubs to allow for more than 2^15 symbols.
- References: <4488A29D.5040100@avtrex.com> <87hd2ukeb2.fsf@talisman.home> <20060609154619.GB12079@networkno.de>
Thiemo Seufer <ths@networkno.de> writes:
> Richard Sandiford wrote:
>> David Daney <ddaney@avtrex.com> writes:
>> > ! #define MIPS_FUNCTION_STUB_SIZE(INFO) \
>> > ! (elf_hash_table (INFO)->dynsymcount > 65536 ? 20 : 16)
>>
>> Sorry to be a pain, but as I said earlier, I really do think we should
>> cache the chosen stub size in mips_elf_link_hash_table (and get rid of
>> this macro entirely). That will emphasise that always_size_dynamic_sections
>> is the place that makes the decision, and that it's only safe to use this
>> value once that function has been called. I think that will be more robust
>> and easier to understand in future.
>>
>> Apart from that, and from Thiemo's and Daniel's comments, this looks
>> really good to me. Thanks a lot for doing this!
>
> Does this followup patch look ok?
Looks good, apart from the fact that you're setting function_stub_size
in _bfd_mips_elf_create_dynamic_sections rather than the suggested
always_size_dynamic_sections. Was there a particular reason for that?
As David says, create_dynamic_sections is too early; AIUI,
create_dynamic_sections is called as soon as we know we need
dynamic sections, so the value of dynsymcount at that point is
going to be pretty arbitrary.
The reason I suggested always_size_sections is that I think we should
determine the stub entry size and stub section size at the same time.
Thanks for doing this though! I volunteer to come up with some
testcases tomorrow.
Richard