[all-commits] [llvm/llvm-project] 025394: Reapply "[lld] Support thumb PLTs" (#93631) (#93644)

PiJoules via All-commits all-commits at lists.llvm.org
Wed May 29 13:28:55 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 025394fa0dd3d0c20cc755f79ed521b85e5d7943
      https://github.com/llvm/llvm-project/commit/025394fa0dd3d0c20cc755f79ed521b85e5d7943
  Author: PiJoules <6019989+PiJoules at users.noreply.github.com>
  Date:   2024-05-29 (Wed, 29 May 2024)

  Changed paths:
    M lld/ELF/Arch/ARM.cpp
    M lld/ELF/Config.h
    M lld/ELF/InputFiles.cpp
    A lld/test/ELF/armv8-thumb-plt-reloc.s

  Log Message:
  -----------
  Reapply "[lld] Support thumb PLTs" (#93631) (#93644)

This reverts commit 7832769d329ead264aff238c06dce086b3a74922.

This was reverted prior due to a test failure on the windows builder. I
think this was because we didn't specify the triple and assumed windows.
The other tests use the full triple specifying linux, so we follow suite
here.

---

We are using PLTs for cortex-m33 which only supports thumb. More
specifically, this is for a very restricted use case. There's no MMU so
there's no sharing of virtual addresses between two processes, but this
is fine. The MCU is used for running [chre
nanoapps](https://android.googlesource.com/platform/system/chre/+/HEAD/doc/nanoapp_overview.md)
for android. Each nanoapp is a shared library (but effectively acts as
an executable containing a test suite) that is loaded and run on the MCU
one binary at a time and there's only one process running at a time, so
we ensure that the same text segment cannot be shared by two different
running executables. GNU LD supports thumb PLTs but we want to migrate
to a clang toolchain and use LLD, so thumb PLTs are needed.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list