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

Shoaib Meenai via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 11 20:35:09 PST 2019


smeenai added inline comments.


================
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));
----------------
peter.smith wrote:
> 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.
> ```
My understanding is that the unwinder isn't dynamically linked on Android, at least by default ... it's part of libgcc (or libunwind for armv7), both of which are static in the NDK.


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