[PATCH 00/10] Patches for libsframe versioning and symbol versioning

Indu Bhagat indu.bhagat@oracle.com
Fri Jun 23 04:44:38 GMT 2023


Hi,

This patch set adds versioning support to libsframe, which is needed to manage
the upcoming ABI breaking changes (some of which are included in this
patchset).  It also adds symbol versioning for libsframe.  As the library is
still evolving, it will be better to add symbol versioning support now.

I would like some more eyes on this sort of thing, especially the three patches:

  [1/10] libsframe: add library versioning
  [3/10] libsframe: add symbol versioning
  [10/10] binutils/NEWS: add note about upcoming libsframe changes

Testing notes:
 - Regression tested various cross-builds on x86_64
 - try bot does not show any new failures
 - Build works on Solaris, mingw, cygwin
 - Also regression tested on a FreeBSD VM

Further details for the patch series:
The first release of the library (libsframe.so.0) had unversioned
symbols.  The next release of the library (libsframe.so.1) will have versioned
symbols with version node name LIBSFRAME_1.0.  As libsframe.so.0 ->
libsframe.so.1 indicates an ABI break, I realised that including the patches:

  [4/10] libsframe: update the semantics of sframe_fre_get_ra_offset
  [5/10] libsframe: update the semantics of sframe_fre_get_fp_offset

can be safely done.  My previous question to the mailing list, in hindsight,
was a moot point https://sourceware.org/pipermail/binutils/2023-June/127801.html.

After this patchset, I will proceed with further ABI changes, format bump to
SFrame version 2 and its related changes.

Thanks,

Indu Bhagat (10):
  libsframe: add library versioning
  libsframe: remove sframe_get_funcdesc_with_addr API
  libsframe: add symbol versioning
  libsframe: update the semantics of sframe_fre_get_ra_offset
  libsframe: update the semantics of sframe_fre_get_fp_offset
  libsframe: use uint32_t for fre_type and fde_type function args
  bfd: libsframe: use uint32_t for return type of sframe_calc_fre_type
  libsframe: use uint8_t instead of unsigned char for abi_arch
  libsframe: use uint8_t for return type of sframe_fre_get_base_reg_id
  binutils/NEWS: add note about upcoming libsframe changes

 bfd/elf-sframe.c          |   2 +-
 bfd/elfxx-x86.c           |   2 +-
 binutils/NEWS             |   6 +++
 include/sframe-api.h      |  21 ++++----
 libsframe/Makefile.am     |  15 ++++++
 libsframe/Makefile.in     |  14 +++++-
 libsframe/configure       |  63 ++++++++++++++++++++++-
 libsframe/configure.ac    |  28 +++++++++++
 libsframe/libsframe.ver   |  36 +++++++++++++
 libsframe/libtool-version |  30 +++++++++++
 libsframe/sframe-dump.c   |  20 +++++---
 libsframe/sframe.c        | 103 +++++++++++++++++++++++---------------
 12 files changed, 277 insertions(+), 63 deletions(-)
 create mode 100644 libsframe/libsframe.ver
 create mode 100644 libsframe/libtool-version

-- 
2.39.2



More information about the Binutils mailing list