[PATCH] D102985: [lld][ELF][SPARC] Fix GOT-relative relocations

LemonBoy via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun May 23 11:38:02 PDT 2021


LemonBoy added a comment.

In D102985#2776038 <https://reviews.llvm.org/D102985#2776038>, @MaskRay wrote:

> I think it is useful to set up a minimal goal. When you fix/implement GOT/PLT, make sure some basic programs with GOT/PLT are really working.
>
> If we do "fix GOT a" "fot GOT b" "fix PLT c", it is very likely that a subsequent commit may update an earlier commit. This is less elegant.
>
> So what's the state of this port? When I implemented ppc32 support and added riscv support, I made sure glibc/musl ppc32/riscv dynamically linking programs work.
>
> Some (candidate) milestones: (1) support -fno-pic -no-pie -nostdlib link (2) support dynamic linking (many stuff are here: RELATIVE/COPY/GOT/PLT/...) (3) support tls (4) support extra things that glibc static links require

The port is good enough to be able to successfully link the whole Zig compiler and its test suite.
This set of patches is part of my effort to let it build and run a whole Zig program that's dynamically linked against glibc, I'm progressively fixing lld as needed.

My current roadmap is:

- Implement the remaining TLS models {IE, GD, LD}
- Implement the `GOTDATA` relocations.

Some fixup commits to fix what was broken/missing are perhaps inelegant but necessary.


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

https://reviews.llvm.org/D102985



More information about the llvm-commits mailing list