[PATCH] D31528: [ELF][MIPS] Multi-GOT implementation

Simon Atanasyan via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 26 03:17:21 PDT 2017


I do not think that hypothetical MIPS ABI will be _much_ _more_
similar to other ABIs. For example, as to me I would keep MIPS GOT
almost the same because it's efficient and works well. Even if a
dynamic linker starts to recognize multi-GOT, that removes only a few
lines of code from LLD. And during a long transition period we will
have to support both variants. Special rules for .dynsym ordering and
unsupported --hash-style=gnu are tightly related to MIPS GOT. There is
an oddity in calculation addends for "paired" relocations (R_MIPS_HI16
/ R_MIPS_LO16) but we can consider this issue as fixed in N32 and N64
ABI. Special sections like .reginfo, .MIPS.options, and .MIPS.abiflags
are required to describe varieties of MIPS hardware. It's possible to
rename default entry symbol s/__start/_start/, but it will not make
LLD code much cleaner.

In general, requirement to remove incompatibilities from MIPS ABI
looks like a requirement to make MIPS ISA more similar to say X86 ISA
for simplification of LLVM MC library code base. MIPS requires new ABI
and finally I think it gets the new ABI, but I do not expect that this
makes LLD code base smaller and cleaner.

On Tue, Apr 25, 2017 at 7:37 PM, Rui Ueyama via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
> Simon, can you start a discussion in the MIPS ABI mailing list (if exists)
> that you are getting a push-back due to the incompatibilities from other ELF
> standards?

-- 
Simon Atanasyan


More information about the llvm-commits mailing list