[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