[PATCH] (version 2) Change MIPS linker stubs to allow for more than 2^15 symbols.
Richard Sandiford
richard@codesourcery.com
Fri Jun 9 21:00:00 GMT 2006
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
More information about the Binutils
mailing list