[PATCH v3 0/3] sframe: Disable by default and support SFRAME_F_FDE_FUNC_START_PCREL

Adhemerval Zanella adhemerval.zanella@linaro.org
Wed Jul 23 13:47:22 GMT 2025


The SFrame prior binutils 2.45 is unstable on multiple architectures,
so upcoming binutils 2.45 should be considered the minimum required
version for SFrame backtracing. This version also includes an erratum,
SFRAME_F_FDE_FUNC_START_PCREL, which is not currently supported on
glibc. SFrame with this flag is currently ignored by glibc SFrame
handling.

Due to the experimental nature, the first patch disables SFrame by
default, adds extra checks to enable iff the architecture's explicit
enablement is on glibc, and fixes some other build issues.

The second patch adds support for the SFRAME_F_FDE_FUNC_START_PCREL
erratum, which adds SFrame support for binaries built with binutils
2.45.

Changes from v3:
* Fix configure check when trying to enable SFrame with old
  toolchains.
* Keep PT_GNU_SFRAME support on _dl-find_object.
* Fixed wording on INSTALL.

Changes from v2:
* Fixed STRIP value if not defined.
* Fixed configure check if libc_cv_support_sframe is not set.
* Added SFrame checks on tst-dl_find_object.c

Adhemerval Zanella (2):
  Disable SFrame support by default
  elf: Check SFrame on tst-dl_find_object.c

Claudiu Zissulescu (1):
  sframe: Add support for SFRAME_F_FDE_FUNC_START_PCREL flag

 INSTALL                                     |   9 +-
 NEWS                                        |   7 +-
 aclocal.m4                                  |   4 +
 config.h.in                                 |   3 +
 config.make.in                              |   2 +-
 configure                                   | 100 ++++++++-------
 configure.ac                                |  60 ++++-----
 debug/Makefile                              |  16 ++-
 debug/backtrace.c                           |   6 +
 {sysdeps/pthread => debug}/tst-backtrace1.c |   0
 elf/tst-dl_find_object.c                    |  14 +++
 manual/install.texi                         |  11 +-
 sysdeps/aarch64/configure                   |   2 +
 sysdeps/aarch64/configure.ac                |   2 +
 sysdeps/generic/Makefile                    |   2 +
 sysdeps/generic/sframe-read.c               | 128 +++++++++++++++-----
 sysdeps/generic/sframe-read.h               |   6 +
 sysdeps/generic/sframe.h                    |  15 ++-
 sysdeps/pthread/Makefile                    |   1 -
 sysdeps/x86_64/configure                    |   2 +
 sysdeps/x86_64/configure.ac                 |   2 +
 21 files changed, 273 insertions(+), 119 deletions(-)
 rename {sysdeps/pthread => debug}/tst-backtrace1.c (100%)

-- 
2.43.0



More information about the Libc-alpha mailing list