From: Indu Bhagat <indu.bhagat@oracle.com>
To: binutils@sourceware.org
Cc: weimin.pan@oracle.com, nickc@redhat.com,
Indu Bhagat <indu.bhagat@oracle.com>
Subject: [PATCH,V4 00/11] Definition and support for SFrame unwind format
Date: Wed, 9 Nov 2022 00:42:33 -0800 [thread overview]
Message-ID: <20221109084244.261296-1-indu.bhagat@oracle.com> (raw)
This is the V4 of the patch series that adds support for the SFrame unwind
format in binutils.
[Changes in V4]
- Addressed review comments by Mike on the "gas: generate .sframe from CFI
directives" patch.
- Removed the patch for the gdb/ sim/ buildsystem because the buildsystem of
both of gdb and sim are now using libtool. So, explicit specification of the
libbfd->libsframe dependency is not needed. Thanks to Mike and Jose for
making the necessary improvements.
- Removed the patch "libctf: add libsframe to LDFLAGS and LIBS" earlier
present in V3. This patch has now been updated to "libctf: use libtool for
link test in configure" and will be reviewed outside of the current series.
- Removed the following two patches from V4 altogether:
- unwinder: generate backtrace using SFrame format
- unwinder: Add SFrame unwinder tests
This will allow us to make progress on the SFrame support effectively.
Weimin will post these two patches soon, which will include the requested
improvements.
[End of changes in V4]
This patch series is dependent on the following two patches which were sent
earlier. These patches are related to the libtoolization effort of gdb/ and
libctf/ link checks at configure time:
1. gdb: use libtool in GDB_AC_CHECK_BFD [Jose E. Marchesi]
https://sourceware.org/pipermail/gdb-patches/2022-November/193550.html
2. libctf: use libtool for link test in configure [Indu Bhagat]
https://sourceware.org/pipermail/binutils/2022-November/124253.html
The following testing uses the above two patches which libtoolize the link
checks in gdb/ and libctf/ configure.
Testing notes:
- binutils/gdb try bot showed no new regressions.
- reg tested natively on x86_64-linux (including gdb), aarch64-linux and
i686-linux with --enable-shared.
- reg tested cross build of several targets on an x86_64 host and an
aarch64 host using a regression script that checks for failures in gas, ld,
binutils, and libctf. libsframe testsuite ran as expected.
PS: libsframe/configure has NOT been included in the patch. Please
regenerate.
Thanks,
Indu Bhagat (10):
sframe.h: Add SFrame format definition
gas: add new command line option --gsframe
gas: generate .sframe from CFI directives
gas: testsuite: add new tests for SFrame unwind info
bfd: linker: merge .sframe sections
readelf/objdump: support for SFrame section
src-release.sh: Add libsframe
binutils/NEWS: add text for SFrame support
gas/NEWS: add text about new command line option and SFrame support
doc: add SFrame spec file
Weimin Pan (1):
libsframe: add the SFrame library
Makefile.def | 6 +
Makefile.in | 1299 ++++++++++++-
bfd/Makefile.am | 6 +-
bfd/Makefile.in | 7 +-
bfd/bfd-in2.h | 1 +
bfd/configure | 2 +-
bfd/configure.ac | 2 +-
bfd/elf-bfd.h | 54 +
bfd/elf-sframe.c | 544 ++++++
bfd/elf.c | 32 +
bfd/elf64-x86-64.c | 97 +-
bfd/elflink.c | 52 +
bfd/elfxx-x86.c | 375 +++-
bfd/elfxx-x86.h | 49 +
bfd/section.c | 1 +
binutils/Makefile.am | 10 +-
binutils/Makefile.in | 9 +-
binutils/NEWS | 3 +
binutils/doc/binutils.texi | 4 +
binutils/doc/sframe.options.texi | 10 +
binutils/objdump.c | 75 +
binutils/readelf.c | 64 +
config/dejagnu.m4 | 22 +
configure | 2 +-
configure.ac | 2 +-
gas/Makefile.am | 3 +
gas/Makefile.in | 14 +-
gas/NEWS | 3 +
gas/as.c | 10 +-
gas/as.h | 13 +-
gas/config/tc-aarch64.c | 58 +
gas/config/tc-aarch64.h | 29 +
gas/config/tc-i386.c | 50 +
gas/config/tc-i386.h | 26 +
gas/config/tc-xtensa.c | 1 +
gas/doc/as.texi | 20 +-
gas/dw2gencfi.c | 30 +
gas/dw2gencfi.h | 1 +
gas/gen-sframe.c | 1294 +++++++++++++
gas/gen-sframe.h | 153 ++
gas/sframe-opt.c | 158 ++
.../gas/cfi-sframe/cfi-sframe-aarch64-1.d | 20 +
.../gas/cfi-sframe/cfi-sframe-aarch64-1.s | 61 +
.../gas/cfi-sframe/cfi-sframe-common-1.d | 17 +
.../gas/cfi-sframe/cfi-sframe-common-1.s | 3 +
.../gas/cfi-sframe/cfi-sframe-common-2.d | 17 +
.../gas/cfi-sframe/cfi-sframe-common-2.s | 2 +
.../gas/cfi-sframe/cfi-sframe-common-3.d | 17 +
.../gas/cfi-sframe/cfi-sframe-common-3.s | 4 +
.../gas/cfi-sframe/cfi-sframe-common-4.d | 21 +
.../gas/cfi-sframe/cfi-sframe-common-4.s | 8 +
.../gas/cfi-sframe/cfi-sframe-common-5.d | 21 +
.../gas/cfi-sframe/cfi-sframe-common-5.s | 7 +
.../gas/cfi-sframe/cfi-sframe-common-6.d | 21 +
.../gas/cfi-sframe/cfi-sframe-common-6.s | 7 +
.../gas/cfi-sframe/cfi-sframe-common-7.d | 21 +
.../gas/cfi-sframe/cfi-sframe-common-7.s | 7 +
.../gas/cfi-sframe/cfi-sframe-common-8.d | 20 +
.../gas/cfi-sframe/cfi-sframe-common-8.s | 12 +
.../gas/cfi-sframe/cfi-sframe-x86_64-1.d | 22 +
.../gas/cfi-sframe/cfi-sframe-x86_64-1.s | 30 +
gas/testsuite/gas/cfi-sframe/cfi-sframe.exp | 100 +
gas/testsuite/gas/cfi-sframe/common-empty-1.d | 14 +
gas/testsuite/gas/cfi-sframe/common-empty-1.s | 5 +
gas/testsuite/gas/cfi-sframe/common-empty-2.d | 14 +
gas/testsuite/gas/cfi-sframe/common-empty-2.s | 8 +
gas/testsuite/gas/cfi-sframe/common-empty-3.d | 14 +
gas/testsuite/gas/cfi-sframe/common-empty-3.s | 9 +
gas/testsuite/gas/cfi-sframe/common-empty-4.d | 14 +
gas/testsuite/gas/cfi-sframe/common-empty-4.s | 17 +
gas/write.c | 13 +
include/elf/common.h | 1 +
include/elf/internal.h | 1 +
include/sframe-api.h | 234 +++
include/sframe.h | 303 +++
ld/Makefile.am | 2 +
ld/Makefile.in | 2 +
ld/configure | 8 +-
ld/configure.ac | 3 +
ld/ld.texi | 4 +-
ld/scripttempl/elf.sc | 2 +
ld/testsuite/ld-aarch64/aarch64-elf.exp | 4 +
ld/testsuite/ld-aarch64/sframe-bar.s | 7 +
ld/testsuite/ld-aarch64/sframe-foo.s | 10 +
ld/testsuite/ld-aarch64/sframe-simple-1.d | 26 +
ld/testsuite/ld-bootstrap/bootstrap.exp | 8 +-
ld/testsuite/ld-sframe/discard.d | 10 +
ld/testsuite/ld-sframe/discard.ld | 9 +
ld/testsuite/ld-sframe/discard.s | 13 +
ld/testsuite/ld-sframe/sframe-empty.d | 10 +
ld/testsuite/ld-sframe/sframe-empty.s | 2 +
ld/testsuite/ld-sframe/sframe.exp | 47 +
ld/testsuite/ld-x86-64/sframe-bar.s | 31 +
ld/testsuite/ld-x86-64/sframe-foo.s | 37 +
ld/testsuite/ld-x86-64/sframe-plt-1.d | 29 +
ld/testsuite/ld-x86-64/sframe-simple-1.d | 35 +
ld/testsuite/ld-x86-64/x86-64.exp | 5 +
ld/testsuite/lib/ld-lib.exp | 45 +
libsframe/Makefile.am | 46 +
libsframe/Makefile.in | 1488 +++++++++++++++
libsframe/aclocal.m4 | 1242 ++++++++++++
libsframe/config.h.in | 132 ++
libsframe/configure.ac | 96 +
libsframe/doc/local.mk | 40 +
libsframe/doc/sframe-spec.texi | 619 ++++++
libsframe/sframe-dump.c | 181 ++
libsframe/sframe-error.c | 49 +
libsframe/sframe-impl.h | 55 +
libsframe/sframe.c | 1676 +++++++++++++++++
libsframe/testsuite/config/default.exp | 54 +
libsframe/testsuite/libsframe.decode/DATA-BE | Bin 0 -> 64 bytes
libsframe/testsuite/libsframe.decode/DATA1 | Bin 0 -> 60 bytes
libsframe/testsuite/libsframe.decode/DATA2 | Bin 0 -> 92 bytes
.../testsuite/libsframe.decode/be-flipping.c | 115 ++
.../testsuite/libsframe.decode/decode.exp | 50 +
.../testsuite/libsframe.decode/frecnt-1.c | 99 +
.../testsuite/libsframe.decode/frecnt-2.c | 104 +
libsframe/testsuite/libsframe.decode/local.mk | 16 +
.../testsuite/libsframe.encode/encode-1.c | 177 ++
.../testsuite/libsframe.encode/encode.exp | 37 +
libsframe/testsuite/libsframe.encode/local.mk | 7 +
libsframe/testsuite/local.mk | 24 +
src-release.sh | 4 +-
123 files changed, 12290 insertions(+), 46 deletions(-)
create mode 100644 bfd/elf-sframe.c
create mode 100644 binutils/doc/sframe.options.texi
create mode 100644 config/dejagnu.m4
create mode 100644 gas/gen-sframe.c
create mode 100644 gas/gen-sframe.h
create mode 100644 gas/sframe-opt.c
create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-aarch64-1.d
create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-aarch64-1.s
create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-1.d
create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-1.s
create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-2.d
create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-2.s
create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-3.d
create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-3.s
create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-4.d
create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-4.s
create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-5.d
create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-5.s
create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-6.d
create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-6.s
create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-7.d
create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-7.s
create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-8.d
create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-common-8.s
create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-1.d
create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-1.s
create mode 100644 gas/testsuite/gas/cfi-sframe/cfi-sframe.exp
create mode 100644 gas/testsuite/gas/cfi-sframe/common-empty-1.d
create mode 100644 gas/testsuite/gas/cfi-sframe/common-empty-1.s
create mode 100644 gas/testsuite/gas/cfi-sframe/common-empty-2.d
create mode 100644 gas/testsuite/gas/cfi-sframe/common-empty-2.s
create mode 100644 gas/testsuite/gas/cfi-sframe/common-empty-3.d
create mode 100644 gas/testsuite/gas/cfi-sframe/common-empty-3.s
create mode 100644 gas/testsuite/gas/cfi-sframe/common-empty-4.d
create mode 100644 gas/testsuite/gas/cfi-sframe/common-empty-4.s
create mode 100644 include/sframe-api.h
create mode 100644 include/sframe.h
create mode 100644 ld/testsuite/ld-aarch64/sframe-bar.s
create mode 100644 ld/testsuite/ld-aarch64/sframe-foo.s
create mode 100644 ld/testsuite/ld-aarch64/sframe-simple-1.d
create mode 100644 ld/testsuite/ld-sframe/discard.d
create mode 100644 ld/testsuite/ld-sframe/discard.ld
create mode 100644 ld/testsuite/ld-sframe/discard.s
create mode 100644 ld/testsuite/ld-sframe/sframe-empty.d
create mode 100644 ld/testsuite/ld-sframe/sframe-empty.s
create mode 100644 ld/testsuite/ld-sframe/sframe.exp
create mode 100644 ld/testsuite/ld-x86-64/sframe-bar.s
create mode 100644 ld/testsuite/ld-x86-64/sframe-foo.s
create mode 100644 ld/testsuite/ld-x86-64/sframe-plt-1.d
create mode 100644 ld/testsuite/ld-x86-64/sframe-simple-1.d
create mode 100644 libsframe/Makefile.am
create mode 100644 libsframe/Makefile.in
create mode 100644 libsframe/aclocal.m4
create mode 100644 libsframe/config.h.in
create mode 100644 libsframe/configure.ac
create mode 100644 libsframe/doc/local.mk
create mode 100644 libsframe/doc/sframe-spec.texi
create mode 100644 libsframe/sframe-dump.c
create mode 100644 libsframe/sframe-error.c
create mode 100644 libsframe/sframe-impl.h
create mode 100644 libsframe/sframe.c
create mode 100644 libsframe/testsuite/config/default.exp
create mode 100644 libsframe/testsuite/libsframe.decode/DATA-BE
create mode 100644 libsframe/testsuite/libsframe.decode/DATA1
create mode 100644 libsframe/testsuite/libsframe.decode/DATA2
create mode 100644 libsframe/testsuite/libsframe.decode/be-flipping.c
create mode 100644 libsframe/testsuite/libsframe.decode/decode.exp
create mode 100644 libsframe/testsuite/libsframe.decode/frecnt-1.c
create mode 100644 libsframe/testsuite/libsframe.decode/frecnt-2.c
create mode 100644 libsframe/testsuite/libsframe.decode/local.mk
create mode 100644 libsframe/testsuite/libsframe.encode/encode-1.c
create mode 100644 libsframe/testsuite/libsframe.encode/encode.exp
create mode 100644 libsframe/testsuite/libsframe.encode/local.mk
create mode 100644 libsframe/testsuite/local.mk
--
2.37.2
next reply other threads:[~2022-11-09 8:43 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-09 8:42 Indu Bhagat [this message]
2022-11-09 8:42 ` [PATCH,V4 01/11] sframe.h: Add SFrame format definition Indu Bhagat
2022-11-09 8:42 ` [PATCH,V4 02/11] gas: add new command line option --gsframe Indu Bhagat
2022-11-09 8:42 ` [PATCH,V4 03/11] gas: generate .sframe from CFI directives Indu Bhagat
2022-11-09 8:42 ` [PATCH,V4 04/11] gas: testsuite: add new tests for SFrame unwind info Indu Bhagat
2022-11-09 8:42 ` [PATCH,V4 05/11] libsframe: add the SFrame library Indu Bhagat
2022-11-09 8:42 ` [PATCH,V4 06/11] bfd: linker: merge .sframe sections Indu Bhagat
2022-11-09 8:42 ` [PATCH,V4 07/11] readelf/objdump: support for SFrame section Indu Bhagat
2022-11-09 8:42 ` [PATCH,V4 08/11] src-release.sh: Add libsframe Indu Bhagat
2022-11-09 8:42 ` [PATCH,V4 09/11] binutils/NEWS: add text for SFrame support Indu Bhagat
2022-11-09 8:42 ` [PATCH,V4 10/11] gas/NEWS: add text about new command line option and " Indu Bhagat
2022-11-09 8:42 ` [PATCH,V4 11/11] doc: add SFrame spec file Indu Bhagat
2022-11-22 8:09 ` Jan Beulich
2022-11-22 19:44 ` Indu Bhagat
2022-12-11 7:29 ` Mike Frysinger
2022-11-15 12:20 ` [PATCH,V4 00/11] Definition and support for SFrame unwind format Nick Clifton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221109084244.261296-1-indu.bhagat@oracle.com \
--to=indu.bhagat@oracle.com \
--cc=binutils@sourceware.org \
--cc=nickc@redhat.com \
--cc=weimin.pan@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).