From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11117 invoked by alias); 16 Dec 2006 20:59:35 -0000 Received: (qmail 11109 invoked by uid 22791); 16 Dec 2006 20:59:34 -0000 X-Spam-Check-By: sourceware.org Received: from nevyn.them.org (HELO nevyn.them.org) (66.93.172.17) by sourceware.org (qpsmtpd/0.31.1) with ESMTP; Sat, 16 Dec 2006 20:59:29 +0000 Received: from drow by nevyn.them.org with local (Exim 4.63) (envelope-from ) id 1Gvgct-0005aD-4K; Sat, 16 Dec 2006 15:59:23 -0500 Date: Sat, 16 Dec 2006 20:59:00 -0000 From: Daniel Jacobowitz To: gdb@sourceware.org Cc: dave.anglin@nrc-cnrc.gc.ca, brobecker@adacore.com, Mark Kettenis Subject: Likely obsolete pieces of GDB Message-ID: <20061216205923.GA21428@nevyn.them.org> Mail-Followup-To: gdb@sourceware.org, dave.anglin@nrc-cnrc.gc.ca, brobecker@adacore.com, Mark Kettenis MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.13 (2006-08-11) X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2006-12/txt/msg00149.txt.bz2 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