Re: [RFC][PATCH] Move common handlers to sol2_init_abi

Rainer Orth
2020-06-24T10:27:41Z

Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> writes:

> 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.

I must have been half asleep when I wrote this: sparc*-*-linux* already
*does* link sol2-tdep.o. I've now verified (on gcc202 in the GCC
compile farm) that gdb links without and with my patch, so I'm going to
install the patch soon.

I couldn't do a proper regtest, however, since even unmodified master
ran into a tight loop testing gdb.base/testenv.exp (it went up to 4.4+
million iterations before I noticed the problem). I cannot report the
details now since the system has been unaccessible for two days.

The other questions raised in the patch submission still hold, though.