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

Jens Remus jremus@linux.ibm.com
Fri Jul 25 16:32:24 GMT 2025


Changes in RFC v4 (see individual patch notes for further details):
- SFrame represents RA undefined as SFrame FRE without any offsets
  instead of SFrame FDE without any FREs and a RA undefined flag set.
  This aligns more closely to DWARF and spares one FDE info word flag.

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.

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 FRE without any offsets:

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 v4 0/3] sframe:
Represent .cfi_undefined RA", which enables SFrame to represent
RA undefined as SFrame FRE without any offsets:
https://inbox.sourceware.org/binutils/20250725162333.2545584-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                 | 14 +++
 sysdeps/generic/sframe-read.h                 |  5 ++
 sysdeps/generic/sframe.c                      | 88 ++++++++++++++-----
 sysdeps/generic/sframe.h                      | 65 ++++++++++++--
 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, 294 insertions(+), 31 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