[PATCH,V3 2/2] libsframe: bump version to 2.0

Indu Bhagat indu.bhagat@oracle.com
Fri Jul 11 06:24:34 GMT 2025


Create a new LIBSFRAME_2.0 entry (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.

---
[Changes in V3]
  - Remove LIBSFRAME_1.0 node altogether.
  - Combine the NEWS patch with the current.
[End of changes in V3]

[Changes in V2]
  - Combine patch 2/4 "libsframe: remove deprecated interface" with 3/4
    "libsframe: bump version to 2.0".
[End of changes in V2]
---
 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 1a746f1f097..138aaf82399 100644
--- a/binutils/NEWS
+++ b/binutils/NEWS
@@ -10,6 +10,18 @@
 
   Relocatable SFrame links are now fixed.
 
+* 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.
+
 * Readelf now recognizes RISC-V GNU_PROPERTY_RISCV_FEATURE_1_CFI_SS and
   GNU_PROPERTY_RISCV_FEATURE_1_CFI_LP_UNLABELED for zicfiss and zicfilp
   extensions.
diff --git a/include/sframe-api.h b/include/sframe-api.h
index 3dc18b6ad39..eb4afc804e1 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 5c3337670e1..e53abe798f9 100644
--- a/libsframe/sframe.c
+++ b/libsframe/sframe.c
@@ -1060,18 +1060,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.  */
 
-- 
2.43.0



More information about the Binutils mailing list