From: Indu Bhagat <indu.bhagat@oracle.com>
To: binutils@sourceware.org
Subject: Re: [PATCH,RFC,V2 0/8] Definition and Implementation of CTF Frame format
Date: Fri, 27 May 2022 09:20:49 -0700 [thread overview]
Message-ID: <1727c5be-4e87-87e3-f64e-5385a92a9e73@oracle.com> (raw)
In-Reply-To: <20220519083024.2709920-1-indu.bhagat@oracle.com>
Ping.
On 5/19/22 1:30 AM, Indu Bhagat wrote:
> Hello,
>
> Thanks for your comments on the version V1 of the patch series.
>
> This is a refresh of the previously sent RFC series
> https://sourceware.org/pipermail/binutils/2022-May/120731.html.
>
> The commit log of each patch in this series specifies the changes from V1 of
> the respective patch. Briefly, following are the main changes in the current
> version V2 as compared to V1:
>
> 1. GAS now supports a new command line option --gctf-frame. This command line
> option instructs GAS to generate .ctf_frame section from CFI directives. The
> user can either specify --gctf-frame or use ".cfi_sections" directive with
> ".ctf_frame" to generate .ctf_frame sections.
> 2. Some code cleanup, improvements and bugfixes.
> 3. libctfbacktrace has required some buildsystem changes. libctfbacktrace is
> the ".ctf_frame unwinding library", and as such needs CTF Frame unwind
> information for itself to work. So the buildsystem checks if the available
> assembler supports --gctf-frame, if so, libctfbacktrace is generated with "-Wa,
> --gctf-frame".
> 4. Regression testing for some aarch64 and x86 targets.
>
> This is a work in progress. There still remain open issues to be resolved,
> crude code stubs to be revisited, addition of testsuites, and more regression
> testing testing. This will be taken care of in subsequent iterations of the
> series.
>
> Important note: libctfframe/configure has NOT been included in the patch
> series, as it causes the size of some patches to go beyond the allowed limit.
> Please regenerate the libctfframe/configure after applying the series.
>
> Please comment and provide feedback, it will help shape the format. Here are a
> few of the aspects that particularly need discussion:
>
> 1. What is a good place for an unwinder based on CTF Frame format ? Currently
> to facilitate discussion, it is presented in a library of its own:
> libctfbacktrace which, in turn, uses the libctfframe library for decoding the
> .ctf_frame section for unwinding. We brainstormed a bit about the possible
> candidates being libbacktace, libgcc or libunwind ? Are there any
> recommendations ?
> 2. Are there some ideas for smartly dealing with the issue of bloat caused by
> the CTF Frame unwind information for the PLT entries ?
>
> Thanks,
>
> Indu Bhagat (6):
> ctf-frame.h: Add CTF Frame format definition
> gas: add new command line option --gctf-frame
> gas: generate .ctf_frame
> bfd: linker: merge .ctf_frame sections
> readelf/objdump: support for CTF Frame section
> gdb: sim: buildsystem changes to accommodate libctfframe
>
> Weimin Pan (2):
> libctfframe: add the CTF Frame library
> unwinder: generate backtrace using CTF Frame format
>
> Makefile.def | 5 +
> Makefile.in | 1289 ++++++++++++++++++-
> bfd/Makefile.am | 6 +-
> bfd/Makefile.in | 7 +-
> bfd/bfd-in2.h | 1 +
> bfd/configure | 2 +-
> bfd/configure.ac | 2 +-
> bfd/elf-bfd.h | 55 +
> bfd/elf-ctf-frame.c | 490 ++++++++
> bfd/elf.c | 32 +
> bfd/elf64-x86-64.c | 97 +-
> bfd/elflink.c | 52 +
> bfd/elfxx-x86.c | 336 ++++-
> bfd/elfxx-x86.h | 46 +
> bfd/section.c | 1 +
> binutils/Makefile.am | 10 +-
> binutils/Makefile.in | 10 +-
> binutils/doc/binutils.texi | 4 +
> binutils/doc/ctfframe.options.texi | 10 +
> binutils/objdump.c | 76 ++
> binutils/readelf.c | 47 +
> config/ctf-frame.m4 | 16 +
> configure | 2 +-
> configure.ac | 2 +-
> gas/Makefile.am | 3 +
> gas/Makefile.in | 22 +-
> gas/as.c | 10 +-
> gas/as.h | 13 +-
> gas/config/tc-aarch64.c | 42 +
> gas/config/tc-aarch64.h | 29 +
> gas/config/tc-i386.c | 46 +
> gas/config/tc-i386.h | 26 +
> gas/config/tc-xtensa.c | 1 +
> gas/ctffreopt.c | 158 +++
> gas/doc/as.texi | 19 +-
> gas/dw2gencfi.c | 30 +
> gas/dw2gencfi.h | 1 +
> gas/gen-ctf-frame.c | 1212 ++++++++++++++++++
> gas/gen-ctf-frame.h | 142 +++
> gas/write.c | 13 +
> gdb/Makefile.in | 8 +-
> gdb/acinclude.m4 | 4 +-
> gdb/configure | 35 +-
> gdb/configure.ac | 11 +
> include/ctf-backtrace-api.h | 57 +
> include/ctf-frame-api.h | 213 ++++
> include/ctf-frame.h | 257 ++++
> include/elf/common.h | 1 +
> include/elf/internal.h | 1 +
> 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-bootstrap/bootstrap.exp | 8 +-
> libctfframe/Makefile.am | 50 +
> libctfframe/Makefile.in | 982 +++++++++++++++
> libctfframe/aclocal.m4 | 1242 ++++++++++++++++++
> libctfframe/config.h.in | 144 +++
> libctfframe/configure.ac | 82 ++
> libctfframe/ctf-backtrace-err.c | 46 +
> libctfframe/ctf-backtrace.c | 617 +++++++++
> libctfframe/ctf-frame-dump.c | 173 +++
> libctfframe/ctf-frame-error.c | 49 +
> libctfframe/ctf-frame-impl.h | 55 +
> libctfframe/ctf-frame.c | 1525 +++++++++++++++++++++++
> libctfframe/ttest.c | 78 ++
> sim/common/Make-common.in | 7 +-
> 69 files changed, 9973 insertions(+), 58 deletions(-)
> create mode 100644 bfd/elf-ctf-frame.c
> create mode 100644 binutils/doc/ctfframe.options.texi
> create mode 100644 config/ctf-frame.m4
> create mode 100644 gas/ctffreopt.c
> create mode 100644 gas/gen-ctf-frame.c
> create mode 100644 gas/gen-ctf-frame.h
> create mode 100644 include/ctf-backtrace-api.h
> create mode 100644 include/ctf-frame-api.h
> create mode 100644 include/ctf-frame.h
> create mode 100644 libctfframe/Makefile.am
> create mode 100644 libctfframe/Makefile.in
> create mode 100644 libctfframe/aclocal.m4
> create mode 100644 libctfframe/config.h.in
> create mode 100644 libctfframe/configure.ac
> create mode 100644 libctfframe/ctf-backtrace-err.c
> create mode 100644 libctfframe/ctf-backtrace.c
> create mode 100644 libctfframe/ctf-frame-dump.c
> create mode 100644 libctfframe/ctf-frame-error.c
> create mode 100644 libctfframe/ctf-frame-impl.h
> create mode 100644 libctfframe/ctf-frame.c
> create mode 100644 libctfframe/ttest.c
>
prev parent reply other threads:[~2022-05-27 16:20 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-19 8:30 Indu Bhagat
2022-05-19 8:30 ` [PATCH,RFC,V2 1/8] ctf-frame.h: Add CTF Frame format definition Indu Bhagat
2022-05-19 8:30 ` [PATCH,RFC,V2 2/8] gas: add new command line option --gctf-frame Indu Bhagat
2022-05-19 8:30 ` [PATCH,RFC,V2 3/8] gas: generate .ctf_frame Indu Bhagat
2022-05-19 8:30 ` [PATCH,RFC,V2 4/8] libctfframe: add the CTF Frame library Indu Bhagat
2022-05-19 8:30 ` [PATCH,RFC,V2 5/8] bfd: linker: merge .ctf_frame sections Indu Bhagat
2022-05-19 8:30 ` [PATCH,RFC,V2 6/8] readelf/objdump: support for CTF Frame section Indu Bhagat
2022-05-19 8:30 ` [PATCH, RFC, V2 7/8] unwinder: generate backtrace using CTF Frame format Indu Bhagat
2022-05-19 8:30 ` [PATCH, RFC, V2 8/8] gdb: sim: buildsystem changes to accommodate libctfframe Indu Bhagat
2022-05-27 16:20 ` Indu Bhagat [this message]
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=1727c5be-4e87-87e3-f64e-5385a92a9e73@oracle.com \
--to=indu.bhagat@oracle.com \
--cc=binutils@sourceware.org \
/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).