[PATCH] D70027: ARM: Don't emit R_ARM_NONE relocations to compact unwinding decoders in .ARM.exidx on Android.
Peter Collingbourne via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 11 20:57:57 PST 2019
pcc marked an inline comment as done.
pcc 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));
----------------
smeenai wrote:
> 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.
Correct, although this change is motivated by an effort to make it dynamically linked, at least in some circumstances.
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