This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: [PATCH] MIPS/ELF: Fixes for external R_MIPS_LITERAL relocations
- From: Thiemo Seufer <ica2_ts at csv dot ica dot uni-stuttgart dot de>
- To: "Maciej W. Rozycki" <macro at mips dot com>
- Cc: binutils at sources dot redhat dot com
- Date: Wed, 9 Feb 2005 01:21:47 +0100
- Subject: Re: [PATCH] MIPS/ELF: Fixes for external R_MIPS_LITERAL relocations
- References: <Pine.LNX.4.61.0502071609020.22211@perivale.mips.com>
Maciej W. Rozycki wrote:
> Hello,
>
> According to the SVR4 MIPS ABI supplement and the "64-bit ELF Object File
> Specification" document R_MIPS_LITERAL relocations are only defined for
> local symbols. BFD currently allows them for all symbols.
>
> Here is a fix -- tested for the mips64-linux-gnu, mipsel-linux-gnu and
> mips64el-elf targets with no regressions.
>
> 2005-02-07 Maciej W. Rozycki <macro@mips.com>
>
> * elf32-mips.c (_bfd_mips_elf32_gprel16_reloc): Reject
> R_MIPS_LITERAL relocations for external symbols.
> * elf64-mips.c (mips_elf64_literal_reloc): Likewise.
> * elfn32-mips.c (mips_elf_literal_reloc): Likewise.
>
> OK to apply (or should we have mips_elf_literal_reloc() calling
> _bfd_mips_elf32_gprel16_reloc() after the check for elf32-mips.c now)?
The idea was to give R_MIPS_LITERAL its own handler function because its
values are supposed to get merged. I didn't do so for elf32-mips.c
because there's a weird special casing of _bfd_mips_elf32_gprel16_reloc
in elfxx-mips.c
Btw, R_MIPS16_GPREL seems also to have inconsistencies.
Thiemo