This is the mail archive of the 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: SH FDPIC ABI spec/binutils and kernel conflict on flag definitions

On Thu, Sep 10, 2015 at 04:53:35PM +0100, David Howells wrote:
> Rich Felker <> wrote:
> > On the other hand, the only existing way to produce a binary that both
> > (1) needs constant displacement, and (2) actually gets constant
> > displacement from the kernel at load time, is to manually edit the ELF
> > headers to flip the bit. So I really doubt any such binaries exist. Do
> > you have a reason to believe they do?
> Well, Fujitsu asked for it for FRV - I've no idea whether they have such
> binaries still.

OK, I've solved part of the mystery: on FRV and Blackfin, binutils
matches the kernel behavior and conflicts with the (effectively wrong)
ABI documents. As can be seen at the following locations in the
source, EF_$ARCH_PIC is cleared by default and set when there is a
cross-segment relocation that forces constant displacement:



And SH does the opposite:;a=blob;f=bfd/elf32-sh.c;h=7b8d7636de5fe4ce169eacbeb876ab7d741df798;hb=HEAD#l5499;a=blob;f=bfd/elf32-sh.c;h=7b8d7636de5fe4ce169eacbeb876ab7d741df798;hb=HEAD#l6656

So I think for consistency with other FDPIC targets, and to avoid
changing kernel ABI, binutils should just be fixed to match the
Blackfin and FRV interpretation of EF_$ARCH_PIC on SH as well.

Ideally fixed versions of the ABI documents should also be produced.


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