[00/12] SFrame Version 2 - definition and support

Message ID 20230627212028.2138604-1-indu.bhagat@oracle.com
Headers
Series SFrame Version 2 - definition and support |

Message

Indu Bhagat June 27, 2023, 9:20 p.m. UTC
  This patch set adds support for SFrame version 2.

The main change in SFrame version 2 is in the representation of the SFrame
Function Description Entry - it is now of size 20 bytes making each element
aligned at their natural boundary.

These commits are broken down into small chunks for ease of review only.  The
commits touching sframe.h, gas implementation, ld changes, and readelf/objdump
changes will need to be squashed into a single patch for an upstream commit.

Similarly, the doc updates can be squashed into one.

I would like to commit these by Thursday June 29 ideally.

Thanks,

Indu Bhagat (12):
  sframe.h: format bump to SFrame version 2
  gas: generate SFrame section with version SFRAME_VERSION_2
  libsframe: add new APIs to get SFrame version
  libsframe: add new APIs to add and get SFrame FDE in SFrame version 2
  libsframe: adjust version check in sframe_header_sanity_check_p
  libsframe: testsuite: fixes for SFRAME_VERSION_2
  bfd: linker: add support for rep_block_size for pltN entries
  bfd: linker: generate SFrame sections with version SFRAME_VERSION_2
  objdump/readelf: adjust for SFRAME_VERSION_2
  doc: sframe: update specification for SFRAME_VERSION_2
  doc: sframe: add details about alignment in the SFrame format
  binutils/NEWS: announce SFrame version 2 as the new default

 bfd/elf-sframe.c                              |  32 +++++--
 bfd/elfxx-x86.c                               |  24 ++---
 binutils/NEWS                                 |   3 +
 gas/gen-sframe.c                              |   9 +-
 .../gas/cfi-sframe/cfi-sframe-aarch64-1.d     |   2 +-
 .../gas/cfi-sframe/cfi-sframe-aarch64-2.d     |   2 +-
 .../cfi-sframe-aarch64-pac-ab-key-1.d         |   2 +-
 .../gas/cfi-sframe/cfi-sframe-common-1.d      |   2 +-
 .../gas/cfi-sframe/cfi-sframe-common-2.d      |   2 +-
 .../gas/cfi-sframe/cfi-sframe-common-3.d      |   2 +-
 .../gas/cfi-sframe/cfi-sframe-common-4.d      |   2 +-
 .../gas/cfi-sframe/cfi-sframe-common-5.d      |   2 +-
 .../gas/cfi-sframe/cfi-sframe-common-6.d      |   2 +-
 .../gas/cfi-sframe/cfi-sframe-common-7.d      |   2 +-
 .../gas/cfi-sframe/cfi-sframe-common-8.d      |   2 +-
 .../gas/cfi-sframe/cfi-sframe-x86_64-1.d      |   2 +-
 gas/testsuite/gas/cfi-sframe/common-empty-1.d |   2 +-
 gas/testsuite/gas/cfi-sframe/common-empty-2.d |   2 +-
 gas/testsuite/gas/cfi-sframe/common-empty-3.d |   2 +-
 include/sframe-api.h                          |  31 ++++++
 include/sframe.h                              |   7 +-
 ld/testsuite/ld-aarch64/sframe-simple-1.d     |   4 +-
 ld/testsuite/ld-x86-64/sframe-plt-1.d         |   2 +-
 ld/testsuite/ld-x86-64/sframe-simple-1.d      |   4 +-
 libsframe/doc/sframe-spec.texi                |  84 +++++++++++++++--
 libsframe/libsframe.ver                       |   4 +
 libsframe/sframe-dump.c                       |  42 ++++++---
 libsframe/sframe.c                            |  88 +++++++++++++++++-
 libsframe/testsuite/libsframe.decode/DATA-BE  | Bin 64 -> 67 bytes
 libsframe/testsuite/libsframe.decode/DATA1    | Bin 60 -> 63 bytes
 libsframe/testsuite/libsframe.decode/DATA2    | Bin 92 -> 98 bytes
 .../testsuite/libsframe.encode/encode-1.c     |   6 +-
 32 files changed, 298 insertions(+), 72 deletions(-)