[PATCH] D71143: [ELF][Hexagon] Add support for TLS IE relocations

Fangrui Song via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 6 11:55:23 PST 2020


MaskRay added a comment.

I'd like to ask some questions which can help understand the situation better.

- Does Hexagon have a binutils port or an alternative linker?
- Is -pie and -shared used a lot on Hexagon?
- How is Hexagon's dynamic loader ld.so implemented? Is the source code available?
- How is TLS going to be used on Hexagon?
- Is text relocations acceptable?
- Is it really impossible to use a PC-relative GOT address load on Hexagon? `R_GOT` on EM_386 has severe limitations. `EM_X86_64` fixed these issues. (I don't want to see newer architectures behave like it.)

I shall also mention that this is unfortunate.

>   bool canRelax = config->emachine != EM_ARM &&
>                   config->emachine != EM_RISCV;

RISC-V TLS has several problems. Its design/implementation was copied from ARM/MIPS. The two architectures really do not provide the best reference for TLS implementations. The RISC-V TLS implementation has several defects. I've reported a few bugs on the binutils bugzilla.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D71143/new/

https://reviews.llvm.org/D71143





More information about the llvm-commits mailing list