This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
RE: [PATCH v2] xtensa: initialize call_abi in xtensa_tdep
- From: Marc Gauthier <marc at cadence dot com>
- To: Pedro Alves <palves at redhat dot com>, Max Filippov <jcmvbkbc at gmail dot com>, "Joel Brobecker" <brobecker at adacore dot com>
- Cc: "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>, Maxim Grigoriev <maxim2405 at gmail dot com>, Woody LaRue <larue at cadence dot com>
- Date: Thu, 20 Aug 2015 20:30:35 +0000
- Subject: RE: [PATCH v2] xtensa: initialize call_abi in xtensa_tdep
- Authentication-results: sourceware.org; auth=none
- Authentication-results: spf=none (sender IP is ) smtp dot mailfrom=marc at cadence dot com;
- References: <1440075160-13310-1-git-send-email-jcmvbkbc at gmail dot com> <20150820130736 dot GF4571 at adacore dot com> <CAMo8BfK3AKap6eSV0j4hL1MypgH=D81jK1DAMEapKsUSOB3Jfw at mail dot gmail dot com> <55D5E088 dot 3050807 at redhat dot com>
- Spamdiagnosticmetadata: NSPM
- Spamdiagnosticoutput: 1:23
Pedro Alves wrote:
> On 08/20/2015 02:37 PM, Max Filippov wrote:
>
> > Actually it's as simple as unpacking a tarball to the source directory,
> > and we have it automated in the environments that build toolchains,
> > like the Buildroot or the crosstool-NG.
> >
> > The idea behind this is the following: Xtensa core is configurable, a
> lot
> > of its properties may be changed. Nobody even try to test all possible
> > combinations of configuration options and nobody really cares how many
> > Xtensa core configurations exist, people that generate Xtensa core
> > only care about their particular core. When they generate it they get
> > all the files that need to be changed in the toolchain, they apply them
> > and they get the toolchain for their particular core.
>
> How about making the configuration generator tool output some data
> file that gdb would source?
As I understand it, a simple data file is problematic. For example,
customers adding custom extensions to an Xtensa processor can describe
instruction operand encoding and decoding using arbitrary verilog
expressions. Although typically simple, there is currently no constraint
on these expressions, so to fully support this, they get translated into
C code which GDB and other tools can use to assemble and disassemble
Xtensa instructions.
So the more natural "data file" to describe a custom processor is a shared
library or DLL. This is what Cadence's Tensilica tools use. However, in
the far past, upstreaming this approach was problematic given the various
projects' aversion to dynamic shared libraries, which aren't supported
on every host architecture (not all support a dlopen equivalent).
Might it be possible now to introduce use of a dynamic shared library?
If that works for GDB, my next question will be about binutils and gcc :-)
Thanks!
-Marc