Hello,
This series enables Pointer Authentication (PAC) support in elfutils.

The first four patches were originally posted by German Gomez. I've
rebased to the latest elfutils and added an extra patch that was
required to debug core dumps from PAC enabled applications.

These patches were tested on Debian Testing and Fedora 40 running on an
Apple M1 MacBook Pro (the CFLAG -mbranch-protection=standard needs to be
supplied to the build).

Without this series applied, the following tests failed:
 * run-backtrace-native.sh
 * run-backtrace-dwarf.sh
 * run-backtrace-native-core.sh
 * run-deleted.sh

I am happy to chop/change bits as necessary. 

A guide to pointer authentication can be found here:
https://developer.arm.com/-/media/Arm%20Developer%20Community/PDF/Learn%20the%20Architecture/Providing%20protection%20for%20complex%20software.pdf

Cheers,
-- 
Steve

German Gomez (4):
  aarch64: Create definitions for AARCH64_RA_SIGN_STATE register
  libdw, aarch64: Implement DW_CFA_AARCH64_negate_ra_state CFI
    instruction
  libdwfl, aarch64: Demangle return addresses using a PAC mask
  libdwfl, eu-stack, aarch64: Add API for setting AARCH64 PAC mask.

Steve Capper (1):
  libdwfl, aarch64: Read PAC mask from core

 backends/aarch64_corenote.c | 15 ++++++++++++++-
 backends/aarch64_init.c     |  6 +++---
 backends/aarch64_initreg.c  |  2 ++
 backends/aarch64_regs.c     |  5 ++++-
 libdw/cfi.c                 | 14 +++++++++++++-
 libdw/dwarf.h               |  5 +++++
 libdw/libdw.map             |  1 +
 libdwfl/dwfl_frame.c        |  3 +++
 libdwfl/dwfl_frame_regs.c   | 10 ++++++++++
 libdwfl/frame_unwind.c      | 14 +++++++++++++-
 libdwfl/libdwfl.h           |  6 ++++++
 libdwfl/libdwflP.h          |  7 +++++++
 libdwfl/linux-core-attach.c | 34 ++++++++++++++++++++++++++++++++++
 libdwfl/linux-pid-attach.c  | 34 ++++++++++++++++++++++++++++++++--
 tests/run-addrcfi.sh        |  1 +
 tests/run-allregs.sh        |  1 +
 16 files changed, 149 insertions(+), 9 deletions(-)

-- 
2.39.2

Reply via email to