[binutils-gdb] libsframe: bump version to 2.0

Indu Bhagat ibhagat@sourceware.org
Sat Jul 12 08:10:39 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6a959b127014b262bb62b9fd31fd4d1f4ce4777f

commit 6a959b127014b262bb62b9fd31fd4d1f4ce4777f
Author: Indu Bhagat <indu.bhagat@oracle.com>
Date:   Sat Jul 12 01:09:17 2025 -0700

    libsframe: bump version to 2.0
    
    Remove LIBSFRAME_1.1, LIBSFRAME_1.0 nodes and add a new LIBSFRAME_2.0
    node (non-inheritance version) to create new global versioned symbols.
    Also announce libsframe.so.2 in NEWS.
    
    New APIs:
         sframe_decoder_get_flags;
         sframe_decoder_get_offsetof_fde_start_addr;
         sframe_encoder_get_flags;
         sframe_encoder_get_offsetof_fde_start_addr;
    
    Removed APIs: (already deprecated since X-2 release)
         sframe_get_funcdesc_with_addr;
    
    APIs with changed semantics:
         sframe_decoder_get_funcdesc_v2;
         sframe_encoder_add_funcdesc_v2;
         sframe_encoder_write;
    
    lisbframe/
            * libsframe.ver: Define new LIBSFRAME_2.0.
            * libtool-version: Bump the 'current' numeral to indicate a binary
            incompatible release.
    include/
            * sframe-api.h (sframe_get_funcdesc_with_addr): Remove
            deprecated interface.
    libsframe/
            * sframe.c (sframe_get_funcdesc_with_addr): Likewise.
    binutils/
            * NEWS: Announce new versioned release of libsframe.

Diff:
---
 binutils/NEWS             | 12 ++++++++++++
 include/sframe-api.h      |  8 --------
 libsframe/libsframe.ver   | 14 +++++---------
 libsframe/libtool-version |  2 +-
 libsframe/sframe.c        | 12 ------------
 5 files changed, 18 insertions(+), 30 deletions(-)

diff --git a/binutils/NEWS b/binutils/NEWS
index 6ef8e67c3e1..89351d70e25 100644
--- a/binutils/NEWS
+++ b/binutils/NEWS
@@ -1,5 +1,17 @@
 -*- text -*-
 
+* New versioned release of libsframe: libsframe.so.2.  This release introduces
+  versioned symbols with version node name LIBSFRAME_2.0.  Some new symbols
+  have been added to support the new flag SFRAME_F_FDE_FUNC_START_PCREL and
+  retrieving flags from SFrame decoder and encoder objects:
+    - Addition of sframe_decoder_get_flags,
+      sframe_decoder_get_offsetof_fde_start_addr, sframe_encoder_get_flags,
+      sframe_encoder_get_offsetof_fde_start_addr.
+  This release also includes backward-incompatible ABI changes:
+    - Removal of sframe_get_funcdesc_with_addr.
+    - Change in the behavior of sframe_decoder_get_funcdesc_v2,
+      sframe_encoder_add_funcdesc_v2 and sframe_encoder_write.
+
 * On s390 64-bit (s390x), gas, ld, objdump, and readelf now support generating
   and processing SFrame V2 stack trace information (.sframe).  The assembler
   generates SFrame info from CFI directives with option "--gsframe".  The
diff --git a/include/sframe-api.h b/include/sframe-api.h
index ac4f19a66f0..8c26257fb64 100644
--- a/include/sframe-api.h
+++ b/include/sframe-api.h
@@ -153,14 +153,6 @@ sframe_decoder_get_fixed_fp_offset (sframe_decoder_ctx *dctx);
 extern int8_t
 sframe_decoder_get_fixed_ra_offset (sframe_decoder_ctx *dctx);
 
-/* Find the function descriptor entry which contains the specified address.
-
-   Note: This function is deprecated and will be removed from future release
-   X+2 of the library.  */
-extern void *
-sframe_get_funcdesc_with_addr (sframe_decoder_ctx *dctx, int32_t addr,
-			       int *errp);
-
 /* Find the SFrame Frame Row Entry which contains the PC.  Returns
    SFRAME_ERR if failure.  */
 
diff --git a/libsframe/libsframe.ver b/libsframe/libsframe.ver
index 06324eecfc5..8cc80da2f26 100644
--- a/libsframe/libsframe.ver
+++ b/libsframe/libsframe.ver
@@ -1,6 +1,6 @@
 LIBSFRAME_0.0 { };
 
-LIBSFRAME_1.0 {
+LIBSFRAME_2.0 {
   global:
     sframe_decoder_free;
     sframe_fde_create_func_info;
@@ -11,12 +11,13 @@ LIBSFRAME_1.0 {
     sframe_fre_get_ra_offset;
     sframe_fre_get_ra_mangled_p;
     sframe_decode;
+    sframe_decoder_get_flags;
     sframe_decoder_get_hdr_size;
     sframe_decoder_get_abi_arch;
     sframe_decoder_get_version;
+    sframe_decoder_get_offsetof_fde_start_addr;
     sframe_decoder_get_fixed_fp_offset;
     sframe_decoder_get_fixed_ra_offset;
-    sframe_get_funcdesc_with_addr;
     sframe_find_fre;
     sframe_decoder_get_num_fidx;
     sframe_decoder_get_funcdesc;
@@ -24,9 +25,11 @@ LIBSFRAME_1.0 {
     sframe_decoder_get_fre;
     sframe_encode;
     sframe_encoder_free;
+    sframe_encoder_get_flags;
     sframe_encoder_get_hdr_size;
     sframe_encoder_get_abi_arch;
     sframe_encoder_get_version;
+    sframe_encoder_get_offsetof_fde_start_addr;
     sframe_encoder_get_num_fidx;
     sframe_encoder_add_fre;
     sframe_encoder_add_funcdesc;
@@ -38,10 +41,3 @@ LIBSFRAME_1.0 {
   local:
     *;
 } LIBSFRAME_0.0;
-
-LIBSFRAME_1.1 {
-    sframe_decoder_get_flags;
-    sframe_decoder_get_offsetof_fde_start_addr;
-    sframe_encoder_get_flags;
-    sframe_encoder_get_offsetof_fde_start_addr;
-} LIBSFRAME_1.0;
diff --git a/libsframe/libtool-version b/libsframe/libtool-version
index 9dcbe48e47d..e06835d7c65 100644
--- a/libsframe/libtool-version
+++ b/libsframe/libtool-version
@@ -27,4 +27,4 @@
 #       then set age to 0.
 #
 # CURRENT:REVISION:AGE
-1:0:0
+2:0:0
diff --git a/libsframe/sframe.c b/libsframe/sframe.c
index 659b39d4ddd..7357fc15abc 100644
--- a/libsframe/sframe.c
+++ b/libsframe/sframe.c
@@ -1079,18 +1079,6 @@ sframe_decoder_get_offsetof_fde_start_addr (sframe_decoder_ctx *dctx,
 	  + offsetof (sframe_func_desc_entry, sfde_func_start_address));
 }
 
-/* Find the function descriptor entry which contains the specified address
-   ADDR.
-   This function is deprecated and will be removed from libsframe.so.2.  */
-
-void *
-sframe_get_funcdesc_with_addr (sframe_decoder_ctx *ctx __attribute__ ((unused)),
-			       int32_t addr __attribute__ ((unused)),
-			       int *errp)
-{
-  return sframe_ret_set_errno (errp, SFRAME_ERR_INVAL);
-}
-
 /* Find the function descriptor entry starting which contains the specified
    address ADDR.  */


More information about the Binutils-cvs mailing list