public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Simon Marchi <simark@simark.ca>
To: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>, gdb-patches@sourceware.org
Subject: Re: [RFC][PATCH] Move common handlers to sol2_init_abi
Date: Wed, 24 Jun 2020 10:56:45 -0400	[thread overview]
Message-ID: <00d11a67-fb37-52de-859d-f8055c841668@simark.ca> (raw)
In-Reply-To: <yddr1u5orci.fsf@CeBiTec.Uni-Bielefeld.DE>

On 2020-06-23 9:15 a.m., Rainer Orth wrote:
> There's some overlap and duplication between 32 and 64-bit Solaris/SPARC
> and x86 tdep files, in particular
> 
>         sol2_core_pid_to_str
> 	*_sol2_sigtramp_p
>         sol2_skip_solib_resolver
>         *_sol2_static_transform_name (forgotten on amd64)
>         set_gdbarch_sofun_address_maybe_missing (likewise)
> 
> This patch avoids this by centralizing common code in sol2-tdep.c.
> While sparc_sol2_pc_in_sigtramp and sparc_sol2_static_transform_name
> were declared in the shared sparc-tdep.h, they were only used in Solaris
> files.
> 
> However, I just discovered that there are two targets that would break
> with this patch: both sparc-*-linux* and sparc64-*-linux* include
> sparc-sol2-tdep.o and sparc64-sol2-tdep.o in configure.tgt.  With the
> new call to sol2_init_abi which only lives in sol2-tdep.o, gdb would
> fail to link.  I have no idea what business they have with
> Solaris-specific files: I suspect that's to allow debugging of
> Solaris/SPARC binaries (i.e. GDB_OSABI_SOLARIS).  What should I do about
> this?  Maybe I also could include sol2-tdep.o on Linux/SPARC, but is
> this TRT?  AFAICS those files received only mechanical changes over the
> last two years (haven't looked further), and I have no way of testing
> changes.

Hmm, sparc-*-linux* and sparc64-*-linux* have no business including some
Solaris-specific files in the build.

When building a GDB on sparc64/Linux, it shouldn't have support for debugging
sparc64/Solaris binaries.  If you want that, you need to pass
--enable-targets=sparc64-solaris-something (I don't know what the actual triplet
would be).

So it seems like there is some untangling here, putting the functions on the
files that they really belong to, until you can successfully build a sparc64/Linux
GDB without including the sol2 tdep files.  I haven't looked much at the patch
(don't have time right now), but tt would be easier to review if you could go
incrementally, one function at a time.

> 
> Tested on amd64-pc-solaris2.11, i386-pc-solaris2.11,
> sparcv9-sun-solaris2.11, and sparc-sun-solaris2.11.
> 
> While those patches only/mostly affect Solaris-specific code, I have
> some questions:
> 
> * Two settings above (static_transform_name,
>   sofun_address_maybe_missing) only apply to quirks of stabs.
> 
>   The first is completely Solaris-specific (or rather specific to the
>   Studio compilers) and I didn't do any real testing here.  Studio cc
>   has deprecated stabs support in the 12.4 release back in 2015, gcc has
>   defaulted to DWARF-2 on Solaris 7+ since 2004, so maybe the whole
>   static_transform_name code can go?

I would be completely fine with it.  The Solaris port pretty much depends on
the time you have to give, so if you don't have time to deal with ancient stuff,
it's fine to drop support for it.

> 
>   The second is also called in i386-linux-tdep.c and rs6000-tdep.c and I
>   don't know enough about this to say what to do here.
> 
> * Beyond that, maybe it's time to think about deprecating Stabs support
>   in general.  There has been some discussion on the GCC side
> 
>   https://gcc.gnu.org/ml/gcc-patches/2017-07/msg01297.html
> 
>   but nothing happened yet.

I would also be fine with it.  For years, all we have done to the stabs code
(and other old debug info reader) is adjust it to interface changes of the
core code.  And actually, since that goes pretty much untested, it is likely
that an old GDB is less buggy than today's GDB w.r.t. stabs debug info reading.

Simon


  parent reply	other threads:[~2020-06-24 14:56 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-23 13:15 Rainer Orth
2020-06-24 10:27 ` Rainer Orth
2020-06-24 14:56 ` Simon Marchi [this message]
2020-06-24 20:57   ` Rainer Orth
2020-06-25  8:23     ` [PATCH] Don't include *sol2-tdep.o on Linux/sparc* Rainer Orth
2020-06-25  9:57       ` Pedro Alves
2020-06-25 12:03         ` Rainer Orth
2020-06-25  8:26     ` [PATCH] Remove obsolete gdbarch_static_transform_name Rainer Orth
2020-06-25  9:18       ` Pedro Alves
2020-06-25 12:07         ` Rainer Orth
2020-06-25 15:20           ` Pedro Alves

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=00d11a67-fb37-52de-859d-f8055c841668@simark.ca \
    --to=simark@simark.ca \
    --cc=gdb-patches@sourceware.org \
    --cc=ro@CeBiTec.Uni-Bielefeld.DE \
    /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).