- User Since
- Dec 3 2019, 7:48 AM (18 w, 2 d)
Please help me how to add a test for it, in the current state this patch won't do anything because the standard build for libunwind does not add -mbranch-protection=standard (or bti).
Rebased and address review comments.
Mon, Apr 6
Fix review comments from Tamas.
Fri, Apr 3
The patched is rebased and the hopefully the logic is now simpler.
Thu, Apr 2
Wed, Apr 1
Tue, Mar 31
just a nit, LGTM otherwise.
Mon, Mar 30
Fri, Mar 20
Fri, Mar 13
Patch is rebased, test is updated.
Mar 5 2020
Mar 4 2020
Thanks for the comments, patch is improved
isStringAttribute() check removed, the attribute is always a string in this case or "null" so the check is not needed.
Function level the attribute is now only change when needed, so as the function level attribute is expected to be rare I hope the performance won't be impacted by the patch.
I kept the "tri-state" logic because of the emitted functions. Introducing a "branch-target-enforcement-disabled" attribute seems even more confusing for me.
Feb 28 2020
Previous version of the patch handled only the functions that are created in clang. Sanitizers can't see the codegen options therefore they also disables BTI.
This version of the patch is less invasive in my opinion, effects only aarch64.
branch-target-enforcement(BTI) and sign-return-address(PAC) are added to all function that comes from clang frontend.
If the backend encounters with the function without BTI attribute but the module is compiled with BTI then it assumes it should be made BTI compatible.
Feb 26 2020
rebased and test is updated.
Feb 25 2020
Feb 24 2020
Feb 20 2020
Feb 18 2020
Feb 17 2020
Could you submit it on my behalf?
Feb 16 2020
Rebased to 105a270028ab and rename pacPlt to zPacPlt is applied.
Feb 15 2020
Feb 14 2020
Feb 13 2020
I don't have commit right, could you please commit it on my behalf?
Feb 12 2020
Jan 20 2020
Patch is rebased due to conflict with the upstream changes.
Jan 14 2020
Thanks for the review, I have no push rights, could you please submit it on my behalf?