]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
[SFrame-V3] include: libsframe: remove SFRAME_F_FRAME_POINTER flag
authorIndu Bhagat <indu.bhagat@oracle.com>
Fri, 16 Jan 2026 00:43:49 +0000 (16:43 -0800)
committerIndu Bhagat <indu.bhagat@oracle.com>
Fri, 16 Jan 2026 01:02:27 +0000 (17:02 -0800)
commit2a99ed634043c71882f9c07ebd3dc0bb81aded28
tree87eb334ca07881bc52ac690bc05b8556b26e692b
parent530d779e2bfd47fa1d273ab44d6d8234b65f2de3
[SFrame-V3] include: libsframe: remove SFRAME_F_FRAME_POINTER flag

SFrame V3 has 8 precious flag bits, two of which are being used.  More
flag byte (s) can be added to the auxiliary header when it comes to
that.  But for now, it may be worthwhile to use the 8-bits frugally.

SFRAME_F_FRAME_POINTER flag bit was added with the intention of marking
binaries built with frame-pointer preserved.  A stack tracer could then
use this information, to unambiguously ascertain whether frame-pointer
based stack traces will be precise.  But such a marking of binary will
ideally be done by the linker, and at the moment adding such a framework
is not justified for such small gain.  The outcome of this is that
SFRAME_F_FRAME_POINTER is never set in SFrame V2 binaries.

Remove the definition SFRAME_F_FRAME_POINTER for SFrame V3.  The
relinquished bit can be used (in future format incarnations) when
reading/dumping SFrame V2 sections are no longer supported by consumers.
Changing the values of existing flags, e.g.,
SFRAME_F_FDE_FUNC_START_PCREL, is not being done for V3, to avoid
version-specific flag bit reading (albeit doable) in consumers.

Related changes to the specification are done in a subsequent commit.

include/
* sframe.h (SFRAME_V3_F_ALL_FLAGS): Remove
SFRAME_F_FRAME_POINTER from the set of V3 flags.
libsframe/
* sframe-dump.c (dump_sframe_header_flags): Add a comment for
clarity.
include/sframe.h
libsframe/sframe-dump.c