Likely obsolete pieces of GDB

Daniel Jacobowitz
2006-12-16T20:59:35Z

This is something I've been meaning to do for a long time. GDB is, in
my humble opinion, overdue for some pruning. I went through the GDB
source tree and identified every file that I believe is obsolete: code
only used for systems, formats, targets, etc. where support in new
versions of GDB is not useful, which is thus a candidate for removal.

Most of this stuff has been around for a long time, and it won't hurt
to keep it around a little longer. So let's take our time. If you
see anything on this list that you'd miss, please say so! I've left a
lot of things off the list which I'd rather remove, but have seen
signs of life for; if there's something you'd add to the list, please
say that too. After some discussion, I recommend we post the list
to gdb-announce. I'm not sure if that really reaches a wider audience,
but it may.

I've CC'd people I had particular questions for. And now, the lists!
Targets, then entire subdirectories, then files.

Native and cross targets which might be obsolete:

alpha*-*-osf*

arm*-wince-pe

(See the discussion of wince.c below.)

hppa*-*-hiux*

(Not hppa*-*-hpux*)

i[34567]86-ncr-*

i[34567]86-*-dgux*

i[34567]86-*-lynxos*

i[34567]86-*-netware*

i[34567]86-*-sco3.2v5*

i[34567]86-*-sco3.2v4*

i[34567]86-*-sco*

i[34567]86-*-sysv4.2*

i[34567]86-*-sysv4*

i[34567]86-*-sysv5*

i[34567]86-*-unixware2*

i[34567]86-*-unixware*

i[34567]86-*-sysv*

i[34567]86-*-isc*

m68*-cisco*-*

m68*-tandem-*

m68*-*-os68k*

mips*-*-pe

rs6000-*-lynxos*

sh*-*-pe

vax-*-*

(But not NetBSD or OpenBSD)

Subdirectories of GDB which might be obsolete:

osf-share

Something from this directory is used to build hpux-thread.o.
The rest of it is unused. hpux-thread.o is only enabled for
CMA threads, and PROBLEMS says (build/1411) that this hasn't
built at least since GDB 6.5. HP/UX has deprecated CMA threads
as of 11i.

Is support for CMA threads still useful? Note that I'm talking
just about hpux-thread.o, not about support for HP/UX 10.20. The
PR is still open and still listed in PROBLEMS, but it looks like
Dave Anglin fixed it on 2004-11-22, so maybe it is. Or maybe
support for that platform is useful but not support for OSF
threads.

Files at the top level which might be obsolete:

abug-rom.c

The ABug ROM Monitor target. Only enabled for embedded m68k
targets.

alpha-osf1-tdep.c

Only used by the alpha-osf1 target. I'm pretty sure we don't
need support for this platform anymore. But the last reference
I see to it was from Joel in 2002; Joel, is this platform still
relevant to you?

coff-solib.c
coff-solib.h

These are only used for the rs6000-lynxos target. I'm pretty
much positive that no one has built a recent GDB for LynxOS.

cpu32bug-rom.c

Like abug-rom.c, another embedded monitor for m68k.

d10v-tdep.c

This was marked obsolete 2004-11-01; it's time for it to go.

dwarfread.c

DWARF 1. GCC removed support for generating this format
several years ago.

gnu-v2-abi.c
gnu-v2-abi.h

C++ ABI support for GCC 2.x.

I'm not sure about these. The last release of GCC they worked
with was 2.95.3. GCC 3.0 was released Jun 18, 2001. Adoption
was slow, but I think I can safely say that almost no one uses
2.95.x any more; even Debian stopped using it three and a half
years ago. Should we keep this?

hpacc-abi.c

Support for the HP aCC C++ compiler, on PA. HP-UX for Itanium
doesn't use this; GCC for hppa-hpux doesn't use it either. See
next item.

hpread.c

Support for symbolic debug info for the HP compilers on HP-UX.
This is the equivalent of dwarf2read, not the equivalent of
elfread; removing it won't interfere with non-symbolic
debugging or with debugging SOM executables produced by the
GNU tools. I raised the question of removing this support on
the GDB mailing list earlier in 2006 and there was general
support. The only people who spoke up saying they used HP's
compilers on HP-UX said that they use HP's fork of GDB
there anyway.

hpux-thread.c

Not sure about this; see discussion of osf-share above.

i386v-nat.c

This file is used for i[34567]86-*-sco* and for
i[34567]86-*-sysv4* and for i[34567]86-*-unixware* (but not
unixware2*). I haven't heard of anyone using GDB on any of
these configurations in a long time.

Mark Kettenis was the last person to make a non-mechanical
update to this file, in 2002. Mark, do you have any use for
those targets?

infptrace.c

I'd love to remove this old file (replaced by inf-ptrace.c)
but I don't think we quite can yet. It appears to be still
used by alpha-osf (probably obsolete), i386-sco and similar
(also probably obsolete), but also powerpc-aix. AIX could
use some updating if anyone wants to keep the GDB port to
that platform alive.

lynx-nat.c

Again, only used on rs6000-lynxos.

mdebugread.c
mdebugread.h

If there's any platform left that still produces this format
of symbolic debug information, I don't know what it is.

mips-mdebug-tdep.c
mips-mdebug-tdep.h

Support for using .pdr information to backtrace. Andrew
pulled this code out of mips-tdep in 2004 and only linked it
in for mips-elf; mips-linux hasn't missed it. If you want
to improve mips-elf backtraces then finish hooking it up to
the dwarf2 unwinder instead of messing with this.

mipsread.c

ECOFF support related to, I think, the same platforms as used
mdebugread.c. Looks like alpha-osf1 uses this. I know that
ECOFF support for MIPS is pretty much unused now; some targets
need images converted to ECOFF for loading a bootloader or
kernel, but the actual work is all strictly ELF. Binutils has
discussed dropping ECOFF support for MIPS several times and
no one has spoken in its defense lately.

nlmread.c

We already removed most support for NLM files (NetWare). This
was left behind.

ocd.c
ocd.h
ppc-bdm.c

This claims to be Macraigor Wiggler support. But it only opens
a serial device; the things Macraigor sells nowadays are either
parallel or USB. In the archives I see several people trying
to use this, but no one succeeding.

Note to self: be careful removing this! The common "remotetimeout"
command appears to come from ocd.c rather than remote.c.

remote-e7000.c

"Remote debugging interface for Renesas E7000 ICE".
I found a sad looking one on ebay, but that's the only thing
I could find from this decade.

remote-est.c

"Remote debugging interface for EST-300 ICE". I couldn't
find even that much life.

remote-hms.c

An on-board ROM monitor for Renesas boards. No signs of life.

remote-mips.c

I think this is support for the built-in monitor of PMON.
I see that Atsushi Nemoto reported a problem with this in 2003,
so it might be worth keeping.

remote-sds.c

A remote monitor target for some PowerPC boards?

remote-st.c

"Remote debugging interface for Tandem ST2000 phone switch"
GDB is now the source of every google hit I checked for this
product.

remote-utils.c
remote-utils.h

I think that all the code in this file is actually dead.
I had a patch to remove it at some point but forgot about it.

rom68k-rom.c

"Remote target glue for the ROM68K ROM monitor"
I found only one reference that wasn't to GDB or dejagnu.

scm-exp.c
scm-lang.c
scm-lang.h
scm-tags.h
scm-valprint.c

"Scheme/Guile language support" it says. What does this
actually support? It looks like it talks to the internal
representation of some version of Guile, but I bet it hasn't
worked in a long time.

ser-e7kpc.c

"Renesas E7000 PC ISA card". Nuff said?

sh3-rom.c

Another set of Hitachi / Renesas ROM monitors, to which I
can find no references.

solib-sunos.c

Used by: config/arm/nbsdaout.mh config/i386/nbsdaout.mh
config/i386/obsdaout.mh config/m68k/nbsdaout.mh
config/m68k/obsd.mh config/sparc/nbsdaout.mh
config/vax/nbsdaout.mh

Are those a.out targets still current, and do they still use
"SunOS" shared library support? If so we'll definitely
keep this, but perhaps it needs a rename.

stop-gdb.c

A support program for Mach 3.0. Currently used nowhere.

uw-thread.c

UnixWare user mode thread support.

vax-nat.c

Used for vax-bsd (not NetBSD or OpenBSD) and vax-ultrix.

wince-stub.c
wince-stub.h
wince.c

For Windows CE devices. Pedro Alves breathed some life
back into these in June, but Chris Faylor rejected the
patch (with which I completely agree). It's a Windows-specific
remote protocol, and should use the GDB remote protocol
instead.

And now there's a Windows gdbserver as a start to that.
I think these files should be removed.

--
Daniel Jacobowitz
CodeSourcery