On 04/06/2022 00:52, Florian Mayer via Gcc wrote:
Hey!
We are in the process of implementing MTE (Memory Tagging Extension)
stack tagging in LLVM. To support stack tagging in combination with
exceptions, we need to make sure that the unwinder will untag stack
frames, to avoid leaving behind stale tags. As such, we need some way
to communicate to the unwinder to do that.
In a discussion on llvm-dev [1], it was decided the best way to go
forward with this would be to add a new character ('G' for taG, as the
MTE instructions stg etc.) to the eh_frame augmentation string, and
then handle that in libunwind by clearing the tags of the respective
frame.
How does that sound? Would that be a good course of action for GCC as well?
Thanks,
Florian
[1]: https://lists.llvm.org/pipermail/llvm-dev/2020-May/141345.html
Hi Florian,
This is something that needs to be specified in the ABI, not just agreed
between a couple of compilers. So while the community input is helpful,
it isn't enough.
The correct place to do this is in the ABI project here:
https://github.com/ARM-software/abi-aa
R.