[PATCH] D141272: [lld][ARM] support position independent thunks for Armv4(T)

Fangrui Song via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 11 16:24:10 PST 2023


MaskRay added inline comments.


================
Comment at: lld/ELF/Thunks.cpp:1251
   case R_ARM_CALL:
-    if (config->picThunk)
-      // can be used for both Arm->Arm and Arm->Thumb
+    if (config->picThunk && thumb_target)
+        return make<ARMV4PILongBXThunk>(s, a);
----------------
```
if (config->picThunk) {
  if (thumb_target)
    return ... 
  return ...
}
```
or
```
if (config->picThunk)
  return thumb_target ? make<...> : make<...>)
```


================
Comment at: lld/ELF/Thunks.cpp:1259
   case R_ARM_THM_CALL:
-    if (config->picThunk && !thumb_target)
-      fatal("PIC relocations across state change not supported for Armv4T");
     if (config->picThunk && thumb_target)
+      return make<ThumbV4PILongThunk>(s, a);
----------------
ditto


================
Comment at: lld/test/ELF/arm-bl-v4.s:16
+
+#--- a.s
+ .text
----------------



================
Comment at: lld/test/ELF/arm-bl-v4.s:51
+// FAR-PIE-EMPTY:
+
+// NEAR-LABEL: <_start>:
----------------
`s/ +$//` on this line


================
Comment at: lld/test/ELF/arm-bl-v4.s:72
+
+#--- far.lds
+SECTIONS {
----------------
You could also use `#` for all comments in this file:)


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D141272



More information about the llvm-commits mailing list