[PATCH] D70027: ARM: Don't emit R_ARM_NONE relocations to compact unwinding decoders in .ARM.exidx on Android.

Peter Smith via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 11 02:53:57 PST 2019


peter.smith added a comment.

Other than a few suggestions for some comments, this is Android specific so no objections from me.



================
Comment at: llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp:1275
 
-  if (PersonalityIndex < ARM::EHABI::NUM_PERSONALITY_INDEX)
+  if (PersonalityIndex < ARM::EHABI::NUM_PERSONALITY_INDEX && !IsAndroid)
     EmitPersonalityFixup(GetAEABIUnwindPersonalityName(PersonalityIndex));
----------------
Is it worth adding a comment like:

```
The EHABI requires a dependency preserving R_ARM_NONE relocation to the personality routine to protect it from an arbitrary platforms static linker garbage collection. We disable this for Android where the unwinder is dynamically linked.
```


================
Comment at: llvm/test/MC/ARM/eh-compact-pr0.s:68
 @ another relocation entry for __aeabi_unwind_cpp_pr0, so that the linker
 @ will keep __aeabi_unwind_cpp_pr0.
 @-------------------------------------------------------------------------------
----------------
Can we update the comment to account for the Android case? there is a similar comment for TEST2. 


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D70027





More information about the llvm-commits mailing list