binutils-gdb/libsframe
Indu Bhagat 4553b29a0e [SFrame-V3] sframe: doc: specification changes for SFrame version 3
Update the SFrame specification to document Version 3. This version
introduces fundamental changes to support additional scenarios (e.g.,
s390x register-based recovery, x86_64 DRAP) using a 'Flexible FDE'
definition while maintaining compactness for standard frames.

Key changes documented include:
  - The SFrame Function Descriptor Entry (FDE) is split into two
    distinct structures:
      [sframe_func_desc_idx] Fixed-size index for binary search.
      [sframe_func_desc_attr] Variable-location attributes including new
      info bytes.
  - Flexible FDEs (SFRAME_FDE_TYPE_FLEX)
    A new FDE type that interprets FRE bytes not as simple stack
    offsets, but as pairs of "Control Data" and "Offset". This
    allows encoding complex recovery rules (e.g., "CFA = *(RBP - 8)")
    without bloating the format for standard cases.
  - Provision for defining new FDE types in future.  A total of 5 bits
    are reserved for this purpose.
  - Make explicit distinction between FDE Types vs. PC Type
      [FDE Type] Defines how to interpret stack trace data (Default vs. Flex).
      [PC Type] Defines how PCs are advanced for an FDE (Increment vs. Mask).
  - Other renames like sfde_func_start_address is renamed to
    sfdi_func_start_offset to accurately reflect that it is a relative
    offset, not an absolute address.
  - Remove SFRAME_F_FRAME_POINTER from SFrame V3.  The corresponding bit
    is now unused in SFrame V3.

libsframe/doc/
	* sframe-spec.texi: Update text for SFrame Version 3.
	(Changes from Version 2 to Version 3): New section.
	(The SFrame FDE Index): New section documenting sframe_func_desc_idx.
	(The SFrame FDE Attribute): New section documenting
	sframe_func_desc_attr.
	(The SFrame FDE Info Bytes): Expanded to document sfda_func_info and
	sfda_func_info2 split.
	(The SFrame FDE PC Types): Document SFRAME_V3_FDE_PCTYPE_INC and
	SFRAME_V3_FDE_PCTYPE_MASK.
	(The SFrame FDE Types): Document SFRAME_FDE_TYPE_DEFAULT and
	SFRAME_FDE_TYPE_FLEX.
	(Interpretation of SFrame FREs): Split into Default and Flexible
	interpretation.
	(Flexible FDE Type Interpretation): Document the Control
	Data/Offset pair encoding.
2026-01-15 17:02:28 -08:00
..
doc [SFrame-V3] sframe: doc: specification changes for SFrame version 3 2026-01-15 17:02:28 -08:00
testsuite [SFrame-V3] include: gas: libsframe: split FDE into idx and attr 2026-01-15 17:02:27 -08:00
aclocal.m4 Binutils: Add clang LTO support to AR and RANLIB 2025-09-25 12:30:13 +08:00
config.h.in
configure tidy m4 plugin config support 2025-11-03 10:59:50 +10:30
configure.ac Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
libsframe.ver [SFrame-V3] bfd: ld: sframe: avoid unnecessary decoding of SFrame FREs at link time 2026-01-15 17:02:26 -08:00
libtool-version [SFrame-V3] libsframe: bump so version to libsframe.so.3.0.0 2026-01-15 17:02:24 -08:00
Makefile.am Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
Makefile.in [SFrame-V3] libsframe: testsuite: add a new test for SFrame V2 2026-01-15 17:02:23 -08:00
README libsframe: add README and mention expectations 2026-01-05 11:53:13 -08:00
sframe-dump.c [SFrame-V3] include: libsframe: remove SFRAME_F_FRAME_POINTER flag 2026-01-15 17:02:27 -08:00
sframe-error.c Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
sframe-impl.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
sframe.c [SFrame-V3] include: gas: libsframe: split FDE into idx and attr 2026-01-15 17:02:27 -08:00

libsframe is a support library for the GNU Binutils collection (currently used
by GNU ld, objdump, etc.) to read and write SFrame section data.

Note: This library is currently intended for internal use by GNU Binutils only.
Strict guarantees for ABI compatibility are not provided, and external projects
should not rely on the stability of these interfaces.