[RFC PATCH v3 0/3] s390x: Add support for SFrame stack backtracing

Jens Remus jremus@linux.ibm.com
Wed Jul 23 14:23:44 GMT 2025


Changes in RFC v3 (see individual patch notes for further details):
- Rebase on top of Adhemerval's series "[PATCH v2 0/2] sframe: Disable
  by default and support SFRAME_F_FDE_FUNC_START_PCREL".
- New patch to support RA undefined as indication for outermost frame
  in SFrame.
- Remove MD_DETECT_OUTERMOST_FRAME, as the s390x ELF ABI does not
  provide any mean to detect an outermost frame.  (Stefan)
  Instead rely on SFrame enhancement to represent RA undefined.
- Sync sframe.h to latest Binutils s390 SFrame support patch series.

Changes in RFC v2:
- Rebase on top of Claudiu's series v6.
- Sync sframe.h to latest Binutils s390 SFrame support patch series.
- Use macros SFRAME_CFA_OFFSET_DECODE and SFRAME_OFFSET_IS_REGNUM
  that s390 64-bit (s390x) overwrites instead of ifdefs.
- Use s390x/S390X, as done in Binutils. (Indu)
- When in doubt fallback to DWARF stack tracer instead of stopping.
- Implement MD_DETECT_OUTERMOST_FRAME for s390 64-bit (s390x).

This patch series adds s390 64-bit (s390x) support for SFrame.  It is
RFC, as it depends on the upcoming Binutils 2.45, which provides
s390x SFrame support, and an on-top Binutils patch series to represent
RA undefined as SFrame FDE without any FREs and a new RA undefined
flag set:

It is based on top of Adhemerval Zanella's Glibc patch series
"[PATCH v2 0/2] sframe: Disable by default and support
SFRAME_F_FDE_FUNC_START_PCREL":
https://inbox.sourceware.org/libc-alpha/20250721234236.1434590-1-adhemerval.zanella@linaro.org/

It depends on my Binutils patch series "[PATCH v3 0/3] sframe:
Represent .cfi_undefined RA", which enables SFrame to represent
RA undefined as SFrame FDE without and FREs and a new RA undefined
flag set:
https://inbox.sourceware.org/binutils/20250723131758.1926302-1-jremus@linux.ibm.com/

Thanks and regards,
Jens

Jens Remus (3):
  sframe: Support for RA undefined as indication for outermost frame
  sframe: Start stack trace from PC and CFA
  s390: Add SFrame support for s390 64-bit (s390x) architecture

 debug/backtrace.c                             |  9 +-
 sysdeps/generic/sframe-read.c                 | 11 ++-
 sysdeps/generic/sframe-read.h                 |  3 +-
 sysdeps/generic/sframe.c                      | 95 ++++++++++++++-----
 sysdeps/generic/sframe.h                      | 79 ++++++++++++---
 sysdeps/s390/configure                        |  0
 sysdeps/s390/s390-64/configure                |  4 +
 sysdeps/s390/s390-64/configure.ac             |  4 +
 sysdeps/s390/s390-64/sframe.h                 | 50 ++++++++++
 .../sysv/linux/s390/s390-64/uw-sigframe.h     | 86 +++++++++++++++++
 10 files changed, 301 insertions(+), 40 deletions(-)
 mode change 100644 => 100755 sysdeps/s390/configure
 mode change 100644 => 100755 sysdeps/s390/s390-64/configure
 create mode 100644 sysdeps/s390/s390-64/sframe.h
 create mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/uw-sigframe.h

-- 
2.48.1



More information about the Libc-alpha mailing list