This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFC: Use .plt section sh_entsize instead of GET_PLT_ENTRY_SIZE


On Mon, 16 Sep 2013, H.J. Lu wrote:

> >  MIPS PLT can now include multiple entries, of a different size each,
> > referring to the same GOT offset and the PLT entries are not sorted
> > (anymore) in the increasing GOT offset order (the difference is the MIPS
> > port passes the GOT offset in a register rather than on the stack, but
> > that's a minor implementation detail that does not affect the overall
> > design).  Perhaps you could take a similar approach to solve your problem.
> >
> 
> I see
> 
> bfd_vma
> _bfd_mips_elf_plt_sym_val (bfd_vma i, const asection *plt,
>                            const arelent *rel ATTRIBUTE_UNUSED)
> {
>   return (plt->vma
>           + 4 * ARRAY_SIZE (mips_o32_exec_plt0_entry)
>           + i * 4 * ARRAY_SIZE (mips_exec_plt_entry));
> }
> 
> How does it work with variable PLT entry sizes?

 That's used for n64 and n32 binaries that at the moment do not support 
mixed-size PLTs.  This handler is used by _bfd_elf_get_synthetic_symtab, 
o32 binaries use _bfd_mips_elf_get_synthetic_symtab instead.

  Maciej


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]