summaryrefslogtreecommitdiffstats
path: root/contrib/gdb
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2004-06-18 06:10:13 +0000
committermarcel <marcel@FreeBSD.org>2004-06-18 06:10:13 +0000
commitf7aefb848dcdaeb3b6d733248100a4db4d28d314 (patch)
tree616462396bb57cd3450be1e20224ca45c465d461 /contrib/gdb
parentefc3d2f6eb3b1b4cb5ad2c6097ea8e2ef5b980bd (diff)
downloadFreeBSD-src-f7aefb848dcdaeb3b6d733248100a4db4d28d314.zip
FreeBSD-src-f7aefb848dcdaeb3b6d733248100a4db4d28d314.tar.gz
This file is not part of GDB 5.2.1, but was off the vendor branch.
Diffstat (limited to 'contrib/gdb')
-rw-r--r--contrib/gdb/ChangeLog7746
-rw-r--r--contrib/gdb/MAINTAINERS114
-rw-r--r--contrib/gdb/gdb/ChangeLog-965116
-rw-r--r--contrib/gdb/gdb/ChangeLog-972855
-rw-r--r--contrib/gdb/gdb/ChangeLog-987122
-rw-r--r--contrib/gdb/gdb/command.c1564
-rw-r--r--contrib/gdb/gdb/config/i386/nm-sun386.h27
-rw-r--r--contrib/gdb/gdb/config/i386/sun386.mh5
-rw-r--r--contrib/gdb/gdb/config/i386/sun386.mt3
-rw-r--r--contrib/gdb/gdb/config/i386/tm-sun386.h205
-rw-r--r--contrib/gdb/gdb/config/i386/xm-i386lynx.h24
-rw-r--r--contrib/gdb/gdb/config/i386/xm-linux.h36
-rw-r--r--contrib/gdb/gdb/config/i386/xm-sun386.h20
-rw-r--r--contrib/gdb/gdb/config/i386/xm-windows.h35
-rw-r--r--contrib/gdb/gdb/doc/libgdb.texinfo878
-rw-r--r--contrib/gdb/gdb/gdba.el2607
-rw-r--r--contrib/gdb/gdb/gdbserver/low-linux.c451
-rw-r--r--contrib/gdb/gdb/gnu-regex.c5797
-rw-r--r--contrib/gdb/gdb/gnu-regex.h576
-rw-r--r--contrib/gdb/gdb/hp-psymtab-read.c2381
-rw-r--r--contrib/gdb/gdb/hp-symtab-read.c3988
-rw-r--r--contrib/gdb/gdb/hpread.h150
-rw-r--r--contrib/gdb/gdb/jv-exp.tab.c2351
-rw-r--r--contrib/gdb/gdb/signals.h27
24 files changed, 0 insertions, 44078 deletions
diff --git a/contrib/gdb/ChangeLog b/contrib/gdb/ChangeLog
deleted file mode 100644
index 83ec2be..0000000
--- a/contrib/gdb/ChangeLog
+++ /dev/null
@@ -1,7746 +0,0 @@
-2002-04-07 Andrew Cagney <ac131313@redhat.com>
-
- * Makefile.in (do-tar-bz2): Delete rule. Replace with ...
- (do-tar, do-bz2): New rules.
- (taz): Update. Replace do-tar-bz2 with do-tar and do-bz2.
- (gdb-tar): New rule.
- (gdb-taz): Rewrite. Use gdb-tar and do-bz2.
- (insight_dejagnu.tar): New rule.
- (insight.tar): New rule.
- (gdb+dejagnu.tar): New rule.
- (gdb.tar): New rule.
-
-2002-02-28 Alexandre Oliva <aoliva@redhat.com>
-
- * configure.in (libstdcxx_flags): Don't add libstdc++-v3 flags for
- libjava.
- (CXX_FOR_TARGET): Add -shared-libgcc for libstdc++-v3 and libjava.
-
-2002-02-24 Andrew Cagney <ac131313@redhat.com>
-
- * texinfo/texinfo.tex: Update to version 2002-02-14.08.
-
-2002-02-23 Daniel Jacobowitz <drow@mvista.com>
-
- * config.guess: Import from master sources, rev 1.232.
- * config.sub: Import from master sources, rev 1.246.
-
-2002-02-23 Alexandre Oliva <aoliva@redhat.com>
-
- * Makefile.in (MAKEINFO): Don't assume makeinfo will be built just
- because its Makefile is there; test for the executable instead.
-
-2002-02-09 Alexandre Oliva <aoliva@redhat.com>
-
- Contribute sh64-elf.
- 2000-12-01 Alexandre Oliva <aoliva@redhat.com>
- * configure.in: Added sh64-*-*.
-
-2002-02-04 Jeff Johnston <jjohnstn@redhat.com>
-
- * COPYING.NEWLIB: Remove advertising clause from
- Berkeley and Red Hat licenses.
-
-2002-02-01 Mo DeJong <supermo@bayarea.net>
-
- * Makefile.in: Add all-tix to deps for all-snavigator
- so that tix is built when building snavigator.
-
-2002-02-01 Ben Elliston <bje@redhat.com>
-
- * config.guess: Import from master sources, rev 1.229.
- * config.sub: Import from master sources, rev 1.240.
-
-2002-01-27 Daniel Jacobowitz <drow@mvista.com>
-
- From Steve Ellcey <sje@cup.hp.com>:
- * libtool.m4 (HPUX_IA64_MODE): Set to 32 or 64 based on ABI.
- (lt_cv_deplibs_check_method, lt_cv_file_magic_cmd,
- lt_cv_file_magic_test_file): Set to appropriate values for HP-UX
- IA64.
- * ltcf-c.sh (archive_cmds, hardcode_*): Ditto.
- * ltconfig (shlibpath_*, dynamic_linker, library_names_spec,
- soname_spec, sys_lib_search_path_spec): Ditto.
-
-2002-01-26 Jason Thorpe <thorpej@wasabisystems.com>
-
- * configure.in (*-*-netbsd*): New. Skip target-newlib,
- target-libiberty, and target-libgloss. Skip Java-related
- libraries if not supported for NetBSD on target CPU.
-
-2002-01-23 Nick Clifton <nickc@cambridge.redhat.com>
-
- * configure.in: Import StrongARM and XScale target_configdirs from
- FSF GCC version.
-
-2002-01-16 H.J. Lu (hjl@gnu.org)
-
- * config.guess: Import from master sources, rev 1.225.
- * config.sub: Import from master sources, rev 1.238.
-
- * MAINTAINERS: Updated notes on config.guess and config.sub.
-
-2002-01-11 Steve Ellcey <sje@cup.hp.com>
-
- * configure.in (ia64*-*-hpux*): New target for IA64 HP-UX,
- ld and gdb are not supported.
-
-2002-01-07 Jeff Johnston <jjohnstn@redhat.com>
-
- * Change reference to Cygnus Solutions to be Red Hat.
-
-2002-01-07 Jeff Johnston <jjohnstn@redhat.com>
-
- * COPYING.NEWLIB: Update generic copyright date.
-
-2002-01-07 Mark Salter <msalter@redhat.com>
-
- * configure.in: Remove target-bsp and target-cygmon from arm builds.
- Allow target-libgloss to be built for arm, strongarm, and xscale.
-
-2002-01-03 Ben Elliston <bje@redhat.com>
-
- * MAINTAINERS: Update URL for config.* scripts.
-
-2001-12-18 Alan Modra <amodra@bigpond.net.au>
-
- * config.sub: Import latest version.
- * config.guess: Likewise.
-
-2001-12-13 Thomas Fitzsimmons <fitzsim@redhat.com>
-
- * configure.in (FLAGS_FOR_TARGET): Remove -nostdinc and -isystem
- options for i[3456]86-pc-linux* native builds.
-
-2001-12-05 Laurent Guerby <guerby@acm.org>
-
- * MAINTAINERS: gcc adopts symlink-tree, refer more to
- libiberty.
-
- Import this patch from gcc:
-
- 2000-12-09 Laurynas Biveinis <lauras@softhome.net>
-
- * symlink-tree: handle DOS-style absolute paths.
-
-2001-11-28 DJ Delorie <dj@redhat.com>
- Zack Weinberg <zack@codesourcery.com>
-
- When build != host, create libiberty for the build machine.
-
- * Makefile.in (TARGET_CONFIGARGS, BUILD_CONFIGARGS): Replace
- CONFIG_ARGUMENTS.
- (ALL_BUILD_MODULES_LIST, BUILD_CONFIGDIRS, BUILD_SUBDIR):
- New variables.
- (ALL_BUILD_MODULES, CONFIGURE_BUILD_MODULES): New variables
- and rules.
- (all.normal): Depend on ALL_BUILD_MODULES.
- (CONFIGURE_TARGET_MODULES rule): Use TARGET_CONFIGARGS.
- (all-build-libiberty): Depend on configure-build-libiberty.
-
- * configure: Calculate and substitute proper value for
- ALL_BUILD_MODULES.
- * configure.in: Create the build subdirectory.
- Calculate and substitute TARGET_CONFIGARGS (formerly
- CONFIG_ARGUMENTS); also BUILD_SUBDIR and BUILD_CONFIGARGS (new).
-
-2001-11-26 Geoffrey Keating <geoffk@redhat.com>
-
- * config.sub: Update to version 1.232 on subversion.
-
-2001-11-20 Nick Clifton <nickc@cambridge.redhat.com>
-
- * Makefile.in (do-proto-toplev): Use msgfmt to generate .gmo
- files from .po files for a distribution.
-
-2001-11-19 Hans-Peter Nilsson <hp@bitrange.com>
-
- * COPYING.NEWLIB: Mention preserved notice in specific parts.
-
-2001-11-13 Jeff Holcomb <jeffh@redhat.com>
-
- Merged from net gcc:
- 2001-07-30 Jeff Sturm <jsturm@one-pont.com>
- * ltcf-c.sh: Use $objext, not $ac_objext.
- 2001-07-27 Mark Kettenis <kettenis@gnu.org>
- * ltcf-cxx.sh: Add support for GNU.
- 2001-07-22 Timothy Wall <twall@redhat.com>
- * ltcf-c.sh: Don't disable shared libraries for AIX5/IA64. Preserve
- default settings if using GNU tools with that configuration.
- * ltcf-cxx.sh: Ditto.
- * ltcf-gcj.sh: Ditto.
- 2001-07-21 Michael Chastain <chastain@redhat.com>
- * ltconfig: Set max_cmd_len to a maximum of 512Kb, as it seems some
- HPUX 11.0 systems have trouble with 1MB. Mark as gcc-local.
- * ltmain.sh: Mark as gcc-local.
-
-2001-11-13 Jeff Holcomb <jeffh@redhat.com>
-
- * Makefile.in (all-bison): Revert 2001-10-24.
- Don't depend on texinfo.
-
-2001-11-12 Hans-Peter Nilsson <hp@bitrange.com>
-
- * COPYING.NEWLIB: Add BSD-style license/copyright blurb for my work.
-
-2001-11-08 Phil Edwards <pedwards@disaster.jaj.com>
-
- * configure.in (--enable-languages): Be more permissive about
- syntax. Check for empty lists better. Warn about $LANGUAGES.
-
-2001-11-06 Hans-Peter Nilsson <hp@bitrange.com>
-
- * Makefile.in (MAKEINFO): Use "missing" for makeinfo older than 4.0.
-
-2001-10-24 Jeff Holcomb <jeffh@redhat.com>
-
- Makefile.in (all-bison): Don't depend on texinfo.
-
-2001-10-03 Alan Modra <amodra@bigpond.net.au>
-
- * gettext.m4: Test po/POTFILES.in exists before trying to read.
-
-2001-09-29 Alexandre Oliva <aoliva@redhat.com>
-
- * Makefile.in (configure-target-gperf): Depend on $(ALL_GCC_CXX).
-
-2001-09-28 Hans-Peter Nilsson <hp@axis.com>
-
- * config.sub, config.guess: Import latest from subversions.
-
-2001-09-21 Alexandre Oliva <aoliva@redhat.com>
-
- * Makefile.in (AS_FOR_TARGET, LD_FOR_TARGET,
- DLLTOOL_FOR_TARGET, WINDRES_FOR_TARGET, AR_FOR_TARGET,
- RANLIB_FOR_TARGET, NM_FOR_TARGET): Don't use double quotes to
- avoid quotes nesting problems.
- (NATIVE_CHECK_MODULES): Ditto, just for consistency.
- (DO_X): Export only variables that are set.
-
-2001-09-19 Ben Elliston <bje@redhat.com>
-
- * configure.in (sparc-sun-solaris2*): Don't use /usr/bin/which on
- Solaris when testing for the /usr/ucb/cc compiler; it has incorrect
- semantics. Use the shell built-in "type" command instead.
-
-2001-09-15 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
- * config.sub: Reverted the earlier change, this version is not the
- master file.
-
-2001-09-14 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
- * config.sub: Change machine triplets from mipsel*-* to mips*el-*.
- Add support for mips64.
-
-2001-09-03 Jeff Holcomb <jeffh@redhat.com>
-
- * configure.in: Enable libstdc++-v3 for h8300 targets.
-
-2001-08-30 Eric Christopher <echristo@redhat.com>
- Jason Eckhardt <jle@redhat.com>
-
- * config.sub: Add support for mipsisa32.
-
-2001-08-30 Eric Christopher <echristo@redhat.com>
-
- * config.sub, config.guess: Import latest from subversions.
-
-2001-08-20 Alan Modra <amodra@bigpond.net.au>
-
- * config.sub, config.guess: Import latest from subversions.
-
-2001-07-26 DJ Delorie <dj@redhat.com>
-
- * MAINTAINERS: Clarify libiberty merge rules and procedures.
-
-2001-06-19 Alan Modra <amodra@bigpond.net.au>
-
- * Makefile.in: Revert 2001-06-17.
- (VER): If AM_INIT_AUTOMAKE uses BFD_VERSION, get version from bfd/.
-
-2001-06-17 H.J. Lu <hjl@gnu.org>
-
- * Makefile.in (gas.tar.bz2): Pass TOOL=bfd PACKAGE=gas to make.
- (gas+binutils.tar.bz2): Likewise.
- (binutils.tar.bz2): Pass TOOL=bfd PACKAGE=binutils to make.
-
-Fri Jun 8 11:14:02 2001 Andrew Cagney <cagney@b1.cygnus.com>
-
- * Makefile.in (VER): When present, extract the version number from
- the file version.in.
-
-2001-06-08 Alexandre Oliva <aoliva@redhat.com>, Jeff Sturm <jsturm@one-point.com>
-
- * Makefile.in (AS_FOR_TARGET, LD_FOR_TARGET, NM_FOR_TARGET): If
- gcc/xgcc is built, use -print-prog-name to find out the program
- name to use.
-
-2001-06-04 Mark Mitchell <mark@codesourcery.com>
-
- * ltcf-c.sh (archive_cmds, archive_expsym_cmds) [solaris,
- with_gcc]: Use `gcc -shared' to build a shared library.
-
-2001-06-04 John David Anglin <dave@hiauly1.hia.nrc.ca>
-
- * ltcf-c.sh (archive_cmd) [hpux, with_gcc]: Use gcc to link shared
- archives.
-
-2001-05-28 Simon Patarin <simon.patarin@inria.fr>
-
- * ltcf-cxx.sh (osf3/osf4/osf5): Support creation of C++ shared
- libraries when using g++ with native linker.
-
-2001-05-28 Alexandre Oliva <aoliva@redhat.com>
-
- * ltconfig, ltmain.sh: Upgrade to libtool 1.4a 1.641.2.256.
-
-2001-05-24 Tom Rix <trix@redhat.com>
-
- * configure.in : enable ld for aix
-
-2001-05-22 Alexandre Oliva <aoliva@redhat.com>
-
- * ltcf-cxx.sh (allow_undefined_flag, no_undefined_flag)
- [aix4*|aix5*]: Prepend blank.
-
-2001-05-20 Alexandre Oliva <aoliva@redhat.com>
-
- * ltconfig, ltmain.sh, libtool.m4, ltcf-c.sh, ltcf-cxx.sh,
- ltcf-gcj.sh: Upgraded to libtool 1.4a 1.641.2.254. Rebuilt a number
- of subdir/configure scripts to use the new libtool.m4.
-
-2001-05-14 H.J. Lu <hjl@gnu.org>
-
- * config.if (libc_interface): Set to -libc6.2- for cross
- compiling to Linux/glibc 2.2.
-
-2001-05-03 Alexandre Oliva <aoliva@redhat.com>
-
- * configure.in (noconfigdirs) [*-cygwin*, *-mingw*, *-beos]: Disable
- libgcj.
-
-2001-04-26 Alexandre Oliva <aoliva@redhat.com>
-
- * configure.in (noconfigdirs): Don't reset it from scratch in the
- target case; only append to it.
-
-2001-04-26 Alexandre Oliva <aoliva@redhat.com>
-
- * configure.in (noconfigdirs) [hppa*-*-*, mips*-*-irix6*,
- sparc-*-solaris2.8]: Disable ${libgcj}.
-
-2001-04-25 Alexandre Oliva <aoliva@redhat.com>
-
- * configure.in (libgcj_saved): Copy from $libgcj.
- (libgcj): Zero out if --enable-libgcj; add to noconfigdirs is
- --disable-libgcj.
-
-2001-04-20 Alexandre Oliva <aoliva@redhat.com>
-
- * ltconfig, ltmain.sh, ltcf-cxx.sh: Upgraded to libtool 1.4a
- 1.641.2.228.
-
-2001-04-12 Alexandre Oliva <aoliva@redhat.com>
-
- * ltconfig, ltmain.sh, libtool.m4, ltcf-c.sh, ltcf-cxx.sh,
- ltcf-gcj.sh: Upgraded to libtool 1.4a 1.641.2.226.
-
-2001-04-01 Alexandre Oliva <aoliva@redhat.com>
-
- * Makefile.in (CXX_FOR_TARGET_FOR_RECURSIVE_MAKE, RECURSE_FLAGS):
- New macros.
- (bootstrap, cross): Use RECURSE_FLAGS.
- * configure.in: Subst CXX_FOR_TARGET_FOR_RECURSIVE_MAKE.
-
-2001-03-27 Alexandre Oliva <aoliva@redhat.com>
-
- * configure.in (CXX_FOR_TARGET): Use xgcc for libstdc++-v3.
-
-2001-03-23 Nick Clifton <nickc@redhat.com>
-
- * README-maintainer-mode: Add note about inability to use "make
- distclean" in maintainer mode.
-
-2001-03-22 Alexandre Oliva <aoliva@redhat.com>
-
- Re-installed:
- 2001-01-02 Laurynas Biveinis <lauras@softhome.net>
- * ltcf-c.sh: Clear ac_cv_prog_cc_pic for DJGPP. Do not add
- '-DPIC' to ac_cv_prog_cc_pic for DJGPP.
- * ltcf-cxx.sh: Likewise.
- * ltcf-gcj.sh: Likewise.
-
-2001-03-22 Philip Blundell <philb@gnu.org>
-
- * config.sub, config.guess: Import latest from subversions.
-
-2001-03-22 Alexandre Oliva <aoliva@redhat.com>
-
- * ltconfig, ltmain.sh, libtool.m4, ltcf-c.sh, ltcf-cxx.sh,
- ltcf-gcj.sh: Upgraded to libtool 1.4a 1.641.2.198.
-
-2001-03-20 Michael Chastain <chastain@redhat.com>
-
- * Makefile.in: all-m4 depends on all-texinfo.
-
-2001-03-08 Alexandre Oliva <aoliva@redhat.com>
-
- * Makefile.in (ALL_GCC, ALL_GCC_C, ALL_GCC_CXX): Set before use.
-
-2001-02-22 Jeff Johnston <jjohnstn@redhat.com>
-
- * COPYING.NEWLIB: Remove DJ Delorie's address because it is no
- longer valid.
-
-2001-02-16 Nick Clifton <nickc@redhat.com>
-
- * configure.in (noconfigdirs): Allow configuration of texinfo
- for Cygwin hosts.
-
-2001-02-09 Martin Schwidefsky <schwidefsky@de.ibm.com>
-
- * config.guess: Add linux target for S/390.
- * config.sub: Likewise.
- * configure.in: Likewise.
-
-2001-02-06 Ben Elliston <bje@redhat.com>
-
- * configure: Output host type to stdout, not stderr.
-
-2001-02-04 Michael Sokolov <msokolov@ivan.Harhan.ORG>
-
- * config.guess: Import from subversions.gnu.org (revision 1.181).
- * config.sub: Import from subversions.gnu.org (revision 1.199).
-
-2001-01-30 Alan Modra <alan@linuxcare.com.au>
-
- * config.guess: Handle hppa64-linux systems.
-
-2001-01-27 Michael Sokolov <msokolov@ivan.Harhan.ORG>
-
- * ltcf-cxx.sh (ac_cv_prog_cc_pic_works, ac_cv_prog_cc_static_works):
- Don't unset, it's non-portable and no longer necessary, set to empty
- instead.
-
-2001-01-27 Michael Sokolov <msokolov@ivan.Harhan.ORG>, Alexandre Oliva <oliva@lsd.ic.unicamp.br>
-
- * ltconfig: Shell portability fix for the tagname validity check.
-
-2001-01-27 Michael Sokolov <msokolov@ivan.Harhan.ORG>
-
- * ltcf-cxx.sh: Use parentheses around eval $ac_compile.
-
-2001-01-27 Alexandre Oliva <aoliva@redhat.com>
-
- * ltcf-c.sh (ld_shlibs) [aix5*]: Disable on unknown CPU types.
- * ltcf-cxx.sh, ltcf-gcj.sh: Likewise.
-
-2001-01-24 Alexandre Oliva <aoliva@redhat.com>
-
- * ltmain.sh (TAG disable-shared, TAG disable-static): Make sure we
- keep at least one of build_libtool_libs or build_old_libs set to
- yes.
-
-2001-01-24 Alexandre Oliva <aoliva@redhat.com>
-
- * ltcf-gcj.sh (lt_simple_link_test_code): Remove stray `(0)'.
- * libtool.m4 (_AC_LIBTOOL_GCJ): Pass $CPPFLAGS on.
-
-2000-11-07 Philip Blundell <pb@futuretv.com>
-
- * Makefile.in (ETC_SUPPORT): Also add configbuild.* and configdev.*.
-
-2000-11-03 Philip Blundell <pb@futuretv.com>
-
- * Makefile.in (ETC_SUPPORT): Add configure.texi and associated info
- files.
-
-2001-01-15 Jeff Johnston <jjohnstn@redhat.com>
-
- * COPYING.NEWLIB: Put into source repository.
-
-2001-01-15 Ben Elliston <bje@redhat.com>
-
- * configure.in (host_tools): Add sid.
- Always configure cgen.
- * Makefile.in (all-sid): New target.
- (check-sid, clean-sid, install-sid): Likewise.
-
-2001-01-07 Andreas Jaeger <aj@suse.de>
-
- * config.sub, config.guess: Update from subversions.
-
-2000-12-12 Alexandre Oliva <aoliva@redhat.com>
-
- * configure.in: Disable language-specific target libraries for
- languages that aren't enabled.
-
-2000-11-24 Nick Clifton <nickc@redhat.com>
-
- * configure.in (xscale-elf): Add target.
- (xscale-coff): Add target.
- (c4x, c5x, tic54x): Move after ARM targets.
-
-2000-11-23 Alexandre Oliva <aoliva@redhat.com>
-
- * ltcf-gcj.sh: Added file, required by 2000-11-18 merge.
-
-2000-11-20 Ian Lance Taylor <ian@zembu.com>
-
- * ltcf-cxx.sh: Added file, required by 2000-11-18 merge.
-
-2000-11-18 Alexandre Oliva <aoliva@redhat.com>
-
- * Makefile.in: Merge with GCC and libgcj.
- (ALL_GCC_C, ALL_GCC_CXX): New macros. Use them as dependencies of
- configure-target-<library> when their configure scripts need the C
- or C++ library to have already been built to work properly.
- (do_proto_toplev): Set them to an empty string.
-
-2000-11-18 Alexandre Oliva <aoliva@redhat.com>
-
- * Makefile.in (HOST_LIB_PATH, TARGET_LIB_PATH): New macros.
- (REALLY_SET_LIB_PATH): Use them.
-
-2000-11-06 Christopher Faylor <cgf@cygnus.com>
-
- * config.sub: Add support for Sun Chorus
-
-2000-11-02 Per Lundberg <plundis@chaosdev.org>
-
- * config.sub: Add support for the *-storm-chaos OS.
-
-2000-10-30 Stephane Carrez <stcarrez@worldnet.fr>
-
- * configure.in (noconfigdirs): Don't compile some
- of the libraries for 68HC11 & 68hc12 targets.
-
-2000-09-30 Alexandre Oliva <aoliva@redhat.com>
-
- * ltconfig, ltmain.sh, libtool.m4: Updated from libtool
- multi-language branch, to work around Solaris' /bin/sh bug. Rebuilt
- all affected `configure' scripts.
-
-2000-09-25 Alexandre Oliva <aoliva@redhat.com>
-
- * Makefile.in (DEVO_SUPPORT): Added gettext.m4, libtool.m4 and
- ltcf-c.sh.
-
-2000-09-12 Philip Blundell <philb@gnu.org>
-
- * config.sub, config.guess: Update from subversions.
-
-2000-09-06 Alexandre Oliva <aoliva@redhat.com>
-
- * Makefile.in (all-zlib): Added dummy target.
-
- * ltconfig, ltmain.sh, libtool.m4, ltcf-c.sh: Updated from libtool
- multi-language branch.
-
-2000-09-05 Alexandre Oliva <aoliva@redhat.com>
-
- * Makefile.in (all-bootstrap): Added all-texinfo and all-zlib.
- (bootstrap*): Depend on all-bootstrap.
-
-2000-09-02 Alexandre Oliva <aoliva@redhat.com>, DJ Delorie <dj@redhat.com>
-
- * configure.in (FLAGS_FOR_TARGET): Use -nostdinc even for Canadian
- crosses, but add gcc/include to the header search path for them.
-
-2000-08-31 Alexandre Oliva <aoliva@redhat.com>
-
- * ltconfig, ltmain.sh: Updated from libtool multi-language branch.
- * libtool.m4, ltcf-c.sh: Copied from libtool multi-language branch.
- * gettext.m4: New file, extracted from aclocal.m4.
-
-2000-08-22 Alexandre Oliva <aoliva@redhat.com>
-
- * config-ml.in (CC, CXX): Avoid trailing whitespace.
- (LD_LIBRARY_PATH, SHLIB_PATH): Adjust for multilibs and export to
- sub-configures.
-
-2000-08-20 Doug Evans <dje@casey.transmeta.com>
-
- * Makefile.in (ALL_MODULES): Add all-cgen.
- (CROSS_CHECK_MODULES,INSTALL_MODULES,CLEAN_MODULES): Similarily.
- (all-cgen): New target.
- (all-opcodes,all-sim): Depend on all-cgen.
- * configure.in (host_tools): Add cgen.
- Only configure cgen if --enable-cgen-maint.
-
-2000-08-17 Alexandre Oliva <aoliva@redhat.com>
-
- * config-ml.in (CC, CXX): Don't introduce a leading space.
-
-2000-08-16 Alexandre Oliva <aoliva@redhat.com>
-
- * configure.in (libstdcxx_flags): Use
- libstdc++-v3/src/libstdc++.INC.
-
-2000-08-15 Alexandre Oliva <aoliva@redhat.com>
-
- * configure.in (libstdcxx_flags): Use libstdc++-v3/src/INCLUDES.
-
-2000-08-11 Jason Merrill <jason@redhat.com>
-
- * configure.in (CC_FOR_TARGET, CHILL_FOR_TARGET,
- CXX_FOR_TARGET): Add -B$$r/gcc/ here.
- (FLAGS_FOR_TARGET): Not here.
- (CHILL_FOR_TARGET, CXX_FOR_TARGET): Don't check the list of languages.
-
-2000-08-07 DJ Delorie <dj@redhat.com>
-
- * configure.in (FLAGS_FOR_TARGET): invert test for xgcc, should mean
- "if we're also building gcc, and it's a gcc that will run on the
- build machine, we want to use its includes instead of the system's
- default includes".
-
-2000-08-03 Alexandre Oliva <aoliva@redhat.com>
-
- * configure.in (libstdcxx_flags): Don't use `"'.
-
- * config-ml.in: Adjust multilib search paths to the
- appropriate multilib tree.
-
-2000-08-02 Alexandre Oliva <aoliva@redhat.com>
-
- * configure.in (CHILL_FOR_TARGET, CXX_FOR_TARGET): Convert blanks to
- commas in $LANGUAGES.
-
-2000-08-01 Alexandre Oliva <aoliva@redhat.com>
-
- * configure.in (qCXX_FOR_TARGET): Use echo instead of expr.
-
-2000-07-31 Alexandre Oliva <aoliva@redhat.com>
-
- * configure.in (qCXX_FOR_TARGET): Quote `&' characters in
- CXX_FOR_TARGET for sed.
-
-2000-07-30 Alexandre Oliva <aoliva@redhat.com>
-
- * configure.in (CC_FOR_TARGET, CHILL_FOR_TARGET, CXX_FOR_TARGET):
- Do not override if already set in the environment or in configure.
- Don't duplicate $(FLAGS_FOR_TARGET) if it already appears in them.
- (FLAGS_FOR_TARGET): Don't use host directories on Canadian crosses.
-
-2000-07-27 Alexandre Oliva <aoliva@redhat.com>
-
- * Makefile.in (FLAGS_FOR_TARGET): New macro.
- (GCC_FOR_TARGET): Use it.
- (CC_FOR_TARGET, CXX_FOR_TARGET, CHILL_FOR_TARGET): Now defined...
- * configure.in: ... here.
- (FLAGS_FOR_TARGET): Define. Add ld build dir to -L path.
- (libstdcxx_flags): Define and append to CXX_FOR_TARGET.
-
-2000-07-24 Alexandre Oliva <aoliva@redhat.com>
-
- * Makefile.in (configure-target-libf2c): Depend on $(ALL_GCC).
- (configure-target-libchill, configure-target-libobjc): Likewise.
-
- * configure.in: Use the same cache file for all target libs.
- * config-ml.in: But different cache files per multilib variant.
-
-2000-07-23 Michael Sokolov <msokolov@ivan.Harhan.ORG>
-
- * configure (topsrcdir): Don't use dirname.
-
-2000-07-20 Jason Merrill <jason@redhat.com>
-
- * configure.in: Remove all references to libg++ and librx.
-
- * configure, configure.in, Makefile.in: Unify gcc and binutils.
-
-2000-07-20 Hans-Peter Nilsson <hp@axis.com>
-
- * config.sub: Update to subversions version 2000-07-06.
-
-2000-07-12 Andrew Haley <aph@cygnus.com>
-
- * configure.in (host_makefile_frag): Use mh-ia64pic on IA-64 hosts.
- (target_makefile_frag): Use mt-ia64pic on IA-64 targets.
-
-2000-07-07 Phil Edwards <pme@sourceware.cygnus.com>
-
- * symlink-tree: Check number of arguments.
-
-2000-06-06 Andrew Cagney <cagney@b1.cygnus.com>
-
- * texinfo/texinfo.tex: Update to version 2000-05-28.15.
-
-2000-07-05 Jim Wilson <wilson@cygnus.com>
-
- * Makefile.in (CXX_FOR_TARGET): Add libstdc++ to the library
- search path for a g++ extracted from the build tree. This
- will allow link tests run by configure scripts in
- subdirectories to succeed.
-
-2000-07-01 Koundinya K <kk@ddeorg.soft.net>
-
- * ltconfig: Add support for mips-dde-sysv4.2MP
-
-2000-06-28 Corinna Vinschen <vinschen@cygnus.com>
-
- * ltconfig: Check for host_os beeing one of `cygwin', `mingw' or
- `os2'. Force ac_cv_exeext to be ".exe" in that case.
-
-2000-06-19 Timothy Wall <twall@cygnus.com>
-
- * configure.in (noconfigdirs): Set noconfigdirs for tic54x target.
- * config.sub: Add tic54x target.
-
-2000-06-07 Phillip Thomas <pthomas@suse.de>
-
- * README-maintainer-mode: New file: Contains notes on using
- --enable-maintainer-mode with binutils.
-
-2000-05-29 Andrew Cagney <cagney@b1.cygnus.com>
-
- * texinfo/texinfo.tex: Update. Version from makeinfo 4.0.
-
-2000-05-30 Andrew Cagney <cagney@b1.cygnus.com>
-
- * config.sub: Import CVS version 1.167 Tue May 30 09:00:07 2000.
- * config.guess: Import CVS version 1.148 Tue May 30 09:00:06 2000
-
-20000-05-21 H.J. Lu (hjl@gnu.org)
-
- * Makefile.in (CC_FOR_TARGET): Make sure as/ld in the gcc
- directory are used if they exist. Make sure
- $(build_tooldir)/include is searched for header files,
- $(build_tooldir)/lib/ for library files.
- (GCC_FOR_TARGET): Likewise.
- (CXX_FOR_TARGET): Likewise.
-
-2000-05-18 Jeffrey A Law (law@cygnus.com)
-
- * configure.in (hppa*64*-*-*): Do build ld for this configuration.
-
-2000-05-17 Alexandre Oliva <aoliva@cygnus.com>
-
- * Makefile.in (configure-target-libiberty): Depend on
- configure-target-newlib.
-
-2000-05-16 Alexandre Oliva <aoliva@cygnus.com>
-
- * configure.in, Makefile.in: Merge all libffi-related
- configury stuff from the libgcj tree.
-
-2000-05-16 Andrew Cagney <cagney@b1.cygnus.com>
-
- Thu Apr 27 11:01:48 2000 Andrew Cagney <cagney@b1.cygnus.com>:
- * Makefile.in (do-tar-bz2, do-md5sum): Skip CVS directories.
-
-2000-05-16 Andrew Cagney <cagney@b1.cygnus.com>
-
- Wed Apr 26 17:03:53 2000 Andrew Cagney <cagney@b1.cygnus.com>:
- * Makefile.in (do-djunpack): New target. Update djunpack.bat with
- current version information. Add to proto-toplev directory.
- (gdb-taz): Build do-djunpack.
-
-2000-05-15 David Edelsohn <edelsohn@gnu.org>
-
- * configure.in: Special case powerpc*-*-aix* target_makefile_frag.
-
-2000-05-13 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
-
- * ltmain.sh: Preserve in relink_command any environment
- variables that may affect the linker behavior.
-
-2000-05-12 Jeffrey A Law (law@cygnus.com)
-
- * config.sub (basic_machine): Recognize hppa64 as a valid cpu type.
-
-2000-05-10 Jim Wilson <wilson@cygnus.com>
-
- * configure.in (ia64*-*-elf*): Add gdb and friends to noconfigdirs.
-
-2000-05-08 Eli Zaretskii <eliz@is.elta.co.il>
-
- * djunpack.bat: Change the Sed script to replace @V@ in fnchange.lst
- with the version name.
-
-2000-05-01 Benjamin Kosnik <bkoz@cygnus.com>
-
- * config.if: Tweak.
-
-2000-04-23 Eli Zaretskii <eliz@is.elta.co.il>
-
- * djunpack.bat: New file.
-
-2000-04-19 Andrew Cagney <cagney@b1.cygnus.com>
-
- * Makefile.in (taz, gdb-taz, gas.tar.bz2, binutils.tar.bz2,
- gas+binutils.tar.bz2, libg++.tar.bz2, gnats.tar.bz2, gdb.tar.bz2,
- dejagnu.tar.bz2, gdb+dejagnu.tar.bz2, insight.tar.bz2,
- insight+dejagnu.tar.bz2, newlib.tar.bz2): Pass MD5PROG to sub-make.
-
-2000-04-16 Dave Pitts <dpitts@cozx.com>
-
- * config.sub (case $basic_machine): Change default for "ibm-*"
- to "openedition".
-
-2000-04-12 Andrew Cagney <cagney@b1.cygnus.com>
-
- * Makefile.in (gdb-taz): New target. GDB specific archive.
- (do-md5sum): New target.
- (MD5PROG): Define.
- (PACKAGE): Default to TOOL.
- (VER): Default to a shell script.
- (taz): Rewrite target. Move real work to do-proto-toplev. Include
- md5 checksum generation.
- (do-proto-toplev): New target. Create $(PACKAGE)-$(VER) link.
- (do-tar-bz2): Delete creation of $(PACKAGE)-$(VER) link.
- (gdb.tar.bz2, dejagnu.tar.bz2, gdb+dejagnu.tar.bz2,
- insight.tar.bz2): Use gdb-taz to create archive.
-
-2000-04-07 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure (warn_cflags): Delete.
-
-2000-04-05 Benjamin Kosnik <bkoz@cygnus.com>
- Martin v. Loewis <martin@loewis.home.cs.tu-berlin.de>
-
- * configure.in (enable_libstdcxx_v3): Add.
- (target_libs): Add bits here to switch between libstdc++-v2 and
- libstdc++-v3.
- * config.if: And this file too.
- * Makefile.in: Add libstdc++-v3 targets.
-
-2000-04-05 Michael Meissner <meissner@redhat.com>
-
- * config.sub (d30v): Add d30v as a basic machine type.
-
-2000-03-29 Jason Merrill <jason@casey.cygnus.com>
-
- * configure.in: -linux-gnu*, not -linux-gnu.
-
-2000-03-03 Andrew Cagney <cagney@b1.cygnus.com>
-
- * Makefile.in (taz): Set PACKAGE to TOOL when not defined.
- (do-tar-bz2): Replace TOOL with PACKAGE.
- (gdb.tar.bz2): Remove GDBTK from GDB package.
- (gdb+dejagnu.tar.bz2, insight.tar.bz2, insight+dejagnu.tar.bz2,
- dejagnu.tar.bz2): New packages.
-
-2000-02-27 Andreas Jaeger <aj@suse.de>
-
- * configure.in: Add entry for mips*-*-linux*, move catch all
- *-*-*linux* entry below this one.
-
-2000-02-27 Ian Lance Taylor <ian@zembu.com>
-
- * ltconfig, ltmain.sh: Update to libtool 1.3.4.
-
-2000-02-24 Nick Clifton <nickc@cygnus.com>
-
- * config.sub: Support an OS of "wince".
-
-2000-02-24 Andrew Cagney <cagney@b1.cygnus.com>
-
- * config.guess, config.sub: Updated to match config's 2000-02-15
- version.
-
-2000-02-23 Linas Vepstas <linas@linas.org>
-
- * config.sub: Add support for Linux/IBM 370.
- * configure.in: Likewise.
-
-2000-02-22 Nick Clifton <nickc@cygnus.com>
-
- * configure.in: Add mips-pe, sh-pe and arm-wince-pe targets.
-
-2000-02-20 Christopher Faylor <cgf@cygnus.com>
-
- * config.guess: Guess "cygwin" rather than "cygwin32".
-
-2000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * configure (gcc_version): When setting, narrow search to
- lines containing `version_string'.
-
-2000-02-15 Denis Chertykov <denisc@overta.ru>
-
- * config.sub: Add support for avr target.
-
-2000-02-01 Hans-Peter Nilsson <hp@bitrange.com>
-
- * config.sub: Add mmix-knuth-mmixware.
-
-2000-01-27 Christopher Faylor <cgf@redhat.com>
-
- * Makefile.in (CC_FOR_TARGET): Add new winsup directory
- structure stuff to -L library search.
- (CXX_FOR_TARGET): Ditto.
- (CROSS_CHECK_MODULES): Fix spelling mistake.
-
-2000-01-24 Mark Mitchell <mark@codesourcery.com>
-
- * Makefile.in (CXX_FOR_TARGET): Use g++, not xgcc, to invoke
- the C++ compiler.
-
-2000-01-12 Richard Henderson <rth@cygnus.com>
-
- * configure.in: Don't build some bits for beos.
-
-2000-01-12 Joel Sherrill (joel@OARcorp.com)
-
- * Makefile.in (CC_FOR_TARGET): Use newlib libraries as well
- as include files.
-
-2000-01-06 Geoff Keating <geoffk@cygnus.com>
-
- * configure.in: Use mt-aix43 to handle *_TARGET defs,
- not mh-aix43.
-
-1999-12-14 Richard Henderson <rth@cygnus.com>
-
- * config.guess (alpha-osf, alpha-linux): Detect ev67.
- * config.sub: Accept alphaev[78], alphaev8.
-
-1999-12-03 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
-
- * config.guess, config.sub: Update from autoconf.
-
-Tue Nov 23 00:57:41 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
-
- * config-ml.in (sparc*-*-*): Disable sparcv9 support if the
- necessary libraries are missing.
-
-1999-10-25 Andreas Schwab <schwab@suse.de>
-
- * configure: Fix quoting inside arguments of eval.
-
-1999-10-21 Nick Clifton <nickc@cygnus.com>
-
- * config-ml.in: Allow suppression of some ARM multilibs.
-
-Tue Sep 7 23:33:57 1999 Linas Vepstas <linas@linas.org>
-
- * config.guess: Add OS/390 match pattern.
- * config.sub: Add mvs, openedition targets.
- * configure.in (i370-ibm-opened*): New.
-
-1999-09-04 Steve Chamberlain <sac@pobox.com>
-
- * config.sub: Add support for configuring for pj.
-
-1999-08-31 Nick Clifton <nickc@cygnus.com>
-
- * config.sub (maybe_os): Add support for configuring for fr30.
-
-1999-08-25 Nick Clifton <nickc@cygnus.com>
-
- * configure.in: Do not configure or build ld for AIX
- platforms. ld is known to be broken on these platforms.
-
-Wed Aug 25 01:12:25 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
-
- * config-ml.in: Pass compiler flag corresponding to multidirs to
- subdir configures.
-
-1999-08-09 Ian Lance Taylor <ian@zembu.com>
-
- * Makefile.in (LDFLAGS): Define.
-
-1999-08-08 Mumit Khan <khan@xraylith.wisc.edu>
-
- * configure.in (i[3456]-*-mingw32*): Don't put gprof in
- noconfigdirs.
- (*-*-cygwin*): Likewise.
-
-1999-08-08 Ian Lance Taylor <ian@zembu.com>
-
- * mkdep: New file.
- * Makefile.in (GAS_SUPPORT_DIRS): Add mkdep.
- (BINUTILS_SUPPORT_DIRS): Add mkdep.
-
- From Eli Zaretskii <eliz@is.elta.co.il>:
- * configure (tmpfile): Change cONf$$ to cNf$$ to avoid an overly
- long file name when using DJGPP on MS-DOS.
-
-Wed Aug 4 02:07:14 1999 Jeffrey A Law (law@cygnus.com)
-
- * config.sub (vxworks case): Use os=-vxworks, not os=vxworks.
-
-1999-07-30 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * Makefile.in (check-target-libio): Remove all-target-libstdc++
- dependency as this causes "make check" to globally "make all"
-
-Tue Jun 22 23:45:18 1999 Tom Tromey <tromey@cygnus.com>
-
- * configure.in (target_libs): Added target-zlib.
- * Makefile.in (ALL_TARGET_MODULES): Added zlib.
- (CONFIGURE_TARGET_MODULES): Likewise.
- (CHECK_TARGET_MODULES): Likewise.
- (INSTALL_TARGET_MODULES): Likewise.
- (CLEAN_TARGET_MODULES): Likewise.
- (configure-target-zlib): New target.
- (all-target-zlib): Likewise.
- (all-target-libjava): Depend on all-target-zlib.
- (configure-target-libjava): Depend on configure-target-zlib.
-
- * Makefile.in (configure-target-libjava): Depend on
- configure-target-newlib.
- (configure-target-boehm-gc): New target.
- (configure-target-qthreads): New target.
-
- * configure.in (target_libs): Added target-qthreads.
- * Makefile.in (ALL_TARGET_MODULES): Added qthreads.
- (CONFIGURE_TARGET_MODULES): Likewise.
- (CHECK_TARGET_MODULES): Likewise.
- (INSTALL_TARGET_MODULES): Likewise.
- (CLEAN_TARGET_MODULES): Likewise.
- (all-target-qthreads): New target.
- (configure-target-libjava): Depend on configure-target-qthreads.
- (all-target-libjava): Depend on all-target-qthreads.
-
- * Makefile.in (ALL_TARGET_MODULES): Added libjava, boehm-gc.
- (CONFIGURE_TARGET_MODULES): Likewise.
- (CHECK_TARGET_MODULES): Likewise.
- (INSTALL_TARGET_MODULES): Likewise.
- (CLEAN_TARGET_MODULES): Likewise.
- (all-target-libjava): New target.
- (all-target-boehm-gc): Likewise.
- * configure.in (target_libs): Added libjava, boehm-gc.
-
-1999-07-22 Ian Lance Taylor <ian@zembu.com>
-
- * Makefile.in (binutils.tar.bz2): Don't pass makeall.bat and
- configure.bat in SUPPORT_FILES.
- (gas+binutils.tar.bz2): Likewise.
-
- * makeall.bat: Remove; obsolete.
-
-1999-07-21 Ian Lance Taylor <ian@zembu.com>
-
- From Mark Elbrecht:
- * configure.bat: Remove; obsolete.
-
-1999-07-11 Ian Lance Taylor <ian@zembu.com>
-
- * configure: Add -W -Wall to the default CFLAGS when compiling with
- gcc.
-
-Thu Jul 8 12:32:23 1999 John David Anglin <dave@hiauly1.hia.nrc.ca>
-
- * configure.in: Build ld, binutils & gas for hppa*-*-linux-gnu*.
-
-1999-06-30 Mark Mitchell <mark@codesourcery.com>
-
- * configure.in: Build ld on IRIX6.
-
-1999-06-12 Ian Lance Taylor <ian@zembu.com>
-
- * Makefile.in: Change distribution targets to use bzip2 instead of
- gzip.
- (TEXINFO_SUPPORT): Set to just texinfo/texinfo.tex.
- (taz): Don't use texinfo/gpl.texinfo or texinfo/lgpl.texinfo.
-
-1999-06-04 Nick Clifton <nickc@cygnus.com>
-
- * config.sub: Add mcore target.
-
-1999-05-30 Cort Dougan <cort@cs.nmt.edu>
-
- * config.guess (ppc-*-linux-gnu): Also use ld emul elf32ppclinux.
-
-1999-05-25 H.J. Lu (hjl@gnu.org)
-
- * config.guess (dummy): Changed to $dummy.
-
-1999-05-24 Nick Clifton <nickc@cygnus.com>
-
- * config.sub: Tidied up case statements.
-
-1999-05-22 Ben Elliston <bje@cygnus.com>
-
- * config.guess: Handle NEC UX/4800. Contributed by Jiro Takabatake
- <jiro@din.or.jp>.
-
- * config.guess: Merge with FSF version. Future changes will be
- more accurately recorded in this ChangeLog.
- * config.sub: Likewise.
-
-1999-05-20 Stephen L Moshier <moshier@world.std.com>
-
- * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
-
-1999-04-30 Tom Tromey <tromey@cygnus.com>
-
- * ltmain.sh: [mode link] Always use CC given by ltconfig.
-
-1999-04-23 Tom Tromey <tromey@cygnus.com>
-
- * ltconfig, ltmain.sh: Update to libtool 1.2f.
-
-1999-04-20 Drew Moseley <dmoseley@cygnus.com>
-
- * configure.in (noconfigdirs): Don't build libstub for arm-elf targets.
- (noconfigdirs): Don't build any bsp stuff for for arm-oabi targets.
- Bad merge removed these two changes.
-
-Tue Apr 13 22:50:54 1999 Donn Terry (donn@interix.com)
- Martin Heller (Ing.-Buero_Heller@t-online.de)
-
- * config.guess (interix Alpha): Add.
-
-1999-04-11 Richard Henderson <rth@cygnus.com>
-
- * configure.in (i?86-*-beos*): Do config gperf; don't config
- gdb, newlib, or libgloss.
-
-1999-04-11 Alexandre Oliva <oliva@dcc.unicamp.br>
-
- * config-ml.in: On mips*-*-*, if multidirs contains mabi=64, try to
- link a trivial program with -mabi=64. If it fails, remove mabi=64
- from multidirs.
-
-1999-04-10 Philipp Thomas (kthomas@gwdg.de)
-
- * config.sub: Set basic_machine to i586 when target_alias = k6-*.
-
-1999-04-08 Nick Clifton <nickc@cygnus.com>
-
- * config.sub: Add support for mcore targets.
-
-1999-04-07 Michael Meissner <meissner@cygnus.com>
-
- * configure.in (d30v-*): Use config/mt-d30v as makefile fragment,
- not mt-ospace, in order to shut up assembler warning about using
- symbols that are named the same as registers.
-
-1999-04-07 Drew Moseley <dmoseley@cygnus.com>
-
- * Makefile.in (all-target-cygmon): Added all-target-bsp to the
- dependency list for all-target-cygmon.
-
-1999-04-05 Doug Evans <devans@casey.cygnus.com>
-
- * config-ml.in: Check $host, not $target, for selective multilibs.
- (arm-*-*): Allow disabling of biendian, h/w fp, 26 bit apcs,
- thumb interworking, and underscore prefix multilibs.
-
-1999-04-04 Ian Lance Taylor <ian@zembu.com>
-
- * missing: Update to version from current automake.
-
-Fri Apr 2 15:11:32 1999 H.J. Lu (hjl@gnu.org)
-
- * configure (gxx_include_dir): Removed.
-
- * configure.in (gxx_include_dir): Handle it.
- * Makefile.in: Likewise.
-
-1999-03-29 Gavin Romig-Koch <gavin@cygnus.com>
-
- * config.sub (mips64vr4111,mips64vr4111el) Add.
-
-1999-03-21 Ben Elliston <bje@cygnus.com>
-
- * config.guess: Correct typo for detecting ELF on FreeBSD.
-
-Thu Mar 18 00:17:50 1999 Mark Elbrecht <snowball3@usa.net>
-
- * config/mh-go32: Delete.
- * config/mh-djgpp: New. Renamed from mh-go32.
- * configure.in (pc-msdosdjgpp): Set host_makefile_frag to
- config/mh-djgpp.
-
-Thu Mar 11 18:37:23 1999 Drew Moseley <dmoseley@cygnus.com>
-
- * Makefile.in (all-target-bsp): Added all-gcc all-binutils and
- all-target-newlib to dependency list for all-target-bsp.
-
-Thu Mar 11 01:19:31 1999 Mumit Khan <khan@xraylith.wisc.edu>
-
- * config.sub: Add i386-uwin support.
- * config.guess: Likewise.
-
-Thu Mar 11 01:07:55 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
-
- * configure.in: cleanup, add mh-*pic handling for arm, special
- case powerpc*-*-aix*
-
-Wed Mar 10 18:35:07 1999 Jeff Johnston <jjohnstn@cygnus.com>
-
- * configure.in (noconfigdirs): Removed target-libgloss so libnosys.a
- can be built.
-
-Wed Mar 10 17:39:09 1999 Drew Moseley <dmoseley@cygnus.com>
-
- * configure.in: Added bsp support to arm-*-coff and arm-*-elf
- targets.
-
-1999-03-02 Nick Clifton <nickc@cygnus.com>
-
- * config.sub: Rename CYGNUS LOCAL to EGCS LOCAL
-
-1999-02-28 Geoffrey Noer <noer@cygnus.com>
-
- * config.sub: Check for "cygwin*" rather than "cygwin32*"
-
-1999-02-24 Nick Clifton <nickc@cygnus.com>
-
- * config.sub: Fix typo in arm recognition.
-
-1999-02-24 Drew Moseley <dmoseley@cygnus.com>
-
- * configure.in (noconfigdirs): Changed target_configdirs to
- include target-bsp only for m68k-*-elf* and m68k-*-coff*
- rather than m68k-*-* since it is not known to work on
- m68k-aout. Ditto for arm-*-*oabi.
-
-1999-02-24 Stan Shebs <shebs@andros.cygnus.com>
-
- * configure.in (*-*-windows*): Remove, no longer used.
- * config/mh-windows: Ditto.
-
-1999-02-19 Ben Elliston <bje@cygnus.com>
-
- * config.guess: Automatically recognise ELF on FreeBSD. From Niall
- Smart and improved by Andrew Cagney.
-
-1999-02-18 Marc Espie <espie@cvs.openbsd.org>
-
- * config.guess: Recognize openbsd-*-hppa.
-
-1999-02-17 H.J. Lu (hjl@gnu.org)
-
- * Makefile.in (REALLY_SET_LIB_PATH): Append $$$(RPATH_ENVVAR)
- only if it is not empty.
-
-1999-02-17 Nick Clifton <nickc@cygnus.com>
-
- Patch from: Scott Bambrough <scottb@corelcomputer.com>
-
- * config.guess: Modified to recognize uname's armv* syntax.
-
- * config.sub: Modified to recognize uname's armv* syntax.
-
-1999-02-17 Mark Salter <msalter@cygnus.com>
-
- * configure.in: Added target-bsp for sparclite.
-
-1999-02-08 Richard Henderson <rth@cygnus.com>
-
- * config.sub: Recognize alphapca5[67] and up to alphaev8.
-
-1999-02-08 Nick Clifton <nickc@cygnus.com>
-
- * configure.in: Add support for strongarm port.
- * config.sub: Add support for strongarm target.
-
-1999-02-07 Mumit Khan <khan@xraylith.wisc.edu>
-
- * configure.in (*-*-cygwin32*): Use config/mh-cygwin instead of
- the old name config/mh-cygwin32.
- Enable texinfo.
-
-1999-02-04 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Do build ld for ix86 Solaris.
-
-1999-02-02 Jim Wilson <wilson@cygnus.com>
-
- * Makefile.in (EXTRA_GCC_FLAGS): Set AR to $AR instead of
- $AR_FOR_TARGET. Likewise for RANLIB.
-
-1999-02-02 Catherine Moore <clm@cygnus.com>
-
- * config.sub (oabi): Recognize.
- * configure.in (arm-*-oabi): Handle.
-
-1999-01-30 Robert Lipe (robertlipe@usa.net)
-
- * config.guess: Improve detection of i686 on UnixWare 7.
-
-1999-01-30 Mumit Khan <khan@xraylith.wisc.edu>
-
- * config.guess: Add support for i386-pc-interix.
- * config.sub: Likewise.
- * configure.in: Likewise.
- * config/mh-interix: New file.
-
-1999-01-18 Christopher Faylor <cgf@cygnus.com>
-
- * Makefile.in: Remove unneeded all-target-libio from
- from all-target-winsup target since it is now unneeded.
- Add all-target-libtermcap in its place since it is now
- needed.
-
-1998-12-30 Christopher Faylor <cgf@cygnus.com>
-
- * configure.in: makefile stub for cygwin target is probably
- unnecessary. Remove it for now.
- * config/mt-cygwin: Remove.
-
-1998-12-30 Christopher Faylor <cgf@cygnus.com>
-
- * configure.in: libtermcap.a should be built when cygwin is the
- target as well as the host.
- * config.guess: Allow mixed case in cygwin uname output.
- * Makefile.in: Add libtermcap target.
- * config/mt-cygwin: New file. libtermcap target info.
-
-1998-12-23 Jeffrey A Law (law@cygnus.com)
-
- * config.sub: Clean up handling of hppa2.0.
-
-1998-12-22 Rodney Brown (rodneybrown@pmsc.com)
-
- * config.guess: Use C code to identify more HP machines.
-
-Thu Dec 17 01:22:30 1998 Jeffrey A Law (law@cygnus.com)
-
- * config.sub: Handle hppa2.0.
-
-Tue Dec 15 17:02:58 1998 Bob Manson <manson@charmed.cygnus.com>
-
- * configure.in: Add cygmon for x86-coff and x86-elf. Configure
- cygmon for all sparclite targets, regardless of object format.
-
-1998-12-15 Mark Salter <msalter@cygnus.com>
-
- * configure.in: Added target-bsp for several target architectures.
-
- * Makefile.in: Added rules for bsp.
-
-Fri Dec 4 01:34:02 1998 Jeffrey A Law (law@cygnus.com)
-
- * config.guess: Improve detection of hppa2.0 processors.
-
-Fri Dec 4 01:33:05 1998 Niall Smart <nialls@euristix.ie>
-
- * config.guess: Recognize FreeBSD using ELF automatically.
-
-1998-11-26 Manfred Hollstein <manfred@s-direktnet.de>
-
- * configure (skip-this-dir): Add handling for new shell script, which
- might be created by a sub-directory's configure to indicate, this particular
- directory is "unwanted".
- * Makefile.in ($(CONFIGURE_TARGET_MODULES)): Likewise.
-
-Wed Nov 18 18:28:45 1998 Geoffrey Noer <noer@cygnus.com>
-
- * ltconfig: import from libtool, after changing libtool to
- account for the cygwin name change.
-
-Wed Nov 18 18:09:14 1998 Geoffrey Noer <noer@cygnus.com>
-
- * Makefile.in: CC_FOR_TARGET and CXX_FOR_TARGET should also
- include newlib/libc/sys/cygwin and newlib/libc/sys/cygwin32.
-
-Wed Nov 18 20:13:29 1998 Christopher Faylor <cgf@cygnus.com>
-
- * configure.in: Add libtermcap to list of cygwin dependencies.
-
-1998-11-17 Geoffrey Noer <noer@cygnus.com>
-
- * Makefile.in: modify CC_FOR_TARGET and CXX_FOR_TARGET so that
- they include winsup/include when it's a cygwin target.
-
-1998-11-12 Tom Tromey <tromey@cygnus.com>
-
- * configure.in (host_tools): Added zip.
- * Makefile.in (all-target-libjava): Depend on all-zip.
- (all-zip): New target.
- (ALL_MODULES): Added all-zip.
- (NATIVE_CHECK_MODULES): Added check-zip.
- (INSTALL_MODULES): Added install-zip.
- (CLEAN_MODULES): Added clean-zip.
-
-1998-11-12 Geoffrey Noer <noer@cygnus.com>
-
- * Makefile.in: lose "32" from comment about cygwin.
-
-1998-11-05 Nick Clifton <nickc@cygnus.com>
-
- * configure.in: Use -Os to build target libraries for the fr30.
-
-1998-11-04 Dave Brolley <brolley@cygnus.com>
-
- * config.sub: Add fr30.
-
-1998-11-02 Geoffrey Noer <noer@cygnus.com>
-
- * configure.in: drop "32" from config/mh-cygwin32. Check
- cygwin* instead of cygwin32*.
- * config.sub: Check cygwin* instead of cygwin32*.
-
-1998-10-22 Robert Lipe <robertl@dgii.com>
-
- * config.guess: Match any version of Unixware7.
-
-1998-10-20 Syd Polk <spolk@cygnus.com>
-
- * Makefile.in configure.in: Add the ability to use tcl8.1 and tk8.1
- if desired.
-
-1998-10-18 Jeffrey A Law (law@cygnus.com)
-
- * config.if (cxx_interface, libstdcxx_interface): Do not try to set
- these if the appropriate directories and files to not exist.
-
-1998-10-14 Jeffrey A Law (law@cygnus.com)
-
- * Makefile.in (DEVO_SUPPORT): Add config.if.
-
-1998-10-13 Manfred Hollstein <manfred@s-direktnet.de>
-
- * configure: Add pattern to replace "build_tooldir"'s
- definition in the generated Makefile with "tooldir"'s
- actual value.
-
-Tue Oct 13 09:17:06 1998 Jeffrey A Law (law@cygnus.com)
-
- * config.sub: Bring back lost sparcv9.
-
- * Makefile.in (all-snvavigator): Remove all-flexlm dependency.
-
-Mon Oct 12 12:09:44 1998 Jeffrey A Law (law@cygnus.com)
-
- * Makefile.in (CHILL_FOR_TARGET): Mirror recent changes to
- CC_FOR_TARGET and friends.
-
-Mon Oct 12 12:09:30 1998 Alexandre Oliva <oliva@dcc.unicamp.br>
-
- * Makefile.in (build_tooldir): New variable, same as tooldir.
- (CC_FOR_TARGET, GCC_FOR_TARGET, CXX_FOR_TARGET): Add
- -B$(build_tooldir)/bin/.
- (BASE_FLAGS_TO_PASS): Pass build_tooldir down.
-
-Wed Sep 30 22:20:50 1998 Robert Lipe <robertl@dgii.com>
-
- * config.sub: Add support for i[34567]86-pc-udk.
- * configure.in: Likewise.
-
-Wed Sep 30 19:23:48 1998 Geoffrey Noer <noer@cygnus.com>
-
- * Makefile.in: add bzip2 package building bits for user
- tools module
- * configure.in: ditto
-
-Wed Sep 30 03:00:05 1998 Jeffrey A Law (law@cygnus.com)
-
- * Makefile.in (TARGET_CONFIGDIRS): Add libobjc.
- (ALL_TARGET_MODULES): Add all-target-libobjc.
- (CONFIGURE_TARGET_MODULES, CHECK_TARGET_MODULES): Similarly.
- (INSTALL_TARGET_MODULES, CLEAN_TARGET_MODULES): Similarly.
- (all-target-libchill): Add dependencies.
- * configure.in (target_libs): Add libchill.
-
-1998-09-30 Manfred Hollstein <manfred@s-direktnet.de>
-
- * configure.in (target_subdir): Remove duplicate line.
-
-Tue Sep 29 22:45:41 1998 Felix Lee <flee@cygnus.com>
-
- * Makefile.in (all-automake): fix dependencies.
-
-Mon Sep 28 04:04:27 1998 Jeffrey A Law (law@cygnus.com)
-
- * configure.in: Minor cleanups for building in the $(target_alias)
- subdir.
-
-1998-09-22 Jim Wilson <wilson@cygnus.com>
-
- * Makefile.in (bootstrap): Set r and s before make all. Use
- BASE_FLAGS_TO_PASS in make all.
- (cross): Likewise.
-
-1998-09-20 Mark Mitchell <mark@markmitchell.com>
-
- * Makefile.in (bootstrap): Pass TARGET_FLAGS_TO_PASS to `make all'.
-
-Sun Sep 20 00:13:02 1998 Richard Henderson <rth@cygnus.com>
-
- * config.sub: Fix typo in last change.
-
-1998-09-19 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
-
- * config.sub: Add support for C4x target.
- * configure.in: Likewise.
-
-1998-09-13 David S. Miller <davem@pierdol.cobaltmicro.com>
-
- * config.sub: Recognize sparcv9 just like sparc64.
-
-Wed Sep 9 15:44:52 1998 Robert Lipe <robertl@dgii.com>
-
- * config.guess: Match "Pent II" or "PentII" for OpenServer.
-
-Tue Sep 8 01:18:39 1998 Jeffrey A Law (law@cygnus.com)
-
- * config.guess: Correctly identify Pentium II sco boxes.
-
- * config.guess: Fix "tr" code. From Weiwen Liu.
-
-Sat Sep 5 13:56:52 1998 John Hughes <john@Calva.COM>
-
- * configure.in: Do not assume x86-svr4 or x86-unixware can handle
- stabs.
-
-Sat Sep 5 02:12:02 1998 Jeffrey A Law (law@cygnus.com)
-
- * Makefile.in (TARGET_CONFIGDIRS): Add libchill.
- (ALL_TARGET_MODULES): Add all-target-libchill.
- (CONFIGURE_TARGET_MODULES, CHECK_TARGET_MODULES): Similarly.
- (INSTALL_TARGET_MODULES, CLEAN_TARGET_MODULES): Similarly.
- (all-target-libchill): Add dependencies.
- * configure.in (target_libs): Add libchill.
-
-Sun Aug 30 22:27:02 1998 Lutz Wohlrab <lutz.wohlrab@informatik.tu-chemnitz.de>
-
- * config.guess: Avoid assumptions about "tr" behaves when
- LANG is set to something other than English.
-
-Sun Aug 30 22:14:44 1998 H.J. Lu (hjl@gnu.org)
-
- * configure (gxx_include_dir): Changed to
- '${prefix}/include/g++'-${libstdcxx_interface}.
-
- * config.if: New to determine the interfaces.
-
-Sun Aug 30 21:15:19 1998 Mark Klein (mklein@dis.com)
-
- * config.guess: Detect and handle MPE/IX.
- * config.sub: Deal with MPE/IX.
-
-Sat Aug 29 14:32:55 1998 David Edelsohn <edelsohn@mhpcc.edu>
-
- * configure.in: Use mh-aix43.
-
-1998-07-29 Manfred Hollstein <manfred@s-direktnet.de>
-
- * configure: Fix --without/--disable cases for gxx-include-dir.
-
-Fri Aug 28 12:28:26 1998 Per Bothner <bothner@cygnus.com>
-
- * mdata-sh: Imported. Needed for automake support.
-
-Thu Aug 13 12:49:29 1998 H.J. Lu <hjl@gnu.org>
-
- * Makefile.in (taz): Try "chmod -R og=u ." before
- "chmod og=u `find . -print`".
-
-Fri Jul 31 09:38:33 1998 Catherine Moore <clm@cygnus.com>
-
- * configure.in: Add arm-elf and thumb-elf support.
-
-Mon Jul 27 16:23:58 1998 Doug Evans <devans@canuck.cygnus.com>
-
- * Makefile.in: Undo previous patch.
-
-Fri Jul 24 19:55:24 1998 Doug Evans <devans@canuck.cygnus.com>
-
- * Makefile.in (INSTALL_TARGET): Move EXTRA_TARGET_HOST_INSTALL_MODULES
- to here ...
- (install-no-fixedincludes): and here
- (INSTALL_MODULES): ... from here.
-
-Fri Jul 24 17:01:42 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * config.sub: Merge with FSF.
-
- * config.guess: Merge with FSF.
-
-Fri Jul 24 08:43:36 1998 Doug Evans <devans@canuck.cygnus.com>
-
- * configure (extraconfigdirs): New variable.
- (SUBDIRS): Add extraconfigdirs and recurse on them too.
- * Makefile.in (all): Move higher in file.
- (EXTRA_TARGET_HOST_ALL_MODULES): New variable.
- (EXTRA_TARGET_HOST_{INSTALL,CHECK}_MODULES): New variables.
- (ALL_MODULES): Add EXTRA_TARGET_HOST_ALL_MODULES.
- (CROSS_CHECK_MODULES): Add EXTRA_TARGET_HOST_CHECK_MODULES.
- (INSTALL_MODULES): Add EXTRA_TARGET_HOST_INSTALL_MODULES.
-
-1998-07-23 Brendan Kehoe <brendan@cygnus.com>
-
- * Makefile.in (all-target-libjava): Depend on all-gcc and
- all-target-newlib.
- (configure-target-libjava): Depend on $(ALL_GCC).
-
-Sat Jul 18 14:32:43 CDT 1998 Robert Lipe <robertl@dgii.com>
-
- * config.guess: (*-pc-sco3.2v5) Add detection for Pentium II.
- (*-pc-unixware7) Add detection for Pentium II, Pentium Pro.
-
-Fri Jul 17 13:30:18 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * ylwrap: Change absolute path checks to check for DOS style path
- names.
-
- * ylwrap: Don't use a full path name if the source file is in the
- same directory. From hjl@lucon.org (H.J. Lu).
-
- * config-ml.in: Default to being verbose, to match Feb 18 change to
- configure.
-
-Thu Jul 16 12:29:51 1998 Ian Lance Taylor <ian@cygnus.com>
-
- Brought over from egcs:
-
- Sat Jun 27 22:46:32 1998 Jeffrey A Law (law@cygnus.com)
-
- * configure.in (target_subdir): Set to ${target_alias} instead
- of "libraries".
-
- Mon Sep 1 16:45:44 1997 Jim Wilson <wilson@cygnus.com>
-
- * configure.in (target_subdir): Set to libraries if enable_multilib.
-
-Wed Jul 15 01:00:54 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in ($(CONFIGURE_TARGET_MODULES)): If there are any
- multilibs, force reconfiguration the first time we create
- multilib.out in a subdirectory, in case TARGET_SUBDIR is `.'.
-
-Tue Jul 14 23:41:03 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Strip any --no option from CONFIG_ARGUMENTS, to
- avoid confusion with --no-recursion.
-
-Tue Jul 14 15:37:41 1998 Geoffrey Noer <noer@cygnus.com>
-
- * configure.in: Win32 hosts shouldn't use install -x
- * install-sh: remove -x option, and special .exe-handling
- hack.
-
-Tue Jul 14 15:28:41 1998 Richard Henderson <rth@cygnus.com>
-
- * config.guess: Recognize i586-pc-beos.
- * configure.in: Don't build some bits for beos.
-
-Tue Jul 14 13:22:18 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: If CC is set but CFLAGS is not, and CC is gcc, make
- CFLAGS default to -O2.
-
- * ltmain.sh: Add some hacks to make SunOS --enable-shared work
- when using GNU ld.
-
-Fri Jul 10 13:18:23 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * ltmain.sh: Correct install when using a different shell.
-
-Tue Jul 7 15:24:38 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * ltconfig, ltmain.sh: Update to libtool 1.2b.
-
-Thu Jul 2 13:57:36 1998 Klaus Kaempf <kkaempf@rmi.de>
-
- * makefile.vms: Update to build binutils/makefile.vms. Add install
- target.
-
-Wed Jul 1 16:45:21 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * ltconfig: Update to correct AIX handling.
-
-Sat Jun 27 22:46:32 1998 Jeffrey A Law (law@cygnus.com)
-
- * Makefile.in (BASE_FLAGS_TO_PASS): Add TARGET_SUBDIR.
-
- * configure.in (target_subdir): Set to ${target_alias} instead
- of "libraries".
-
-1998-06-26 Manfred Hollstein <manfred@s-direktnet.de>
-
- * Makefile.in (BASE_FLAGS_TO_PASS): Add gcc_version_trigger.
- (Makefile): Depend on $(gcc_version_trigger).
-
- * configure (gcc_version): Change default initializer to empty
- string.
- (gcc_version_trigger): New variable; pass this variable down
- to subdir configures to enable them checking gcc's version
- themselves. Emit make macros for both gcc_version vars.
- (topsrcdir): Initialize reliably.
- (recursion line): Remove --with-gcc-version=${gcc_version}.
-
-1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
-
- * configure (enable_version_specific_runtime_libs): Implement new flag
- --enable-version-specific-runtime-libs which installs C++ runtime stuff
- in $(libsubdir); emit definition in each generated Makefile.
- (gxx_include_dir): Initialize depending on
- $enable_version_specific_runtime_libs.
-
-1998-06-24 Manfred Hollstein <manfred@s-direktnet.de>
-
- * configure (gcc_version): Initialize properly depending on
- how and where configure is started.
- (recursion line): Pass a --with-gcc-version=${gcc_version}
- to configures in subdirs.
-
-Wed Jun 24 16:01:59 1998 John Metzler <jmetzler@cygnus.com>
-
- * configure.in (noconfigdirs): Add configure pattern for mips tx39
- cygmon
-
-Tue Jun 23 22:42:32 1998 Mark Alexander <marka@cygnus.com>
-
- * configure.in: Add cygmon and libstub support for mn10200.
-
-1998-06-19 Manfred Hollstein <manfred@s-direktnet.de>
-
- * configure (gcc_version): Add new variable describing the
- particular gcc version we're building.
- * Makefile.in (libsubdir): Add new macro for the directory
- in which the compiler finds executables, libraries, etc.
- (BASE_FLAGS_TO_PASS): Pass down gcc_version, target_alias
- and libsubdir.
-
-Fri Jun 19 02:36:59 1998 Alexandre Oliva <oliva@dcc.unicamp.br>
-
- * Makefile.in (local-clean): Remove *.log.
- (warning.log): Built with warn_summary from build.log.
- (mail-report.log): Run test_summary.
- (mail-report-with-warnings.log): Run test_summary including
- warning.log in the report.
-
-Thu Jun 18 11:26:03 1998 Robert Lipe <robertl@dgii.com>
-
- * config.guess: Detection of Pentium II for *-sco-3.2v5*.
-
-Mon Jun 15 14:53:54 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * Makefile.in (grep): Grep no longer depends on libiberty.
-
-Fri Jun 12 14:03:34 1998 Syd Polk <spolk@cygnus.com>
-
- * Makefile.in: all-snavigator needs all-libgui.
-
-Thu Jun 11 19:43:47 1998 Mark Alexander <marka@cygnus.com>
-
- * configure.in: Add cygmon and libstub support for mn10300.
-
-Wed Jun 10 11:19:47 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * missing: Update to version from automake 1.3.
-
- * ltmain.sh: On installation, don't get confused if the same name
- appears more than once in the list of library names.
-
-Wed Jun 3 14:51:42 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * config.sub: Accept m68060 and m5200 as CPU names.
-
-Mon Jun 1 17:25:16 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: Use && rather than using -a in test, because odd
- strings can confuse test.
- * configure.in: Likewise.
-
-Thu May 28 19:31:13 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * ltconfig, ltmain.sh: Bring in Visual C++ support.
-
-Sat May 23 23:44:13 1998 Alexandre Oliva <oliva@dcc.unicamp.br>
-
- * Makefile.in (boostrap2-lean, bootstrap3-lean,
- bootstrap4-lean): New targets.
-
-Mon May 11 23:55:56 1998 Jeffrey A Law (law@cygnus.com)
-
- * mpw-* Delete. Not used.
-
-Mon May 11 23:11:34 1998 Jeffrey A Law (law@cygnus.com)
-
- * COPYING.LIB: Update FSF address.
-
-Fri May 8 01:30:20 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * ltconfig, ltmain.sh: Update to libtool 1.2a.
-
- * Makefile.in (GASB_SUPPORT_DIRS): Remove intl; already included via
- GAS_SUPPORT_DIRS.
-
-Thu May 7 17:27:35 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * ltconfig, ltmain.sh: Avoid producing a version number if
- -version-info was not used.
-
-Tue May 5 18:02:24 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Add --with-newlib to CONFIG_ARGUMENTS if we are
- building with newlib.
-
-1998-04-30 Paul Eggert <eggert@twinsun.com>
-
- * Makefile.in (EXTRA_GCC_FLAGS): Remove backslash at end;
- Solaris `make' causes it to continue to next definition.
-
-Tue Apr 28 16:24:24 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * Makefile.in (install-gdbtk): Call this 'install-gdb' so that
- the right GUI libraries and files are installed along with GDB.
-
-Tue Apr 28 18:11:24 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Change alpha to alpha* in several places.
-
-Tue Apr 28 07:42:00 1998 Mark Alexander <marka@cygnus.com>
-
- * config.sub: Recognize sparc86x.
-
-Tue Apr 28 07:35:02 1998 Michael Meissner <meissner@cygnus.com>
-
- * configure.in (--enable-target-optspace): Remove debug echo.
-
-Thu Apr 23 21:31:16 1998 Jim Wilson <wilson@cygnus.com>
-
- * configure: Set CXXFLAGS from CXXFLAGS, not CFLAGS.
-
-Thu Apr 23 12:26:38 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * ltconfig: Update cygwin32 support.
-
- * Makefile.in (GAS_SUPPORT_DIRS): Add intl.
- (BINUTILS_SUPPORT_DIRS, GASB_SUPPORT_DIRS): Likewise.
- (GDB_SUPPORT_DIRS): Likewise.
-
-Wed Apr 22 12:30:10 1998 Michael Meissner <meissner@cygnus.com>
-
- * configure.in (target_makefile_frag): If --enable-target-optspace,
- use -Os to compile target libraries rather than -O2. Default to
- using -Os for d10v and m32r if --{enable,disable}-target-optspace is
- not used.
- * configure.in (target_cflags): Ditto for d30v.
-
-Tue Apr 21 23:06:54 1998 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in (all-bfd): Depend on all-intl.
- (all-binutils): Likewise.
- (all-gas): Likewise.
- (all-gprof): Likewise.
- (all-ld): Likewise.
-
-1998-04-19 Brendan Kehoe <brendan@cygnus.com>
-
- * configure.in (host_tools): Fix typo, lbtool -> libtool.
-
-Fri Apr 17 16:20:42 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (all-bfd): Depend upon all-libiberty.
-
- * ltconfig, ltmain.sh: Bring in newer cygwin32 support.
-
-Fri Apr 17 12:22:22 1998 Bob Manson <manson@charmed.cygnus.com>
-
- * Makefile.in: Add libstub.
-
- * configure.in: Ditto. Build libstub for targets that have cygmon
- support.
-
-Tue Apr 14 18:01:55 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Don't set PICFLAG on ix86-cygwin32.
-
-Tue Apr 14 12:24:45 1998 J. Kean Johnston <jkj@sco.com>
-
- * configure.in: Recognise i[3456]96-*-sysv5* as a valid host, and
- use mh-sysv5 if specified. Support gprof on SCO Open Server.
-
-Tue Apr 14 11:33:51 1998 Krister Walfridsson <cato@df.lth.se>
-
- * configure: Define DEFAULT_M4 by searching PATH.
- * Makfile.in: Use DEFAULT_M4.
-
-Mon Apr 13 15:37:24 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * ltconfig: Add cygwin32 support.
-
- * Makefile.in, configure.in: Add libtool as a native only directory
- to configure and build.
-
-Sun Apr 12 20:58:46 1998 Jeffrey A Law (law@cygnus.com)
-
- * Makefile.in (INSTALL_MODULES): Remove texinfo.
-
-Wed Apr 8 13:18:56 1998 Philippe De Muyter <phdm@macqel.be>
-
- * Makefile.in (EXTRA_GCC_FLAGS): XFOO lines shortened.
-
-Thu Apr 2 14:48:44 1998 Geoffrey Noer <noer@cygnus.com>
-
- * Makefile.in: add ash make rules
- * configure.in: add ash to native_only and host_tools lists
-
-Thu Mar 26 12:53:20 1998 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in (all-gettext, all-intl): New targets.
- (ALL_MODULES): Added all-gettext, all-intl.
- (CROSS_CHECK_MODULES): Added check-gettext, check-intl.
- (INSTALL_MODULES): Added install-gettext, install-intl.
- (CLEAN_MODULES): Added clean-gettext, clean-intl.
-
- * configure.in (host_tools): Added gettext.
- (native_only): Likewise.
- (noconfigdirs) [various cases]: Likewise.
- (host_libs): Added intl.
-
-Thu Mar 26 15:00:11 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * configure: Do not disable building gdbtk for cygwin32 hosts.
-
-Wed Mar 25 10:04:18 1998 Nick Clifton <nickc@cygnus.com>
-
- * configure.in: Add thumb-coff target.
- * config.sub: Add thumb-coff target.
-
-Wed Mar 25 11:49:12 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * Makefile.in: Revert yesterday's change.
- (all-target-winsup): all-target-librx stays out of here.
-
-Tue Mar 24 16:58:29 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * Makefile.in (TARGET_CONFIGDIRS, ALL_TARGET_MODULES,
- CONFIGURE_TARGET_MODULES, CHECK_TARGET_MODULES,
- INSTALL_TARGET_MODULES, CLEAN_TARGET_MODULES, all-target-winsup):
- Remove references to librx and libg++.
-
-Tue Mar 24 18:28:12 1998 Eric Mumpower <nocturne@cygnus.com>
-
- * Makefile.in (BASE_FLAGS_TO_PASS): Pass $(lispdir) down to
- recursive makes
-
-Tue Mar 24 11:37:45 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (CC_FOR_TARGET): Use $(TARGET_SUBDIR) when passing -B
- for newlib directory.
- (CXX_FOR_TARGET): Likewise.
-
-Mon Mar 23 11:30:21 1998 Jeffrey A Law (law@cygnus.com)
-
- * ltconfig: Update after libtool/ltconfig.in change for
- hpux11.
-
-Fri Mar 20 18:51:43 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * ltconfig, ltmain.sh: Update to libtool 1.2.
-
-Fri Mar 20 09:32:14 1998 Manfred Hollstein <manfred@s-direktnet.de>
-
- * Makefile.in (install-gcc): Don't specify LANGUAGES here.
- (install-gcc-cross): Instead, override LANGUAGES here.
-
-1998-03-18 Dave Love <d.love@dl.ac.uk>
-
- * Makefile.in ($(CONFIGURE_TARGET_MODULES)): Set CONFIG_SITE to a
- non-existent file since /dev/null loses with bash 2.0/autoconf 2.12.
-
-Wed Mar 18 09:24:59 1998 Nick Clifton <nickc@cygnus.com>
-
- * configure.in: Add Thumb-pe target.
-
-Tue Mar 17 16:59:00 1998 Syd Polk <spolk@cygnus.com>
-
- * Makefile.in - changed sn targets to snavigator
- * configure.in - changed sn targets to snavigator
-
-Tue Mar 17 10:33:28 1998 Manfred Hollstein <manfred@s-direktnet.de>
-
- * config-ml.in: After building symlink tree call make distclean
- if a Makefile got linked into ${ml_dir}/${ml_libdir}; this happens
- to be the case for libiberty.
-
-Tue Mar 17 10:22:37 1998 H.J. Lu (hjl@gnu.ai.mit.edu)
-
- * configure: When making link, also check the current
- directory. The configure scripts may create one.
-
-Fri Mar 6 01:02:03 1998 Richard Henderson <rth@cygnus.com>
-
- * config.sub: Accept alphapca56 and alphaev6 properly.
-
-Fri Mar 6 00:14:55 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
-
- * configure.in: Revert 3 Jan change for powerpc-linux-gnulibc1.
-
-Mon Feb 23 15:09:18 1998 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de
-
- * config.sub (sco5): Fix typo.
-
-Mon Feb 23 14:46:06 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (INSTALL_MODULES): Move install-tcl before
- install-itcl.
- (install-itcl): Remove dependency on install-tcl.
-
-Mon Feb 23 09:53:28 1998 Mark Alexander <marka@cygnus.com>
-
- * configure.in: Remove libgloss from noconfigdirs for MN10300.
-
-Thu Feb 19 13:40:41 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Don't build libgui for a cygwin32 target when not on
- a cygwin32 host.
-
-Wed Feb 18 12:29:00 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * configure (redirect): Set to null, so default behavior of
- configure is now --verbose.
-
-1998-02-16 Dave Love <d.love@dl.ac.uk>
-
- * Makefile.in ($(CONFIGURE_TARGET_MODULES)): Run configure with
- CONFIG_SITE=/dev/null to forestall lossage with site configuration.
-
-Mon Feb 16 12:23:53 1998 Manfred Hollstein <Manfred.Hollstein@ks.sel.alcatel.de>
-
- * Makefile.in (BASE_FLAGS_TO_PASS, EXTRA_TARGET_FLAGS): Really add
- this change to sync Makefile.in with its ChangeLog entries.
-
-Thu Feb 12 15:03:08 1998 H.J. Lu <hjl@gnu.org>
-
- * ltmain.sh (mkdir): Check that the directory doesn't exist
- before we exit with error, so that we don't get races during
- parallel builds.
-
-Sat Feb 7 15:19:18 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * ltconfig, ltmain.sh: Update from libtool 1.0i.
-
-Fri Feb 6 01:33:52 1998 Manfred Hollstein <manfred@s-direktnet.de>
-
- * Makefile.in (BASE_FLAGS_TO_PASS): Don't pass PICFLAG and
- PICFLAG_FOR_TARGET.
- (EXTRA_TARGET_FLAGS): Don't pass PICFLAG_FOR_TARGET.
-
- * configure: Emit a definition for the new macro enable_shared
- into each Makefile.
-
- * config/mh-sparcpic (PICFLAG): Define to properly according
- to current multilib configuration.
- * config/mt-sparcpic (PICFLAG_FOR_TARGET): Define to properly
- according to current multilib configuration.
-
-Thu Feb 5 17:01:12 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * configure.in (host_tools, native_only): Add libtool.
-
-Wed Feb 4 16:53:58 1998 Geoffrey Noer <noer@cygnus.com>
-
- * configure.in: add target-gperf to noconfigdirs for Cygwin32.
- Fix typo in ming config comment.
-
-Wed Feb 4 18:56:13 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * ltconfig, ltmain.sh: Update from libtool 1.0h.
-
-Mon Feb 2 19:38:19 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * config.sub: Add tic30 cases, and map c30 to tic30.
-
-Sun Feb 1 02:40:41 1998 Richard Henderson <rth@cygnus.com>
-
- * Makefile.in (TARGET_CONFIGDIRS): Add libf2c.
- (ALL_TARGET_MODULES, CONFIGURE_TARGET_MODULES): Similarly
- (CHECK_TARGET_MODULES, INSTALL_TARGET_MODULES): Similarly
- (CLEAN_TARGET_MODULES): Similarly
- (all-target-libf2c): Add dependences.
- * configure.in (target_libs): Add libf2c.
-
-Fri Jan 30 17:18:32 1998 Geoffrey Noer <noer@cygnus.com>
-
- * configure.in: Remove expect from noconfigdirs when target
- is cygwin32. OK to build expect and dejagnu with Canadian
- Cross.
-
-Wed Jan 28 12:58:49 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Do build expect, dejagnu, and cvssrc for a cygwin32
- host.
-
- * config.guess: Use ${UNAME_MACHINE} rather than i386 for cygwin32
- and mingw32.
-
-Wed Jan 28 10:26:37 1998 Manfred Hollstein <manfred@s-direktnet.de>
-
- * Makefile.in (BASE_FLAGS_TO_PASS): Remove passing $(local_prefix)
- here as it is not defined in the toplevel Makefile.
-
-Tue Jan 27 23:25:06 1998 Manfred Hollstein <manfred@s-direktnet.de>
-
- * configure (package_makefile_rules_frag): New variable, which names
- a file with generic rules, ...
- Change comment to mention we now have FIVE parts.
- * configure: Undo last change.
-
-Tue Jan 27 23:15:55 1998 Lassi A. Tuura <lat@iki.fi>
-
- * config.guess: More accurate determination of HP processor types.
- * config.sub: More accurate determination of HP processor types.
-
-Sat Jan 24 01:59:45 1998 Manfred Hollstein <manfred@s-direktnet.de>
-
- * configure (package_makefile_frag): Move inserting the
- ${package_makefile_frag} to where it should be according
- to the comment.
-
-Fri Jan 23 00:29:28 1998 Philip Blundell <pb@nexus.co.uk>
-
- * config.guess: Add support for Linux/ARM.
-
-Thu Jan 22 15:14:01 1998 Fred Fish <fnf@cygnus.com>
-
- * .cvsignore: Remove *-info and *-install since they match
- release-info and mpw-install, which we don't want to just ignore.
-
-Thu Jan 22 01:38:33 1998 Richard Henderson <rth@cygnus.com>
-
- * configure.in: Revert 3 Jan change for alpha-linux-gnulibc1.
-
-Sat Jan 17 21:28:08 1998 Pieter Nagel <pnagel@epiuse.co.za>
-
- * Makefile.in (FLAGS_TO_PASS): Pass down gcc_include_dir and
- local_prefix to sub-make invocations.
-
-Sat Jan 17 21:04:59 1998 H.J. Lu (hjl@gnu.org)
-
- * configure.in: Check makefile fragments in the source
- directory.
-
-Fri Jan 16 00:41:37 1998 Alexandre Oliva <oliva@dcc.unicamp.br>
-
- * configure.in: Check whether host and target makefile
- fragments exist before adding them to *_makefile_frag.
-
-Wed Jan 14 23:39:10 1998 Bob Manson <manson@charmed.cygnus.com>
-
- * configure.in (target_configdirs): Add cygmon for sparc64-elf.
-
-Wed Jan 14 12:48:07 1998 Keith Seitz <keiths@pizza.cygnus.com>
-
- * configure.in: Make sure we only replace RPATH_ENVVAR on
- lines which begin with RPATH_ENVVAR, i.e. add "^" to the
- regexp to sed.
-
- * Makefile.in (BASE_FLAGS_TO_PASS): Pass RRPATH_ENVVAR down
- to sub-makes.
-
-1998-01-13 Lee Iverson (leei@ai.sri.com)
-
- * config-ml.in (multi-do): LDFLAGS must include multilib
- designator.
-
-Tue Jan 13 01:13:24 1998 Robert Lipe (robertl@dgii.com)
-
- * config.guess: Recognize i[3456]-i586-UnixWare7-sysv5.
-
-Sun Jan 4 01:06:55 1998 Mumit Khan <khan@xraylith.wisc.edu>
-
- * config.sub: Add mingw32 support.
- * configure.in: Likewise.
- * config/mh-mingw32: New file.
-
-Sat Jan 3 12:11:05 1998 Franz Sirl <franz.sirl-kernel@lauterbach.com>
-
- * configure.in: Finalize support for {alpha|powerpc}*-*-linux-gnulibc1
-
-Sun Dec 28 11:28:58 1997 Jeffrey A Law (law@cygnus.com)
-
- * Makefile.in (INSTALL_TARGET): Do install-gcc first.
- * configure (gxx_include_dir): Provide a definition for subdirs
- which do not use autoconf.
-
-Wed Dec 24 22:46:55 1997 Jeffrey A Law (law@cygnus.com)
-
- * config.guess: Sync with egcs. Picks up new alpha support,
- BeOS & some additional linux support.
-
-Tue Dec 23 12:44:24 1997 Jeffrey A Law (law@cygnus.com)
-
- * config.guess: HP 9000/803 is a PA1.1 machine.
-
-Mon Dec 22 02:39:24 1997 Richard Henderson <rth@cygnus.com>
-
- * configure.in: It's alpha*-...
-
-Sun Dec 21 16:53:12 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
-
- * configure.in (host_makefile_frag, target_makefile_frag):
- Handle multiple config files.
- (alpha-*-linux*): Treat alpha-*-linux* as alpha-*-linux* and
- alpha-*-*.
-
-Thu Dec 18 13:13:03 1997 Doug Evans <devans@canuck.cygnus.com>
-
- * mkdep: New file.
-
-Wed Dec 17 09:53:02 1997 Michael Meissner <meissner@cygnus.com>
-
- * configure.in (d30v-*-*): Allow configuring of libide, vmake, etc.
-
-Tue Dec 16 17:36:05 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in: Add libgui directory.
- (GDB_TK): Add all-libgui.
- * configure.in: Add libgui directory.
- * configure: Add all-libgui to GDB_TK.
-
-Mon Dec 15 16:12:28 1997 Nick Clifton <nickc@cygnus.com>
-
- * config-ml.in (multidirs): Add m32r to multilib list.
-
-Fri Dec 12 10:43:31 1997 Brendan Kehoe <brendan@canuck.cygnus.com>
-
- * Makefile.in (all-target-gperf): Change dependency to
- all-target-libstdc++.
-
-Thu Dec 11 23:30:51 1997 Fred Fish <fnf@ninemoons.com>
-
- * config.guess: Add BeOS support.
-
-Wed Dec 10 15:10:38 1997 Ian Lance Taylor <ian@cygnus.com>
-
- Source directory cvs renamed to cvssrc:
- * configure.in (host_tools): Change cvs to cvssrc.
- (native_only): Likewise.
- (noconfigdirs) [various cases]: Likewise.
- * Makefile.in (ALL_MODULES): Change all-cvs to all-cvssrc.
- (CROSS_CHECK_MODULES): Change check-cvs to check-cvssrc.
- (INSTALL_MODULES): Change install-cvs to install-cvssrc.
- (CLEAN_MODULES): Change clean-cvs to clean-cvssrc.
- (all-cvssrc): Rename target from all-cvs.
-
-Wed Dec 3 07:55:59 1997 Jeffrey A Law (law@cygnus.com)
-
- * configure (gxx_include_dir): Fix thinko.
-
-Tue Dec 2 10:55:34 1997 Jeffrey A Law (law@cygnus.com)
-
- * Makefile.in (INSTALL_TARGET_CROSS): Define.
- (install-cross, install-gcc-cross): New targets.
-
-Tue Dec 2 10:08:31 1997 Nick Clifton <nickc@cygnus.com>
-
- * configure.in (noconfigdirs): Add support for Thumb target.
-
- * config.sub (maybe_os): Add support for Thumb target.
-
-Sun Nov 30 16:12:27 1997 Bob Manson <manson@charmed.cygnus.com>
-
- * Makefile.in: Add rules for cygmon.
-
- * configure.in: Build cygmon for sparc-elf and sparclite-aout.
-
-Thu Nov 27 01:31:30 1997 Jeffrey A Law (law@cygnus.com)
-
- * Makefile.in (INSTALL_TARGET): Do install-gcc first.
- * configure (gxx_include_dir): Provide a definition for subdirs
- which do not use autoconf.
-
-Wed Nov 26 11:53:33 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * Makefile.in, configure, configure.in, ChangeLog: merge with foundry's
- 11/18/97 build
-
-Wed Nov 26 16:08:50 1997 Jeffrey A Law (law@cygnus.com)
-
- * From Franz Sirl.
- * config.guess (powerpc*-*-linux): Handle glibc2 beta release
- found on RedHat Linux systems.
-
-Fri Nov 21 09:51:01 1997 Jeffrey A Law (law@cygnus.com)
-
- * config.guess (alpha stuff): Merge with FSF to avoid incorrect
- guesses.
-
-Thu Nov 13 11:38:37 1997 Jeffrey A Law (law@cygnus.com)
-
- * configure.in (i[3456]86-ncr-sysv4.3*): Tweak.
-
-Mon Nov 10 15:23:21 1997 H.J. Lu <hjl@gnu.ai.mit.edu>
-
- * ltmain.sh: If mkdir fails, check whether the directory was created
- anyhow by some other process.
-
-Mon Nov 10 14:38:03 1997 Michael Meissner <meissner@cygnus.com>
-
- * configure.in (d30v-*-*): Configure all directories.
-
-Sun Nov 9 17:36:20 1997 Michael Meissner <meissner@cygnus.com>
-
- * configure.in (d30v-*-*): Configure newlib, libiberty directories
- for the D30V.
-
-Sat Nov 8 14:42:59 1997 Michael Meissner <meissner@cygnus.com>
-
- * configure.in (d30v-*-*): Configure target-libgloss on the D30V.
-
-Fri Nov 7 10:34:09 1997 Rob Savoye <rob@darkstar.cygnus.com>
-
- * include/libiberty.h: Add extern "C" { so it can be used with C++
- progrms.
- * include/remote-sim.h: Add extern "C" { so it can be used with C++
- programs.
-
-Thu Oct 30 11:09:29 1997 Michael Meissner <meissner@cygnus.com>
-
- * configure.in (d30v-*-*): Configure GCC now.
-
-Mon Oct 27 13:17:24 1997 Stan Shebs <shebs@andros.cygnus.com>
-
- * configure.in: Remove a "second pass" of tweaking noconfigdirs,
- is no longer needed.
-
-Mon Oct 27 12:03:53 1997 Jason Merrill <jason@yorick.cygnus.com>
-
- * Makefile.in: check-target-libio depends on all-target-libstdc++.
-
-Sun Oct 26 11:48:27 1997 Manfred Hollstein (manfred@s-direktnet.de)
-
- * Makefile.in (bootstrap-lean): Combined with `normal' bootstrap
- targets using "$@" to provide support for similar but not identical
- targets without having to duplicate code.
-
-Mon Oct 20 15:28:49 1997 Klaus K"ampf <kkaempf@progis.de>
-
- * makefile.vms: Fix to work with DEC C.
-
-Tue Oct 7 23:58:57 1997 Gavin Koch <gavin@cygnus.com>
-
- * config.sub: Add mips-tx39-elf to marketing names.
-
-Tue Oct 7 14:24:41 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * ltmain.sh: Handle symlinks in generated script.
-
-Wed Oct 1 13:11:27 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: Handle autoconf style directory options: --bindir,
- --datadir, --includedir, --infodir, --libdir, --libexecdir,
- --mandir, --oldincludedir, --sbindir, --sharedstatedir,
- --sysconfdir.
- * Makefile.in (sbindir, libexecdir, sysconfdir): New variables.
- (sharedstatedir, localstatedir, oldincludedir): New variables.
- (BASE_FLAGS_TO_PASS): Pass down bindir, datadir, includedir,
- infodir, libdir, libexecdir, localstatedir, mandir, oldincludedir,
- sbindir, sharedstatedir, and sysconfdir.
-
-Mon Sep 29 00:38:08 1997 Aaron Jackson <jackson@negril.msrce.howard.edu>
-
- * Makefile.in (bootstrap-lean): New target.
-
-Wed Sep 24 18:06:27 1997 Stu Grossman <grossman@babylon-5.cygnus.com>
-
- * configure.in (d30v): Remove tcl, tk, expect, gdb, itcl, tix, db,
- sn, and gnuserv from noconfigdirs.
-
-Wed Sep 24 15:18:32 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * ltmain.sh: Tweak shell pattern to avoid bug in NetBSD /bin/sh.
-
-Thu Sep 18 23:58:27 1997 Jeffrey A Law (law@cygnus.com)
-
- * Makefile.in (cross): New target.
-
-Thu Sep 18 21:43:23 1997 Alexandre Oliva <oliva@dcc.unicamp.br>
- Jeff Law <law@cygnus.com>
-
- * Makefile.in (bootstrap2, bootstrap3): New targets.
- (all-bootstrap): Remove outdated and confusing target.
- (bootstrap, bootstrap2, bootstrap3): Don't pass BOOT_CFLAGS down.
-
-Thu Sep 18 15:37:42 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure (tooldir): enable_gdbtk=YES for cygwin32, NO for
- windows. Consistent with gdb/configure.
-
-1997-09-15 02:37 Ulrich Drepper <drepper@cygnus.com>
-
- * config/mt-linux: Define CXXFLAGS to make sure -fvtable-thunks is
- used.
- * configure.in: Name Linux target fragment.
-
- * configure: Rewrite so that project Makefile fragment is inserted
- first and appears last in the resulting Makefile.
-
-Tue Sep 16 09:55:07 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * Makefile.in (install-itcl): Install tcl first.
-
-Sun Sep 14 20:53:42 1997 Geoffrey Noer <noer@cygnus.com>
-
- * config/mh-cygwin32: ok to build split texinfo files
-
-Fri Sep 12 16:19:20 1997 Geoffrey Noer <noer@cygnus.com>
-
- * configure.in: remove bison from noconfigdirs for Cygwin32 host
-
-Thu Sep 11 16:40:46 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
-
- * Makefile.in (local-distclean): Also remove mh-frag mt-frag.
-
- * configure.in (skipdirs): Add target-librx for Linux.
- (alpha-*-linux*): Use config/mh-elfalphapic and config/mt-elfalphapic.
-
-Wed Sep 10 21:29:54 1997 Jeffrey A Law (law@cygnus.com)
-
- * Makefile.in (bootstrap): New target.
-
-Wed Sep 10 15:19:22 1997 Jeffrey A Law (law@cygnus.com)
-
- * config.sub: Accept 'amigados' for backward compatability.
-
-Mon Sep 8 20:46:20 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * config.guess: Merge with FSF.
-
-Sun Sep 7 23:18:32 1997 Fred Fish <fnf@ninemoons.com>
-
- * config.sub: Change 'amigados' to 'amigaos' to match current usage.
-
-Sun Sep 7 15:55:28 1997 Gavin Koch <gavin@cygnus.com>
-
- * config.sub: Add "marketing-names" patch.
-
-Fri Sep 5 16:11:28 1997 Joel Sherrill (joel@OARcorp.com)
-
- * configure.in (*-*-rtems*): Do not build libgloss for rtems.
-
-Fri Sep 5 12:27:17 1997 Jeffrey A Law (law@cygnus.com)
-
- * config.sub: Handle v850-elf.
-
-Wed Sep 3 22:01:58 1997 Fred Fish <fnf@ninemoons.com>
-
- * .cvsignore (*-install): Remove.
-
-Wed Sep 3 12:15:24 1997 Chris Provenzano <proven@cygnus.com>
-
- * ltconfig: Set CONFIG_SHELL in libtool.
- * ltmain.sh: Use CONFIG_SHELL instead of /bin/sh
-
-Mon Sep 1 16:45:44 1997 Jim Wilson <wilson@cygnus.com>
-
- * configure.in (target_subdir): Set to libraries if enable_multilib.
-
-Wed Aug 27 16:15:11 1997 Jim Wilson <wilson@cygnus.com>
-
- * config.guess: Update from gcc directory.
-
-Tue Aug 26 16:46:46 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * Makefile.in (all-sim): Depends on all-readline.
-
-Wed Aug 20 19:57:37 1997 Jason Merrill <jason@yorick.cygnus.com>
-
- * Makefile.in (BISON, YACC): Use $$s.
- (all-bison): Depend on all-texinfo.
-
-Tue Aug 19 01:41:32 1997 Jason Merrill <jason@yorick.cygnus.com>
-
- * Makefile.in (BISON): Add -L flag.
- (YACC): Likewise.
-
-Mon Aug 18 11:30:50 1997 Nick Clifton <nickc@cygnus.com>
-
- * configure.in (noconfigdirs): Add support for v850e target.
-
- * config.sub (maybe_os): Add support for v850e target.
-
-Mon Aug 18 11:30:50 1997 Nick Clifton <nickc@cygnus.com>
-
- * configure.in (noconfigdirs): Add support for v850ea target.
-
- * config.sub (maybe_os): Add support for v850ea target.
-
-Mon Aug 18 09:24:06 1997 Gavin Koch <gavin@cygnus.com>
-
- * config.sub: Add mipstx39. Delete r3900.
-
-Mon Aug 18 17:20:10 1997 Jason Molenda (crash@godzilla.cygnus.co.jp)
-
- * Makefile.in (all-autoconf): Depends on all-texinfo.
-
-Fri Aug 15 23:09:26 1997 Michael Meissner <meissner@cygnus.com>
-
- * config-ml.in ({powerpc,rs6000}*-*-*): Update to current AIX and
- eabi targets.
-
-Thu Aug 14 14:42:17 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: Get CFLAGS and CXXFLAGS from Makefile, if possible.
-
- * configure: When handling a Canadian Cross, handle YACC as well as
- BISON. Just set BISON to bison. When setting YACC, prefer bison.
- * Makefile.in (all-bison): Depend upon all-texinfo.
-
-Tue Aug 12 20:09:48 1997 Jason Merrill <jason@yorick.cygnus.com>
-
- * Makefile.in (BISON): bison, not byacc or bison -y.
- (YACC): bison -y or byacc or yacc.
- (various): Add *-bison as appropriate.
- (taz): No need to mess with BISON anymore.
-
-Tue Aug 12 22:33:08 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: If OSTYPE matches *win32*, try to find a good value for
- CONFIG_SHELL.
-
-Sun Aug 10 14:41:11 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (taz): Get the version number from AM_INIT_AUTOMAKE in
- configure.in if it is present.
-
-Sat Aug 9 00:58:01 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (LD_FOR_TARGET): Change ld.new to ld-new.
-
-Fri Aug 8 16:30:13 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * config.sub: Recognize `arc' cpu.
- * configure.in: Likewise.
- * config-ml.in: Likewise.
-
-Thu Aug 7 11:02:34 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in ($(INSTALL_X11_MODULES)): Depend upon installdirs.
-
-Wed Aug 6 16:27:29 1997 Chris Provenzano <proven@cygnus.com>
-
- * configure: Changed sed delimiter from ':' to '|' when
- attempting to substitute ${config_shell} for SHELL. On
- NT ${config_shell} may contain a ':' in it.
-
-Wed Aug 6 12:29:05 1997 Jason Merrill <jason@yorick.cygnus.com>
-
- * Makefile.in (EXTRA_GCC_FLAGS): Fix for non-bash shells.
-
-Wed Aug 6 00:42:35 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (AS_FOR_TARGET): Change as.new to as-new.
-
-Tue Aug 5 14:08:51 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (NM_FOR_TARGET): Change nm.new to nm-new.
-
- * ylwrap: If the program is a relative path, force it to be
- absolute.
-
-Tue Aug 5 12:12:44 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure (tooldir): Set BISON to `bison -y' and not just bison.
-
-Mon Aug 4 22:59:02 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * Makefile.in (CC_FOR_TARGET): When winsup/Makefile present,
- correctly specify the target build directory $(TARGET_SUBDIR)/winsup
- for libraries.
-
-Mon Aug 4 12:40:24 1997 Jason Merrill <jason@yorick.cygnus.com>
-
- * Makefile.in (EXTRA_GCC_FLAGS): Fix handling of macros with values
- separated by spaces.
-
-Thu Jul 31 19:49:49 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * ylwrap: New file.
- * Makefile.in (DEVO_SUPPORT): Add ylwrap.
-
- * ltmain.sh: Handle /bin/sh at start of install program.
-
- * Makefile.in (DEVO_SUPPORT): Add ltconfig, ltmain.sh, and missing.
-
- * ltconfig, ltmain.sh: New files, from libtool 1.0.
- * missing: New file, from automake 1.2.
-
-Thu Jul 24 12:57:56 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in: Treat tix like tk, putting it in X11_MODULES. Add
- check-tk to CHECK_X11_MODULES.
-
-Wed Jul 23 17:03:29 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * config.sub: Merge with FSF.
-
-Tue Jul 22 19:08:29 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * config.guess: Merge with FSF.
-
-Tue Jul 22 14:50:42 1997 Robert Hoehne <robert.hoehne@Mathematik.TU-Chemnitz.DE>
-
- * configure: Treat msdosdjgpp like go32.
- * configure.in: Likewise. Don't remove gprof for go32.
-
- * configure: Change Makefile.tem2 to Makefile.tm2.
-
-Mon Jul 21 10:31:26 1997 Stephen Peters <speters@cygnus.com>
-
- * configure.in (noconfigdirs): For alpha-dec-osf*, don't ignore grep.
-
-Tue Jul 15 14:33:03 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
-
- * install-sh (chmodcmd): Set to null if the DST directory already
- exists. Same as Nov 11th change.
-
-Mon Jul 14 11:01:15 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * configure (GDB_TK): Needs itcl and tix.
-
-Mon Jul 14 00:32:10 1997 Jason Merrill <jason@yorick.cygnus.com>
-
- * config.guess: Update from FSF.
-
-Fri Jul 11 11:57:11 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * Makefile.in (GDB_TK): Depend on itcl and tix.
-
-Fri Jul 4 13:25:31 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (INSTALL_PROGRAM_ARGS): New variable.
- (INSTALL_PROGRAM): Use $(INSTALL_PROGRAM_ARGS).
- (INSTALL_SCRIPT): New variable.
- (BASE_FLAGS_TO_PASS): Pass down INSTALL_SCRIPT.
- * configure.in: If host is *-*-cygwin32*, set INSTALL_PROGRAM_ARGS
- to -x.
- * install-sh: Add support for -x option.
-
-Mon Jun 30 15:51:30 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in, Makefile.in: Treat tix like itcl.
-
-Thu Jun 26 13:59:19 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (WINDRES): New variable.
- (WINDRES_FOR_TARGET): New variable.
- (BASE_FLAGS_TO_PASS): Add WINDRES_FOR_TARGET.
- (EXTRA_HOST_FLAGS): Add WINDRES.
- (EXTRA_TARGET_FLAGS): Add WINDRES.
- (EXTRA_GCC_FLAGS): Add WINDRES.
- ($(DO_X)): Pass down WINDRES.
- ($(CONFIGURE_TARGET_MODULES)): Set WINDRES when configuring.
- * configure: Treat WINDRES like DLLTOOL, and WINDRES_FOR_TARGET like
- DLLTOOL_FOR_TARGET.
-
-Wed Jun 25 15:01:26 1997 Felix Lee <flee@cygnus.com>
-
- * configure.in: configure sim before gdb for win32-x-ppc
-
-Wed Jun 25 12:18:54 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
-
- Move gperf into the toplevel, from libg++.
- * configure.in (target_tools): Add target-gperf.
- (native_only): Add target-gperf.
- * Makefile.in (all-target-gperf): New target, depend on
- all-target-libg++.
- (configure-target-gperf): Empty rule.
- (ALL_TARGET_MODULES): Add all-target-gperf.
- (CONFIGURE_TARGET_MODULES): Add configure-target-gperf.
- (CHECK_TARGET_MODULES): Add check-target-gperf.
- (INSTALL_TARGET_MODULES): Add install-target-gperf.
- (CLEAN_TARGET_MODULES): Add clean-target-gperf.
-
-Mon Jun 23 10:51:53 1997 Jeffrey A Law (law@cygnus.com)
-
- * config.sub (mn10200): Recognize new basic machine.
-
-Thu Jun 19 14:16:42 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
-
- * configure.in: Don't set ENABLE_MULTILIB, so we'll be passing
- --enable-multilib down to subdirs; setting TARGET_SUBDIR was enough.
-
-Tue Jun 17 15:31:20 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
-
- * configure.in: If we're building mips-sgi-irix6* native, turn on
- ENABLE_MULTILIB and set TARGET_SUBDIR.
-
-Tue Jun 17 12:20:59 1997 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in (all-sn): Depend on all-grep.
-
-Mon Jun 16 11:11:10 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Use mh-ppcpic and mt-ppcpic for powerpc*-* targets.
-
- * configure: Set CFLAGS and CXXFLAGS, and substitute them into
- Makefile. From Jeff Makey <jeff@cts.com>.
- * Makefile.in: Add comment for CFLAGS and CXXFLAGS.
-
- * Makefile.in (DISTBISONFILES): Remove.
- (taz): Don't futz with DISTBISONFILES. Change BISON to use
- $(DEFAULT_YACC).
-
- * configure.in: Build itl, db, sn, etc., when building for native
- cygwin32.
-
- * Makefile.in (LD): New variable.
- (EXTRA_HOST_FLAGS): Pass down LD.
- ($(DO_X)): Likewise.
-
-Mon Jun 16 11:10:35 1997 Philip Blundell <Philip.Blundell@pobox.com>
-
- * Makefile.in (INSTALL): Use $(SHELL) when executing install-sh.
-
-Fri Jun 13 10:22:56 1997 Bob Manson <manson@charmed.cygnus.com>
-
- * configure.in (targargs): Strip out any supplied --build argument
- before adding our own. Always add --build.
-
-Thu Jun 12 21:12:28 1997 Bob Manson <manson@charmed.cygnus.com>
-
- * configure.in (targargs): Pass --build if we're doing
- a cross-compile.
-
-Fri Jun 6 21:38:40 1997 Rob Savoye <rob@chinadoll.cygnus.com>
-
- * configure: Use '|' instead of ":" as the separator in
- sed. Otherwise sed chokes on NT path names with drive
- designators. Also look for "?:*" as the leading characters in an
- absolute pathname.
-
-Mon Jun 2 13:05:20 1997 Gavin Koch <gavin@cygnus.com>
-
- * config.sub: Support for r3900.
-
-Wed May 21 17:33:31 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Use install-sh, not install.sh.
-
-Wed May 14 16:06:51 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (taz): Improve check for BISON so it doesn't try to
- apply it twice.
-
-Fri May 9 17:22:05 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (INSTALL_MODULES): Put install-opcodes before
- install-binutils.
-
-Thu May 8 17:29:50 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in: Add automake targets.
- * configure.in (host_tools): Add automake.
-
-Tue May 6 15:49:52 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: Default CXX to c++, not gcc.
- * Makefile.in (CXX): Set to c++, not gcc.
- (CXX_FOR_TARGET): When cross, transform c++, not gcc.
-
-Thu May 1 10:11:43 1997 Geoffrey Noer <noer@cygnus.com>
-
- * install-sh: try appending a .exe if source file doesn't
- exist
-
-Wed Apr 30 12:05:36 1997 Jason Merrill <jason@yorick.cygnus.com>
-
- * configure.in: Turn on multilib by default.
- (cross_only): Remove target-libiberty.
-
- * Makefile.in (all-gcc): Don't depend on libiberty.
-
-Mon Apr 28 18:39:45 1997 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * config.guess: improve algorithm for recognizing Gnu Hurd x86.
-
-Thu Apr 24 19:30:07 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (DEVO_SUPPORT): Add mpw-install.
- (DISTBISONFILES): Add ld/Makefile.in
-
-Tue Apr 22 17:17:28 1997 Geoffrey Noer <noer@pizza.cygnus.com>
-
- * configure.in: if target is cygwin32 but host isn't cygwin32,
- don't configure gdb tcl tk expect, not just gdb.
-
-Mon Apr 21 13:33:39 1997 Tom Tromey <tromey@cygnus.com>
-
- * configure.in: Added gnuserv everywhere sn appears.
-
- * Makefile.in (ALL_MODULES): Added all-gnuserv.
- (CROSS_CHECK_MODULES): Added check-gnuserv.
- (INSTALL_MODULES): Added install-gnuserv.
- (CLEAN_MODULES): Added clean-gnuserv.
- (all-gnuserv): New target.
-
-Thu Apr 17 13:57:06 1997 Per Fogelstrom <pefo@openbsd.org>
-
- * config.guess: Fixes for MIPS OpenBSD systems.
-
-Tue Apr 15 12:21:07 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (INSTALL_XFORM): Remove.
- (BASE_FLAGS_TO_PASS): Remove INSTALL_XFORM.
-
- * mkinstalldirs: New file, copied from automake.
- * Makefile.in (installdirs): Rename from install-dirs. Use
- mkinstalldirs. Change all users.
- (DEVO_SUPPORT): Add mkinstalldirs.
-
-Mon Apr 14 11:21:38 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * install-sh: Rename from install.sh.
- * Makefile.in (INSTALL): Change install.sh to install-sh.
- (DEVO_SUPPORT): Likewise.
-
- * configure: Use ${config_shell} with ${moveifchange}. From Thomas
- Graichen <graichen@rzpd.de>.
-
-Fri Apr 11 16:37:10 1997 Niklas Hallqvist <niklas@appli.se>
-
- * config.guess: Recognize OpenBSD systems correctly.
-
-Fri Apr 11 17:07:04 1997 Jason Molenda (crash@godzilla.cygnus.co.jp)
-
- * README, Makefile.in (ETC_SUPPORT): Remove references to
- cfg-paper*, configure.{texi,man,info*}._
-
-Sun Apr 6 18:47:57 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
-
- * Makefile.in (all.normal): Ensure that gcc is built after all
- the x11 - ie gdb - targets.
-
-Tue Apr 1 16:28:50 1997 Klaus Kaempf <kkaempf@progis.de>
-
- * makefile.vms: Don't run conf-a-gas.
-
-Mon Mar 31 16:26:55 1997 Joel Sherrill <joel@oarcorp.com>
-
- * configure.in (hppa1.1-*-rtems*): New target, like hppa-*-*elf*.
-
-Sun Mar 30 12:38:27 1997 Fred Fish <fnf@cygnus.com>
-
- * configure.in: Remove noconfigdirs case since gdb also
- configures and builds for tic80-coff.
-
-Fri Mar 28 18:28:52 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: Set cache_file to config.cache.
- * Makefile.in (local-distclean): Remove config.cache.
-
-Wed Mar 26 18:49:39 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * COPYING: Update FSF address.
-
-Wed Mar 26 10:38:25 1997 Michael Meissner <meissner@cygnus.com>
-
- * configure.in (tic80-*-*): Remove G++ libraries and libgloss from
- noconfigdirs.
-
-Mon Mar 24 15:02:39 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (install-dirs): Don't crash if prefix, and hence
- MAKEDIRS, is empty.
-
-Mon Mar 24 12:40:55 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * config.sub: Tweak mn10300 entry.
-
-Fri Mar 21 15:35:27 1997 Michael Meissner <meissner@cygnus.com>
-
- * configure.in (host_tools): Put sim before gdb, so gdb's
- configure.tgt can determine if the simulator was configured.
-
-Sun Mar 16 16:07:08 1997 Fred Fish <fnf@cygnus.com>
-
- * config.sub: Move BeOS $os case to be with other Cygnus
- local cases.
-
-Sun Mar 16 01:34:55 1997 Martin Hunt <hunt@cygnus.com>
-
- * config.sub: Remove misplaced comment that broke Linux.
-
-Sat Mar 15 22:50:15 1997 Fred Fish <fnf@cygnus.com>
-
- * config.sub: Add BeOS support.
-
-Mon Mar 10 13:30:11 1997 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in (CHECK_X11_MODULES): Don't run check-tk.
-
-Wed Mar 5 12:09:29 1997 Martin <hunt@cygnus.com>
-
- * configure.in (noconfigdirs): Remove tcl and tk from
- noconfigdirs for cygwin32 builds.
-
-Fri Feb 28 18:20:15 1997 Fred Fish <fnf@cygnus.com>
-
- * configure.in (tic80-*-*): Remove ld from noconfigdirs.
-
-Thu Feb 27 14:57:26 1997 Ken Raeburn <raeburn@cygnus.com>
-
- * Makefile.in (GAS_SUPPORT_DIRS, BINUTILS_SUPPORT_DIRS): Remove
- make-all.com, use makefile.vms instead.
-
-Tue Feb 25 18:46:14 1997 Stan Shebs <shebs@andros.cygnus.com>
-
- * config.sub: Accept -lnews*.
-
-Tue Feb 25 13:19:14 1997 Andrew Cagney <cagney@kremvax.tpgi.com.au>
-
- * configure.in (noconfigdirs): Disable target-newlib,
- target-examples and target-libiberty for d30v.
-
-Fri Feb 21 17:56:25 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * configure.in (noconfigdirs): Enable ld for d30v.
-
-Fri Feb 21 20:58:51 1997 Michael Meissner <meissner@cygnus.com>
-
- * configure.in (tic80-*-*): Build compiler.
-
-Sun Feb 16 15:41:09 1997 Andrew Cagney <cagney@critters.cygnus.com>
-
- * configure.in (d30v-*): Remove sim directory from list of
- unsupported d30v directories
-
-Tue Feb 18 17:32:42 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * config.sub, configure.in: Add d30v target cpu.
-
-Thu Feb 13 22:04:44 1997 Klaus Kaempf <kkaempf@progis.de>
-
- * makefile.vms: New file.
- * make-all.com: Remove.
-
-Wed Feb 12 12:54:18 1997 Jim Wilson <wilson@cygnus.com>
-
- * Makefile.in (EXTRA_GCC_FLAGS): Add LIBGCC2_DEBUG_CFLAGS.
-
-Sat Feb 8 20:36:49 1997 Michael Meissner <meissner@cygnus.com>
-
- * Makefile.in (all-itcl): The rule is all-itcl, not all-tcl.
-
-Tue Feb 4 11:39:29 1997 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in (ALL_MODULES): Added all-db.
- (CROSS_CHECK_MODULES): Addec check-db.
- (INSTALL_MODULES): Added install-db.
- (CLEAN_MODULES): Added clean-db.
-
-Mon Feb 3 13:29:36 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * config.guess: Merge with latest FSF sources.
-
-Tue Jan 28 09:20:37 1997 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in (ALL_MODULES): Added all-itcl.
- (CROSS_CHECK_MODULES): Added check-itcl.
- (INSTALL_MODULES): Added install-itcl.
- (CLEAN_MODULES): Added clean-itcl.
-
-Thu Jan 23 01:44:27 1997 Geoffrey Noer <noer@cygnus.com>
-
- * configure.in: build gdb for mn10200
-
-Fri Jan 17 15:32:15 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * Makefile.in (all-target-winsup): Depend on all-target-libio.
-
-Mon Jan 13 22:46:54 1997 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * configure.in (tic80-*-*): Turn off most targets right now.
-
-Fri Jan 3 16:04:03 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (MAKEINFO): Check for the existence of the Makefile,
- rather than the makeinfo program.
- (do-info): Depend upon all-texinfo.
-
-Tue Dec 31 16:00:31 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Remove uses of config/mh-linux.
-
- * config.sub, config.guess: Merge with latest FSF sources.
-
-Fri Dec 27 23:04:33 1996 Fred Fish <fnf@cygnus.com>
-
- * config.sub (case $basic_machine): Add tic80 entries.
-
-Fri Dec 27 12:07:59 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * config.sub, config.guess: Merge with latest FSF sources.
-
-Wed Dec 18 22:46:39 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-build.in: Build ld before gcc, use NewFolderRecursive.
- * mpw-config.in: Test for NewFolderRecursive.
- * mpw-install: Use symbolic name for startup filename.
- * mpw-README: Add various additional details.
-
-Wed Dec 18 13:11:46 1996 Jim Wilson <wilson@cygnus.com>
-
- * configure.in (mips*-sgi-irix6*): Remove binutils from noconfigdirs.
-
-Wed Dec 18 10:29:31 1996 Jeffrey A Law (law@cygnus.com)
-
- * configure.in: Do build gcc and the target libraries for
- the mn10200.
-
-Wed Dec 4 16:53:05 1996 Geoffrey Noer <noer@cygnus.com>
-
- * configure.in: don't avoid building gdb for mn10300 any more
- * Makefile.in: double-quote GCC_FOR_TARGET line in EXTRA_GCC_FLAGS
- instead of single-quoting it.
-
-Tue Dec 3 23:26:50 1996 Jason Merrill <jason@yorick.cygnus.com>
-
- * configure.in: Don't use --with-stabs on IRIX 6.
-
-Tue Dec 3 09:05:25 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * configure.in (m32r): Build gdb, libg++ now.
-
-Sun Dec 1 00:18:59 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * configure.in (mips*-sgi-irix6*): Remove gdb and related
- directories from noconfigdirs.
-
-Tue Nov 26 11:45:33 1996 Kim Knuttila <krk@cygnus.com>
-
- * config.sub (basic_machine): added mips16 configuration
-
-Sat Nov 23 19:26:22 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * config.sub: Handle d10v-unknown.
-
-Sat Nov 23 10:23:01 1996 Gavin Koch <gavin@cygnus.com>
-
- * config.sub: Handle v850-unknown.
-
-Thu Nov 21 16:19:44 1996 Geoffrey Noer <noer@cygnus.com>
-
- * Makefile.in: add findutils
- * configure.in: add findutils to list of host_tools
-
-Wed Nov 20 10:09:01 1996 Jeffrey A Law (law@cygnus.com)
-
- * config.sub: Handle mn10200 and mn10300.
-
-Tue Nov 19 16:35:14 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * configure.in (d10v-*): Do not build librx.
-
-Mon Nov 18 13:28:41 1996 Jeffrey A Law (law@cygnus.com)
-
- * configure.in (mn10300): Build everything except gdb & libgloss.
-
-Wed Nov 13 14:59:46 1996 Per Bothner <bothner@deneb.cygnus.com>
-
- * config.guess: Patch for Dansk Data Elektronik servers,
- from Niels Skou Olsen <nso@dde.dk>.
-
- For ncr, use /bin/uname rather than uname, since GNU uname does not
- support -p. Suggested by Mark Mitchell <mmitchell@usa.net>.
-
- Patch for MIPS R4000 running System V,
- from Eric S. Raymond <esr@snark.thyrsus.com>.
-
- Fix thinko for nextstep.
-
- Patch for OSF1 in i?86, from Dan Murphy <dlm@osf.org> via Harlan Stenn.
-
- Sat Jun 24 18:58:17 1995 Morten Welinder <terra+@cs.cmu.edu>
- * config.guess: Guess mips-dec-mach_bsd4.3.
-
- Thu Oct 10 04:07:04 1996 Harlan Stenn <harlan@pfcs.com>
- * config.guess (i?86-ncr-sysv*): Emit just enough of the minor
- release numbers.
- * config.guess (mips-mips-riscos*): Emit just enough of the
- release number.
-
- Tue Oct 8 10:37:22 1996 Frank Vance <fvance@waii.com>
- * config.guess (sparc-auspex-sunos*): Added.
- (f300-fujitsu-*): Added.
-
- Wed Sep 25 22:00:35 1996 Jeff Woolsey <woolsey@jlw.com>
- * config.guess: Recognize a Tadpole as a sparc.
-
-Wed Nov 13 00:53:09 1996 David J. MacKenzie <djm@churchy.gnu.ai.mit.edu>
-
- * config.guess: Don't assume that NextStep version is either 2 or
- 3. NextStep 4 (aka OpenStep 4) has come out now.
-
-Mon Nov 11 23:52:03 1996 David J. MacKenzie <djm@churchy.gnu.ai.mit.edu>
-
- * config.guess: Support Cray T90 that reports itself as "CRAY TS".
- From Rik Faith <faith@cs.unc.edu>.
-
-Fri Nov 8 11:34:58 1996 David J. MacKenzie <djm@geech.gnu.ai.mit.edu>
-
- * config.sub: Contributions from bug-gnu-utils to:
- Support plain "hppa" (no version given) architecture, reported by
- OpenStep.
- OpenBSD like NetBSD.
- LynxOs is not a hardware supplier.
-
- * config.guess: Contributions from bug-gnu-utils to add support for:
- OpenBSD like NetBSD.
- Stratus systems.
- More Pyramid systems.
- i[n>4]86 Intel chips.
- M680[n>4]0 Motorola chips.
- Use unknown instead of lynx for hardware manufacturer.
-
-Mon Nov 11 10:09:08 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
-
- * install.sh (chmodcmd): Set to null if the DST directory already
- exists.
-
-Mon Nov 11 10:43:41 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * configure.in (powerpc*-{eabi,elf,linux,rtem,sysv,solaris}*): Do
- not use mt-ppc target Makefile fragment any more.
-
-Sun Nov 3 19:17:07 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * configure.in (*-*-windows): Exclude everything but those dirs
- needed to build windows.
-
-Tue Oct 29 16:41:31 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * Makefile.in (all-target-winsup): Depend on all-target-librx.
-
-Mon Oct 28 17:32:46 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * configure.in: Exclude mmalloc from i386-windows.
- * config/mh-windows: Add rules for building MSVC makefiles.
-
-Thu Oct 24 09:22:46 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * Undo my previous change.
-
-Thu Oct 24 12:12:04 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (EXTRA_GCC_FLAGS): Pass down GCC_FOR_TARGET
- unconditionally.
- (MAKEOVERRIDES): Define (revert this part of October 18 change).
-
-Thu Oct 24 09:02:07 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * Makefile.in (FLAGS_TO_PASS): Add $(HOST_FLAGS) to allow the
- host to add it's own flags.
- * config/mh-windows (HOST_FLAGS): Set srcroot, which is needed
- for MSVC build procedure.
-
-Tue Oct 22 15:20:26 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: Handle GCC_FOR_TARGET like CC_FOR_TARGET.
-
-Fri Oct 18 13:37:13 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (CC_FOR_TARGET): Check for xgcc, not Makefile.
- (CXX_FOR_TARGET): Likewise.
- (GCC_FOR_TARGET): Define.
- (BASE_FLAGS_TO_PASS): Remove GCC_FOR_TARGET.
- (EXTRA_GCC_FLAGS): Define GCC_FOR_TARGET based on whether
- CC_FOR_TARGET was specified on the command line.
- (MAKEOVERRIDES): Don't define.
-
-Thu Oct 17 10:27:56 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * configure.in (m32r): Fix spelling of libg++ libs.
-
-Thu Oct 10 10:37:17 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * config.sub (-apple*): Remove, now redundant.
-
-Thu Oct 10 12:30:54 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: Don't get confused by CPU-VENDOR-linux-gnu.
-
- * configure: Rework yesterday's sed script patch.
-
- * config.sub: Merge with FSF.
-
-Wed Oct 9 17:24:59 1996 Per Bothner <bothner@deneb.cygnus.com>
-
- * config.guess: Merge from FSF.
-
- 1996-09-12 Richard Stallman <rms@ethanol.gnu.ai.mit.edu>
- * config.guess: Use pc instead of unknown, for pc clone systems.
- Change linux to linux-gnu.
-
- Mon Jul 15 23:51:11 1996 Karl Heuer <kwzh@gnu.ai.mit.edu>
- * config.guess: Avoid non-portable tr syntax.
-
-Wed Oct 9 06:06:46 1996 Jeffrey A Law (law@cygnus.com)
-
- * test-build.mk (HOLES): Add "xargs" for gdb.
-
- * configure: Avoid hpux10.20 sed bug.
-
-Tue Oct 8 08:32:48 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * configure.in config/mh-windows: Add support for windows host
- (that is a build done under the Microsoft build environment).
-
-Tue Oct 8 10:39:08 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in: Replace all uses of srcroot with s, to shrink
- command line lengths.
-
- Patches from Geoffrey Noer <noer@cygnus.com>:
- * configure.in: If configuring for newlib, pass --with-newlib to
- subdirectories.
- * Makefile.in (CC_FOR_TARGET): If winsup/Makefile exists, pass a
- -Bnewlib/ and -Lwinsup to gcc.
- (CXX_FOR_TARGET): Likewise.
-
-Mon Oct 7 10:59:35 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (ETC_SUPPORT): Add configure.
-
-Fri Oct 4 12:22:58 1996 Angela Marie Thomas (angela@cygnus.com)
-
- * configure.in: Use config/mh-dgux386 for i[345]86-dg-dgux
- host configuration file.
-
-Thu Oct 3 09:28:25 1996 Jeffrey A Law (law@cygnus.com)
-
- * configure.in: Break mn10x00 support into separate
- mn10200 and mn10300 configurations.
- * config.sub: Likewise.
-
-Wed Oct 2 22:27:52 1996 Jeffrey A Law (law@cygnus.com)
-
- * configure.in: Add lots of stuff to noconfigdirs for
- the mn10x00 targets.
-
- * config.sub, configure.in: Add mn10x00 support.
-
-Wed Oct 2 15:52:36 1996 Klaus Kaempf <kkaempf@progis.de>
-
- * make-all.com: Call conf-a-gas, not config-a-gas.
-
-Tue Oct 1 01:28:41 1996 James G. Smith <jsmith@cygnus.co.uk>
-
- * configure.in (noconfigdirs): Don't build libgloss for arm-coff
- targets.
-
-Mon Sep 30 14:24:01 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-README: Add much more detail for native PowerMac.
- * mpw-install: New file.
- * mpw-configure: Add --norecursion and --help options.
- * mpw-config.in: Translate readme and install files when
- copying to objdir.
- * mpw-build.in: Don't always depend on byacc and flex.
- (install-only-top): New action.
-
-Fri Sep 27 17:39:44 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * configure.in: You can now configure GDB for the v850.
-
-Tue Sep 24 19:05:12 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * configure.in (noconfigdirs): Don't configure any C++ dirs
- if targeting D10V.
-
-Tue Sep 17 12:15:31 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * config.sub: Recognize mips64vr5000.
-
-Mon Sep 16 17:00:52 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Use a single line for host_tools and native_only.
-
-Tue Sep 16 09:55:07 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * Makefile.in (install-itcl): Install tcl first.
-
-Sun Sep 14 20:53:42 1997 Geoffrey Noer <noer@cygnus.com>
-
- * config/mh-cygwin32: ok to build split texinfo files
-
-Fri Sep 12 16:19:20 1997 Geoffrey Noer <noer@cygnus.com>
-
- * configure.in: remove bison from noconfigdirs for Cygwin32 host
-
-Mon Sep 9 12:21:30 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * config.sub, configure.in: Add entries for m32r.
-
-Mon Sep 8 20:46:20 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * config.guess: Merge with FSF.
-
-Thu Sep 5 13:52:47 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * Makefile.in (inet-install): Don't run install-gzip.
-
-Wed Sep 4 17:26:13 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * configure.in: Don't config lots of things for *-*-windows*.
-
-Sat Aug 31 11:45:57 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-config.in: Test for mpw-true, true, and null-command scripts.
- (host_libs, host_tools): Copy from configure.in.
- * mpw-configure: Don't complain about directories not found.
-
-Thu Aug 29 16:44:58 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * configure.in (i[345]86): Recognize i686 for pentium pro.
- (i[3456]86-*-dgux*): Use config/mh-sysv for the host configuration
- file.
-
- * config.guess (i[345]86): Ditto.
-
-Mon Aug 26 18:34:42 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * configure.in (noconfigdirs): Removed gdb for D10V.
-
-Thu Aug 22 17:13:52 1996 Jeffrey A Law (law@cygnus.com)
-
- * configure.in: Remove ld, target-libio, target-libg++, and
- target-libstdc++ from noconfigdirs.
-
-Wed Aug 21 18:56:38 1996 Fred Fish <fnf@cygnus.com>
-
- * configure: Fix three locations where shell scripts were
- being run directly rather than with config_shell.
-
-Tue Aug 20 13:08:47 1996 J.T. Conklin <jtc@hippo.cygnus.com>
-
- * configure.in (v850-*-*): Set up initial $noconfigdirs.
- * config.sub (basic_machine): Recognize v850.
-
-Thu Aug 15 12:19:33 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-configure: Handle multiple enable/disable options and
- pass them down recursively, handle -c and -s flags appropriately
- depending on choice of compiler, add escape mechanism for
- quoted arguments to gC.
-
-Mon Aug 12 13:15:13 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * configure.in (powerpc*-*-*): For eabi, system V.4, Linux, and
- solaris targets, use config/mt-ppc to set C{,XX}FLAGS_FOR_TARGETS
- so that -mrelocatable-lib and -mno-eabi are used.
-
- * Makefile.in (CONFIGURE_TARGET_MODULES): If target compiler does
- not support --print-multi-lib, don't abort.
-
-Sun Aug 11 20:51:50 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * config/mh-cygwin32 (CFLAGS): Define _WIN32 to be compatible
- with normal Windows compilation environment.
-
-Thu Aug 8 12:18:59 1996 Klaus Kaempf <kkaempf@progis.de>
-
- * make-all.com: Run config-a-gas.
- * setup.com: Don't copy subdirectory files around.
-
-Tue Jul 30 17:49:31 1996 Brendan Kehoe <brendan@cygnus.com>
-
- * configure.in (*-*-ose): Remove exclusion of libgloss for this
- target, it now compiles correctly.
-
-Sat Jul 27 15:10:43 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-config.in: Generate Mac include for elf/dwarf2.h.
-
-Tue Jul 23 10:47:04 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * configure.in (d10v-*-*): Remove ld from $noconfigdirs.
-
-Mon Jul 22 13:28:51 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
-
- * configure.in (native_only): Add prms.
-
-Mon Jul 22 12:27:58 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (GAS_SUPPORT_DIRS): Add make-all.com and setup.com.
- (BINUTILS_SUPPORT_DIRS): Likewise.
-
-Thu Jul 18 12:55:40 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * configure.in (d10v-*-*): Don't configure ld or gdb until the
- d10v support is added.
-
-Wed Jul 17 14:33:09 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * configure.in (d10v-*-*): New target.
-
-Mon Jul 15 11:53:00 1996 Jeffrey A Law (law@cygnus.com)
-
- * config.guess (HP 9000/811): Recognize this as a PA1.1
- machine.
-
-Fri Jul 12 23:21:17 1996 Ken Raeburn <raeburn@cygnus.com>
-
- * Makefile.in (do-tar-gz): New target, split out from tail end of
- taz target. Run each command separately, don't use pipes.
- (taz): Use it.
-
-Fri Jul 12 12:08:04 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-configure: Look for g-mpw-make.sed in config/mpw.
- * mpw-build.in: No builds should depend on building byacc or flex,
- they are assumed to be installed already.
-
-Fri Jul 12 09:52:52 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * Makefile.in (CONFIGURE_TARGET_MODULES): Set r environment
- variable that CC_FOR_TARGET needs.
-
-Thu Jul 11 10:09:45 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * Makefile.in (CONFIGURE_TARGET_MODULES): Determine if the multlib
- options have changed since the last time the subdirectory was
- configured, and if it has, reconfigure.
- (CLEAN_TARGET_MODULES): Delete multilib.out and tmpmulti.out, which
- CONFIGURE_TARGET_MODULES uses to remember the old multilib options.
-
-Wed Jul 10 18:56:59 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * Makefile.in (ALL_MODULES,CROSS_CHECK_MODULES,INSTALL_MODULES,
- CLEAN_MODULES): Add bash.
- (all-bash): New target.
-
-Mon Jul 8 17:33:14 1996 Jim Wilson <wilson@cygnus.com>
-
- * configure.in (mips-sgi-irix6*): Use mh-irix6 instead of mh-irix5.
-
-Mon Jul 1 13:31:35 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * config.sub (basic_machine): Recognize d10v as a valid processor.
-
-Fri Jun 28 12:14:35 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-configure: Add support for --bindir.
- * mpw-build.in: Use a GCC-specific build script for GCC actions.
-
-Wed Jun 26 17:20:12 1996 Geoffrey Noer <noer@cygnus.com>
-
- * configure.in: add bash, time, gawk to list of hosttools and things
- to only build for native toolchains
-
-Tue Jun 25 23:09:03 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
-
- * Makefile.in (docdir): Remove.
-
-Tue Jun 25 19:00:08 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
-
- * Makefile.in (datadir): Set to $(prefix)/share.
-
-Mon Jun 24 23:26:07 1996 Geoffrey Noer <noer@cygnus.com>
-
- * configure.in: build diff and patch for cygwin32-hosted
- toolchains.
-
-Mon Jun 24 15:01:12 1996 Joel Sherrill <joel@merlin.gcs.redstone.army.mil>
-
- * config.sub: Accept -rtems*.
-
-Sun Jun 23 22:41:54 1996 Geoffrey Noer <noer@cygnus.com>
-
- * configure.in: enable dosrel for cygwin32-hosted builds,
- remove diff from the list of things not buildable
- via Canadian Cross
-
-Sat Jun 22 11:39:01 1996 Jason Merrill <jason@yorick.cygnus.com>
-
- * Makefile.in (TARGET_SUBDIR): Move comment to previous line so we
- don't get ". ".
-
-Fri Jun 21 17:24:48 1996 Jim Wilson <wilson@cygnus.com>
-
- * configure.in (mips*-sgi-irix6*): Set noconfigdirs appropriately.
-
-Thu Jun 20 16:57:40 1996 Ken Raeburn <raeburn@cygnus.com>
-
- * Makefile.in (taz): Handle case where tex3patch didn't even get
- checked out. Also, if it was found, put the symlink in a new util
- subdirectory.
-
-Thu Jun 20 12:20:33 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * config.guess (*:Linux:*:*): Add support for PowerPC Linux.
-
-Tue Jun 18 14:24:12 1996 Klaus Kaempf (kkaempf@progis.de)
-
- * config.sub: Recognize -openvms.
- * configure.in (alpha*-*-*vms*): Set noconfigdirs.
- * make-all.com, setup.com: New files.
-
-Mon Jun 17 16:34:46 1996 Jason Merrill <jason@yorick.cygnus.com>
-
- * Makefile.in (taz): tex3patch moved to texinfo/util.
-
-Sat Jun 15 17:13:25 1996 Geoffrey Noer <noer@cygnus.com>
-
- * configure: enable_gdbtk=no for cygwin32-hosted toolchains
- * configure.in: remove make from disable-if-Can-Cross list
- enable gdb if ${host} and ${target} are cygwin32
-
-Fri Jun 7 18:16:52 1996 Harlan Stenn <harlan@pfcs.com>
-
- * config.guess (i?86-ncr-sysv*): Emit minor release numbers.
- Recognize the NCR 4850 machine and NCR Pentium-based platforms.
-
-Wed Jun 5 00:09:17 1996 Per Bothner <bothner@wombat.gnu.ai.mit.edu>
-
- * config.guess: Combine mips-mips-riscos cases, and use cpp to
- distinguish sysv/svr4/bsd variants.
- Based on a patch from Harlan Stenn <harlan@pfcs.com>.
-
-Fri Jun 7 14:24:49 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * configure.in: Added copyright notice.
- * move-if-change: Added copyright notice.
-
-Thu Jun 6 16:27:05 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * configure.in (powerpcle-*-solaris*): Until we get shared
- libraries working, don't build gdb, sim, make, tcl, tk, or
- expect.
-
-Tue Jun 4 20:41:45 1996 Per Bothner <bothner@deneb.cygnus.com>
-
- * config.guess: Merge with FSF:
-
- Mon Jun 3 08:49:14 1996 Karl Heuer <kwzh@gnu.ai.mit.edu>
- * config.guess (*:Linux:*:*): Add guess for sparc-unknown-linux.
-
- Fri May 24 18:34:53 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
- * config.guess (AViiON:dgux:*:*): Fix typo in recognizing mc88110.
-
- Fri Apr 12 20:03:59 1996 Per Bothner <bothner@spiff.gnu.ai.mit.edu>
- * config.guess: Combine two OSF1 rules.
- Also recognize field test versions. From mjr@zk3.dec.com.
- * config.guess (dgux): Use /usr/bin/uname rather than uname,
- because GNU uname does not support -p. From pmr@pajato.com.
-
-Tue Jun 4 11:07:25 1996 Tom Tromey <tromey@csk3.cygnus.com>
-
- * Makefile.in (MAKEDIRS): Removed $(tooldir).
-
-Tue May 28 12:30:50 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-README: Document GCCIncludes.
-
-Sun May 26 15:16:27 1996 Fred Fish <fnf@cygnus.com>
-
- * configure.in (alpha-*-linux*): Set enable_shared to yes.
-
-Tue May 21 15:41:39 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-configure: Handle --enable-FOO and --disable-FOO.
-
-Mon May 20 10:12:29 1996 Geoffrey Noer <noer@cygnus.com>
-
- * configure.in (*-*-cygwin32): Configure make.
-
-Tue May 7 14:19:42 1996 Tom Tromey <tromey@snuffle.cygnus.com>
-
- * Makefile.in (inet-install): Quote value of INSTALL_MODULES.
-
-Fri May 3 08:57:17 1996 Tom Tromey <tromey@lisa.cygnus.com>
-
- * Makefile.in (all-inet): Depend on all-perl.
-
- * Makefile.in (inet-install): New target.
-
- * Makefile.in (all-inet): Depend on all-tcl.
- (all-inet): Depend on all-send-pr.
-
-Tue Apr 30 13:55:51 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * configure.in (powerpcle-*-solaris*): Turn off tk and tcl
- temporarily.
-
-Thu Apr 25 11:48:20 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Don't configure --with-gnu-ld on AIX.
-
-Thu Apr 25 06:33:36 1996 Michael Meissner <meissner@wogglebug.tiac.net>
-
- * configure.in (powerpcle-*-solaris*): Turn off gdb temporarily.
-
-Tue Apr 23 09:07:39 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * Makefile.in (ALL_MODULES): Added all-inet.
- (CROSS_CHECK_MODULES): Added check-inet.
- (INSTALL_MODULES): Added install-inet.
- (CLEAN_MODULES): Added clean-inet.
- (all-indent): New target.
-
- * configure.in (host_tools): Added inet.
- (native_only): Added inet.
- (noconfigdirs): Added inet.
-
-Fri Apr 19 15:35:29 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Don't configure libgloss if we are not configuring
- newlib.
-
-Wed Apr 17 19:30:01 1996 Rob Savoye <rob@chinadoll.cygnus.com>
-
- * configure.in: Don't configure libgloss for unsupported
- architectures.
-
-Tue Apr 16 11:17:05 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * Makefile.in (CLEAN_MODULES): Add clean-apache.
-
-Mon Apr 15 15:09:05 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * Makefile.in (ALL_MODULES): Include all-apache.
- (CROSS_CHECK_MODULES): Include check-apache.
- (INSTALL_MODULES): Include install-apache.
- (all-apache): New target.
-
- * configure.in: Added apache everywhere perl is seen.
-
-Mon Apr 15 14:59:13 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * Makefile.in: Add support for clean-{module} and
- clean-target-{module} rules.
-
-Wed Apr 10 21:37:41 PDT 1996 Marilyn E. Sander <msander@cygnus.com>
-
- * configure.in (*-*-ose) do not build libgloss.
-
-Mon Apr 8 16:16:20 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * config.guess (prep*:SunOS:5.*:*): Turn into
- powerpele-unknown-solaris2.
-
-Mon Apr 8 14:45:41 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Permit --enable-shared to specify a list of
- directories.
-
-Fri Apr 5 08:17:57 1996 Jason Molenda (crash@phydeaux.cygnus.com)
-
- * configure.in (host==solaris): Pass only the first word of $CC
- to /usr/bin/which when checking if we're using /usr/ccs/bin/cc.
-
-Fri Apr 5 03:16:13 1996 Jason Molenda (crash@phydeaux.cygnus.com)
-
- * Makefile.in (BASE_FLAGS_TO_PASS): pass down $(MAKE).
-
-Thu Mar 28 14:11:11 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * Makefile.in (ALL_MODULES): Include all-perl.
- (CROSS_CHECK_MODULES): Include check-perl.
- (INSTALL_MODULES): Include install-perl.
- (ALL_X11_MODULES): Include all-guile.
- (CHECK_X11_MODULES): Include check-guile.
- (INSTALL_X11_MODULES): Include install-guile.
- (all-perl): New target.
- (all-guile): New target.
-
- * configure.in (host_tools): Include perl and guile.
- (native_only): Include perl and guile.
- (noconfigdirs): Don't build guile and perl; no ports have been
- done.
-
-Tue Mar 26 21:18:50 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
-
- * configure (--enable-*): Handle quoted option lists such as
- --enable-sim-cflags='-g0 -O' better.
-
-Thu Mar 21 11:53:08 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * Makefile.in ({,inst}all-target): New rule so we can make and
- install all of the target directories easily.
-
-Wed Mar 20 18:10:57 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
-
- * configure.in: Add missing global flag in sed substitution when
- deleting `target-' from ${configdirs}.
-
-Thu Mar 14 19:15:06 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (DO_X): Don't get confused if CC contains `=' in an
- option.
-
- * configure.in (mips*-nec-sysvr4*): Use a host_makefile_frag of
- config/mh-necv4.
-
- * install.sh: Correct misspelling of transformbasename.
-
- * config.guess: Recognize mips-*-sysv*.
-
-Mon Mar 11 15:36:42 1996 Dawn Perchik <dawn@critters.cygnus.com>
-
- * config.sub: Recognize mon960.
-
-Sun Mar 10 13:18:38 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: Restore Canadian Cross handling of BISON and LEX,
- removed in Feb 20 change.
-
-Fri Mar 8 20:07:09 1996 Per Bothner <bothner@kalessin.cygnus.com>
-
- * README: Suggestions from Torbjorn Granlund <tege@matematik.su.se>:
- Mention make install. Remove the old copyright date as well the
- clumsy and rather pointless copyright on the README file.
-
-Fri Mar 8 17:51:35 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in ($(CONFIGURE_TARGET_MODULES)): If there is a
- Makefile after running symlink-tree, then run `make distclean' to
- avoid clobbering any generated files in srcdir.
-
-Tue Mar 5 08:21:44 1996 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * configure.in (m68k-*-netbsd*): Build everything now.
-
-Wed Feb 28 12:25:46 1996 Jason Merrill <jason@yorick.cygnus.com>
-
- * Makefile.in (taz): Fix quoting.
-
-Tue Feb 27 11:33:57 1996 Doug Evans <dje@charmed.cygnus.com>
-
- * configure.in (sparclet-*-*): Build everything now.
-
-Tue Feb 27 14:31:51 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
-
- * configure.in (m68k-*-linux*): New host.
-
-Mon Feb 26 14:32:44 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: Check for bison before byacc.
-
-Tue Feb 20 23:12:35 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * Makefile.in configure: Change the way LEX and BISON/YACC are
- set. configure now defines DEFAULT_LEX and DEFAULT_YACC by
- searching PATH. These are used as fallbacks by Makefile.in if
- flex/bison/byacc aren't in objdir.
-
-Mon Feb 19 11:45:30 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in: Make everything which depends upon all-bfd also
- depend upon all-opcodes, in case --with-commonbfdlib is used.
-
-Thu Feb 15 19:50:50 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * configure.in (host *-*-cygwin32): Don't build gdb if we are
- building NT native compilers on Unix.
-
-Thu Feb 15 17:42:25 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Don't get CC from the host Makefile fragment if we
- can find gcc in PATH, or if this is a Canadian Cross. Move the
- Solaris test for /usr/ucb/cc to the post target script, just after
- the compiler sanity test.
-
-Wed Feb 14 16:57:40 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * config.sub: Merge with FSF.
-
-Tue Feb 13 14:27:48 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (RPATH_ENVVAR): New variable.
- (REALLY_SET_LIB_PATH): Use it.
- * configure.in: On HP/UX, set RPATH_ENVVAR to SHLIB_PATH.
-
-Mon Feb 12 15:28:49 1996 Doug Evans <dje@charmed.cygnus.com>
-
- * config.sub, configure.in: Recognize sparclet cpu.
-
-Mon Feb 12 15:33:59 1996 Christian Bauernfeind <chrisbfd@theorie3.physik.uni-erlangen.de>
-
- * config.guess: Support m68k-cbm-sysv4.
-
-Sat Feb 10 12:06:42 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
-
- * config.guess (*:Linux:*:*): Guess m68k-unknown-linux and
- m68k-unknown-linuxaout from linker help string. Put quotes around
- $ld_help_string.
-
-Thu Dec 7 09:03:24 1995 Tom Horsley <Tom.Horsley@mail.hcsc.com>
-
- * config.guess (powerpc-harris-powerunix): Add guess for port
- to new target.
-
-Thu Feb 8 15:37:52 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
-
- * config.guess (UNAME_VERSION): Recognize X4.x as an OSF version.
-
-Mon Feb 5 16:36:51 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: If --enable-shared was used, set SET_LIB_PATH to
- $(REALLY_SET_LIB_PATH) in Makefile.
- * Makefile.in (SET_LIB_PATH): New variable.
- (REALLY_SET_LIB_PATH): New variable.
- ($(DO_X)): Use $(SET_LIB_PATH).
- (install.all, gcc-no-fixedincludes, $(ALL_MODULES)): Likewise.
- ($(NATIVE_CHECK_MODULES), $(CROSS_CHECK_MODULES)): Likewise.
- ($(INSTALL_MODULES), $(CONFIGURE_TARGET_MODULES)): Likewise.
- ($(ALL_TARGET_MODULES), $(CHECK_TARGET_MODULES)): Likewise.
- ($(INSTALL_TARGET_MODULES), $(ALL_X11_MODULES)): Likewise.
- ($(CHECK_X11_MODULES), $(INSTALL_X11_MODULES)): Likewise.
- (all-gcc, all-bootstrap, check-gcc, install-gcc): Likewise.
- (install-dosrel): Likewise.
- (all-opcodes): Depend upon all-libiberty.
-
-Sun Feb 4 16:51:11 1996 Steve Chamberlain <sac@slash.cygnus.com>
-
- * config.guess (*:CYGWIN*): New
-
-Sat Feb 3 10:42:35 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * Makefile.in (all-target-winsup): All all-target-libiberty.
-
-Fri Feb 2 17:58:56 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * configure.in (noconfigdirs): Add missing # in front of comment.
-
-Thu Feb 1 14:38:13 1996 Geoffrey Noer <noer@cygnus.com>
-
- * configure.in: add second pass to things added to noconfigdirs
- so *-gm-magic can exclude libgloss properly.
-
-Thu Feb 1 11:10:16 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-configure (extralibs_name, rez_name): Set correctly
- for MWC68K compiler.
-
- * mpw-README: Add more info on the necessary build tools.
-
-Thu Feb 1 10:22:38 1996 Steve Chamberlain <sac@slash.cygnus.com>
-
- * configure.in, config.sub: Recognize cygwin32.
-
-Wed Jan 31 14:17:10 1996 Richard Henderson <rth@tamu.edu>
-
- * config.guess, config.sub: Recognize A/UX.
-
-Wed Jan 31 13:52:14 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * config.sub: Merge with gcc/config.sub.
-
-Thu Jan 25 11:01:10 1996 Raymond Jou <rjou@mexican.cygnus.com>
-
- * mpw-build.in (do-binutils): Add build of stamps.
-
-Thu Jan 25 17:05:26 1996 James G. Smith <jsmith@cygnus.co.uk>
-
- * config.sub: Add recognition for mips64vr4100*-* targets.
-
-Wed Jan 24 12:47:55 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
-
- * test-build.mk: Add checking of `hpux9' rather than just `hpux'.
- Add creation of gconfigargs with `--enable-shared' turned on.
- ($(host)-stamp-stage2-configured): Pass $(gconfigargs).
- ($(host)-stamp-stage3-configured): Likewise.
- (HOLES): Add chatr and ldd.
- (i386-ncr-sysv4.3*): Add use of /usr/ccs/bin in the PATH and HOLE_DIRS.
-
-Wed Jan 24 20:32:30 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
-
- * configure: Pass --nfp to recursive configures.
-
-Mon Jan 22 10:41:56 1996 Steve Chamberlain <sac@slash.cygnus.com>
-
- * Makefile.in (DLLTOOL): New.
- (DLLTOOL_FOR_TARGET): New.
- (EXTRA_HOST_FLAGS): Pass down DLLTOOL.
- (EXTRA_TARGET_FLAGS): Ditto.
- (EXTRA_GCC_FLAGS): Ditto.
- (CONFIGURE_TARGET_MODULES): Ditto.
- (DO_X): Ditto.
- * configure: Add DLLTOOL.
-
-Fri Jan 19 13:30:15 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- SCO OpenServer 5 changes from Robert Lipe <robertl@dgii.com>:
- * configure.in (i[345]86-*-sco3.2v5*): Use mh-sysv instead of
- mh-sco, since old workarounds no longer needed, and don't
- build ld, since libraries have weak symbols in COFF.
-
-Sun Jan 14 23:01:31 1996 Fred Fish <fnf@cygnus.com>
-
- * Makefile.in (CONFIGURE_TARGET_MODULES): Add missing ';'.
-
-Fri Jan 12 15:25:35 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Make sure that ${CC} can be used to compile an
- executable.
-
-Sat Jan 6 07:23:33 1996 Michael Meissner <meissner@wogglebug.tiac.net>
-
- * Makefile.in (all-gdb): Depend on $(GDB_TK).
- * configure (GDB_TK): Set GDB_TK to either "all-tcl all-tk" or
- nothing depending on whether gdbtk is being built.
-
-Wed Jan 3 17:54:41 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * Makefile.in (newlib.tar.gz): Delete building of newlib's info files.
-
-Mon Jan 1 19:09:14 1996 Brendan Kehoe <brendan@rtl.cygnus.com>
-
- * configure.in (noconfigdirs): Put ld or gas in this early, if the
- user specifically used --with-gnu-ld=no or --with-gnu-as=no.
-
-Sat Dec 30 16:08:57 1995 Doug Evans <dje@canuck.cygnus.com>
-
- * config-ml.in: Add support for
- --disable-{softfloat,m68881,m68000,m68020} on m68*-*-*.
- Simplify setting of multidirs from --disable-foo.
-
-Fri Dec 29 07:56:11 1995 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * Makefile.in (EXTRA_GCC_FLAGS): If any of the make variables
- LANGUAGES, BOOT_CFLAGS, STMP_FIXPROTO, LIMITS_H_TEST,
- LIBGCC1_TEST, LIBGCC2_CFLAGS, LIBGCC2_INCLUDES, and ENQUIRE are
- non-empty, pass them on to the GCC make.
- (all-bootstrap): New rule that is like all-gcc, except it executes
- the GCC bootstrap rule instead of the GCC all rule.
-
-Wed Dec 27 15:51:48 1995 Doug Evans <dje@canuck.cygnus.com>
-
- * config-ml.in (ml_realsrcdir): New, to account for ${subdir}.
-
-Tue Dec 26 11:45:31 1995 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * config.guess (AViiON:dgux:*:*): Update from FSF to add pentium
- DG/UX support.
-
-Fri Dec 15 10:01:27 1995 Stan Cox <coxs@dg-rtp.dg.com>
-
- * config.sub (i*86*) Change [345] to [3456]
-
-Wed Dec 20 17:41:40 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
-
- * configure.in (noconfigdirs): Add gas or ld if --with-gnu-as=no or
- --with-gnu-ld=no.
-
-Wed Dec 20 15:15:35 1995 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * config-ml.in (rs6000*, powerpc*): Add switches to control which
- AIX multilibs get built.
-
-Mon Dec 18 17:55:46 1995 Jason Molenda (crash@phydeaux.cygnus.com)
-
- * configure.in (i386-win32): Don't build expect if we're not
- building the tcl subdir.
-
-Mon Dec 18 11:47:19 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- * Makefile.in: (configure-target-examples, all-target-examples):
- New targets, configure and build example programs.
-
-Fri Dec 15 16:13:03 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-configure: If an mpw-config.in generated a file mk.sed,
- use it as input to sedit the generated MPW makefile.
- * mpw-README: Add a suggestion about Gestalt.h.
-
-Wed Dec 13 16:43:51 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * config.sub: Accept *-*-ieee*.
-
-Tue Dec 12 11:52:57 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (local-distclean): Remove $(TARGET_SUBDIR). From
- Ronald F. Guilmette <rfg@monkeys.com>.
-
-Mon Dec 11 15:31:58 1995 Jason Molenda (crash@phydeaux.cygnus.com)
-
- * configure.in (host==powerpc-pe): Add many directories to noconfigdirs
- for powerpc-pe native.
- (target==i386-win32): add tcl, make to noconfigdirs if canadian cross.
- (target==powerpc-pe): duplicate i386-win32 entry.
-
-Sat Dec 9 14:58:28 1995 Jim Wilson <wilson@chestnut.cygnus.com>
-
- * configure.in (noconfigdirs): Exclude target-newlib for all versions
- of vxworks, not just vxworks5.1.
-
-Mon Dec 4 12:05:40 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-configure: Add support for exec-prefix.
-
-Mon Dec 4 10:22:50 1995 Jeffrey A. Law <law@rtl.cygnus.com>
-
- * config.guess: Recognize HP model 816 machines as having
- a PA1.1 processor.
-
-Mon Dec 4 12:38:15 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: Ignore new autoconf configure options.
-
-Thu Nov 30 14:45:25 1995 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * config/mt-v810 (CC_FOR_TARGET): Add -ansi flag. NEC compiler
- defaults to K&R mode, but doesn't have varargs.h, so we have to
- compile in ANSI mode.
-
-Thu Nov 30 16:57:33 1995 Per Bothner <bothner@wombat.gnu.ai.mit.edu>
-
- * config.guess: Recognize Pentium under SCO.
- From Robert Lipe <robertl@arnet.com>.
-
-Wed Nov 29 13:49:08 1995 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * configure.in (noconfigdirs): Disable target-libio on v810-*-*.
- * config/mt-v810 (CC_FOR_TARGET, AS_FOR_TARGET, AR_FOR_TARGET,
- RANLIB_FOR_TARGET): Set as appropriate for NEC v810 toolchain.
-
-Wed Nov 29 12:12:01 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Don't configure gas for alpha-dec-osf*.
-
-Tue Nov 28 17:16:48 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Default to --with-stabs for some targets for which
- it makes sense: mips*-*-*, alpha*-*-osf*, i[345]86*-*-sysv4* and
- i[345]86*-*-unixware*.
-
-Mon Nov 27 13:44:15 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * config-ml.in: Get list of multidirs using gcc --print-multi-lib
- rather than basing it on the target. Simplify handling of options
- controlling which directories to configure. Remove extraneous
- slash in multi-clean target.
-
-Fri Nov 24 17:29:29 1995 Doug Evans <dje@deneb.cygnus.com>
-
- * config-ml.in: Prefix more variables with ml_ so they don't collide
- with configure's.
-
-Wed Nov 22 11:27:02 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: Don't turn -v into --v.
-
-Tue Nov 21 16:48:02 1995 Doug Evans <dje@deneb.cygnus.com>
-
- * configure.in (targargs): Fix typo.
-
- * Makefile.in (DEVO_SUPPORT): Add symlink-tree.
-
-Tue Nov 21 14:08:28 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Strip --host and --target options from
- CONFIG_ARGUMENTS, and always configure for --host only. Add
- --with-cross-host option when building with a cross-compiler.
- * configure: Canonicalize the arguments put into config.status by
- always using `=' for an option with an argument. Pass a presumed
- --host or --target explicitly.
-
-Fri Nov 17 17:50:30 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- * config.sub: Merge -macos*, -magic*, -pe*, and -win32 cases
- into general OS recognition case.
-
-Fri Nov 17 17:42:25 1995 Jason Molenda (crash@phydeaux.cygnus.com)
-
- * configure.in (target_configdirs): add target-winsup only
- for win32 target systems.
-
-Thu Nov 16 14:04:47 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (all-target-libgloss): Depend upon
- configure-target-newlib, since when libgloss is built it looks to
- see if the newlib directory exists.
-
-Wed Nov 15 14:47:52 1995 Ken Raeburn <raeburn@cygnus.com>
-
- * Makefile.in (DEVO_SUPPORT): Use config-ml.in instead of
- cfg-ml-*.in.
-
-Wed Nov 15 11:45:23 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: Handle LD and LD_FOR_TARGET when configuring a
- Canadian Cross.
-
-Tue Nov 14 15:03:12 1995 Jason Molenda (crash@phydeaux.cygnus.com)
-
- * config/mh-i386win32: add LD_FOR_TARGET.
-
-Tue Nov 14 14:56:11 1995 Jason Molenda (crash@phydeaux.cygnus.com)
-
- * configure.in (target_libs): add target-winsup.
- (target==i386-win32): add patch diff flex make to $noconfigdirs.
- (target==ppcle-pe): remove ld from $noconfigdirs.
-
-Tue Nov 14 01:25:50 1995 Doug Evans <dje@canuck.cygnus.com>
-
- * Makefile.in (CONFIGURE_TARGET_MODULES): Pass --with-target-subdir.
- Preserve relative path names in $srcdir. Build symlink tree if
- configuring cross target dir and srcdir=. (= no VPATH support).
- (configure-target-libg++): Depend on configure-target-librx.
- * cfg-ml-com.in, cfg-ml-pos.in: Deleted.
- * config-ml.in: New file.
- * symlink-tree: New file.
- * configure: Ensure srcdir="." if that's what it is.
-
-Mon Nov 13 12:34:20 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-README: Clarify some phrasing, add notes about CodeWarrior
- includes and FLEX_SKELETON setting.
- * mpw-configure (--with-gnu-ld): New option, controls whether
- to use PPCLink or ld with PowerMac GCC.
- * mpw-build.in (all-grez, do-grez, install-grez): New targets.
- * mpw-config.in: Configure grez if targeting Mac.
-
- * config.sub: Accept pmac and pmac-mpw as names for PowerMacs,
- accept mpw and mac-mpw as names for m68k Macs, change macos7 to
- just macos.
- * configure.in: Configure grez resource compiler if targeting Mac.
- * Makefile.in (all-grez, install-grez): New targets.
-
-Wed Nov 8 17:33:51 1995 Jason Merrill <jason@yorick.cygnus.com>
-
- * configure: CXX defaults to gcc, not g++. If we find
- gcc in the path, set CC to gcc -O2.
-
-Tue Nov 7 15:45:17 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: Default ${build} correctly. Avoid picking up extra
- spaces when reading CC and CXX from Makefile. When doing a
- Canadian Cross, use plausible default values for numerous
- variables.
- * configure.in: When doing a Canadian Cross, don't try to
- configure tools whose configure script can't handle it.
-
-Mon Nov 6 19:32:17 1995 Jim Wilson <wilson@chestnut.cygnus.com>
-
- * cfg-ml-com.in (sh-*-*): Add m2 and ml/m2 to multidirs.
-
-Sun Nov 5 00:15:41 1995 Per Bothner <bothner@kalessin.cygnus.com>
-
- * configure: Remove dubious bug reporting address.
-
-Fri Nov 3 08:17:54 1995 Per Bothner <bothner@kalessin.cygnus.com>
-
- * Makefile.in ($(CONFIGURE_TARGET_MODULES)): If subdir has
- configure script, run that instead of this directory's configure.
- In either case, print a message that we're configuring the sub-dir.
-
-Thu Nov 2 23:23:36 1995 Per Bothner <bothner@kalessin.cygnus.com>
-
- * configure.in: Before checking for the existence of various files,
- use sed to filter out "target-".
-
-Thu Nov 2 13:24:56 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (DO_X): Split rule to decrease command line length
- for systems with small ARG_MAX values. From phdm@info.ucl.ac.be
- (Philippe De Muyter).
-
-Wed Nov 1 15:18:35 1995 Jason Molenda (crash@phydeaux.cygnus.com)
-
- * Makefile.in (all-patch): depend on all-libiberty.
-
-Wed Nov 1 12:23:20 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: If the only directory in target_configdirs which
- actually exists is libiberty, then set target_configdirs to empty,
- to avoid trying to build a target libiberty in a gas or gdb
- distribution.
-
-Tue Oct 31 17:52:39 1995 J.T. Conklin <jtc@slave.cygnus.com>
-
- * configure.in (host_makefile_frag): Use m68k-sun-sunos* instead
- of m68k-sun-* when selecting mh-sun3 to avoid matching NetBSD/sun3
- systems.
-
-Tue Oct 31 16:57:32 1995 Jim Wilson <wilson@chestnut.cygnus.com>
-
- * configure.in (copy_dirs): Use sys-include instead of include
- for --with-headers option.
-
-Tue Oct 31 10:29:36 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * Makefile.in, configure.in: Make winsup builds work with
- new scheme.
-
-Mon Oct 30 18:57:09 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Build the linker on AIX.
-
-Mon Oct 30 12:27:16 1995 Per Bothner <bothner@kalessin.cygnus.com>
-
- * Makefile.in (CC_FOR_TARGET, CXX_FOR_TARGET): Add $(TARGET_SUBDIR)
- where needed.
-
-Mon Oct 30 12:45:25 1995 Doug Evans <dje@cygnus.com>
-
- * Makefile.in (all-gcc): Fix typo.
-
-Sat Oct 28 10:27:59 1995 Per Bothner <bothner@kalessin.cygnus.com>
-
- * Makefile.in ($(CHECK_TARGET_MODULES)): Fix typo.
-
-Fri Oct 27 23:14:12 1995 Per Bothner <bothner@kalessin.cygnus.com>
-
- * configure.in: Rename libFOO to target-libFOO, and xiberty
- to target-xiberty, to provide more flexibility.
- (target_subdir): Define. Create if cross.
- Set TARGET_SUBDIR in Makefile to ${target_subdir}.
- * Makefile.in: Rename all-libFOO -> all-target-libFOO, all-xiberty
- -> all-target-libiberty, configure-libFOO -> configure-target-libFOO,
- check-libFOO -> check-target-libFOO, etc.
- ($(DO_X)): Iterate over TARGET_CONFIGDIRS after SUBDIRS.
- ($(CONFIGURE_TARGET_MODULES), $(CHECK_TARGET_MODULES),
- $(ALL_TARGET_MODULES), $(INSTALL_TARGET_MODULES)): Update accordingly.
- (configure-target-XXX): Depend on $(ALL_GCC), not all-gcc, to
- allow ALL_GCC="" to only configure.
- (DEVO_SUPPORT): Add cfg-ml-com.in and cfg-ml-pos.in.
- (ETC_SUPPORT, ETC_SUPPORT_PFX): Merge; update 'taz' accordingly.
- (LIBGXX_SUPPORT_DIRS): Remove xiberty.
-
-Sat Oct 28 01:53:49 1995 Ken Raeburn <raeburn@cygnus.com>
-
- * Makefile.in (taz): Build "info" in etc explicitly.
-
-Fri Oct 27 09:32:30 1995 Stu Grossman (grossman@cygnus.com)
-
- * configure.in: Make sure that CC is undefined (as opposed to
- null) if toplevel/config/mh-{host} doesn't define it. Fixes a
- problem with autoconf trying to configure on a host without GCC.
-
-Thu Oct 26 22:35:01 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-configure: Set host alias from choice of host compiler,
- only use generic MPW Makefile sed if present, edit a file
- named "hacked_Makefile.in" instead of "Makefile.in" if present.
- * mpw-README: Add problem notes about CW6 and CW7.
-
-Thu Oct 26 05:45:10 1995 Ken Raeburn <raeburn@kr-pc.cygnus.com>
-
- * Makefile.in (taz): Use ";" instead of ";;".
-
-Wed Oct 25 15:18:24 1995 Per Bothner <bothner@kalessin.cygnus.com>
-
- * Makefile.in (taz): Grep for '^diststuff:' or '^info:' in
- sub-directory Makefiles, instead of using DISTSTUFFDIRS and
- DISTDOCDIRS.
- (DISTSTUFFDIRS, DISTDOCDIRS): Removed - no longer used.
- (newlib.tar.gz): Don't pass DISTDOCDIRS to recursive make.
-
-Wed Oct 25 14:43:55 1995 Per Bothner <bothner@kalessin.cygnus.com>
-
- * Makefile.in (DISTDOCDIRS): Remove ld gprof bnutils gas libg++ gdb
- and gnats, because they are now subsumed by DISTSTUFFDIRS.
- Move bfd to DISTSTUFFDIRS.
-
-Tue Oct 24 18:19:09 1995 Jason Molenda (crash@phydeaux.cygnus.com)
-
- * Makefile.in (X11_LIB): Removed.
- (X11_FLAGS_TO_PASS): pass only X11_EXTRA_CFLAGS and X11_EXTRA_LIBS.
-
- * configure.in (host_makefile_frag): mh-aix & mh-sun removed.
-
-Sun Oct 22 13:04:42 1995 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * cfg-ml-com.in (powerpc*): Shorten some of the multilib directory
- names.
-
-Fri Oct 20 18:02:10 1995 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * cfg-ml-com.in (powerpc*-eabi*): Add mcall-aixdesc varients.
-
-Thu Oct 19 10:40:57 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * configure.in (i[345]86-*-win32): Always build newlib.
- Don't configure cvs, autoconf or texinfo.
- * Makefile.in (LD_FOR_TARGET): New.
- (BASE_FLAGS_TO_PASS, EXTRA_TARGET_FLAGS, CONFIGURE_TARGET_MODULES):
- Pass down LD_FOR_TARGET.
-
-Wed Oct 18 15:53:56 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * winsup: New directory.
- * Makefile.in: Build winsup.
- * configure.in: Winsup is configured when target is win32.
- Can only build win32 target GDB when native.
-
-Mon Oct 16 09:42:31 1995 Jeffrey A Law (law@cygnus.com)
-
- * config.guess: Recognize HP model 819 machines as having
- a PA 1.1 processor.
-
-Mon Oct 16 10:49:43 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: Fix sed loop which substitutes for CC and CXX to
- avoid bug found in various sed implementations.
-
-Wed Oct 11 16:16:20 1995 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * cfg-ml-com.in (powerpc-*-eabisim): Delete separate rule for
- simulator. Use standard powerpc-*-eabi*.
-
-Mon Oct 9 17:21:56 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Stop putting gas and binutils in noconfigdirs for
- powerpc-*-aix* and rs6000-*-*.
-
-Mon Oct 9 12:38:40 1995 Michael Meissner <meissner@cygnus.com>
-
- * cfg-ml-com.in (powerpc*-*-eabisim*): Add support for building
- -mcall-aixdesc libraries.
-
-Fri Oct 6 16:17:57 1995 Ken Raeburn <raeburn@cygnus.com>
-
- Mon Sep 25 22:49:32 1995 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
-
- * config.sub (arm | armel | armeb): Fix shell syntax.
-
-Fri Oct 6 14:40:28 1995 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * cfg-ml-com.in ({powerpc,rs6000}-ibm-aix*): Add multilibs for
- -msoft-float and -mcpu=common support.
- (powerpc*-*-eabisim*): Add support for building -mcall-aix
- libraries.
-
-Thu Oct 5 13:26:37 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
-
- * configure.in: Allow configuration and build of emacs19 for the alpha.
-
-Wed Oct 4 22:05:36 1995 Jason Molenda (crash@phydeaux.cygnus.com)
-
- * configure.in (CC): Get ^CC, not just any old CC, from
- ${host_makefile_frag}.
-
-Wed Oct 4 21:55:00 1995 Jason Molenda (crash@phydeaux.cygnus.com)
-
- * configure.in (CC): Try to get CC from
- ${srcdir}/${host_makefile_frag}, not ${host_makefile_frag}.
-
-Wed Oct 4 21:44:12 1995 Jason Molenda (crash@phydeaux.cygnus.com)
-
- * Makefile.in (TARGET_CONFIGDIRS): configure targetdirs
- only if it exists in $(srcdir).
-
-Wed Oct 4 11:52:31 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: If CC and CXX are not set in the environment, set
- them, based on either an existing Makefile or on searching for gcc
- in PATH. Substitute for CC and CXX in Makefile.
- * configure.in: Remove libm from target_libs. Separate
- target_configdirs from configdirs. If CC is not set in
- environment, try to get it from a host Makefile fragment. Rewrite
- changes of configdirs to use skipdirs instead. A few minor
- tweaks. Take directories out of target_configdirs as they are
- taken out of configdirs. Remove existing Makefile files from
- subdirectories. Substitute for TARGET_CONFIGDIRS and
- CONFIG_ARGUMENTS in Makefile.
- * Makefile.in (TARGET_CONFIGDIRS): New variable, automatically set
- by configure.in.
- (CONFIG_ARGUMENTS): Likewise.
- (CONFIGURE_TARGET_MODULES): New variable.
- ($(DO_X)): Loop over TARGET_CONFIGDIRS as well as SUBDIRS.
- ($(CONFIGURE_TARGET_MODULES)): New target.
- (configure-libg++, configure-libio): New targets.
- (all-libg++): Depend upon configure-libg++.
- (all-libio): Depend upon configure-libio.
- (configure-libgloss, all-libgloss): New targets.
- (configure-libstdc++): New target.
- (all-libstdc++): Depend upon configure-libstdc++.
- (configure-librx, all-librx): New targets.
- (configure-newlib): New target.
- (all-newlib): Depend upon configure-newlib
- (configure-xiberty): New target.
- (all-xiberty): Depend upon configure-xiberty.
-
-Sat Sep 30 04:32:59 1995 Jason Molenda (crash@phydeaux.cygnus.com)
-
- * configure.in (host i[345]86-*-win32): Expand the
- noconfigdirs again.
-
-Thu Sep 28 21:18:49 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-configure: Fix sed command file name.
-
-Thu Sep 28 17:39:56 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * configure.in (host i[345]86-*-win32): Reduce the
- noconfigdirs again.
-
-Wed Sep 27 12:24:00 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Don't configure ld and gdb for powerpc*-*-winnt*
- or powerpc*-*-pe*, since they are not yet supported.
-
-Tue Sep 26 14:30:01 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- Add PowerMac support and many other enhancements.
- * mpw-configure: New option --cc to select compiler to use,
- paste options set according to --cc into the generated
- Makefile, generate the Makefile by sed'ing the Unix Makefile.in
- if mpw-make.sed is present.
- * mpw-config.in: Don't test for gC1, test for mpw-touch,
- add forward includes for PowerPC include files.
- * mpw-build.in: Build using Makefile.PPC if present.
- (do-byacc, etc): Remove separate version resource builds.
- (do-gas): Build "stamps" before "all".
- (do-gcc): Build "stamps-h" and "stamps-c" before "all".
- * mpw-README: Update to reflect --cc option, PowerMac support,
- and recently-reported compatibility problems.
-
-Fri Sep 22 12:15:42 1995 Doug Evans <dje@deneb.cygnus.com>
-
- * cfg-ml-com.in (m68*-*-*): Only build multilibs for
- embedded m68k systems (-aout, -coff, -elf, -vxworks).
- (--with-multilib-top): Pass to recursive invocations.
-
-Tue Sep 19 13:51:05 1995 J.T. Conklin <jtc@blues.cygnus.com>
-
- * configure.in (noconfigdirs): Disable libg++ and libstdc++ on
- v810-*-*.
-
-Mon Sep 18 23:08:26 1995 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * configure.in (noconfigdirs): Disable bfd, binutils, gas, gcc,
- gdb, ld and opcodes on v810-*-*.
-
-Sat Sep 16 18:31:08 PDT 1995 Angela Marie Thomas <angela@cygnus.com>
-
- * config/mh-ncrsvr43: Removed AR_FLAGS
-
-Tue Sep 12 18:03:31 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (DO_X): Change do-realclean to do-maintainer-clean.
- (local-maintainer-clean): New target.
- (maintainer-clean): New target.
- (realclean): Just depend upon maintainer-clean.
-
-Fri Sep 8 17:11:14 1995 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * configure.in (noconfigdirs): Disable gdb on m68k-*-netbsd*.
-
-Fri Sep 8 16:46:29 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Build ld in mips*-*-bsd* case.
-
-Thu Sep 7 20:03:41 1995 Ken Raeburn <raeburn@cygnus.com>
-
- * config.sub: Accept -lites* OS. From Ian Dall.
-
-Fri Sep 1 08:06:58 1995 James G. Smith <jsmith@beauty.cygnus.com>
-
- * config.sub: recognise mips64vr4300 and mips64vr4300el as valid
- targets.
-
-Wed Aug 30 21:06:50 1995 Jason Molenda (crash@phydeaux.cygnus.com)
-
- * configure.in: treat i386-win32 canadian cross the same as
- i386-go32 canadian cross.
-
-Thu Aug 24 14:53:20 1995 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * cfg-ml-com.in (powerpc*-*-eabisim): Add support for PowerPC
- running under the simulator to build a reduced set of libraries.
- (powerpc-*-eabiaix): Add fine grained multilib support added to
- other powerpc targets yesterday.
-
-Wed Aug 23 09:41:56 1995 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * cfg-ml-com.in (powerpc*): Add support for -disable-biendian,
- -disable-softfloat, -disable-relocatable, -disable-aix, and
- -disable-sysv to control which multilib libraries get built.
-
-Thu Aug 17 16:03:41 1995 Ken Raeburn <raeburn@kr-laptop.cygnus.com>
-
- * configure: Add Makefile.tem to list of files to remove in trap
- handler.
-
-Mon Aug 14 19:27:56 1995 Per Bothner <bothner@kalessin.cygnus.com>
-
- * config.guess (*Linux*): Add missing "exit"s.
- Also, need specific check for alpha-unknown-linux (uses COFF).
-
-Fri Aug 11 15:38:20 1995 Per Bothner <bothner@kalessin.cygnus.com>
-
- * config.guess: Merge with FSF:
-
- Wed Jun 28 17:57:27 1995 David Edelsohn <edelsohn@mhpcc.edu>
- * config.guess (AIX4): More robust release numbering discovery.
-
- Thu Jun 22 19:01:24 1995 Kenneth Stailey (kstailey@eagle.dol-esa.gov)
- * config.guess (i386-sequent-ptx): Properly get version number.
-
- Thu Jun 22 18:36:42 1995 Uwe Seimet (seimet@iris1.chemie.uni-kl.de)
- * config.guess (mips:*:4*:UMIPS): New case.
-
-Mon Aug 7 09:21:35 1995 Doug Evans <dje@canuck.cygnus.com>
-
- * configure.in (i386-go32 host): Fix typo (deja-gnu -> dejagnu).
- (i386-win32 host): Likewise. Don't build readline.
-
-Sat Aug 5 09:51:49 1995 Fred Fish <fnf@rtl.cygnus.com>
-
- * Makefile.in (GDBTK_SUPPORT_DIRS): Define and pass as part of
- SUPPORT_FILES to submakes.
-
-Fri Aug 4 13:04:36 1995 Fred Fish <fnf@cygnus.com>
-
- * Makefile.in (GDB_SUPPORT_DIRS): Add utils.
- (DEVO_SUPPORT): Add mpw-README, mpw-build.in, mpw-config.h and
- mpw-configure.
-
-Wed Aug 2 16:32:40 1995 Ken Raeburn <raeburn@cygnus.com>
-
- * configure.in (appdirs): Use =, not ==, in test expression when
- trying to build the text to print in the warning message for
- Solaris users.
-
-Mon Jul 31 09:56:18 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * cfg-ml-com.in (z8k-*-coff): Add 'std' multilib build.
-
-Fri Jul 28 00:16:31 1995 Jeffrey A. Law <law@rtl.cygnus.com>
-
- * config.guess: Recognize lynx-2.3.
-
-Thu Jul 27 15:47:59 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * config.sub (z8ksim): Deleted
- (z8k-*-coff): New, this is the one true name of the target.
-
-Thu Jul 27 14:33:33 1995 Doug Evans <dje@canuck.cygnus.com>
-
- * cfg-ml-pos.in (dotdot): Work around SunOS sed bug.
-
-Thu Jul 27 13:31:05 1995 Fred Fish (fnf@cygnus.com)
-
- * config.guess (*:Linux:*:*): First try asking the linker what the
- default object file format is (elf, aout, or coff). Then if this
- fails, try previous methods.
-
-Thu Jul 27 11:28:17 1995 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * configure.in: Don't build newlib for *-*-vxworks5.1.
-
-Thu Jul 27 11:18:47 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
-
- * configure.in: Don't build newlib for a29k-*-vxworks5.1.
- * test-build.mk: Add setting of --with-headers for a29k-vxworks5.1.
-
-Tue Jul 25 21:25:39 1995 Doug Evans <dje@canuck.cygnus.com>
-
- * cfg-ml-pos.in (MULTITOP): Trim excess trailing "/.".
-
-Fri Jul 21 10:41:12 1995 Doug Evans <dje@canuck.cygnus.com>
-
- * cfg-ml-com.in: New file.
- * cfg-ml-pos.in: New file.
-
-Wed Jul 19 00:37:27 1995 Jeffrey A. Law <law@rtl.cygnus.com>
-
- * COPYING.NEWLIB: Add HP free copyright to list.
-
-Tue Jul 18 10:58:51 1995 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * config.sub: Recognize -eabi* for the system, not just -eabi.
-
-Mon Jul 3 13:44:51 1995 Steve Chamberlain <sac@slash.cygnus.com>
-
- * Makfile.in (DLLTOOL_FOR_TARGET): New name, pass it down.
- * config.sub, configure.in (win32): New target and host.
-
-Wed Jun 28 23:57:08 1995 Steve Chamberlain <sac@slash.cygnus.com>
-
- * configure.in: Add i386-pe configuration.
-
-Fri Jun 23 14:28:44 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-build.in (install): Install GDB after LD.
-
-Thu Jun 22 17:10:53 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-config.in (elf/mips.h): Always forward-include, needed
- for GDB to build.
-
-Wed Jun 21 15:17:30 1995 Rob Savoye <rob@darkstar.cygnus.com>
-
- * testsuite: New directory for customer acceptance and whole tool
- chain tests.
-
-Wed Jun 21 16:50:29 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * configure: If per-host line isn't found, but AC_OUTPUT is found
- and a configure script exists, run it instead.
-
-Thu Jun 15 21:09:24 1995 Per Bothner <bothner@kalessin.cygnus.com>
-
- * config.guess: Update from FSF, for alpha-dec-winnt3.5 and Crays.
-
-Tue Jun 13 21:43:27 1995 Rob Savoye <rob@darkstar.cygnus.com>
-
- * configure: Set build_{cpu,vendor,os,alias} to host values when
- --build isn't specified.
-
-Mon Jun 5 18:26:36 1995 Jason Merrill <jason@phydeaux.cygnus.com>
-
- * Makefile.in (PICFLAG, PICFLAG_FOR_TARGET): New macros.
- (FLAGS_TO_PASS): Pass them.
- (EXTRA_TARGET_FLAGS): Ditto.
-
- * config/m?-*pic: Define PICFLAG* instead of LIB*FLAGS*.
-
-Wed May 31 22:27:42 1995 Jim Wilson <wilson@chestnut.cygnus.com>
-
- * Makefile.in (all-libg++): Depend on all-libstdc++.
-
-Thu May 25 22:40:59 1995 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * configure.in (noconfigdirs): Enable all packages for
- i386-unknown-netbsd.
-
-Sat May 20 13:22:31 1995 Angela Marie Thomas <angela@cirdan.cygnus.com>
-
- * configure.in (noconfigdirs): Don't configure tk for i386-go32
- hosted builds (DOS builds)
-
-Thu May 18 18:08:49 1995 Ken Raeburn <raeburn@kr-laptop.cygnus.com>
-
- Changes for ARM based on patches from Richard Earnshaw:
- * config.sub: Handle armeb and armel.
- * configure.in: Omit arm linker only for riscix.
-
-Thu May 11 17:23:26 1995 Per Bothner <bothner@kalessin.cygnus.com>
-
- * config.guess: Update from FSF.
-
-Tue May 9 15:52:05 1995 Michael Meissner <meissner@cygnus.com>
-
- * config.sub: Recognize powerpcle as the little endian varient of
- the PowerPC. Recgonize ppc as a PowerPC variant, and ppcle as a
- powerpcle variant. Convert pentium into i586, not i486. Add p5
- alias for i586. Map new x86 variants p6, k5, nexgen into i586
- temporarily.
-
-Tue May 2 16:29:41 1995 Jeff Law (law@snake.cs.utah.edu)
-
- * configure.in (hppa*-*-lites*): Treat like hppa*-*-*elf*.
-
-Sun Apr 30 21:38:09 1995 Jeff Law (law@snake.cs.utah.edu)
-
- * config.sub: Accept -lites* as a basic system type.
-
-Thu Apr 27 11:33:29 1995 Michael Meissner (meissner@cygnus.com)
-
- * config.guess (*:Linux:*:*): Check for whether the pre-BFD linker is
- installed, and if so return linuxoldld as the system name.
-
-Wed Apr 26 10:59:02 1995 Jeff Law (law@snake.cs.utah.edu)
-
- * config.guess: Add hppa1.1-hp-lites support.
-
-Tue Apr 25 11:08:11 1995 Rob Savoye <rob@darkstar.cygnus.com>
-
- * configure.in: Don't build newlib for m68k-vxworks5.1.
-
-Wed Apr 19 17:02:43 1995 Jim Wilson <wilson@chestnut.cygnus.com>
-
- * configure.in (mips-sgi-irix6): Use mh-irix5.
-
-Fri Apr 14 15:21:17 1995 Doug Evans <dje@chestnut.cygnus.com>
-
- * Makefile.in (all-gcc): Depend on all-ld (for libgcc1-test).
-
-Wed Apr 12 16:06:01 1995 Jason Merrill <jason@phydeaux.cygnus.com>
-
- * test-build.mk: Enable building of shared libraries on IRIX 5 and
- OSF/1. Fix compiler flags.
- * build-all.mk: Support Linux and OSF/1 3.0. Fix compiler flags.
-
-Tue Apr 11 18:55:40 1995 Doug Evans <dje@canuck.cygnus.com>
-
- * configure.in: Recognize --with-newlib.
- (sparc-*-sunos4*): Build sim, dejagnu, expect, tcl if cross target.
-
-Mon Apr 10 14:38:20 1995 Jason Molenda (crash@phydeaux.cygnus.com)
-
- * Makefile.in: move {all,check,install}-gdb from *_MODULES
- to *_X11_MODULES due to gdbtk needing X include files et al.
-
-Mon Apr 10 11:42:22 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- Merge in support for Mac MPW as a host.
- (Old change descriptions retained for informational value.)
-
- * mpw-config.in: Add generic include forwards for cpu-specific
- include files in aout and elf directories.
-
- * mpw-configure: Added copyright.
- * mpw-config.in: Check for presence of required build tools.
- (target_libs): Add newlib.
- (target_tools): Add examples.
- (Read Me): Generate as "Read Me for MPW" instead.
- * mpw-build.in: Base sub-builds on all-foo instead of do-foo.
- (all-byacc, do-byacc, all-flex, do-flex, do-newlib): New actions.
- (do-gas, do-gcc, do-gdb, do-ld): Build Version.r first.
-
- * mpw-configure: Remove subdir-specific makefile hackery,
- delete mk.tmp after using it.
-
- * mpw-build.in (all): Display start and end times.
-
- * mpw-configure (host_canonical): Set.
- (target_cpu): Always add to makefiles.
- (ARCHDEFS, EMUL): Add to makefile only if nonempty.
- (TM_FILE, XM_FILE, NM_FILE): No longer add to makefile.
- (mpw-mh-mpw): Look for in srcdir and srcroot.
- Use sed instead of mpw-edit-prefix to edit prefix definitions.
-
- * mpw-build.in: (install-only): New target.
-
- * mpw-configure (host_alias, target_alias): Rename from hostalias
- and targetalias, add into generated Makefile.
- (mk.tmp): If present, add into generated Makefile.
- * mpw-build.in (all-gas): Build config.h first before gas proper.
-
- * mpw-configure (config.status): Write only if changed.
- * mpw-config.in (readline): Configure it (not built, just used for
- definitions).
-
- * mpw-config.in (elf/mips.h): Add a forward include.
-
- * mpw-config.in: Forward-include most .h files in include into
- extra-include.
- (readline): Don't build.
- mpw-build.in (install): Install GDB.
-
- * mpw-configure (prefix, mpw_prefix): Handle it.
- * mpw-config.in (mmalloc, readline): Don't configure.
- * mpw-build.in (thisscript): Rename to ThisScript.
- Use mpw-build instead of BuildProgram everywhere.
- (mmalloc, readline): Don't build.
- * mpw-README: New file, basic documentation about the MPW port.
-
- * mpw-config.in: Use forward-include to create include files.
-
- * mpw-configure: Add more things to the top of each configured
- Makefile, including contents of config/mpw-mh-mpw.
- * mpw-config.in (extra-include): Create this directory and fill it
- with Posix-like include files when configuring.
-
- * config.sub (apple, mac, mpw): Add various aliases.
-
- * mpw-build.in: New file, top-level build script fragment for MPW.
- * mpw-configure: New file, configure script for MPW.
- * mpw-config.in: New file, config fragment for MPW.
-
-Fri Apr 7 19:33:16 1995 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * configure.in (host_libs): Remove glob, since it is gone from the
- sources.
-
-Fri Mar 31 11:36:17 1995 Jason Molenda (crash@phydeaux.cygnus.com)
-
- * Makefile.in: define empty GDB_NLM_DEPS var.
-
- * configure.in(target_makefile_frag): use config/mt-netware
- for netware targets.
-
-Thu Mar 30 13:51:43 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * config.sub: Merge in recent FSF changes. Remove linux special
- cases.
-
-Tue Mar 28 14:47:34 1995 Jason Molenda (crash@phydeaux.cygnus.com)
-
- build-all.mk,config/mh-solaris: revert these two changes:
-
- Tue Mar 30 10:03:09 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * build-all.mk: Use CC=cc -Xs on Solaris.
-
- Mon Mar 29 19:59:26 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * config/mh-solaris: SunPRO C needs -Xs to be able to get a
- working xmakefile for Emacs.
-
-Tue Mar 21 10:43:32 1995 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * glob/*: Removed. Schauer's 24 Feb 1994 readline change made us
- stop using it.
- * Makefile.in: Nuke all references to glob subdirectory.
-
-Thu Mar 16 13:35:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
-
- * configure.in: Fix --enable-shared logic in per-host.
-
-Mon Mar 13 12:33:15 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in (*-hp-hpux[78]*): Use mh-hpux8.
-
-Mon Mar 6 10:21:58 1995 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * configure.in (noconfigdirs): Don't build gas on AIX, for
- powerpc*-*-aix* as well as for rs6000*-*-aix*.
-
-Wed Mar 1 12:51:53 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: Fix --cache-file to work if the file argument is a
- relative path.
-
-Tue Feb 28 17:36:07 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: If the --cache-file is used, pass it down to
- configure in subdirectories.
-
-Mon Feb 27 12:52:46 1995 Kung Hsu <kung@mexican.cygnus.com>
-
- * config.sub: add vxworks29k configuration.
-
-Fri Feb 10 16:12:26 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * Makefile.in (taz): Do "diststuff" part quietly.
-
-Sun Feb 5 14:16:35 1995 Doug Evans <dje@canuck.cygnus.com>
-
- * config.sub: Mini-merge with gcc/config.sub.
-
-Sat Feb 4 12:11:35 1995 Jim Wilson <wilson@chestnut.cygnus.com>
-
- * config.guess (IRIX): Sed - to _.
-
-Fri Feb 3 11:54:42 1995 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * Makefile.in (source-vault, binary-vault): New targets.
-
-Thu Jan 26 13:00:11 1995 Michael Meissner <meissner@cygnus.com>
-
- * config.sub: Recognize -eabi as a basic system type.
-
-Thu Jan 12 13:13:23 1995 Jason Merrill <jason@phydeaux.cygnus.com>
-
- * configure.in (enable_shared stuff): Fix typo.
-
-Thu Jan 12 01:36:51 1995 deanm@medulla.LABS.TEK.COM (Dean Messing)
-
- * Makefile.in (BASE_FLAGS_TO_PASS): Fix typo in passing LIBCXXFLAGS*.
-
-Wed Jan 11 16:29:53 1995 Jason Merrill <jason@phydeaux.cygnus.com>
-
- * Makefile.in (LIBCXXFLAGS_FOR_TARGET): Add -fno-implicit-templates.
-
-Mon Jan 9 12:48:01 1995 Jim Kingdon <kingdon@lioth.cygnus.com>
-
- * configure.in (rs6000-*-*): Don't build gas.
-
-Wed Jan 4 23:53:49 1995 Ian Lance Taylor <ian@tweedledumb.cygnus.com>
-
- * Makefile.in: Use /x/x/ instead of /brokensed/brokensed/, to
- reduce command line length.
- (AS_FOR_TARGET): Check for as.new, not Makefile.
- (NM_FOR_TARGET): Check for nm.new, not Makefile.
-
-Wed Jan 4 13:02:39 1995 Per Bothner <bothner@kalessin.cygnus.com>
-
- * config.guess: Merge from FSF.
-
-Thu Dec 15 17:11:37 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * configure: Don't use $ when handling program_suffix.
-
-Mon Dec 12 12:09:37 1994 Stu Grossman (grossman@cygnus.com)
-
- * configure.in: Configure tk for hppa/hpux.
-
-Fri Dec 2 15:55:38 1994 Per Bothner <bothner@kalessin.cygnus.com>
-
- * Makefile.in (LIBGXX_SUPPORT_DIRS): Add libstdc++.
-
-Tue Nov 29 19:37:56 1994 Per Bothner <bothner@kalessin.cygnus.com>
-
- * Makefile.in: Move -fno-implicit-template from CXXFLAGS
- to LIBCXXFLAGS. Tests are better run without it.
-
-Wed Nov 23 10:29:25 1994 Brendan Kehoe (brendan@lisa.cygnus.com)
-
- * Makefile.in (all-ispell): Depend on all-emacs19 instead of all-emacs.
-
-Mon Nov 21 11:14:01 1994 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * configure.in (*-*-netware*): Don't configure xiberty.
-
-Mon Nov 14 08:49:15 1994 Stu Grossman (grossman@cygnus.com)
-
- * configure.in: Remove tk from native_only list.
-
-Fri Nov 11 15:31:26 1994 Bill Cox (bill@rtl.cygnus.com)
-
- * build-all.mk: Add mips-ncd-elf target to sun4 targets
- for special NCD build.
-
-Mon Nov 7 20:58:17 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * Makefile.in (DEVO_SUPPORT): Remove configure.bat and
- makeall.bat, they're only useful for binutils snapshots.
- (binutils.tar.gz, gas+binutils.tar.gz): Add configure.bat and
- makeall.bat to specified SUPPORT_FILES.
-
-Mon Nov 7 17:25:18 1994 Bill Cox (bill@cirdan.cygnus.com)
-
- * build-all.mk: Add Ericsson targets to sun4 and solaris
- hosts. Add BNR's sun4 target to solaris host, so their
- build-from-source will be tested in-house first.
-
-Sat Nov 5 18:43:30 1994 Jason Merrill (jason@phydeaux.cygnus.com)
-
- * Makefile.in (LIBCFLAGS): New variable.
- (CFLAGS_FOR_TARGET): Ditto.
- (LIBCFLAGS_FOR_TARGET): Ditto.
- (LIBCXXFLAGS): Ditto.
- (CXXFLAGS_FOR_TARGET): Ditto.
- (LIBCXXFLAGS_FOR_TARGET): Ditto.
- (BASE_FLAGS_TO_PASS): Pass them.
- (EXTRA_TARGET_FLAGS): Ditto.
-
- * configure.in, config/m[th]-*pic: Support --enable-shared.
-
-Sat Nov 5 15:44:00 1994 Per Bothner <bothner@kalessin.cygnus.com>
-
- * configure.in (target_libs): Include libstdc++ again.
- * config.guess: Update from FSF (for FreeBSD).
-
-Thu Nov 3 16:32:30 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * Makefile.in (DEVO_SUPPORT): Include configure.bat and
- makeall.bat.
- (DISTDOCDIRS): Add `etc'.
- (ETC_SUPPORT_PFX): New variable.
- (taz): Include anything from etc starting with a word in
- ETC_SUPPORT_PFX.
-
-Wed Oct 26 16:19:35 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * config.sub: Update for recent FSF changes. Remove obsolete
- h8300hds entry. Add -windows* and -osx as basic os. Minor
- spacing changes.
-
-Thu Oct 20 18:41:56 1994 Per Bothner <bothner@kalessin.cygnus.com>
-
- * configure.in (target_libs): Remove libstdc++ for libg++-2.6.1.
-
- * config.guess: Merge with FSF.
- * configure.in: Match on i?86-ncr-sysv4.3, not i?86-ncr-sysv43.
-
-Thu Oct 20 19:26:56 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * configure: Since the "trap 0" handler will override the exit
- status on many systems, only use it for "exit 1", and make it set
- a non-zero exit status; reset it before "exit 0". Also, check
- exit status of config.sub, and error out if it failed.
-
-Wed Oct 19 18:49:55 1994 Rob Savoye (rob@cygnus.com)
-
- * Makefile.in: (ALL_TARGET_MODULES,INSTALL_TARGET_MODULES) Build
- and install libgloss.
-
-Tue Oct 18 15:25:24 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * Makefile.in (all-binutils): Depend upon all-byacc.
-
- * configure.in: Don't build emacs on Irix 5.
-
-Mon Oct 17 16:22:12 1994 J.T. Conklin (jtc@phishhead.cygnus.com)
-
- * configure.in (*-*-netware*): Add libio.
-
-Thu Oct 13 15:51:20 1994 Jason Merrill (jason@phydeaux.cygnus.com)
-
- * Makefile.in (ALL_TARGET_MODULES): Add libstdc++.
- (CHECK_TARGET_MODULES): Ditto.
- (INSTALL_TARGET_MODULES): Ditto.
- (TARGET_LIBS): Ditto.
- (all-libstdc++): Note dependencies.
-
-Thu Oct 13 01:43:08 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * Makefile.in (BINUTILS_SUPPORT_DIRS): Add gas.
-
-Tue Oct 11 12:12:29 1994 Jason Merrill (jason@phydeaux.cygnus.com)
-
- * Makefile.in (CXXFLAGS): Use -fno-implicit-templates instead of
- -fexternal-templates.
-
- * configure.in (target_libs): Add libstdc++.
- (noconfigdirs): Add libstdc++ as appropriate.
-
-Thu Oct 6 18:00:54 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * config.guess: Update from FSF.
-
-Tue Oct 4 12:05:42 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * configure: Use ${config_shell} when running ${configsub}.
-
-Mon Oct 3 14:28:34 1994 Doug Evans <dje@canuck.cygnus.com>
-
- * config.sub: No longer recognize h8300h.
-
-Mon Oct 3 12:40:54 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * config.sub: Remove extraneous differences between config.sub and
- gcc/config.sub.
-
-Sat Oct 1 00:23:12 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * Makefile.in (DISTSTUFFDIRS): Add gas.
-
-Thu Sep 22 19:04:55 1994 Doug Evans (dje@canuck.cygnus.com)
-
- * COPYING.NEWLIB: New file.
-
-Mon Sep 19 18:25:40 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * config.guess (HP-UX): Patch from Harlan Stenn
- <harlan@landmark.com> to also emit release level.
-
-Wed Sep 7 13:15:25 1994 Jim Wilson (wilson@sphagnum.cygnus.com)
-
- * config.guess (sun4*:SunOS:*:*): Change '-JL' to '_JL'.
-
-Tue Sep 6 23:23:18 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * config.sub: Merge nextstep cleanup from FSF.
-
-Mon Sep 5 05:01:30 1994 Ken Raeburn (raeburn@kr-pc.cygnus.com)
-
- * configure.in (arm-*-*): Don't configure ld for this target.
-
-Thu Sep 1 09:35:00 1994 J.T. Conklin (jtc@phishhead.cygnus.com)
-
- * configure.in (*-*-netware): don't configure libg++, libio,
- librx, or newlib.
-
-Wed Aug 31 13:52:08 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * configure.in (alpha-dec-osf*): Use osf*, not osf1*. Don't
- configure ld--it works, but it doesn't support shared libraries.
-
-Sun Aug 28 18:13:45 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * config.guess (*-unknown-freebsd*): Get rid of possible
- trailing "(Release)" in version string.
- Patch from Paul Richards <paul@isl.cf.ac.uk>.
-
-Sat Aug 27 15:00:49 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * config.guess: Fix i486-ncr-sysv43 -> i486-ncr-sysv4.3.
- Fix type: *-next-neststep -> *-next-nextstep.
-
- * config.guess: Merge from FSF:
-
- Fri Aug 26 18:45:25 1994 Philippe De Muyter (phdm@info.ucl.ac.be)
-
- * config.guess: Recognize powerpc-ibm-aix3.2.5.
-
- Wed Apr 20 06:36:32 1994 Philippe De Muyter (phdm@info.ucl.ac.be)
-
- * config.guess: Recognize UnixWare 1.1 (UNAME_SYSTEM is SYSTEM_V
- instead of UNIX_SV for UnixWare 1.0).
-
-Sat Aug 27 01:56:30 1994 Stu Grossman (grossman@cygnus.com)
-
- * Makefile.in (all-gdb): Add dependencies on all-gcc and all-ld
- to make gdb/nlm/* build after the compiler and linker.
-
-Fri Aug 26 14:30:05 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * config.guess (netbsd, freebsd, linux): Accept any machine,
- not just i[34]86.
- (m68k-atari-sysv4): Relocate to match FSF version.
-
- * config.guess: More merges from the FSF:
-
- Add a space before function call or macro invocation.
-
- Tue May 10 16:53:55 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
-
- * config.guess: Add trap cmd to remove dummy.c and dummy when
- interrupted.
-
- Wed Apr 20 18:07:13 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
-
- * config.guess (dummy.c): Redirect stderr for `hostinfo' command.
- (dummy): Redirect stderr from compilation of dummy.c.
-
- Sat Apr 9 14:59:28 1994 Christian Kranz (kranz@sent5.uni-duisburg.de)
-
- * config.guess: Distinguish between NeXTStep 2.1 and 3.x.
-
-Fri Aug 26 13:42:20 1994 Ken Raeburn (raeburn@kr-laptop.cygnus.com)
-
- * configure: Accept and ignore --cache*, for compatibility with
- new autoconf.
-
-Fri Aug 26 13:05:27 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * config.guess: Merge from FSF:
-
- Thu Aug 25 20:28:51 1994 Richard Stallman <rms@mole.gnu.ai.mit.edu>
-
- * config.guess (Pyramid*:OSx*:*:*): New case.
- (PATH): Add /.attbin at end for finding uname.
- (dummy.c): Handle i860-alliant-bsd. Follow whitespace conventions.
-
- Wed Aug 17 18:21:02 1994 Tor Egge (tegge@pvv.unit.no)
-
- * config.guess (M88*:DolphinOS:*:*): New case.
-
- Thu Aug 11 17:00:13 1994 Stan Cox (coxs@dg-rtp.dg.com)
-
- * config.guess (AViiON:dgux:*:*): Use TARGET_BINARY_INTERFACE
- to select whether to use ELF or COFF.
-
- Sun Jul 24 16:20:53 1994 Richard Stallman <rms@mole.gnu.ai.mit.edu>
-
- * config.guess: Recognize i860-stardent-sysv and i860-unknown-sysv.
-
- Sun May 1 10:23:10 1994 Richard Stallman (rms@mole.gnu.ai.mit.edu)
-
- * config.guess: Guess the OS version for HPUX.
-
- Tue Mar 1 21:53:03 1994 Karl Heuer (kwzh@hal.gnu.ai.mit.edu)
-
- * config.guess (UNAME_VERSION): Recognize aix3.2.4 and aix3.2.5.
-
-Fri Aug 26 11:19:08 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * configure.in: Recognize --with-headers, --with-libs, and
- --without-newlib.
- * Makefile.in (all-xiberty): Depend upon all-ld.
-
-Wed Aug 24 12:36:50 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * configure.in: Change i[34]86 to i[345]86.
-
-Mon Aug 22 10:58:33 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * configure (version): A few more tweaks to help message.
-
-Fri Aug 19 12:40:25 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * Makefile.in: Remove (for now) librx as a host library,
- now that we're building it for target.
-
-Fri Aug 19 10:49:17 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * configure: Fix up help message; from karl@owl.hq.ileaf.com
- (Karl Berry).
-
-Tue Aug 16 16:11:08 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * configure.in: Also configure librx.
-
-Mon Aug 15 16:51:45 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * Makefile.in: Update various rules to reflect that librx
- is now needed for libg++.
-
-Fri Aug 12 18:07:21 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * config.sub: Accept mips64orion and mips64orionel as a CPU name.
-
-Mon Aug 8 11:36:17 1994 Stan Shebs (shebs@andros.cygnus.com)
-
- * configure.in: Configure the examples directory.
-
-Thu Aug 4 16:12:36 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * configure: Simplify Jun 2 1994 change.
-
-Wed Aug 3 04:58:16 1994 D. V. Henkel-Wallace (gumby@cygnus.com)
-
- * change CC to /usr/latest/bin/gcc for lynx host builds, since
- /bin/gcc isn't good enough to build gcc.
-
-Wed Jul 27 09:07:14 1994 Fred Fish (fnf@cygnus.com)
-
- * Makefile.in (GDB_SUPPORT_FILES): Remove
- (setup-dirs-gdb, gdb.tar.gz, make-gdb.tar.gz): Remove old rules.
- (gdb.tar.gz): Add new rule to use standard distribution building
- mechanism.
-
-Mon Jul 25 11:10:06 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * configure.in: Warn about use of /usr/ucb/cc on Solaris. From
- Bill Cox <bill@cygnus.com>.
-
-Sat Jul 23 12:19:46 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * config.guess: Recognize ISC. Patch from kwzh@gnu.ai.mit.edu.
-
-Fri Jul 22 17:53:59 1994 Stu Grossman (grossman@cygnus.com)
-
- * configure: Search current dir first in .gdbinit.
-
-Fri Jul 22 11:28:30 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * config.sub: Recognize freebsd (merged from gcc config.sub).
-
-Thu Jul 21 14:10:52 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * config.sub: Refer to NeXT's operating system as nextstep.
-
- * config.sub (case $basic_machine): Re-order the cases, to match
- the order in the FSF version (which is mostly alphabethical).
- Merge in some additions and changes from the FSF.
-
-Sat Jul 16 12:03:08 1994 Stan Shebs (shebs@andros.cygnus.com)
-
- * config.guess: Recognize m68k-atari-sysv4 and m88k-harris-csux7.
- * config.sub: Recognize cxux7.
- * configure.in: Use mh-cxux for m88k-harris-cxux*.
-
-Mon Jul 11 14:37:39 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * config.sub: Fix typo powerpc -> powerpc-*.
-
-Sat Jul 9 13:03:43 1994 Michael Tiemann (tiemann@blues.cygnus.com)
-
- * Makefile.in: `all-emacs19' depends on `all-byacc'.
-
- * Makefile.in: Add all-emacs19 and install-emacs19 rules (in
- parallel with all-emacs and install-emacs). Top-level command
- `make all-emacs19 CC=gcc' now behaves as `make all-emacs CC=gcc'.
-
-Thu Jun 30 16:53:42 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * test-build.mk ($(host)-stamp-stage2-installed): Remove
- $(relbindir)/make before doing ``make install'', and use
- $(GNU_MAKE) while doing it. Avoids problem on SunOS with
- installing over running make binary.
- ($(host)-stamp-stage3-installed): Likewise.
-
-Tue Jun 28 13:43:25 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * config.guess: Recognize Mach.
-
-Mon Jun 27 16:41:14 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * configure: Check ${exec_prefixoption}, not ${exec_prefix}, to
- see whether --exec-prefix was used.
-
-Sun Jun 26 21:15:54 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * README: Explicitly mention libg++/README. (Zoo's idea.)
-
-Tue Jun 21 12:45:55 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * Makefile.in: Add all-librx target similar to all-libproc.
-
-Wed Jun 8 23:11:55 1994 Stu Grossman (grossman@cygnus.com)
-
- * config.guess: Rearrange tests for Alpha-OSF1 to properly deal
- with post 1.2 uname bogosity.
-
-Thu Jun 9 00:27:59 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * configure: Remove temporary files on receipt of a signal.
-
-Tue Jun 7 12:06:24 1994 Ian Lance Taylor (ian@cygnus.com)
-
- * configure: If there is a package_makefile_frag, remove
- ${subdir}/Makefile.tem after copying it in.
-
-Mon Jun 6 21:35:02 1994 D. V. Henkel-Wallace (gumby@cygnus.com)
-
- * build_all.mk: support rs6000 lynx identifies itself as
- rs6000-lynx-lynxos2.2.2. Also, use /usr/cygnus/progressive/bin/gcc
- since /bin/gcc is too feeble to compile a modern gcc.
-
-Mon Jun 6 16:06:34 1994 Karen Christiansen (karen@cirdan.cygnus.com)
-
- * brought devo/test-build.mk update-to-date with progressive/
- test-build.mk. Add lynx targets and hppa flag info.
-
-Sat Jun 4 17:23:54 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * configure.in: Use mh-ncrsvr43. Patch from
- Tom McConnell <tmcconne@sedona.intel.com>.
-
-Fri Jun 3 17:47:24 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * config.guess (i386-unknown-bsdi): No longer need to
- check #if defined(__bsdi__) && defined(__i386__).
-
-Thu Jun 2 18:56:46 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * configure: Set program_transform_nameoption correctly.
-
-Thu Jun 2 10:57:06 1994 Karen Christiansen (karen@cirdan.cygnus.com)
-
- * brought build-all.mk update-to-date with progressive build-all.mk,
- added new targets and hppa info.
-
-Thu Jun 2 00:12:44 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * configure: If config.guess result is a prefix of the user
- specified target, assume a native build and use the user specified
- target as the host alias. Remove SunOS patch suffix removal hack.
- * configure.in: Remove SunOS patch suffix removal hack.
-
- * Makefile.in (CROSS_CHECK_MODULES): Remove check-flex, since it's
- in NATIVE_CHECK_MODULES.
-
-Wed Jun 1 10:49:41 1994 Bill Cox (bill@rtl.cygnus.com)
-
- * Makefile.in: Rename HOST_ONLY to NATIVE.
- * configure: Delete SunOs patch suffix from host_canonical
- and build_canonical variables that are prepended to Makefiles.
- * configure.in: Add comments for easier maintenance.
-
-Tue May 31 19:39:47 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * Makefile.in: Add all-libproc target similar to all-gui.
-
-Tue May 31 17:16:33 1994 Tom Lord (lord@cygnus.com)
-
- * Makefile.in (CHECK_MODULES): split into
- HOST_ONLY_CHECK_MODULES and CROSS_CHECK_MODULES.
-
-Tue May 31 16:36:36 1994 Paul Eggert (eggert@twinsun.com)
-
- * config.guess (i386-unknown-bsdi): New system to guess.
-
-Wed May 25 16:47:10 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * Makefile.in: Add all-gui target (but not yet build by "all").
-
-Thu May 26 08:53:19 1994 Bill Cox (bill@rtl.cygnus.com)
-
- * config.sub: Move deletion of patch suffix from here...
- * configure.in: To here, at Ian's suggestion. The top-
- level scripts might need to know of a patch level.
-
-Wed May 25 09:15:54 1994 Bill Cox (bill@rtl.cygnus.com)
-
- * config.sub: Strip off patch suffix so rtl is recognized
- as a sunos4.1.3 machine, even though it's been patched.
-
-Fri May 20 08:25:49 1994 Steve Chamberlain (sac@deneb.cygnus.com)
-
- * Makefile.in (INSTALL_LAST): Delete.
- (INSTALL_DOSREL): New.
-
-Thu May 19 17:12:12 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * configure.in: Use ld for i[34]86-*-sysv4* and sparc-*-solaris2*.
- Don't set use_gnu_ld to no for *-*-sysv4; that only controls
- whether we pass down --with-gnu-ld anyhow.
-
-Thu May 19 09:29:12 1994 Steve Chamberlain (sac@cygnus.com)
-
- * Makefile.in (INSTALL_LAST): Change operation so it works
- on more flavors of make.
- * configure.in (go32): Don't build libg++ or libio.
-
-Fri May 13 13:28:34 1994 Steve Chamberlain (sac@cygnus.com)
-
- * Makefile.in (Move HOST_PREFIX_1 and friends up so
- they can be overriden by templates.
-
-Sat May 7 16:46:44 1994 Steve Chamberlain (sac@cygnus.com)
-
- * configure.in (target==go32): Don't build gdb.
- * dosrel: New directory.
-
-Fri May 6 14:19:25 1994 Steve Chamberlain (sac@cygnus.com)
-
- * configure.in (host==go32): Configure dosrel too.
- * Makefile.in (INTALL_TARGET): Call INSTALL_LAST last.
- (HOST_CC, HOST_PREFIX, HOST_PREFIX_1): Undefine, they should
- be set by incoming names or templates.
- (INSTALL_LAST): New rule.
- * config/mh-go32: New fragment.
-
-Thu May 5 17:35:05 1994 Stan Shebs (shebs@andros.cygnus.com)
-
- * config.sub (sparclitefrw, sparclitefrwcompat): Don't set the os.
-
-Thu May 5 20:06:45 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * config/mh-lynxrs6k: Renamed from mh-lynxosrs6k, to make it
- unique in 8.3 naming schemes.
- * configure.in (appdirs): New variable. Currently empty, but will
- be used in gas distribution. If nonempty, lists a set of
- directories at least one of which must get configured, or top
- level configuration is considered to have failed.
- (rs6000-*-lynxos*): Use new file name.
-
-Thu May 5 13:38:36 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- Eliminate XTRAFLAGS.
- * Makefile.in (CC_FOR_TARGET): If newlib exists, refer to the
- newlib include files using -idirafter, and also use -nostdinc.
- (CXX_FOR_TARGET): Likewise.
- (XTRAFLAGS): Removed.
- (BASE_FLAGS_TO_PASS): Remove XTRAFLAGS_FOR_TARGET.
- (EXTRA_HOST_FLAGS): Remove XTRAFLAGS.
- (EXTRA_TARGET_FLAGS, EXTRA_GCC_FLAGS): Likewise.
- ($(DO_X)): Don't pass down XTRAFLAGS.
-
-Thu May 5 00:16:36 1994 Ken Raeburn (raeburn@kr-pc.cygnus.com)
-
- * configure.in (mips*-dec-bsd*): New target; do build linker.
- (mips*-*-bsd*): New target; don't build linker.
-
-Wed May 4 20:10:10 1994 D. V. Henkel-Wallace (gumby@cygnus.com)
-
- * configure.in: support rs6000-*-lynxos* configuration.
- support sunos4 as a cross target.
-
- * config.sub: look for lynx*, not lynx since the OS version may
- legitimately be part of the name.
-
-Tue May 3 21:48:11 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * configure.in (i[34]86-*-sco*): Move to be with other i386
- targets.
- (romp-*-*): New target. Skip various binary utilities.
- (vax-*-*): New target. Don't build newlib.
- (vax-*-vms): Renamed from *-*-vms. Don't build opcodes or newlib.
-
-Thu Apr 28 15:03:05 1994 David J. Mackenzie (djm@rtl.cygnus.com)
-
- * configure.in: Only set host_makefile_frag if config
- directory exists.
-
-Wed Apr 27 12:14:30 1994 David J. Mackenzie (djm@rtl.cygnus.com)
-
- * install.sh: If $dstdir exists, don't check whether each
- component does.
-
-Tue Apr 26 18:11:33 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * test-build.mk (HOLES): Add sleep; used by rcs/src/conf.sh.
-
-Mon Apr 25 15:06:34 1994 Stan Shebs (shebs@andros.cygnus.com)
-
- * configure.in (*-*-lynxos*): Don't configure newlib for either
- native or cross Lynx.
-
-Sat Apr 16 11:58:16 1994 Doug Evans (dje@canuck.cygnus.com)
-
- * config.sub (sparc64-elf): Fix os.
- (z8k): Remove duplicate.
-
-Thu Apr 14 23:33:17 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * Makefile.in (gcc-no-fixedincludes): Touch gcc/include/fixed, not
- gcc/stmp-fixproto, to try to prevent fixproto from being run.
-
-Wed Apr 13 15:14:52 1994 Bill Cox (bill@cygnus.com)
-
- * configure: Make file links cleanly even if Lynx fails on
- an NFS symlink (at least fail cleanly).
-
-Mon Apr 11 10:58:56 1994 Jim Wilson (wilson@sphagnum.cygnus.com)
-
- * test-build.mk (CC): For mips-sgi-irix4, change -XNh1500 to
- -XNh2000.
-
-Sat Apr 9 15:10:45 1994 David J. Mackenzie (djm@rtl.cygnus.com)
-
- * configure: Unknown options are fatal again.
-
-Fri Apr 8 12:01:41 1994 David J. Mackenzie (djm@cygnus.com)
-
- * configure: Ignore --x-includes and --x-libraries, for Autoconf
- compatibility.
-
-Thu Apr 7 17:31:43 1994 Doug Evans (dje@canuck.cygnus.com)
-
- * build-all.mk: Add `clean' target.
-
-Wed Apr 6 20:44:56 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * config.guess: Add SINIX support.
- * configure.in: Add mips-*-sysv4* support.
-
-Mon Apr 4 17:41:44 1994 Doug Evans (dje@canuck.cygnus.com)
-
- * build-all.mk: Document all useful targets.
- If canonhost is sparc-sun-solaris2.3, change it to sparc-sun-solaris2.
- If canonhost is mips-sgi-irix4.0.5H, change it to mips-sgi-irix4.
-
-Thu Mar 31 04:55:57 1994 David J. Mackenzie (djm@rtl.cygnus.com)
-
- * configure: Support --silent, --quiet.
-
-Wed Mar 30 21:37:38 1994 David J. Mackenzie (djm@rtl.cygnus.com)
-
- * configure: Support --disable-FEATURE.
-
-Tue Mar 29 19:15:05 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * config.guess: Recognize NCR running SVR4.3.
-
-Mon Mar 28 14:55:15 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * config.guess: Make BSDI generate i386-unknown-bsd386.
- Patch from Paul Eggert <eggert@twinsun.com>.
-
-Mon Mar 28 12:54:52 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * configure.in (powerpc-*-aix*): Treat like rs6000-*-*.
-
-Sat Mar 26 11:25:48 1994 David J. Mackenzie (djm@rtl.cygnus.com)
-
- * configure: Make unrecognized options give nonfatal warnings
- instead of fatal errors, and pass them to any subdirectory
- configures in case they recognize them.
- Make --x equivalent to --with-x.
-
-Fri Mar 25 21:52:10 1994 David J. Mackenzie (djm@rtl.cygnus.com)
-
- * configure: Add --enable-* options. Clean up usage message and
- some comments.
-
-Thu Mar 24 09:12:53 1994 Doug Evans (dje@canuck.cygnus.com)
-
- * Makefile.in (NM_FOR_TARGET): Build tree version is now nm.new.
-
-Sun Mar 20 11:28:22 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
-
- * configure.in (hppa*-*-*): Enable binutils.
-
-Sat Mar 19 11:50:16 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * config.sub: Recognize cisco.
-
-Fri Mar 18 16:42:32 1994 Jason Merrill (jason@deneb.cygnus.com)
-
- * Makefile.in (CXXFLAGS): Add -fexternal-templates.
-
-Tue Mar 15 11:25:55 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * config.guess: about target *-hitachi-hiuxwe2, don't print more
- than one configuration name. Add comment.
-
-Sun Mar 6 23:13:38 1994 Hisashi MINAMINO (minamino@sra.co.jp)
-
- * config.guess: about target *-hitachi-hiuxwe2, fixed
- machine guessing order. [Hitachi's CPU_IS_HP_MC68K
- macro is incorrect.]
-
-Sun Mar 13 09:10:08 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * Makefile.in (TAGS): Just build TAGS in each subdirectory, rather
- than the "make ls" stuff which used to be here.
-
-Fri Mar 11 12:52:39 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * config.guess: Recognize i[34]86-unknown-freebsd.
- From Shawn M Carey <smcarey@rodan.syr.edu>.
-
-Thu Mar 3 14:24:21 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * configure.in (noconfigdirs for alpha): Remove libg++ and libio.
-
-Wed Mar 2 13:28:48 1994 Jim Kingdon (kingdon@deneb.cygnus.com)
-
- * config.guess: Check for ptx.
-
-Mon Feb 28 16:46:50 1994 Kung Hsu (kung@mexican.cygnus.com)
-
- * config.sub: Add os9k checking.
-
-Thu Feb 24 07:09:04 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
-
- * config.guess: Handle OSF1 running on HPPA processors
-
-Fri Feb 18 14:14:00 1994 Ken Raeburn (raeburn@rtl.cygnus.com)
-
- * configure: If subdir configure fails, print out a message with
- subdirectory name, in case subdir's configure code didn't identify
- itself.
-
-Fri Feb 18 12:50:15 1994 Doug Evans (dje@cygnus.com)
-
- * configure.in: Remove embedded newlines from configdirs.
- Avoid mismatches of substrings. Fix matching strings at end
- of configdirs.
-
-Fri Feb 11 15:33:33 1994 Stu Grossman (grossman at cygnus.com)
-
- * config.guess: Add Lynx/rs6000 config support.
-
-Tue Feb 8 13:41:09 1994 Ken Raeburn (raeburn@rtl.cygnus.com)
-
- * configure.in (alpha-dec-osf1*, alpha*-*-*): Build gas.
-
-Mon Feb 7 15:42:36 1994 Jeffrey A. Law (law@cygnus.com)
-
- * configure.in (hppa*-*-osf*): Treat this just like most other
- PA configurations (eg no binutils or ld).
- (hppa*-*-*elf*): These configurations have binutils and ld.
-
-Sun Feb 6 16:35:07 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
-
- * config.sub (hiux): Fix typo. From m-kasahr@sramhc.sra.co.JP.
-
-Sat Feb 5 01:00:33 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * configure.in (rs6000-*-*): Build gas.
-
-Wed Feb 2 13:57:57 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
-
- * Makefile.in: Avoid bug in losing hpux sed.
-
-Wed Feb 2 14:53:05 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * Makefile.in, test-build.mk: Remove MUNCH_NM; it was only needed
- for GDB and GDB has been fixed to not need it.
-
-Mon Jan 31 18:40:55 1994 Stu Grossman (grossman at cygnus.com)
-
- * config/mh-lynxosrs6k: Account for lack of ranlib!
-
-Sun Jan 30 17:58:06 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * config.guess: Recognize vax hosts.
-
-Fri Jan 28 15:29:38 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * configure (while loop): Don't use "break 2" inside case
- statement -- the case statement isn't an enclosing loop.
-
-Mon Jan 24 18:40:06 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * config.guess: Clean up NeXT support, to allow nextstep
- on Intel machines. Make OS be nextstep.
-
-Sun Jan 23 18:47:22 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
-
- * config.guess: Add alternate forms for Convex.
-
-Thu Jan 20 16:13:41 1994 Stu Grossman (grossman at cygnus.com)
-
- * configure: Completely rewrite option processing. Take
- advantage of pattern-matching to avoid invoking test frequently.
- Also clean up host and target defaulting logic.
-
-Mon Jan 17 15:06:56 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * Makefile.in: Replace all occurrances of "rootme" with "r" and
- "$${rootme}" with "$$r", to increase the likelihood that the do-*
- commands (plus user environment) will fit SCO limits.
-
-Thu Jan 6 11:20:57 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * configure.in: Don't issue warnings about directories which are
- not being configured if -norecursion is set. Correct test for
- --with-gnu-as and --with-gnu-ld to not get confused by substring
- matches.
-
- * configure.in: Don't build gas for alpha-dec-osf1*.
-
-Tue Jan 4 17:10:19 1994 Stu Grossman (grossman at cygnus.com)
-
- * configure: Back out Per's change of 12/19/1993. It changes the
- behavior of configure in unexpected and confusing ways.
-
- Also, use different delim char when calculating
- program_transform_name so that the name can contain slashes.
-
-Sat Jan 1 13:45:31 1994 Rob Savoye (rob@darkstar.cygnus.com)
-
- * configure.in, config.sub: Add support for VSTa micro-kernel.
-
-Sat Dec 25 20:00:47 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
-
- * configure.in: Nuke hacks which were used to get a special
- version of GAS for HPPA configurations.
-
-Sun Dec 19 20:40:44 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * configure: If only ${target_alias} is given, use that
- as the default for ${host_alias}.
- * configure: Add missing back-slashes before nested quotes.
-
-Wed Dec 15 18:07:18 1993 david d `zoo' zuhn (zoo@andros.cygnus.com)
-
- * Makefile.in (BASE_FLAGS_TO_PASS): add YACC=$(BISON)
-
-Tue Dec 14 21:25:33 1993 Per Bothner (bothner@cygnus.com)
-
- * config.guess: Recognize some Tektronix configurations.
- From Kaveh R. Ghazi <ghazi@noc.rutgers.edu>.
-
-Sat Dec 11 11:18:00 1993 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * config.sub: Match any flavor of SH.
-
-Thu Dec 2 17:16:58 1993 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * configure.in: Don't try to configure newlib for Alpha.
-
-Thu Dec 2 14:35:54 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * configure.in: Don't build ld for Irix 5. Don't build gas,
- libg++ or libio for any Alpha target.
-
- * configure.in (mips*-sgi-irix5*): New target; use mh-irix5.
- * config/mh-irix5. New file for Irix 5.
-
-Wed Dec 1 17:00:33 1993 Jason Merrill (jason@deneb.cygnus.com)
-
- * Makefile.in (GZIPPROG): Renamed from GZIP, which gzip uses for
- default arguments -- so it tried to compress itself.
-
-Tue Nov 30 13:45:15 1993 david d `zoo' zuhn (zoo@andros.cygnus.com)
-
- * configure.in (notsupp): ensure that a space is always at the end
- of the configdirs list, since the grep checks for an explicit space
-
-Tue Nov 16 15:04:27 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
-
- * configure.in (target i386-sysv4.2): don't build ld, since static
- versions of many libraries are not available.
-
-Tue Nov 16 14:28:12 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * config.guess: Recognize Apollos (using environment variables).
- * configure.in: Don't configure ld, binutils, or gprof for Apollo.
-
-Thu Nov 11 12:03:50 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * config.guess: Recognize Sony news mips running newsos.
-
-Wed Nov 10 16:57:00 1993 Mark Eichin (eichin@cygnus.com)
-
- * Makefile.in (all-cygnus, build-cygnus): "fi else" needs to be
- "fi ; else" for bash.
-
-Tue Nov 9 15:54:01 1993 Mark Eichin (eichin@cygnus.com)
-
- * Makefile.in (BASE_FLAGS_TO_PASS): pass SHELL.
-
-Fri Nov 5 08:07:27 1993 D. V. Henkel-Wallace (gumby@blues.cygnus.com)
-
- * config.sub: accept unixware as an alias for svr4.2.
- Fix some inconsistancies with the gcc version.
-
-Fri Nov 5 15:14:12 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * Makefile.in (DISTDOCDIRS): Add gdb.
-
-Fri Nov 5 11:59:42 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * Makefile.in (DISTDOCDIRS): Add libg++ and libio.
-
-Fri Nov 5 10:35:05 1993 Ken Raeburn (raeburn@rover.cygnus.com)
-
- * Makefile.in (taz): Only build "info" in DISTDOCDIRS.
- (DISTDOCDIRS): Don't assume libg++ and gdb folks necessarily want
- this now.
-
-Thu Nov 4 18:58:23 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * config.sub: Accept hiux* as an OS name.
-
- * Makefile.in: Change RUNTEST_FLAGS back to RUNTESTFLAGS per
- etc/make-stds.texi. The underscore came from gcc, and dje now
- agrees that RUNTESTFLAGS is the correct name.
-
-Thu Nov 4 10:49:01 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * install.sh: Remove 'set -e'. It makes any conditionals
- in the script useless.
-
- * config.guess: Automatically recognize arm-acorn-riscix
- Patch from Richard Earnshaw (rwe11@cl.cam.ac.uk).
-
-Thu Nov 04 08:08:04 1993 Jeffrey Wheat (cassidy@cygnus.com)
-
- * Makefile.in: Change RUNTESTFLAGS to RUNTEST_FLAGS
-
-Wed Nov 3 22:09:46 1993 Ken Raeburn (raeburn@rtl.cygnus.com)
-
- * Makefile.in (DISTDOCDIRS): New variable.
- (taz): Edit local Makefile.in sooner, instead of proto-toplev
- Makefile.in later. Build "info" and "dvi" in DISTDOCDIRS.
-
-Wed Nov 3 21:31:52 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
-
- * configure.in (hppa target): check the source directory for the
- pagas sub-directory
-
-Wed Nov 3 11:12:22 1993 Doug Evans (dje@canuck.cygnus.com)
-
- * config.sub: Allow -aout* and -elf*.
-
-Wed Nov 3 11:08:33 1993 Ken Raeburn (raeburn@rtl.cygnus.com)
-
- * configure.in: Don't build ld on i386-solaris2, same as for
- sparc-solaris2.
-
-Tue Nov 2 14:21:25 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * Makefile.in (taz): Add texinfo/lgpl.texinfo (for libg++).
-
-Tue Nov 2 13:38:30 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * configure.in: Configure gdb for alpha.
-
-Mon Nov 1 10:42:54 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * Makefile.in (CXXFLAGS): Add -O.
-
-Wed Oct 27 10:45:06 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
-
- * config.guess: added support for DG Aviion
-
-Tue Oct 26 14:37:37 1993 Ken Raeburn (raeburn@rover.cygnus.com)
-
- * configure.in: Produce warning message for subdirectories not
- configurable for this host/target combination. Don't try to
- configure gdb for vms.
-
-Mon Oct 25 11:22:15 1993 Ken Raeburn (raeburn@rover.cygnus.com)
-
- * Makefile.in (taz): Replace "byacc" with "bison -y" in the
- appropriate files before making "diststuff".
- (DISTBISONFILES): New var: list of files to be edited.
- (DISTSTUFFDIRS): Add binutils.
-
-Fri Oct 22 20:32:15 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
-
- * config.sub: also handle mipsel and mips64el (for little endian mips)
-
-Fri Oct 22 07:59:20 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * configure.in: Add * to end of all OS names.
-
-Thu Oct 21 11:38:28 1993 Stan Shebs (shebs@rtl.cygnus.com)
-
- * configure.in: Build newlib for LynxOS native.
-
-Wed Oct 20 09:56:12 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * config.guess: Add support for delta 88k running SVR3.
-
- * configure.in: Add comment about HP compiler vs. emacs.
-
-Tue Oct 19 16:02:22 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
-
- * configure.in: don't build ld on solaris2 (not a viable option
- due to bugs in getpwnam & getpwuid)
-
-Tue Oct 19 15:13:56 1993 Ken Raeburn (raeburn@rtl.cygnus.com)
-
- * configure.in: Accept alpha-dec-osf1*, not just -osf1, since
- config.guess will produce a full version number.
-
-Tue Oct 19 15:58:01 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * configure.in: Build linker and binutils for alpha-dec-osf1.
-
-Tue Oct 19 11:41:55 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * Makefile.in: Remove -O from CXXFLAGS for consistency with CFLAGS,
- and gdb/testsuite/Makefile.in.
-
-Sat Oct 9 18:39:07 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
-
- * configure.in: recognize mips*- instead of mips-
-
-Fri Oct 8 14:15:39 1993 Ken Raeburn (raeburn@cygnus.com)
-
- * config.sub: Accept linux*coff and linux*elf as operating
- systems.
-
-Tue Oct 7 14:24:41 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * ltmain.sh: Handle symlinks in generated script.
-
-Thu Oct 7 12:57:19 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * config.sub: Recognize mips64, and mips3 as an alias for it.
-
-Wed Oct 6 13:54:21 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * configure.in: Remove alpha-dec-osf*, no longer necessary now that
- gdb knows how to handle OSF/1 shared libraries.
-
-Tue Oct 5 11:55:04 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * configure.in: Recognize hppa*-*-hiux* (currently synonym for hpux).
- * config.guess: Recognize Hitachi's HIUX.
- * config.sub: Recognize h3050r* and hppahitachi.
- Remove redundant cases for hp9k[23]*.
-
-Mon Oct 4 16:15:09 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
-
- * configure.in: default to '--with-gnu-as' and '--with-gnu-ld'
- if gas and ld are in the source tree and are in ${configdirs}.
- If ${use_gnu_as} or ${use_gnu_ld} are 'no', then don't set the
- --with options (but still pass them down on the command line,
- if they were explicitly specified).
-
-Wed Oct 1 13:11:27 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: Handle autoconf style directory options: --bindir,
- --datadir, --includedir, --infodir, --libdir, --libexecdir,
- --mandir, --oldincludedir, --sbindir, --sharedstatedir,
- --sysconfdir.
- * Makefile.in (sbindir, libexecdir, sysconfdir): New variables.
- (sharedstatedir, localstatedir, oldincludedir): New variables.
- (BASE_FLAGS_TO_PASS): Pass down bindir, datadir, includedir,
- infodir, libdir, libexecdir, localstatedir, mandir, oldincludedir,
- sbindir, sharedstatedir, and sysconfdir.
-
-Fri Sep 24 19:11:13 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
-
- * configure: substitute SHELL value in Makefile.in with
- ${CONFIG_SHELL}
-
-Wed Sep 24 15:18:32 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * ltmain.sh: Tweak shell pattern to avoid bug in NetBSD /bin/sh.
-
-Thu Sep 23 18:05:13 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * configure.in: Build gas, ld, and binutils for *-*-sysv4* and
- *-*-solaris2* targets.
-
-Sun Sep 19 17:01:41 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
-
- * Makefile.in: define M4, and pass it down to sub-makes;
- all-autoconf now depends on all-m4
-
-Sat Sep 18 00:38:23 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
-
- * Makefile.in ({AR,RANLIB}_FOR_TARGET): make contingent on
- presence of {ar,ranlib} instead of a configured directory
-
-Wed Sep 15 08:41:44 1993 Jim Kingdon (kingdon@cirdan.cygnus.com)
-
- * config.guess: Accept 34?? as well as 33?? for NCR.
-
-Mon Sep 13 12:28:43 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
-
- * configure.in: grab mt-hppa for HPPA targets; use 'gas ' instead
- of 'gas' in sed commands, since 'gash' is now in the tree as well.
-
-Fri Sep 10 11:23:52 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
-
- * configure: grab values for $(CC) and $(CXX) from the
- environment, so that someone can do "CC=gcc configure; make" and
- have it work right (matching the way that autoconf works now)
-
- * configure.in, Makefile.in: add support for gash, the tcl
- interface to Galaxy
-
- * config.guess: add NetBSD variants (hp300, x86)
-
-Thu Sep 9 16:48:52 1993 Jason Merrill (jason@deneb.cygnus.com)
-
- * install.sh: Support -d option (in the manner of SunOS 4 install,
- as it is more deterministic than that of GNU install)
- (chmodcmd): Set file to mode 755 by default (should also do default
- chgrp and chown, but I don't feel like dealing with that now)
-
-Tue Sep 7 11:59:39 1993 Doug Evans (dje@canuck.cygnus.com)
-
- * config.sub: Remove h8300hhms alias.
-
-Tue Aug 31 11:00:09 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * configure.in: Match *-*-solaris2* not *-sun-solaris2*.
-
-Mon Aug 30 18:29:10 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
-
- * Makefile.in (gcc-no-fixedincludes): touch stmp-fixproto as well
- as stmp-fixinc
-
-Wed Aug 25 16:35:59 1993 K. Richard Pixley (rich@sendai.cygnus.com)
-
- * config.sub: recognize m88110-bug-coff.
-
-Tue Aug 24 10:23:24 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
-
- * Makefile.in (all-libio): all dependencies on the toolchain used
- to build this (gcc, gas, ld, etc)
-
-Fri Aug 20 17:24:24 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * config.guess: Deal with OSF/1 1.3 on alpha.
-
-Thu Aug 19 11:43:04 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
-
- * install.sh: add some 'else true' clauses for portability
-
- * configure.in: don't build libio for h8[35]00-*-* targets
-
-Tue Aug 17 19:02:31 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * Makefile.in: Add support for new libio.
-
-Sun Aug 15 20:48:55 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * install.sh: If one command fails, don't try the rest. Don't try
- to remove $dsttmp (via trap) unless we have already created it.
- If $src doesn't exist, detect it and exit with an error.
-
- * config.guess: Recognize BSD on hp300.
-
-Wed Aug 11 18:35:13 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * config.guess: Map (9000/[34]??:HP-UX:*:*) to m68k-hp-hpux.
- Bug report from "Hamish (H.I.) Macdonald" <hamish@bnr.ca>.
-
-Wed Aug 11 15:37:51 1993 Jason Merrill (jason@deneb.cygnus.com)
-
- * Makefile.in (all-send-pr): depends on all-prms
-
-Wed Aug 11 16:56:03 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * config.guess: Fix typo (9000/8??:4.3bsd -> 9000/7??:4.3bsd).
-
-Fri Aug 6 14:45:02 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * config.guess: From michael@mercury.cs.mun.ca (Michael Rendell):
- Added test for mips-mips-riscos5.
-
-Thu Aug 5 15:45:08 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
-
- * configure.in: use mh-hp300 for 68k HP hosts
-
-Mon Aug 2 11:56:53 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
-
- * configure: add support for CONFIG_SHELL, so that you can use
- some alternate shell for evaluating configure scripts
-
-Sun Aug 1 11:36:27 1993 Fred Fish (fnf@deneb.cygnus.com)
-
- * Makefile.in (make-gdb.tar.gz): Sed bug reporting address
- in configure script to bug-gdb@prep.ai.mit.edu when building
- distribution archive.
- * Makefile.in (COMPRESS): Remove def.
- * Makefile.in (gdb.tar.gz, make-gdb.tar.gz): Renamed from
- gdb.tar.Z and make-gdb.tar.Z respectively.
- * Makefile.in (make-gdb.tar.gz): Now only build gzip'd archive.
- * Makefile.in (make-gdb.tar.gz): Minor changes to move closer
- to convergence with 'taz' target in Makefile.in.
-
-Fri Jul 30 12:34:57 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
-
- * install.sh (dsttmp): use trap to ensure that tmp files go
- away on error conditions
-
-Wed Jul 28 11:57:36 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
-
- * Makefile.in (BASE_FLAGS_TO_PASS): remove LOADLIBES
-
-Tue Jul 27 12:43:40 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * Makefile.in (install-dirs): Deal with a prefix like /gnu;
- its parent is '/' not ''.
-
- * Makefile.in (DEVO_SUPPORT): Add comments about ChangeLog.
-
-Fri Jul 23 09:53:37 1993 Jason Merrill (jason@wahini.cygnus.com)
-
- * configure: if ${newsrcdir}/configure doesn't exist, don't assume
- that ${newsrcdir}/configure.in does.
-
-Tue Jul 20 11:28:50 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
-
- * test-build.mk: support for CONFIG_SHELL
-
-Mon Jul 19 21:54:46 1993 Fred Fish (fnf@deneb.cygnus.com)
-
- * config.sub (netware): Add as a basic system type.
-
-Wed Jul 14 12:03:11 1993 K. Richard Pixley (rich@sendai.cygnus.com)
-
- * Makefile.in (Makefile): depend on configure.in. Also drop the
- $(srcdir)/ from the dependency on Makefile.in.
-
-Tue Jul 13 20:10:58 1993 Doug Evans (dje@canuck.cygnus.com)
-
- * config.sub: Recognize h8300hhms as h8300h-hitachi-hms.
- (h8300hhms is temporary until multi-libraries are implemented).
- * configure.in: Handle h8300h too.
-
-Sun Jul 11 17:35:27 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * config.guess: Recognize dpx/2 as m68k-bull-sysv3.
-
-Thu Jul 8 18:26:12 1993 John Gilmore (gnu@cygnus.com)
-
- * configure: Remove extraneous output when guessing host type.
- * config.guess: Remove extraneous output when guessing using C
- compiler rather than uname, or when guessing fails.
-
-Wed Jul 7 17:58:14 1993 david d `zoo' zuhn (zoo at rtl.cygnus.com)
-
- * Makefile.in: remove all.cross and install.cross targets
-
- * configure: remove CROSS=-DCROSS_COMPILE and ALL=all.cross
- definitions
-
-Tue Jul 6 10:39:44 1993 Steve Chamberlain (sac@phydeaux.cygnus.com)
-
- * configure.in (target sh): Build gprof.
-
-Thu Jul 1 16:52:56 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * config.sub: change -solaris to -solaris2
-
-Thu Jul 1 15:46:16 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * configure.in: Use config/mh-riscos for mips-*-sysv*.
-
-Wed Jun 30 09:31:58 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * configure: Correct error message for missing Makefile.in to
- print correct directory.
-
-Tue Jun 29 13:52:16 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * install.sh: kludge around 386BSD shell bug
-
-Tue Jun 29 13:06:49 1993 Per Bothner (bothner@rtl.cygnus.com)
-
- * config.guess: Recognize NeXT.
- * config.guess: Recognize i486-ncr-sysv4.
- * Makefile.in (taz): rm $(TOOL)-$$VER before linking.
-
-Tue Jun 29 12:50:57 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in (MAKEINFOFLAGS): New variable.
- (FLAGS_TO_PASS): Pass MAKEINFO as MAKEINFO MAKEINFOFLAGS.
- * build-all.mk, test-build.mk: Pass down --no-split as
- MAKEINFOFLAGS when hosted on DOS. Compile DOS hosted without -g.
-
-Thu Jun 24 13:39:11 1993 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in (DEVO_SUPPORT): Add COPYING COPYING.LIB install.sh.
-
-Wed Jun 23 12:59:21 1993 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in (libg++.tar.z): New rule.
- * Makefile.in (taz): Replace 'configure -rm' by 'make distclean'.
- * Makefile.in (taz): Only do a single chmod.
-
-Fri Jun 18 12:03:10 1993 david d `zoo' zuhn (zoo at majipoor.cygnus.com)
-
- * install.sh: don't use dirname anymore (replaced with sed usage)
-
-Thu Jun 17 18:43:42 1993 Fred Fish (fnf@cygnus.com)
-
- * Makefile.in: Change extension for gzip'd files from '.z' to
- '.gz' per new FSF standard usage.
-
-Thu Jun 17 16:58:50 1993 david d `zoo' zuhn (zoo at majipoor.cygnus.com)
-
- * configure: put quotes around the final value of program_transform_name
-
-Tue Jun 15 16:48:51 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in: new install.sh support; update install-info rules
-
-Wed Jun 9 12:31:34 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * configure.in: Build diff for crosses, but not for go32 host.
-
- * configure.in: Build gprof only for native, and don't build it
- for mips-*-*, rs6000-*-*, or i[34]86-*-sco*.
-
-Mon Jun 7 13:12:11 1993 david d `zoo' zuhn (zoo at deneb.cygnus.com)
-
- * configure.in: don't build gas,ld,binutils on for *-*-sysv4
-
-Mon Jun 7 11:40:11 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
-
- * configure.in (host_tools): Add prms.
-
-Fri Jun 4 13:30:42 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in: install gcc, do installation of $(INSTALL_MODULES)
- with $(FLAGS_TO_PASS) on the command line
-
- * config.sub: Recognize lynx and lynxos
-
-Fri Jun 4 10:59:56 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * config.sub: Accept -ecoff*, not just -ecoff.
-
-Thu Jun 3 17:38:54 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
-
- * Makefile.in (taz): Use .gz suffix instead of .z.
- (binutils.tar.gz, gas+binutils.tar.gz, gas.tar.gz): Fixed target
- names.
-
-Thu Jun 3 00:27:06 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in (vault-install): add an 'else true' (for Ultrix)
-
-Wed Jun 2 18:19:16 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in (install-no-fixedincludes): install gcc last, so
- that rebuilds that might happen during 'make install' don't get
- bogus gcc include files
-
-Wed Jun 2 16:14:10 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
-
- Change from Utah for HPPA support:
- * config.guess: Recognize hppa1.x-hp-bsd.
-
-Wed Jun 2 11:53:33 1993 Per Bothner (bothner@rtl.cygnus.com)
-
- * config.guess: Add support for Motorola Delta 68k, up to r3v7.
- Patch from pot@fly.cnuce.cnr.it (Francesco Potorti`).
-
-Tue Jun 1 17:48:42 1993 Rob Savoye (rob at darkstar.cygnus.com)
-
- * config.sub: Add support for rom68k and bug boot monitors.
-
-Mon May 31 09:36:37 1993 Jim Kingdon (kingdon@cygnus.com)
-
- * Makefile.in: Make all-opcodes depend on all-bfd.
-
-Thu May 27 08:05:31 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * config.guess: Added special check for i[34]86-univel-sysv4*.
-
-Wed May 26 16:33:40 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * config.guess: For i[34]86-unknown-sysv4 use UNAME_MACHINE for
- the processor rather than assuming i486.
-
-Wed May 26 09:40:18 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * config.guess: Recognize SunOS6 as Solaris3.
-
-Tue May 25 23:03:11 1993 Per Bothner (bothner@cygnus.com)
-
- * config.guess: Fix typo. Avoid #elif (not in K&R 1).
- Recognize SunOS 5.* only (and not [6-9].*) as being Solaris2.
-
-Tue May 25 12:44:18 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * build-all.mk (all-cross): New target for Canadian Cross.
- Added Q2 go32 targets.
- * test-build.mk: Configure go32 cross sparclite-aout and
- mips-idt-ecoff -with-gnu-ld. Moved build binary directory from
- PARTIAL_HOLE_DIRS to BUILD_HOLES_DIRS.
-
-Mon May 24 15:30:06 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure.in: fix Alpha GDB typo; also, don't build DejaGnu for
- GO32 hosted toolchains
-
-Mon May 24 14:18:41 1993 Rob Savoye (rob at darkstar.cygnus.com)
-
- * configure: change so "-exec-prefix" gets passed down rather
- than "-exec_prefix" so autoconf generated Makefiles get the
- exec_prefix set right.
-
-Fri May 21 10:42:25 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * config.guess: get the Solaris2 minor version number
-
- * Makefile.in: add standards.texi and make-stds.texi to ETC_SUPPORT
-
-Fri May 21 06:20:52 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
-
- * config.guess: Recognize some Sequent platforms.
-
-Thu May 20 14:33:48 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in: added the vault-install target
-
- * configure.in: actually use the Sun3 makefile fragment that's in
- config, also added the release dir to configdirs
-
-Thu May 20 14:19:18 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
-
- * Makefile.in (taz): Fix modes on stuff in $(TOOL) dir also.
-
-Tue May 18 20:26:41 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure.in: remove some program from Alpha targetted toolchains
-
-Tue May 18 15:23:19 1993 Ken Raeburn (raeburn@cygnus.com)
-
- * Makefile.in (DISTSTUFFDIRS): Renamed from PROTODIRS. Add ld and
- gprof.
- (taz): Run "make diststuff" in those directories instead of "make
- proto-dir". Look for "VERSION=" only at start of line in subdir
- Makefile. Use "gzip -9" for compression.
- (TEXINFO_SUPPORT, DIST_SUPPORT, BINUTILS_SUPPORT_DIRS): New vars.
- (binutils.tar.z): New target.
-
-Mon May 17 17:01:15 1993 Ken Raeburn (raeburn@deneb.cygnus.com)
-
- * Makefile.in (taz): Include gpl.texinfo.
-
-Fri May 14 06:48:38 1993 Ken Raeburn (raeburn@deneb.cygnus.com)
-
- * Makefile.in (setup-dirs): Merged into "taz" target.
- (taz): Only do `proto-dir' stuff if a directory is actually needed
- for this target.
-
-Wed May 12 13:09:44 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in (MUNCH_NM): New variable, defined to be $(NM).
- (FLAGS_TO_PASS): Pass down MUNCH_NM.
- (HOST_CC, HOST_PREFIX, HOST_PREFIX_1): New variables.
- (EXTRA_GCC_FLAGS): Pass down HOST_* variables.
- (gcc-no-fixedincludes): Correct for current gcc Makefile.
-
-Tue May 11 10:14:25 1993 Fred Fish (fnf@cygnus.com)
-
- * Makefile.in (make-gdb.tar.Z): Add configure, config.guess,
- config.sub, and move-if-change to gdb testsuite distribution
- archive, so the testsuite can be extracted, configured, and
- run separately from the gdb distribution. Blow away the Chill
- tests that require a Chill compiled executable, since GNU Chill
- is not yet publically available.
-
-Mon May 10 17:22:26 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * test-build.mk: set environment variables in a single command,
- instead of a list of assignments and exports
-
- * config.guess: recognize Alpha/OSF1 systems
-
-Mon May 10 14:55:51 1993 K. Richard Pixley (rich@rtl.cygnus.com)
-
- * configure: Change help message to prefer --options rather than
- -options.
-
-Mon May 10 05:58:35 1993 Ken Raeburn (raeburn@kr-pc.cygnus.com)
-
- * config.sub: Convergent Tech. "miniframe" uses m68010, sez
- zippy@ecst.csuchico.edu.
- * config.guess: Recognize miniframe.
-
-Sun May 9 17:47:57 1993 Rob Savoye (rob at darkstar.cygnus.com)
-
- * Makefile.in: Use srcroot to find runtest rather than rootme.
- Pass RUNTESTFLAGS and EXPECT down in BASE_FLAGS_TO_PASS.
-
-Fri May 7 14:55:59 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * test-build.mk: Extensive additions to support building on a
- machine other than the host.
-
-Wed May 5 08:35:04 1993 Ken Raeburn (raeburn@deneb.cygnus.com)
-
- * configure (tooldir): Fix for i386-aix again.
-
-Mon May 3 19:00:27 1993 Per Bothner (bothner@cygnus.com)
-
- * configure, Makefile.in: Change definition of $(tooldir)
- to match the FSF.
-
-Fri Apr 30 15:55:21 1993 Fred Fish (fnf@cygnus.com)
-
- * config.guess: Recognize i[34]86/SVR4.
-
-Fri Apr 30 15:52:46 1993 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * Makefile.in (all-gdb): gdb depends on sim.
-
-Thu Apr 29 23:30:48 1993 Fred Fish (fnf@cygnus.com)
-
- * Makefile.in (gdb.tar.Z): Make prototype gdb testsuite directory
- at the same time we make the prototype gdb directory.
- * Makefile.in (make-gdb.tar.Z): Make the testsuite distribution
- files at the same time as the gdb base release distribution.
-
-Thu Apr 29 12:50:37 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in (check): Use individual check targets rather than
- DO_X rule.
- (check-gcc): Added.
-
-Thu Apr 29 09:50:07 1993 Jim Kingdon (kingdon@cygnus.com)
-
- * config.sub: Use sysv3.2 not sysv32 for canonical OS
- for System V release 3.2.
-
-Thu Apr 29 10:33:22 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
-
- * config.sub: Recognize hppaosf.
- * configure.in: Do configure ld/binutils/gas for it.
-
-Tue Apr 27 06:25:34 1993 Ken Raeburn (raeburn@kr-pc.cygnus.com)
-
- * configure (tooldir): Alter syntax used to set this, for systems
- where "\$" isn't handled right, like i386-aix.
-
-Thu Apr 22 08:17:35 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * configure: Pass program-transform-name, not
- program_transform_name, to recursive configures.
-
-Thu Apr 22 02:58:21 1993 Ken Raeburn (raeburn@cygnus.com)
-
- * Makefile.in (gas+binutils.tar.z): New rule for building snapshots
- of gas+ld+binutils.
-
-Mon Apr 19 17:41:30 1993 Per Bothner (bothner@cygnus.com)
-
- * config.guess: Recognize AIX3.2 as distinct from 3.1.
-
-Sat Apr 17 17:19:50 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure.in: rename m88k-motorola-m88kbcs to m88k-motorola-sysv
-
- * config/mh-delta88: remove extraneous GCC references
-
-Tue Apr 13 16:52:16 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
-
- * Makefile.in (PRMS): Set back to all-prms.
-
-Sat Apr 10 12:04:07 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * test-build.mk: Pass -with-gnu-as for known MIPS native and MIPS
- targets, rather than for MIPS hosts.
-
-Fri Apr 9 13:51:06 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure.in: add comment for --with-x default values
-
- * config.guess: handle Motorola Delta88 box for SVR3 and SVR4.
-
- * Makefile.in: add check-* targets for each of the directories in
- the tree. Add a definition of RUNTEST that will use the one we
- just built, if it exists. Pass this down via FLAGS_TO_PASS.
-
-Thu Apr 8 09:21:30 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * configure.in: Removed obsolete references to bfd_target and
- target_makefile_frag.
-
- * build-all.mk: Set assorted targets for Q2.
- * config.sub: Recognize z8k-sim and h8300-hms.
- * test-build.mk: Really don't pass host to configure.
- (HOLES): Added uname.
-
-Wed Apr 7 15:48:19 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * configure: Handle an empty program-prefix, program-suffix or
- program-transform-name correctly.
-
-Tue Apr 6 13:48:41 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * build-all.mk: -G 8 no longer required for MIPS targets.
- * test-build.mk: Don't pass host argument to configure; make it
- guess.
-
-Tue Apr 6 10:36:53 1993 Fred Fish (fnf@cygnus.com)
-
- * Makefile.in (gdb.tar.Z): Fix for building gzip'd distribution.
- * Makefile.in (COMPRESS): New macro, like GZIP.
-
-Fri Apr 2 09:02:31 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * test-build.mk: Use -with-gnu-as for mips-sgi-irix4 as well.
-
- * build-all.mk: Set GCC to gcc -O -G 8 for MIPS targets, since gcc
- with gas currently defaults to -G 0.
-
-Thu Apr 1 08:25:42 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in (all-flex): flex depends on byacc.
-
- * build-all.mk: If host not specified, use config.guess. Pass TAG
- to test-build.mk as RELEASE_TAG.
- * test-build.mk (configargs): New variable containing arguments to
- pass to configure. Set to -with-gnu-as on mips-dec-ultrix.
- (FLAGS_TO_PASS): Pass down RELEASE_TAG.
-
- * config.guess: Use /bin/uname when checking -X argument on SCO,
- to avoid invoking GNU uname which doesn't understand -X.
-
- * test-build.mk: Don't use /usr/unsupported/bin/as on AIX.
-
- * configure.in: Build gas for mips-*-*.
-
-Wed Mar 31 21:20:58 1993 K. Richard Pixley (rich@rtl.cygnus.com)
-
- * Makefile.in (all.normal): insert missing backslash.
-
-Wed Mar 31 12:31:56 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * build-all.mk, config/mh-irix4: Bump -XNh value to 1500 to match
- gcc requirements.
-
- * Makefile.in: Complete overhaul to merge many almost identical
- targets.
-
-Tue Mar 30 20:17:01 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
-
- * Makefile.in (setup-dirs-gdb): Renamed from setup-dirs.
- (gdb.tar.Z): Adjusted.
-
- * Makefile.in (setup-dirs, taz): New targets; should be general
- enough to adapt for gdb sometime. Build only .z file.
- (gas.tar.z): New target.
-
-Tue Mar 30 10:03:09 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * build-all.mk: Use CC=cc -Xs on Solaris.
-
-Mon Mar 29 19:59:26 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * config/mh-sun3: cc needs -J to compile cp-parse.c correctly
-
- * config/mh-solaris: SunPRO C needs -Xs to be able to get a
- working xmakefile for Emacs.
-
-Thu Mar 25 15:14:30 1993 Fred Fish (fnf@cygnus.com)
-
- * Makefile.in: Incorporate changes suggested by wilson@cygnus.com
- for handling BISON for FSF releases.
-
-Thu Mar 25 06:19:48 1993 Ken Raeburn (raeburn@kr-pc.cygnus.com)
-
- * configure: Actually implement the change zoo just documented.
-
-Wed Mar 24 13:02:44 1993 david d `zoo' zuhn (zoo at poseidon.cygnus.com)
-
- * configure: when using config.guess, only set target_alias when
- it's not already been set (ie, on the command line)
-
-Mon Mar 22 23:07:39 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in: add installcheck target, set PRMS to install-prms
-
-Sun Mar 21 16:46:12 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure: add support for package_makefile_fragment, handle the
- case where a directory has a configure.in file but no Makefile.in
- more gracefully (with an actual understandable error message, even);
- add support for --without (and add this to the usage message); also
- explicitly add a --host=${host_alias} to the command line when
- config.guess is used
-
-Sun Mar 21 12:11:58 1993 Jim Wilson (wilson@sphagnum.cygnus.com)
-
- * configure: Must use both --host and --target in recursive calls.
-
-Thu Mar 18 12:31:35 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in: Change deja-gnu to dejagnu.
-
-Mon Mar 15 15:44:35 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * configure.in (h8300-*-*, h8500-*-*): Don't build libg++.
-
-Fri Mar 12 18:30:14 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure.in: canonicalize all instances to *-*-solaris2*,
- also strip out a number of tools to not build for go32 host
-
-Wed Mar 10 12:08:27 1993 K. Richard Pixley (rich@rtl.cygnus.com)
-
- * config.guess: add GPL.
-
- * Makefile.in, config.guess, config.sub, configure: bump
- copyrights to 93.
-
-Wed Mar 10 07:12:48 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in (do-info): Removed obsolete check for existence of
- localenv file.
-
- * Makefile.in (MAKEOVERRIDES): Define to be empty.
-
-Wed Mar 10 03:11:56 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in: a couple of 'else true' for decstation,
- support for TclX
-
- * configure.in: configure tclX too; don't remove Tk on RS/6000 anymore
-
-Tue Mar 9 16:06:12 1993 K. Richard Pixley (rich@cygnus.com)
-
- * Makefile.in (setup-dirs): change invocation of make to $(MAKE).
-
-Mon Mar 8 14:52:11 1993 Ken Raeburn (raeburn@cambridge)
-
- * config.guess: Recognize i386-ibm-aix (PS/2).
- * configure.in: Use config/mh-aix386 file for it.
-
-Mon Mar 8 11:12:43 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in (GCC_FOR_TARGET): Eliminated definition; use
- CC_FOR_TARGET instead.
- (BASE_FLAGS_TO_PASS): Pass GCC_FOR_TARGET=$(CC_FOR_TARGET).
-
-Wed Mar 3 16:00:28 1993 Steve Chamberlain (sac@ok.cygnus.com)
-
- * Makefile.in: Add sim to list of directories sent with gdb
-
-Wed Mar 3 11:42:39 1993 Ken Raeburn (raeburn@cygnus.com)
-
- * configure.in: Put back mips-dec-bsd* case.
-
-Tue Mar 2 21:15:58 1993 Fred Fish (fnf@cygnus.com)
-
- (Ultrix 2.2 support from Michael Rendell <michael@mercury.cs.mun.ca>)
- * configure.in (vax-*-ultrix2*): Add Ultrix 2.2 triplet.
- * config.guess: Change 'VAX*:ULTRIX:*:*' to 'VAX*:ULTRIX*:*:*'.
- * config/mh-vaxult2: New file.
-
-Tue Mar 2 18:11:03 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure.in: remove no-op mips-dec-bsd* in "case $target"
-
- * Makefile.in (dir.info): only run gen-info-dir if it exists,
- (install-info): install dir.info only if it exists,
- (all-expect, install-expect): pass along X11_FLAGS_TO_PASS
-
-Tue Mar 2 09:01:30 1993 Ken Raeburn (raeburn@cygnus.com)
-
- * configure.in: For vms target, skip bfd, ld, binutils. Do build
- gas for mips-dec-bsd.
-
-Tue Mar 2 08:35:24 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * configure (makesrcdir): If ${srcdir} is relative and not ".",
- and ${subdir} is not ".", set makesrcdir based on ${invsubdir}.
-
-Tue Feb 23 14:18:28 1993 Mike Werner (mtw@poseidon.cygnus.com)
-
- * configure.in: Added "dejagnu" to hosttools list.
-
-Mon Feb 22 23:28:38 1993 Per Bothner (bothner@rtl.cygnus.com)
-
- * config.sub, configure.in, config.guess: Add support
- for Bosx, an AIX variant from Bull.
- Patches from F.Pierresteguy@frcl.bull.fr.
-
-Sun Feb 21 11:15:22 1993 Mike Werner (mtw@poseidon.cygnus.com)
-
- * devo/dejagnu: Initial creation of devo/dejagnu.
- Migrated dejagnu testcases and support files for testing software
- tools to reside as subdirectories, currently called "testsuite",
- within the directory of the software tool. Migrated all programs,
- support libraries, etc. beloging to dejagnu proper from
- devo/deja-gnu to devo/dejagnu. These files were moved "as is"
- with no modifications. The changes to these files which will
- allow them to configure, build, and execute properly will be made
- in a future update.
-
-Fri Feb 19 20:19:39 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
-
- * Makefile.in: Change send_pr to send-pr.
- * configure.in: Likewise.
- * send_pr: Renamed directory to send-pr.
-
-Fri Feb 19 19:00:13 1993 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in: Add some extra semi-colons (needed if SHELL=bash).
-
-Fri Feb 19 00:59:33 1993 John Gilmore (gnu@cygnus.com)
-
- * README: Update for gdb-4.8 release.
- * Makefile.in (gdb.tar.Z): Add texinfo/tex3patch. Build
- gdb-xxx.tar.z (gzip'd) file also.
-
-Thu Feb 18 09:16:17 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in: make all-diff depend on all-libiberty
-
-Tue Feb 16 16:06:31 1993 K. Richard Pixley (rich@cygnus.com)
-
- * config.guess: add vax-ultrix in the spirit of mips-ultrix.
-
-Tue Feb 16 05:57:15 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure.in, Makefile.in: add hello, tar, gzip, recode, indent
-
-Tue Feb 16 00:58:20 1993 John Gilmore (gnu@cygnus.com)
-
- * Makefile.in (DEVO_SUPPORT): Remove etc directory
- (ETC_SUPPORT): Only add the files GDB wants from etc/.
- (gdb.tar.Z): Use ETC_SUPPORT. Use byacc when building the file.
-
-Thu Feb 11 20:14:28 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in: makeinfo binary is in a new location
-
-Tue Feb 9 12:42:27 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * config.sub: Accept -ecoff as an OS.
-
- * Makefile.in: Various changes to eliminate a level of make
- recursion and reduce the required command line length.
- (BASE_FLAGS_TO_PASS): New variable holding flags passed to all
- sub-makes.
- (EXTRA_HOST_FLAGS, EXTRA_TARGET_FLAGS, EXTRA_GCC_FLAGS): New
- variables holding settings for specific sub-makes.
- (FLAGS_TO_PASS, TARGET_FLAGS_TO_PASS, GCC_FLAGS_TO_PASS): Rewrote
- in terms of BASE_FLAGS_TO_PASS.
- (TARGET_LIBS): New variable listing directories which use
- TARGET_FLAGS_TO_PASS.
- (subdir_do): Eliminated.
- (do-*): New set of targets to replace subdir_do.
- (various): All targets which used subdir_do now depend on do-*.
- (local-clean): Renamed from do_clean.
- (local-distclean): New target, dependency of distclean and
- realclean.
- (install-info): Don't create directories. Depend on dir.info
- rather than calling make recursively.
- (install-dir.info): Eliminated.
- (install-info-dirs): Create all info directories here.
- (dir.info): Depend upon do-install-info.
-
- * test-build.mk (HOLES): Added false.
-
-Sat Feb 6 14:05:09 1993 Per Bothner (bothner@rtl.cygnus.com)
-
- * config.guess: Recognize BSDI and BSDJ (Jolitz 386bsd).
-
-Thu Feb 4 20:49:18 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in (info): remove dependency on all-texinfo. The
- problem was really in texinfo/C, not at this level.
-
-Thu Feb 4 13:38:41 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in (info): Added dependency on all-texinfo (PR 2112).
-
-Thu Feb 4 01:50:53 1993 John Gilmore (gnu@cygnus.com)
-
- * Makefile.in (make-gdb.tar.Z): Change BISON to 'bison -y' for
- GDB releases.
-
-Wed Feb 3 17:22:16 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
-
- * configure: Include srcdir in message about target of link not
- being found. Don't convert `-' to `_' in `with' options being
- passed to subdirs.
-
-Tue Feb 2 18:57:59 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure.in: add uudecode to host_tools
-
- * Makefile.in: added {all,install}-uudecode targets, added them to
- the appropriate lists
-
-Tue Feb 2 11:45:53 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in (all-gcc): Added dependency on all-gas.
-
- * configure.in (mips-*-*): Build ld and binutils.
-
-Mon Feb 1 12:35:41 1993 K. Richard Pixley (rich@rtl.cygnus.com)
-
- * configure: check return code from mkdir, print error message and
- exit on failure.
-
-Sat Jan 30 16:40:28 1993 John Gilmore (gnu@cygnus.com)
-
- * Makefile.in (make-gdb.tar.Z): New location for texinfo.tex.
-
-Thu Jan 28 15:09:59 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * test-build.mk (HOLES): Added tar, cpio and uudecode.
-
-Wed Jan 27 16:50:32 1993 Jim Wilson (wilson@sphagnum.cygnus.com)
-
- * config.sub (h8500): Recognize this as a cpu type.
-
-Sat Jan 23 20:32:01 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure: source directory missing is no longer a warning
-
- * configure.in: recognize irix[34]* instead of irix[34]
-
- * Makefile.in: define and pass down X11_LIB
-
- * config/mh-sco: define X11_LIB to the mess that SCO ODT requires
-
-Sat Jan 23 13:49:40 1993 Per Bothner (bothner@cygnus.com)
-
- * guess-systype: Renamed to ...
- * config.guess: ... by popular request.
- * configure.in, Makefile.in: Update accordingly.
-
-Thu Jan 21 12:20:55 1993 Per Bothner (bothner@cygnus.com)
-
- * guess-systype: Patches from John Eaton <jwe@che.utexas.edu>:
- + Add Convex, Cray/Unicos, and Encore/Multimax support.
- + Execute ./dummy instead of assuming . is in PATH.
-
-Tue Jan 19 17:18:06 1993 Per Bothner (bothner@cygnus.com)
-
- * guess-systype: New shell script. Attempts to guess the
- canonical host name of the executing host.
- Only a few hosts are supported so far.
- * configure: Call guess-systype if no host is specified.
-
-Tue Jan 19 08:26:07 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in (gcc-no-fixedincludes): Made to work with current
- gcc Makefile.
-
-
-Fri Jan 15 10:27:02 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in (GCC_FLAGS_TO_PASS): New variable.
- (all-gcc, install-gcc, subdir_do): Use it.
-
-Wed Jan 13 17:06:45 1993 Jim Wilson (wilson@sphagnum.cygnus.com)
-
- * Makefile.in: Rename uninstalled gcc driver from gcc to xgcc.
-
-Wed Jan 6 20:29:16 1993 Mike Werner (mtw@rtl.cygnus.com)
-
- * Makefile.in: Removed explicit setting of SUBDIRS. SUBDIRS is now
- set exclusively by configure, using configure.in .
-
-Wed Jan 6 13:44:11 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * test-build.mk: set $PATH for all builds
-
- * Makefile.in: pass TARGET_FLAGS_TO_PASS for xiberty and libm
-
-Wed Jan 6 11:02:10 1993 Fred Fish (fnf@cygnus.com)
-
- * Makefile.in (GCC_FOR_TARGET): Supply a default that matches
- the one used in gcc/Makefile.in, so that a null expansion doesn't
- override the one needed to build gcc with a native cc.
-
-
-Tue Jan 5 07:55:12 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
-
- * configure: Accept -with arguments.
-
-Sun Jan 3 15:15:09 1993 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * Makefile.in: added h8300sim
-
-Tue Dec 29 15:06:00 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * config/mh-sco: Don't override BISON definition.
-
- * build-all.mk: If canonhost is i386-unknown-sco3.2v4, change it
- to i386-sco3.2v4. Set TARGETS and CFLAGS for i386-sco3.2v4.
- (all-cygnus, native, build-cygnus): Make
- $(canonhost)-stamp-3stage-done, not $(host)....
- * test-build.mk (stamp-3stage-compared): Use tail +10c for
- i386-sco3.2v4. Added else true to if command.
-
-Mon Dec 28 12:08:56 1992 Ken Raeburn (raeburn@cygnus.com)
-
- * config.sub: (from FSF) Sequent uses a BSD-like OS.
-
-Mon Dec 28 08:32:06 1992 Minh Tran-Le (mtranle@paris.intellicorp.com)
-
- * configure.in (i[34]86-*-isc*): added; uses mh-sysv.
-
-Thu Dec 24 17:26:24 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure.in: don't remove binutils from Solaris builds
-
-Thu Dec 24 14:08:38 1992 david d`zoo' zuhn (zoo@cygnus.com)
-
- * Makefile.in: get rid of earlier definitions for *clean,
- also handle the recursive info rule better
-
-Thu Dec 24 12:40:21 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in (mostlyclean, distclean, realclean): Fix to
- do more-or-less the right thing.
-
-Wed Dec 16 10:25:31 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in: Add lines defining CC and CXX, and use CXX rather
- than gcc in definitions of CXX_FOR_BUILD and CXX_FOR_TARGET.
-
-Tue Dec 15 00:34:32 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in: change all $(host_cpu)-$(host_vendor)-$(host_os) to
- $(host_canonical).
-
- * configure.in: split the configdirs list into 4 categories (native
- v. cross, library v. tool) and handle the cross-only and native-
- only in more reasonable (and correct!) way.
-
-Mon Dec 14 17:04:22 1992 Stu Grossman (grossman at cygnus.com)
-
- * configure.in (hppa*-*-*): Don't remove bfd and gdb from
- configdirs anymore.
-
-Sun Dec 13 00:37:26 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in: extensive cleanup:: removed all of the explicit
- clean-* targets, collapsed many wrappers around subdir_do into
- one, added additional targets to satisfy standards.texi, deleted
- some old targets, some changes for consistency
-
-Fri Dec 11 20:18:02 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure.in: handle some programs as cross-only, and others as
- native only
-
- * test-build.mk: handle partial holes in a more generic manner
-
- * Makefile.in: m4 depends on libiberty
-
-Mon Dec 7 06:43:27 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * config/mh-sco: don't default $(CC) to gcc
-
-Thu Dec 3 21:52:11 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure.in: add m4, textutils, fileutils, sed, shellutils,
- time, wdiff, and find to configdirs
-
- * Makefile.in: all, clean, and install rules for the new programs
- added to configure.in
-
-Mon Nov 30 14:54:34 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure.in: use mh-sun for all *-sun-* hosts
-
- * config/mh-solaris: rework standard X location to use
- $OPENWINHOME, if defined.
-
- * config/mh-sun: handle X11 include locations
-
- * config/mh-decstation: define NeedFunctionPrototypes to 0, to
- work around dain-bramaged DECwindows include files
-
-Fri Nov 27 18:35:54 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in: define flags for X11 include files and library file
- locations, pass them down to the programs that need this info
-
- * build-all.mk: added a 'native' target, to 3stage the native toolchain
-
- * config/{mh-hpux,mh-solaris}: define the "standard" locations for
- the vendor supplied X11 headers and libraries
-
-Sun Nov 22 18:59:13 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure.in: start building libg++ for HP-UX targets
-
-Wed Nov 18 19:33:11 1992 John Gilmore (gnu@cygnus.com)
-
- * README: Update references to files moved into etc/.
-
-Sun Nov 15 09:36:08 1992 Fred Fish (fnf@cygnus.com)
-
- * config.sub (i386sol2, i486sol2): i[34]86-unknown-solaris2.
- * configure.in (i[34]86-*-solaris2*): Use config/mh-sysv4.
-
-Thu Nov 12 08:50:42 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * configure: accept dash as well as underscore in long option
- names for FSF compatibility.
-
-Wed Nov 11 08:04:37 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * config.sub: added -sco3.2v4 support from FSF.
-
-Sun Nov 8 21:14:30 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure.in: expand the section that adds or removes
- directories from the list of programs to build, to handle native
- vs. cross in addition to host v. native
-
-Sat Nov 7 18:52:27 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in: Replace C++ in macro names with CXX.
- This is less likely to break ...
-
-Sat Nov 7 15:16:58 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * test-build.mk: add -w to GNU_MAKE
-
-Fri Nov 6 23:10:37 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * config.sub: remove 'sparc'-->'sparc-sun' default transformation,
- add 'sparc' to list of recognized cpus. This needed to make
- 'sparc-aout' expand to 'sparc-unknown-aout' instead of 'sparc-sun-aout'.
- Delete some redundant ose68 variants. Recognize -wrs as an os,
- then changes that into $CPU-wrs-vxworks.
-
- * configure.in: remove most references to gdbtest, regularize
- target based program removal
-
- * test-build.mk: import from p3 tree (many fixes and changes)
-
-Fri Nov 6 20:59:00 1992 david d `zoo' zuhn (zoo@cygnus.com)
-
- * Makefile.in: added rules to handle tcl, tk, and expect
-
- * configure.in: handle those directories if they exist
-
-Thu Nov 5 14:35:41 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * config.sub: removed bogus hppabsd and hppahpux names, since
- "hppa" is not a valid cpu (hppa1.1 or hppa1.0 are, though)
-
-Thu Oct 29 00:12:41 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in: all-gcc now depends on all-binutils. all-libg++
- depends upon all-xiberty
-
- * Makefile.in: changes from p3, including:
-
- Thu Oct 8 15:00:17 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in (XTRAFLAGS): include newlib directories if
- newlib/Makefile exists, rather than if host != target.
-
- Fri Sep 25 13:41:52 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in: added -nostdinc to XTRAFLAGS if we are using gcc
- from the same source tree and not building a cross-compiler. This
- matters for the libg++ configuration if reconfiguring a tree that
- has already been installed.
-
- Thu Sep 10 10:35:51 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in: added -I for newlib/targ-include to XTRAFLAGS, to
- pick up the machine and system specific header files.
-
- * Makefile.in: added AS_FOR_TARGET, passed down in
- TARGET_FLAGS_TO_PASS. Added CC_FOR_BUILD, which is intended to be
- the C compiler to use to create programs which are run in the
- build environment, set it to default to $(CC), and passed it down
- in FLAGS_TO_PASS and TARGET_FLAGS_TO_PASS.
-
- Mon Sep 7 22:34:42 1992 Ian Lance Taylor (ian@cirdan.cygnus.com)
-
- * Makefile.in: add $(host) = $(target) tests back to *_FOR_TARGET.
- We need them for unusual native builds, like systems without
- ranlib.
-
- * configure: also define $(host_canonical) and
- $(target_canonical), which are the full, canonical names for the
- given host and target
-
-Sun Nov 1 16:38:17 1992 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in: Added separate definitions for C++.
-
-Fri Oct 30 11:37:52 1992 Fred Fish (fnf@cygnus.com)
-
- * configure.in (configdirs): Add deja-gnu.
-
-Fri Oct 23 00:39:18 1992 John Gilmore (gnu@cygnus.com)
-
- * README: Update for configure.texi and gdb-4.7 release.
-
-Wed Oct 21 21:54:27 1992 John Gilmore (gnu@cygnus.com)
-
- * Makefile.in: Move "all" target to top of file.
- Previously, first target was ".PHONY" which caused BSD4.4 make
- to build .PHONY when make was run without arguments.
-
-Mon Oct 19 01:17:54 1992 John Gilmore (gnu@cygnus.com)
-
- * Makefile.in: Add COPYING.LIB to GDB releases, now that there's
- Library-copylefted code in libiberty.
-
-Tue Oct 13 01:22:32 1992 John Gilmore (gnu@cygnus.com)
-
- * config.sub: Replace m68kmote with plain old m68k.
-
-Fri Oct 9 03:14:24 1992 John Gilmore (gnu@cygnus.com)
-
- * Makefile.in: Remove space from blank line, avoid Make complaints.
-
-Thu Oct 8 18:41:45 1992 Ken Raeburn (raeburn@cygnus.com)
-
- * config.sub: Complain if no argument is given. Added support for
- 386bsd as OS and target alias.
-
-Thu Oct 8 15:07:22 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in (XTRAFLAGS): include newlib directories if
- newlib/Makefile exists, rather than if host != target.
-
-Mon Oct 5 03:00:09 1992 Mark Eichin (eichin at tweedledumber.cygnus.com)
-
- * config.sub: recognize sparclite-wrs-vxworks.
-
- * Makefile.in (install-xiberty): added *-xiberty make rules (from
- p3.) Added clean-xiberty to clean.
-
-Thu Oct 1 17:59:19 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure.in: use *-*-* instead of nested cases for host and target
-
-Tue Sep 29 14:11:18 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in: added -nostdinc to XTRAFLAGS if we are using gcc
- from the same source tree and not building a cross-compiler. This
- matters for the libg++ configuration if reconfiguring a tree that
- has already been installed.
-
-Sep 20 08:53:10 1992 Fred Fish (fnf@cygnus.com)
-
- * config.sub (i486v/i486v4): Merge in from FSF version.
-
-Fri Sep 18 00:32:00 1992 Mark Eichin (eichin@cygnus.com)
-
- * configure: only set PWD if it is already set.
-
-Thu Sep 17 23:05:53 1992 Mark Eichin (eichin@cygnus.com)
-
- * configure: just set PWD=`pwd` at the top, since Ultrix sh
- doesn't have unset and all success paths (and most error paths)
- out set it anyway. (Note: should change all uses of ${PWD=`pwd`}
- to just ${PWD} to avoid confusion.)
-
-Tue Sep 15 16:00:54 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * configure: always set $(tooldir) to $(libdir)/$(target_alias),
- even for a native compilation.
-
-Tue Sep 15 02:22:56 1992 John Gilmore (gnu@cygnus.com)
-
- Changes to make the gdb.tar.Z rule work better.
-
- * Makefile.in (GDB_SUPPORT_DIRS): Add opcodes.
- (DEVO_SUPPORT): Add configure.texi.
- (bfd-ilrt.tar.Z): Remove ancient rule.
-
-Thu Sep 10 10:43:19 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in: added -I for newlib/targ-include to XTRAFLAGS, to
- pick up the machine and system specific header files.
-
- * configure.in, config.sub: added new target m68010-adobe-scout,
- with alias of adobe68k. Changed configure.in to check for
- -scout before -sco* to avoid a false match.
-
- * Makefile.in: added AS_FOR_TARGET, passed down in
- TARGET_FLAGS_TO_PASS. Added CC_FOR_BUILD, which is intended to be
- the C compiler to use to create programs which are run in the
- build environment, set it to default to $(CC), and passed it down
- in FLAGS_TO_PASS and TARGET_FLAGS_TO_PASS.
-
-Wed Sep 9 12:21:42 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in: added TARGET_FLAGS_TO_PASS, CC_FOR_TARGET,
- AR_FOR_TARGET, RANLIB_FOR_TARGET, NM_FOR_TARGET. Pass
- TARGET_FLAGS_TO_PASS, which defines CC, AR, RANLIB and NM as the
- FOR_TARGET variants, to newlib and libg++.
-
-Tue Sep 8 17:28:30 1992 Ken Raeburn (raeburn@cambridge.cygnus.com)
-
- * Makefile.in (all-gas, all-gdb): Require all-opcodes to be built
- first.
-
-Wed Sep 2 02:50:05 1992 John Gilmore (gnu@cygnus.com)
-
- * config.sub: Accept `elf' as an environment.
-
-Tue Sep 1 15:48:30 1992 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * Makefile.in (all-opcodes): cd into the right directory
-
-Sun Aug 30 21:12:11 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * configure: added -program_transform_name option, used as
- argument to sed when installing programs.
- configure.texi: added documentation for -program_prefix,
- -program_suffix and -program_transform_name.
-
-Thu Aug 27 21:59:44 1992 John Gilmore (gnu@cygnus.com)
-
- * config.sub: Accept i486 where i386 ok.
-
-Thu Aug 27 13:04:42 1992 Brendan Kehoe (brendan@rtl.cygnus.com)
-
- * config.sub: accept we32k
-
-Mon Aug 24 14:05:14 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * config.sub, configure.in: accept OSE68000 and OSE68k.
-
- * Makefile.in: don't create all directories for ``make install'';
- let the subdirectories create the ones they need.
-
-Tue Aug 11 23:13:17 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * COPYING: new file, GPL v2
-
-Tue Aug 4 01:12:43 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in: use the new gen-info-dir, which needs a template
- argument (which also lives in texinfo)
-
- * configure.texi, standards.texi: fix INFO-DIR-ENTRY
-
-Mon Aug 3 15:41:28 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * config/mh-solaris: removed the -xs from CFLAGS (let the people
- with Sun's C compiler deal with it themselved)
-
-Mon Aug 3 00:34:17 1992 Fred Fish (fnf@cygnus.com)
-
- * config.sub (ncr3000): Change i386 to i486.
-
-Thu Jul 23 00:12:17 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in: add install-rcs, install-grep to
- install-no-fixedincludes, removed install-bison and install-libgcc
-
-Tue Jul 21 01:01:50 1992 david d `zoo' zuhn (zoo@cygnus.com)
-
- * configure.in: grab the HPUX makefile fragment if on HPUX
-
-Mon Jul 20 11:02:09 1992 D. V. Henkel-Wallace (gumby@cygnus.com)
-
- * Makefile.in: eradicate bison spoor (ditto libgcc).
- configure.in: recognise m68{k,000}-ericsson-OSE.
- es1800 is alias for m68k-ericsson-OSE
-
-Sun Jul 19 17:49:02 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure.in: rearrange the parts that remove programs from
- configdirs, based now on HOST==TARGET or by canonical triple.
-
-Fri Jul 17 22:52:49 1992 K. Richard Pixley (rich@rtl.cygnus.com)
-
- * test-build.mk: recurse explicitly with -f test-build.mk when
- appropriate. predicate stage3 and comparison on the existence
- of gcc. That is, if gcc isn't around, we aren't three-staging.
- On very clean, also remove ...stamp-co. Build in-place before
- doing other builds.
-
-Thu Jul 16 18:33:09 1992 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * Makefile.in, configure.in: add tgas
-
-Thu Jul 16 16:05:28 1992 K. Richard Pixley (rich@rtl.cygnus.com)
-
- * Makefile.in: a number of changes merged in from progressive.
-
- * configure.in: add libm.
-
- * .cvsignore: ignore some stuff that comes from test-build.mk.
-
-Wed Jul 8 00:01:30 1992 Stu Grossman (grossman at cygnus.com)
-
- * config/mh-solaris: Use -xs when compiling so that Sun-C puts
- a symbol-table into the executable.
-
-Tue Jul 7 00:24:52 1992 Fred Fish (fnf@cygnus.com)
-
- * config.sub: Add es1800 (m68k-ericsson-es1800).
-
-Tue Jun 30 20:24:41 1992 D. V. Henkel-Wallace (gumby@cygnus.com)
-
- * configure: Add program_suffix (parallel to program_prefix)
- * Makefile.in: adjust directory-creating script for losing decstation
-
-Mon Jun 22 23:43:48 1992 Per Bothner (bothner@cygnus.com)
-
- * configure: Minor $subdir-related fixes.
-
-Mon Jun 22 18:30:26 1992 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * configure: fix various problems with propogating
- makefile_target_frag in subdirs.
- * configure.in: config libgcc if its there
-
-Fri Jun 19 15:19:40 1992 Stu Grossman (grossman at cygnus.com)
-
- * config.sub: HPPA merge.
-
-Mon Jun 15 12:31:52 1992 Fred Fish (fnf@cygnus.com)
-
- * config/mh-ncr3000 (INSTALL): Don't use /usr/ucb/install,
- it is broken on ncr 3000's.
-
-Sun Jun 14 10:29:19 1992 John Gilmore (gnu at cygnus.com)
-
- * Makefile.in: Replace all-bison with all-byacc in all
- dependency lines for other tools (which now use byacc).
-
-Fri Jun 12 22:21:57 1992 John Gilmore (gnu at cygnus.com)
-
- * config.sub: Add sun4sol2 => sparc-sun-solaris2.
-
-Tue Jun 9 17:18:11 1992 Fred Fish (fnf at cygnus.com)
-
- * config/{mh-ncr3000, mh-sysv4}: Add INSTALL.
-
-Thu Jun 4 12:07:32 1992 Mark Eichin (eichin@cygnus.com)
-
- * Makefile.in: make gprof rules similar to byacc rules (instead of
- vestigal $(unsubdir) that didn't work...)
-
-Thu Jun 4 00:37:05 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * config.sub: Add support for Linux.
- * Makefile.in: Use $(FLAGS_TO_PASS) more consistently
- (at least for libg++).
-
-Tue Jun 02 20:03:00 1992 david d `zoo' zuhn (zoo@cygnus.com)
-
- * configure.texi: fix doc for the -nfp option to configure
-
-Tue Jun 2 17:20:52 1992 Michael Tiemann (tiemann@cygnus.com)
-
- * Makefile.in (all-binutils): ar needs flex, so depend on all-flex.
-
-Sun May 31 15:04:08 1992 Mark Eichin (eichin at cygnus.com)
-
- * config.sub: changed [^-]+ to [^-][^-]* so that it works under
- Sun sed. (BSD 4.3 sed doesn't handle [^-]+ either.)
- * configure.in: added solaris* host_makefile_frag hook.
-
-Sun May 31 01:10:34 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * config.sub: changed recognition of m68000 so that various
- m68k types can be specified via m680[01234]0
-
-Sat May 30 21:01:06 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * config.sub (basic_machine): fix sed so that '-foo' isn't
- completely substituted out while .+'-foo' loses the '-foo'
-
-Wed May 27 23:18:52 1992 Michael Tiemann (tiemann@rtl.cygnus.com)
-
- * config.sub ($os): Add -aout.
-
-Fri May 22 14:00:02 1992 Per Bothner (bothner@cygnus.com)
-
- * configure: If host_makefile_frag is absolute, don't
- prefix ${invsubdir} (relevant to libg++ auto-configure).
-
-Thu May 21 18:00:09 1992 Michael Tiemann (tiemann@rtl.cygnus.com)
-
- * Makefile.in (tooldir): Define it.
- (all-ld): Depend on all-flex.
-
-Sun May 10 21:45:59 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in (check): Fix libg++ special case.
-
-Fri May 8 08:31:41 1992 K. Richard Pixley (rich@cygnus.com)
-
- * configure: do not bury `pwd` into config.status, thus do fewer
- pwd's.
-
- * configure: print the "Building in" message only when building in
- other than "." AND verbose.
-
- * configure: remove -s, rework -v to better accomodate guested
- configures.
-
- * standards.texi: updated to 3 may, fixed librid <-> libdir typo.
-
-Fri May 1 18:00:50 1992 K. Richard Pixley (rich@cygnus.com)
-
- * Makefile.in: macroize flags passed on recursion. remove
- fileutils.
-
-Thu Apr 30 08:56:20 1992 K. Richard Pixley (rich@cygnus.com)
-
- * configure: get makesrcdir right for subdirs deeper than 1.
-
- * Makefile.in: pass INSTALL, INSTALL_DATA, INSTALL_PROGRAM on
- install.
-
-Fri Apr 24 15:51:51 1992 K. Richard Pixley (rich@cygnus.com)
-
- * Makefile.in: don't print subdir_do or recursion lines.
-
-Fri Apr 24 15:22:04 1992 K. Richard Pixley (rich@cygnus.com)
-
- * standards.texi: added menu item.
-
- * Makefile.in: build and install standards.info.
-
- * standards.texi: new file.
-
-Wed Apr 22 18:06:55 1992 K. Richard Pixley (rich@rtl.cygnus.com)
-
- * configure: test for and move config.status pieces from
- ${subdir}/.
-
-Wed Apr 22 14:38:34 1992 Fred Fish (fnf@cygnus.com)
-
- * config/mh-delta88, config/mh-ncr3000: Replace MINUS_G with
- CFLAGS per new configuration strategy.
- * configure: Test for existance of files before trying to mv
- them, to avoid numerous non-existance messages.
-
-Tue Apr 21 12:31:33 1992 K. Richard Pixley (rich@cygnus.com)
-
- * configure: correct final line of config.status.
-
- * configure: patch from eggert. Avoids a protection problem if
- the original Makefile.in is read only.
-
- * configure: use move-if-change from gcc to create config.status.
- Some makefiles depend on config.status to tell if a directory
- has been reconfigured for a different host. This change
- prevents those directories from remaking everything in the case
- where the reconfig was only intended to rebuild a Makefile.
-
- * configure: test for config.sub with "config.sub sun4" rather
- than "config.sub ${host_alias}". Otherwise we can't tell a bad
- host alias from a missing config.sub.
-
-Mon Apr 20 18:16:36 1992 K. Richard Pixley (rich@rtl.cygnus.com)
-
- * Makefile.in: explicitly pass CFLAGS on recursion. no longer pass
- MINUS_G (this can be done with CFLAGS). Default CFLAGS to -g.
-
-Fri Apr 17 18:27:51 1992 Per Bothner (bothner@cygnus.com)
-
- * configure: mkdir ${subdir} as needed.
-
-Wed Apr 15 17:37:22 1992 K. Richard Pixley (rich@cygnus.com)
-
- * Makefile.in,configure.in: added autoconf.
-
-Wed Apr 15 17:27:34 1992 K. Richard Pixley (rich@rtl.cygnus.com)
-
- * Makefile.in: no longer pass against on recursion.
-
- * Makefile.in: added .NOEXPORT: so that stray makefile_frag
- definitions are not inherited.
-
- * configure: correct makesrcdir when subdir is .
-
-Tue Apr 14 11:56:09 1992 Per Bothner (bothner@cygnus.com)
-
- * configure: Add support for 'subdirs' variable, which is
- like 'configdirs', except that configure doesn't re-invoke
- itself for subdirs, it just creates a Makefile for each subdir.
- * configure.texi: Document subdirs.
-
-Mon Apr 13 18:50:16 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure.in: added flex to configdirs
-
-Mon Apr 13 18:43:55 1992 K. Richard Pixley (rich@cygnus.com)
-
- * Makefile.in: remove clean-stamps from clean.
-
-Sat Apr 11 03:52:03 1992 John Gilmore (gnu at cygnus.com)
-
- * configure.in: Add gdbtest to configdirs.
-
-Fri Apr 10 23:11:49 1992 Fred Fish (fnf@cygnus.com)
-
- * Makefile.in (MINUS_G): Add macro, default to -g, pass on
- to recursive makes.
- * configure.in: Recognize new ncr3000 config.
-
-Wed Apr 8 23:08:12 1992 K. Richard Pixley (rich@cygnus.com)
-
- * Makefile.in, configure.in: removed references to gdbm.
-
-Tue Apr 7 16:48:20 1992 Per Bothner (bothner@cygnus.com)
-
- * config.sub: Don't canonicalize os value
- newsos* to bsd (readline needs to check for newsos).
- (This fix was earlier made Jan 31, but got re-broken.)
-
-Mon Apr 6 14:34:08 1992 Stu Grossman (grossman at cygnus.com)
-
- * configure.in: sco is an os, not a vendor!
-
- * configure: Quote $( better. Keep various shells happy.
-
-Tue Mar 31 16:32:57 1992 K. Richard Pixley (rich@cygnus.com)
-
- * Makefile.in: eliminate stamp-files.
-
-Mon Mar 30 22:20:23 1992 K. Richard Pixley (rich@cygnus.com)
-
- * Makefile.in: add send_pr. remove "force" from .stmp-gprof rule.
- Supress echoing of all the "if [ -d ... $(MAKE)" lines.
-
-Wed Mar 25 15:20:04 1992 Stu Grossman (grossman@cygnus.com)
-
- * config.sub: fix iris/iris3.
-
-Wed Mar 25 10:34:19 1992 K. Richard Pixley (rich@cygnus.com)
-
- * configure: re-add -rm.
-
-Tue Mar 24 23:50:16 1992 K. Richard Pixley (rich@cygnus.com)
-
- * Maskefile.in: add .stmp-rcs to all.
-
- * configure.in: remove gas from rs6000 build, use aix host fragment.
-
-Mon Mar 23 19:43:35 1992 K. Richard Pixley (rich@cygnus.com)
-
- * configure: pass down site_option during recursion.
-
-Thu Mar 19 16:49:36 1992 Stu Grossman (grossman at cygnus.com)
-
- * Makefile.in (all.cross): Add .stmp-bfd .stmp-readline.
-
-Wed Mar 18 15:29:33 1992 Mike Stump (mrs@cygnus.com)
-
- * configure: Change exec_prefix so that it really defaults to prefix.
-
-Sat Mar 14 17:20:38 1992 Fred Fish (fnf@cygnus.com)
-
- * Makefile.in, configure.in: Add support for mmalloc library.
-
-Fri Mar 13 18:44:18 1992 K. Richard Pixley (rich@cygnus.com)
-
- * Makefile.in: add stmp dependencies for a few more things.
-
-Thu Mar 12 04:56:24 1992 K. Richard Pixley (rich@cygnus.com)
-
- * configure: adjusted error message on objdir/srcdir configure
- collision, per john's suggestion.
-
- * Makefile.in: add libiberty stmp to all and all.cross.
-
-Wed Mar 11 02:07:52 1992 K. Richard Pixley (rich@cygnus.com)
-
- * Makefile.in: remove force dependencies, add grep to all.
-
-Tue Mar 10 21:49:18 1992 K. Richard Pixley (rich@mars.cygnus.com)
-
- * Makefile.in: drop flex. make stamp files work.
-
- * configure: added test for conflicting configuration in srcdir,
- remove trailing slashes from srcdir. Otherwise emacs gdb mode
- gets cranky. use relative paths for configure and srcdir
- whenever possible. Send some error messages to stderr that were
- going to stdout.
-
-Tue Mar 10 18:01:55 1992 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in: Fix libg++ rule to check for gcc directory
- before using gcc/gcc. Also pass XTRAFLAGS.
-
-Thu Mar 5 21:45:07 1992 K. Richard Pixley (rich@sendai)
-
- * Makefile.in: added stmp-files so that directories aren't polled
- when they are already built.
-
- * configure.texi: fixed a node pointer problem.
-
-Thu Mar 5 12:05:58 1992 Stu Grossman (grossman at cygnus.com)
-
- * config.sub configure.in config/mh-irix4 gdb/configure.in
- gdb/mips-tdep.c gdb/mipsread.c gdb/procfs.c gdb/signame.h
- gdb/tm-irix3.h gdb/tm-mips.h gdb/xm-irix4.h gdb/config/mt-irix3
- gdb/config/mh-irix4 texinfo/configure.in: Port to SGI Irix-4.x.
-
-Wed Mar 4 02:57:46 1992 K. Richard Pixley (rich@rtl.cygnus.com)
-
- * configure: -recurring becomes -silent. corrected help message
- for -site= option.
-
- * Makefile.in: mkdir $(exec_prefix) and $(tooldir).
-
-Tue Mar 3 14:51:21 1992 K. Richard Pixley (rich@rtl.cygnus.com)
-
- * configure: when building Makefile for crosses, replace
- tooldir and program_prefix. default srcdir from location of
- config.sub. remove "for host in hosts" and "for target in
- targets" loops.
-
-Wed Feb 26 19:48:25 1992 K. Richard Pixley (rich@rtl.cygnus.com)
-
- * Makefile.in: Do not pass bindir or mandir to cvs.
-
-Wed Feb 26 18:04:40 1992 K. Richard Pixley (rich@cygnus.com)
-
- * Makefile.in, configure.in: removed traces of namesubdir,
- -subdirs, $(subdir), $(unsubdir), some rcs triggers. Forced
- copyrights to '92, changed some from Cygnus to FSF.
-
- * configure.texi: remove most references to multiple hosts,
- multiple targets, subdirs, etc.
-
- * configure.man: removed rcsid. reference config.sub not
- config.subr.
-
- * Makefile.in: mkdir $(infodir) on install-info.
-
-Wed Feb 19 15:41:13 1992 John Gilmore (gnu at cygnus.com)
-
- * configure.texi: Explain better about .gdbinit and about
- the environment that configure.in sections run in.
-
-Fri Feb 7 07:55:00 1992 John Gilmore (gnu at cygnus.com)
-
- * configure.in: Ultrix is only a decstation if it's a MIPS.
-
-Fri Jan 31 21:54:51 1992 John Gilmore (gnu at cygnus.com)
-
- * README: DOC.configure => cfg-paper.texi.
-
-Fri Jan 31 21:48:18 1992 Stu Grossman (grossman at cygnus.com)
-
- * config.sub (near case $os): Don't convert newsos* to bsd!
-
-Fri Jan 31 02:27:32 1992 John Gilmore (gnu at cygnus.com)
-
- * Makefile.in: Reinstall change from gdb-4.3 that reduces
- the number of copies of COPYING that go into the GDB tar file.
-
-Thu Jan 30 16:17:30 1992 Stu Grossman (grossman at cygnus.com)
-
- * bfd/configure.in, config/mh-sco, gdb/config/mh-i386sco,
- gdb/config/mt-i386v32, gdb/configure.in, readline/configure.in:
- Fix SCO configuration stuff.
-
-Tue Jan 28 23:51:07 1992 Per Bothner (bothner at cygnus.com)
-
- * Makefile.in: For libg++, make sure the -I pointing
- to the gcc directory goes *after* all the libg++-local -I flags.
- Also, move just-gcc dependency from just-libg++ to all-libg++.
-
-Tue Jan 28 12:56:24 1992 Stu Grossman (grossman at cygnus.com)
-
- * configure: Change -x to -f to keep Ultrix /bin/test happy.
-
-Sat Jan 18 17:45:11 1992 Stu Grossman (grossman at cygnus.com)
-
- * Makefile.in (make-gdb.tar.Z): Remove texinfo targets.
-
-Sat Jan 18 17:03:21 1992 Fred Fish (fnf at cygnus.com)
-
- * config.sub: Add stratus configuration frags. Also
- submitted to FSF.
-
-Sat Jan 18 15:35:29 1992 Stu Grossman (grossman at cygnus.com)
-
- * Makefile.in (DEV_SUPPORT): add configure.man.
-
- * config.sub(Decode manufacturer-specific): add -none*.
-
-Fri Jan 17 17:58:05 1992 Stu Grossman (grossman at cygnus.com)
-
- * Makefile.in: remove form feeds to make Sun's make happy.
- (DEVO_SUPPORT): DOC.configure => cfg-paper.texi.
-
-Sat Jan 4 16:11:44 1992 John Gilmore (gnu at cygnus.com)
-
- * Makefile.in (AR_FLAGS): Make quieter.
-
-Thu Jan 2 22:57:12 1992 John Gilmore (gnu at cygnus.com)
-
- * configure.in: Add libg++.
- * configure: When verbose, don't output the command line at each
- level; it will be unremarkably the same as the previous version,
- which will be the same as what the user typed.
-
-Fri Dec 27 16:26:47 1991 K. Richard Pixley (rich at cygnus.com)
-
- * configure.in, Makefile.in: fix clean-info, add flex. add
- fileutils.
-
- * configure: be less sensitive to spaces in Makefile.in. Do not
- look for sources in "..". Doing so breaks subdirectories that
- might have their own configure. If a subdir has it's own
- configure script, use it.
-
-Thu Dec 26 16:30:26 1991 K. Richard Pixley (rich at cygnus.com)
-
- * cfg-paper.texi: some changes suggested by rms.
-
-Thu Dec 26 10:13:36 1991 Fred Fish (fnf at cygnus.com)
-
- * config.sub: Merge in some small additions from the FSF version,
- taken from the gcc distribution, to bring the Cygnus and FSF
- versions into closer sync.
-
-Fri Dec 20 11:34:18 1991 Fred Fish (fnf at cygnus.com)
-
- * configure.in: Changed svr4 references to sysv4.
-
-Thu Dec 19 15:54:29 1991 K. Richard Pixley (rich at cygnus.com)
-
- * configure: added -V for version number option.
-
-Wed Dec 18 15:39:34 1991 K. Richard Pixley (rich at cygnus.com)
-
- * DOC.configure, cfg-paper.texi: revised, updated, and texinfo'd.
- renamed from DOC.configure to cfg-paper.texi.
-
-Mon Dec 16 23:05:19 1991 K. Richard Pixley (rich at rtl.cygnus.com)
-
- * configure, config.subr, config.sub: config.subr is now
- config.sub again.
-
-Fri Dec 13 01:17:06 1991 K. Richard Pixley (rich at cygnus.com)
-
- * configure.texi: new file, in progress.
-
- * Makefile.in: build info file and install the man page for
- configure.
-
- * configure.man: new file, first cut.
-
- * configure: find config.subr again now that configuration "none"
- has gone. removed all traces of the -ansi option. removed all
- traces of the -languages option.
-
- * config.subr: resync from rms.
-
-1991-12-11 K. Richard Pixley (rich at rtl.cygnus.com)
-
- * configure, config.sub, config.subr: merge config.sub into
- config.subr, call the result config.subr, remove config.sub, use
- config.subr.
-
- * Makefile.in: revised install for dir.info.
-
-1991-12-10 K. Richard Pixley (rich at rtl.cygnus.com)
-
- * configure.in: add decstation host makefile frag.
-
- * Makefile.in: BISON now bison -y again. also install-gcc on
- install. clean-gdbm on clean. infodir belongs in datadir.
- Make directories for info install. Build dir.info here then
- install it.
-
-1991-12-09 K. Richard Pixley (rich at rtl.cygnus.com)
-
- * Makefile.in: fix for bad directory tests.
-
-1991-12-07 K. Richard Pixley (rich at rtl.cygnus.com)
-
- * configure: \{1,2\} appears to be a sysv'ism. Use a different
- regexp. -srcdir relative was being handled incorrectly.
-
- * Makefile.in: unwrapped some for loops so that parallel makes
- work again and so one can focus one's attention on a particular
- package.
-
-1991-12-06 K. Richard Pixley (rich at rtl.cygnus.com)
-
- * configure: added PWD as a stand in for `pwd` (for speed). use
- elif wherever possible. make -srcdir work without -objdir.
- -objdir= commented out.
-
-1991-12-05 K. Richard Pixley (rich at rtl.cygnus.com)
-
- * configure: +options become --options. -subdirs commented out.
- added -host, -datadir. Renamed -destdir to -prefix. Comment in
- Makefile now at top of generated Makefile. Removed cvs log
- entries. added -srcdir. create .gdbinit only if there is one
- in ${srcdir}.
-
- * Makefile.in: idestdir and ddestdir go away. Added copyrights
- and shift gpl to v2. Added ChangeLog if it didn't exist. docdir
- and mandir now keyed off datadir by default.
-
-1991-11-22 K. Richard Pixley (rich at rtl.cygnus.com)
-
- * Freshly created ChangeLog.
-
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 76
-version-control: never
-End:
diff --git a/contrib/gdb/MAINTAINERS b/contrib/gdb/MAINTAINERS
deleted file mode 100644
index 75f3240..0000000
--- a/contrib/gdb/MAINTAINERS
+++ /dev/null
@@ -1,114 +0,0 @@
-Please feel free to add, edit, delete this file.
-Please do not make ChangeLog entries.
-
-COPYING, COPYING.LIB, README
- http://gnu.org.
-
-Makefile.in; configure; configure.in
- Please notify the following of any committed patches.
- binutils@sources.redhat.com
- gdb-patches@sources.redhat.com
-
-bfd/; binutils/; gas/; gprof/; ld/; opcodes/; BFD's part of include/
- binutils: http://sources.redhat.com/binutils/
- Patches to binutils@sources.redhat.com.
- Please notify the following of any interface changes:
- gdb-patches@sources.redhat.com
-
-cgen/; cgen parts of opcodes/, sim/ & include/
- cgen: http://sources.redhat.com/cgen/
- Patches to cgen@sources.redhat.com
- May need separate opcodes/ or sim/ approval for
- commits of regenerated files there.
-
-config.guess; config.sub; dejagnu/config.guess;
-readline/support/config.sub; readline/support/config.guess
- config: http://savannah.gnu.org/projects/config
- Patches to config-patches@gnu.org.
- Changes need to be done in tandem with the official CONFIG
- sources or submitted to the master file maintainer and brought
- in via a merge.
- Please notify the following of any committed patches:
- binutils@sources.redhat.com
- gdb-patches@sources.redhat.com
-
-dejagnu/
- Notify http://dejagnu.sourceforge.net/ of generic changes.
- Generic patches to gdb-patches@sources.redhat.com;
- Other dependents of dejagnu include sid@, binutils@, gcc@, etc.
-
-gdb/; mmalloc/; readline/; sim/; GDB's part of include/ & dejagnu/
- gdb: http://sources.redhat.com/gdb/
- Patches to gdb-patches@sources.redhat.com.
- See also gdb/MAINTAINERS, sim/MAINTAINERS, mmalloc/MAINTAINERS.
-
-include/
- See binutils/, gdb/, sid/, gcc/, libiberty/ etc.
-
-libiberty/; libiberty's part of include/
- gcc: http://gcc.gnu.org
- Changes need to be done in tandem with the official GCC
- sources or submitted to the master file maintainer and brought
- in via a merge. Note: approved patches in gcc's libiberty
- are automatically approved in this libiberty also; feel free
- to merge them yourself if needed sooner than the next merge.
- Otherwise, changes are automatically merged, usually within
- a day.
-
-ltconfig; ltmain.sh
- libtool: http://gnu.org
- Changes need to be done in tandem with the official LIBTOOL
- sources or submitted to the master file maintainer and brought
- in via a merge.
-
-mkinstalldirs; move-if-change
- autoconf: http://gnu.org
- Patches to autoconf-patches@gnu.org.
- Changes need to be done in tandem with the official AUTOCONF
- sources or submitted to the master file maintainer and brought
- in via a merge.
-
-symlink-tree
- gcc: http://gcc.gnu.org
- See libiberty.
-
-newlib/; libgloss/
- http://sources.redhat.com/newlib/
- Patches to newlib@sources.redhat.com.
-
-sid/; SID's part of cgen/ & dejagnu/
- sid: http://sources.redhat.com/sid/
- Patches to sid@sources.redhat.com
-
-texinfo/texinfo.tex
- texinfo: http://ftp.gnu.org.
- Latest version can be found on ftp://ftp.gnu.org and can be
- imported at any (reasonable) time.
- Please not use GCC's texinfo. Please do not import texinfo.
-
-tcl/; tix/; itcl/; tk/; libgui/
- insight: http://sources.redhat.com/insight/
- Contact insight@sources.redhat.com.
-
-winsup/
- cygwin: http://sources.redhat.com/cygwin
- Patches to cygwin-patches@sources.redhat.com.
- General discussion cygwin@sources.redhat.com.
- See also winsup/MAINTAINERS.
-
-expect/; config-ml.in; mpw-README; mpw-build.in; mpw-config.in;
-mpw-configure; mpw-install; setup.com; missing; makefile.vms; utils/;
-config/; config.if; makefile.vms; missing; ylwrap; mkdep; etc/;
-install-sh; intl/
- Ask DJ Delorie <dj@redhat.com> after reading the libiberty entry.
-
-modules file
- Obviously changes to this file should not go through
- overseers@sources.redhat.com. If you understand the file
- format (or can cut-and-paste existing entries), modify it. If
- it scares you, get someone who does understand it to help you.
- Be prepared to fix it if you do break it.
-
-/* Local variables: */
-/* change-log-default-name: "/dev/null" */
-/* End: */
diff --git a/contrib/gdb/gdb/ChangeLog-96 b/contrib/gdb/gdb/ChangeLog-96
deleted file mode 100644
index 760b425..0000000
--- a/contrib/gdb/gdb/ChangeLog-96
+++ /dev/null
@@ -1,5116 +0,0 @@
-Tue Dec 31 15:19:32 1996 Geoffrey Noer <noer@cygnus.com>
-
- * config/mn10300/tm-mn10300.h: more small register fixes
-
-Tue Dec 31 06:51:43 1996 Mark Alexander <marka@cygnus.com>
-
- * config/i386/xm-windows.h: Undo previous change to SIGTRAP
- and SIGQUIT values; it messed up non-MIPS targets.
- * config/mips/tm-mips.h: Undefine BREAKPOINT, replace
- with separate LITTLE_BREAKPOINT and BIG_BREAKPOINT definitions;
- this fixes problem with setting breakpoints in little-endian
- programs in the simulator.
-
-Mon Dec 30 00:14:06 1996 Doug Evans <dje@seba.cygnus.com>
-
- * remote-sim.c (gdbsim_open_p): New static local.
- (gdbsim_open): Call unpush_target if sim open. Set gdbsim_open_p.
- (gdbsim_close): Only call sim_close if sim open. Reset gdbsim_open_p.
-
-Sun Dec 29 09:15:03 1996 Mark Alexander <marka@cygnus.com>
-
- * config/i386/xm-windows.h: Make SIGTRAP and SIGQUIT consistent
- with sim/mips/support.h.
-
-Fri Dec 27 14:53:40 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * v850-tdep.c (struct pifsr): Add cur_frameoffset field.
- (v850_scan_prologue): Add debug code #ifdef'ed DEBUG. Support new
- compiler prologues using register save functions and short store
- instructions. Add support for functions with large stack frames.
-
- * config/v850/tm-vm850.h ({R0,R1,R12,EP}_REGNUMS): New register
- number defintiions for r0, r1, r12, ep.
- (SAVE{1,2,3}_{START,END}_REGNUM): Register number definitions for
- the 3 sets of saved registers.
-
-Thu Dec 26 19:56:55 1996 Mark Alexander <marka@cygnus.com>
-
- * valprint.c (print_longest): Don't lose upper bits
- of 64-bit values on Windows.
- * config/i386/xm-windows.h: Leave CC_HAS_LONG_LONG defined,
- undefine PRINTF_HAS_LONG_LONG, so that 64-bit values will
- be printed without loss of upper bits.
-
-Thu Dec 26 15:15:21 1996 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * config/sparc/tm-sparclet.h: make registers ASR15, ASR19 invisible
- (they're not useful, you can't change, write or even read them)
-
-Thu Dec 26 15:20:48 1996 Fred Fish <fnf@cygnus.com>
-
- * config/pa/hppahpux.mh (TERMCAP): Always link to libc before
- libcurses, to avoid picking up broken select() from libcurses
- on some versions of HPUX.
-
-Thu Dec 26 15:14:41 1996 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * sparclet-rom.c: Remove includes of Unix system files.
- Add function "sparclet_supply_register" so that parse_register_dump
- will not seg-fault by calling a null function pointer.
- Remove XMODEM support (unfinished work?).
- Remove flag "MO_HANDLE_NL", so monitor's output can be read by humans.
- Add fill command.
- Remove colon from getreg.resp_delim so PSR register will work.
- Remove pointer to sparclet_load (downloading SREC's doesn't work).
- Null out local register names for %g0, all %cc and all %asr regs,
- since the monitor can't report them. Will return zero instead.
- * sparclet-stub.c: New -- remote protocol support for sparclet CPU.
- * config/sparc/tm-sparclet.h: Re-arrange REGISTER_NAMES:
- Add back %g0 and %psr, add %cc coprocessor regs, add %asr regs.
- Adjust NUM_REGS and REGISTER_BYTES accordingly
-
-Tue Dec 24 10:27:37 1996 Jeffrey A Law (law@cygnus.com)
-
- * remote-e7000.c (want_h8300h, want_nopc_h8300h): Renamed
- from want and want_nopc.
- (want_h8300s, want_nopc_h8300s): New variables for H8/S register
- lists.
- (e7000_fetch_registers): Use H8/300H or H8/S register list string
- as needed.
- (e7000_wait): Likewise.
-
-Mon Dec 23 02:25:58 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * mips-tdep.c (mips_find_saved_regs): If a frame has been
- interrupted by a signal, figure out whether the registers that
- the proc_desc claims are saved have been saved yet.
- (mips_push_dummy_frame): Write dummy frame register after all
- registers have been saved in the dummy frame. Update comments
- to reflect the fact that we are now using an AT_ENTRY_POINT
- call dummy.
-
-Sun Dec 22 15:52:25 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * d10v-tdep.c (d10v_skip_prologue): PR11287. Fix problem where
- some breakpoints weren't being set.
-
-Sat Dec 21 12:57:59 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * config/mips/tm-mips.h (PC_IN_CALL_DUMMY): Removed, the default
- definition in inferior.h is sufficient.
- * mips-tdep.c (mips_pc_in_call_dummy): Ditto.
- (mips_push_arguments): Make sure that the stack is aligned to a
- multiple of 8 after the arguments are pushed.
- Structures are always passed by value in the old ABI.
- Adjust argument register value on big endian targets when passing
- a value whose length is less than the register size.
- Write stack arguments with a single write_memory call.
- (mips_pop_frame): Use frame_saved_regs instead of proc_desc to
- decide which registers have to be restored.
-
- * irix5-nat.c (fill_gregset): Sign extend registers before
- filling in the gregset structure.
-
-Fri Dec 20 11:06:03 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * mswin/genmakes: Don't define _DEBUG. This breaks wingdb.
-
-Thu Dec 19 19:42:44 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * v850-tdep.c (v850_scan_prologue): Deal with -mep shorting
- register saves by using the ep register.
-
-Thu Dec 19 15:57:16 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * m32r-tdep.c (m32r_frame_find_saved_regs): Fix thinko in arg def.
-
-Thu Dec 19 09:38:56 1996 Mark Alexander <marka@cygnus.com>
-
- * values.c (unpack_double): Make it compile with MSVC++ 2.x.
- * remote-mips.c (S_IROTH): Define if not defined by stat.h, e.g.
- when using MSVC++.
- (common_open): Fix help string.
-
-Wed Dec 18 23:01:32 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-make.sed: Use NewFolderRecursive for installation.
-
-Sat Dec 14 20:50:01 1996 Mark Alexander <marka@cygnus.com>
-
- * mips-tdep.c (mips_push_arguments): Handle floating point args.
- * config/mips/tm-mips.h (FIX_CALL_DUMMY): Define to set up $25
- correctly for PIC on Irix 5.
-
-Sat Dec 14 09:52:30 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * i386-tdep.c (i386_frame_find_saved_regs): Handle zero return
- from get_pc_function_start gracefully.
-
-Sat Dec 14 00:43:57 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * c-exp.y (qualified_name): Replace explicit check for valid
- destructor name with call to destructor_name_p.
-
- * c-lang.h, c-typeprint.c (cp_type_print_method_args): Removed,
- no longer needed.
-
- * c-typeprint.c (c_type_print_varspec_prefix, c_type_print_base):
- Replace remaining fprintf_unfiltered calls with their filtered variant.
- (c_type_print_base): Do not print return type for destructors from
- template classes.
- Replace cp_type_print_method_args with cplus_demangle call to get
- consistent type output for stubbed and unstubbed methods.
-
- * cp-valprint.c (cp_print_class_method): Replace
- cp_type_print_method_args with cplus_demangle call to get consistent
- type output for stubbed and unstubbed methods.
-
- * gdbtypes.c, gdbtypes.h (get_destructor_fn_field): New function
- to find the destructor field indices for a type.
-
- * gdbtypes.h (struct type): Clarify comments for vptr_basetype
- and arg_types fields.
- (struct fn_field): Remove args field, no longer used.
-
- * symtab.c (decode_line_1), valops.c (value_struct_elt,
- check_field_in): Use get_destructor_fn_field to find the destructor
- field indices instead of assuming that the compiler passes the member
- function fields in a specific order.
-
- * symtab.c (find_methods): Pass NULL instead of SYMBOL_BLOCK_VALUE
- to lookup_symbol.
- (list_symbol): Replace cp_type_print_method_args with cplus_demangle
- call in zapped out code and explain why this code is zapped out.
-
-Thu Dec 12 13:29:14 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * config/powerpc/ppc{,le}-sim.mt (SIM): Add the simulator common
- library ../sim/common/libcommon.a.
-
-Wed Dec 11 11:15:08 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * monitor.c (monitor_load): Add support for load address argument.
- * dsrec.c: #include <time.h>.
- (load_srec): New argument load_offset. Print download stats.
- * srec.h (load_srec): Update prototype.
- * sh3-rom.c (sh3_load): Update call to load_srec.
-
-Mon Dec 9 17:34:05 1996 Geoffrey Noer <noer@cygnus.com>
-
- * config/mn10300/tm-mn10300.h: more small register fixes
- * mn10300-tdep.c: filled in from another target
-
-Mon Dec 9 17:12:19 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * monitor.c (monitor_insert_breakpoint): Handle bi-endian machines.
-
-Mon Dec 9 15:58:51 1996 Mark Alexander <marka@cygnus.com>
-
- * config/mips/tm-mips.h: Get rid of call-dummy code.
- Minor changes to make pre-ANSI compilers happy.
- * mips-tdep.c: Minor changes to make pre-ANSI compilers happy.
- (mips_push_arguments): Rewrite to partially support EABI.
- (mips_pc_in_call_dummy): New function.
- * infcmd.c: Include symfile.h to get prototype of entry_point_address,
- which fixes 64-bit sign extension bug on MIPS.
-
-Mon Dec 9 00:14:49 1996 Geoffrey Noer <noer@cygnus.com>
-
- * config/mn10300/tm-mn10300.h: fix register names
- * mn10300-tdep.c: new skeleton tdep for mn10300
-
-Sun Dec 8 18:02:57 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * remote-sim.h: Update some comments.
- * remote-sim.c (gdb_os_error): New function.
- (init_callbacks): Fix initializing of gdb_callback. Add gdb_os_error.
- (gdb_os_printf_filtered): Use gdb_stdout, not stdout.
-
-Sun Dec 8 00:36:31 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * irix5-nat.c (supply_gregset, fill_gregset): Handle gregsets
- from O32 and N32 ABI.
- (xfer_link_map_member): Work around problem with alignments
- in struct obj when compiling GDB under N32 ABI.
-
-Thu Dec 5 23:30:44 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * d10v-tdep.c: Add support for examination and interpretation
- of instruction trace buffer.
- (trace, untrace, info trace, tdisassemble): New commands.
-
-Thu Dec 5 14:06:23 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * config/sparc/tm-sparclet.h (TARGET_BYTE_ORDER): Undef.
- (TARGET_BYTE_ORDER_SELECTABLE): Define.
- (BREAKPOINT): Undef.
- ({BIG,LITTLE}_BREAKPOINT): Define.
- (TM_PRINT_INSN_MACH): Redefine for sparclet.
-
-Wed Dec 4 16:34:05 1996 Geoffrey Noer <noer@cygnus.com>
-
- * config/mn10300/mn10300.mt, config/mn10300/tm-mn10300.h: New.
-
-Tue Dec 3 13:02:08 1996 Fred Fish <fnf@ninemoons.com>
-
- * infptrace.c (store_inferior_registers): Move some common code out
- to store_register, like fetch_inferior_registers & fetch_register.
- (store_register): New function, from store_inferior_registers.
- (fetch_inferior_registers, fetch_register): Minor code tweaks to
- make {fetch,store}_inferior_registers and {fetch,store}_register
- routines as similar in structure as possible.
- (fetch_inferior_registers, store_inferior_registers): Eliminate
- local variable numregs and just use ARCH_NUM_REGS directly.
-
-Tue Dec 3 11:38:14 1996 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * blockframe.c: add macro USE_GENERIC_DUMMY_FRAMES to enable/disable
- code for generic call_dummy frames.
- * config/h8300/tm-h8300.h: turn on USE_GENERIC_DUMMY_FRAMES
- * config/m32r/tm-m32r.h: Ditto.
- * config/sh/tm-sh.h: Ditto.
- * config/v850/tm-v850.h: Ditto.
-
-Sun Dec 1 00:41:47 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * vax-tdep.c (vax_print_insn, print_insn_arg): Use info functions
- for printing. From Valeriy Ushakov <uwe@ptc.spbu.ru>.
-
-Sun Dec 1 00:40:46 1996 Geoffrey Noer <noer@cygnus.com>
-
- * configure.tgt: Add new mn10300 entry.
-
-Sun Dec 1 00:18:59 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- Add support for Irix 6.2 native O32 and N32 ABI.
-
- * config.in, configure.in, configure: Check for <objlist.h>.
- * configure.tgt: Handle mips*-sgi-irix6* like irix5 for now.
-
- * cp-valprint.c (cp_print_value_fields): Use SYMBOL_VALUE_ADDRESS
- instead of SYMBOL_BLOCK_VALUE to get the address of a static member.
-
- * dwarf2read.c: Turn warnings and recoverable errors into complaints,
- add new complaints where appropriate.
- gcc -Wall cleanup.
- (struct line_head): Change line_base from char to int to avoid
- problems with compilers whose plain char is represented by an
- unsigned char.
- (struct partial_die_info): Add is_declaration field.
- (dwarf2_tmp_obstack): New obstack for allocating temporary storage
- used during symbol reading.
- (cu_header_offset): New variable for resolving relative reference
- dies.
- (optimized_out, basereg, islocal, frame_base_reg, frame_base_offset):
- New interface variables for decode_locdesc.
- (struct dwarf2_pinfo): New structure for communication between
- psymtab and symtab reading, passed via pst->read_symtab_private.
- (dwarf2_has_info, dwarf2_build_psymtabs): Accept objects files
- without line number sections.
- (dwarf2_build_psymtabs_hard): Initialize temporary obstack
- for symbol reading.
- Allocate and initialize pst->read_symtab_private.
- Relocate pst->textlow and pst->texthigh with baseaddr.
- (scan_partial_symbols): Do not add DW_AT_declaration symbols
- to the partial symbol table.
- Add file scope enumerator symbols to the partial symbol table.
- Fix typo in highpc computation.
- If we didn't find a lowpc, set it to highpc to avoid complaints
- from `maint check.
- (add_partial_symbol): Relocate symbol values with baseaddr.
- Add static DW_TAG_subprogram and DW_TAG_variable symbols to the
- minimal symbol table.
- Obtain symbol values for DW_TAG_variable symbols from the location
- descriptor, skip symbols with missing location desciptors.
- Skip symbols for aggregate types without children.
- Handle enumerator symbols.
- (dwarf2_psymtab_to_symtab): Issue symbol reading message if verbose.
- (psymtab_to_symtab_1): Set local variables from
- pst->read_symtab_private, set cu_header_offset and baseaddr.
- Initialize temporary obstack for symbol reading, initialize
- buildsym and add a cleanup to really_free_pendings.
- Relocate highpc with baseaddr when calling end_symtab.
- If the compilation is from a C file generated by language
- preprocessors, do not set the symtab language if it was already
- deduced by start_subfile.
- Removed verbose sorting symbol table message.
- (process_die): Handle DW_TAG_ptr_to_member_type and
- DW_TAG_reference_type.
- Use read_subroutine_type to get the function type for
- DW_TAG_subprogram before calling read_func_scope.
- (read_file_scope): Initialize file name to <unknown>, start_subfile
- expects a non-NULL name.
- If we didn't find a lowpc, set it to highpc to avoid complaints
- from finish_symbol.
- Relocate lowpc and highpc with baseaddr.
- Get rid of Irix6.2 native cc compile machine prefix in comp_dir.
- Zero out ftypes for each new compilation unit (may be different
- language or different objfile).
- Accept compilation units without line number information, pass
- comp_dir to decode_lines.
- (read_func_scope): Initialize function name to <unknown> to avoid
- core dumps when DW_AT_name is missing.
- Relocate lowpc and highpc with baseaddr.
- Handle DW_AT_frame_base, keep result for DW_OP_fbreg operations.
- Pass function type to new_symbol.
- (read_lexical_block_scope): Relocate lowpc and highpc with baseaddr.
- (read_structure_scope): Set TYPE_TAG_NAME, not TYPE_NAME.
- Handle DW_TAG_class_type.
- Copy fields to type_obstack, release temporary storage for fields.
- Don't add symbol if die is a stub die and has no children.
- Handle C++ static member fields.
- (read_enumeration): Set TYPE_TAG_NAME, not TYPE_NAME.
- Copy fields to type_obstack, release temporary storage for fields.
- Let new_symbol handle the symbol creation for enumerators
- instead of handcrafting a symbol.
- Determine signedness of enum type from enumerators.
- (dwarf_read_array_type): Handle variable length arrays.
- Use lookup_pointer_type instead of handcrafting a type.
- Create array type only if a DW_TAG_subrange_type was found.
- (read_tag_pointer_type, read_tag_reference_type):
- Use lookup_pointer_type and lookup_reference_type instead
- of handcrafting a type.
- (read_tag_ptr_to_member_type): New function to handle
- DW_TAG_ptr_to_member_type.
- (read_subroutine_type): Handle parameter dies.
- Use lookup_function_type instead of handcrafting a type.
- (read_typedef): Allocate a TYPE_CODE_TYPEDEF type for the typedef.
- (read_base_type): If the type has a name, use init_type to create
- a new type instead of second guessing a fundamental type.
- (read_comp_unit): Reset die reference table before building
- a new one.
- (dwarf2_read_section): Read section contents into psymbol_obstack.
- (dwarf2_read_abbrevs): Handle unterminated abbreviations
- for a compile unit gracefully.
- (read_partial_die): Zero partial die before reading its info.
- Handle DW_AT_declaration.
- Fix typo in handling of DW_FORM_block4.
- (read_full_die): Fix typo in handling of DW_FORM_block4.
- (read_1_signed_byte, read_2_signed_bytes, read_4_signed_bytes):
- New routines to get signed values from a buffer.
- (read_n_bytes, read_string): Allocate storage from the temporary
- obstack. If the host char size permits it, return pointer
- to buffer instead of allocating storage.
- (set_cu_language): Handle DW_LANG_Mips_Assembler.
- (dwarf_attr): Return NULL if reference die for DW_AT_specification
- or DW_AT_abstract_origin die is not found.
- (record_minimal_symbol): Removed, replaced with a direct call to
- prim_record_minimal_symbol, it now handles saving the string itself.
- (convert_locdesc): Removed, partial symtab reading now uses
- decode_locdesc.
- (dwarf_attr): Use dwarf2_get_ref_die_offset to get the absolute
- offset for the die reference.
- (dwarf_decode_lines): Complain if the line section info is missing.
- Use read_1_signed_byte to extract lh.line_base to avoid
- problems with compilers whose plain char is represented by an
- unsigned char.
- Add cleanups for allocated temporary storage.
- Start a subfile for the first file in the state machine.
- Fix off by one problem with dirs.dirs access.
- Use comp_dir when directory index is 0.
- Support multiple sequences (from Jason Merrill <jason@cygnus.com>).
- (dwarf2_start_subfile): Try to keep line numbers from identical
- absolute and relative file names in a common subfile.
- (new_symbol): Allocate symbol and symbol name on the symbol_obstack.
- Set SYMBOL_LINE from DW_AT_decl_line if present.
- Set SYMBOL_TYPE from passed type if not NULL.
- Change DW_TAG_variable symbol types with missing type entries
- to a sensible type.
- Handle optimized_out, offreg and islocal storage classes.
- Add external symbols with type information whose address isn't
- known as LOC_UNRESOLVED symbols.
- Synthesize typedefs for C++ classes, structs, unions and enumerations.
- Handle DW_TAG_enumerator symbols, complain for unrecognized
- symbol tags.
- (die_type): A missing DW_AT_type represents a void type.
- Use dwarf2_get_ref_die_offset to get the absolute offset for
- the die reference.
- (die_containing_type): New function to build type from
- DW_AT_containing_type attribut.
- (read_type_die): Handle DW_TAG_ptr_to_member_type.
- Treat DW_TAG_subprogram like DW_TAG_subroutine_type.
- (dwarf_base_type): Fix typo with creation of FT_UNSIGNED_SHORT
- fundamental type.
- (create_name): Removed, symbol name allocation is now done
- in new_symbol.
- (dump_die): Use print_address_numeric to print a CORE_ADDR.
- (dwarf2_empty_die_ref_table): New function to clear the die
- reference table.
- (dwarf2_get_ref_die_offset): New function to get the absolute
- die offset from a die reference attribute.
- (decode_locdesc): Complete rewrite using a stack, code mostly
- borrowed from dwarfread.c:locval.
- (dwarf_alloc_type): Removed, replaced by direct calls to alloc_type.
- (dwarf_alloc_block): Allocate block on temporary obstack.
-
- * elfread.c (elf_symtab_read): When handling Irix dynamic symbols,
- skip section name symbols and relocate all others.
- (elf_symfile_read): Build dwarf2 psymtab even if offset is non-zero.
-
- * irix5-nat.c (fetch_core_registers): Handle core_reg_sect
- from N32 executables. Call registers_fetched after extracting
- the registers.
- (obj_list_variant, struct link_map, LM_OFFSET, LM_ADDR): New
- definitions to enable support of O32 and N32 format objlists.
- (struct so_list): New members offset, so_name and lmstart to
- eliminate dependencies from the objlist format used.
- (solib_map_sections, symbol_add_stub, solib_add,
- info_sharedlibrary_command, solib_address, clear_solib): Use
- so_name and LM_OFFSET.
- (first_link_map_member): Rewrite to enable support of O32 and N32
- format objlists.
- (next_link_map_member, xfer_link_map_member): New functions to
- support O32 and N32 format objlists.
- (find_solib): Use first_link_map_member, next_link_map_member and
- xfer_link_map_member.
- (solib_create_inferior_hook): Use TARGET_SIGNAL_* instead of
- host signal numbers.
-
- * mdebugread.c (parse_partial_symbols, handle_psymbol_enumerators):
- Pass CORE_ADDR variant to add_psymbol_to_list.
-
- * mips-tdep.c (heuristic_proc_desc): Stop examining the prologue
- if we encounter a positive stack adjustment. Handle `move $30,$sp'.
- Handle `sd reg,offset($sp)' for 32 bit ABIs.
-
- * symmisc.c (dump_msymbols, print_partial_symbols): Use
- print_address_numeric to print a SYMBOL_VALUE_ADDRESS.
- (dump_symtab): Print compilation directory if it is not NULL.
-
- * valops.c (search_struct_field, value_struct_elt_for_reference):
- Use SYMBOL_VALUE_ADDRESS instead of SYMBOL_BLOCK_VALUE to get the
- address of a static member.
-
-Thu Nov 28 00:46:24 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * vax-tdep.c (vax_print_insn): Made static, modified to take
- disassemble_info as parameter.
- (_initialize_vax_tdep): New function to initialize tm_print_insn
- to vax_print_insn.
-
-Wed Nov 27 11:29:06 1996 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * blockframe.c: Remove old-style CALL_DUMMY code.
- * h8300-tdep.c, config/h8300/tm-h8300.h: Ditto.
- * m32r-tdep.c, config/m32r/tm-m32r.h: Ditto.
- * sh-tdep.c, config/sh/tm-sh.h: Ditto.
- * v850-tdep.c, config/v850/tm-v850.h: Ditto.
-
-Wed Nov 27 10:32:14 1996 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * breakpoint.c: DELETE command will not delete CALL_DUMMY breakpoint.
- * blockframe.c: Add target-independant support for managing
- CALL_DUMMY frames on the host side.
- * frame.h: Declarations for generic CALL_DUMMY frame support.
- * h8300-tdep.c: Add target function calls using generic frame support.
- * config/h8300/tm-h8300.h: config for generic target function calls.
- * m32r-tdep.c: Add target function calls using generic frame support.
- * config/m32r/tm-m32r.h: config for generic target function calls.
- * sh-tdep.c: Add target function calls using generic frame support.
- * config/sh/tm-sh.h: config for generic target function calls.
- * v850-tdep.c: Add target function calls using generic frame support.
- * config/v850/tm-v850.h: config for generic target function calls.
- * valops.c: ADD PUSH_RETURN_ADDRESS so that it doesn't have to be
- done by PUSH_ARGUMENTS when there's no CALL_DUMMY.
-
-Tue Nov 26 19:21:35 1996 Mark Alexander <marka@cygnus.com>
-
- * config/mips/tm-mips.h (ADDR_BITS_REMOVE, TARGET_READ_SP): Define.
- (mips_addr_bits_remove): Declare.
- * mips-tdep.c (mips_push_dummy_frame): Fix heuristic-fence-post
- errors when hitting breakpoints during inferior function calls
- in 64-bit programs.
- (fix_sign_extension): Make public, rename to mips_addr_bits_remove.
- * utils.c (paddr_nz, preg_nz): New functions, similar to
- paddr and preg but don't print leading zeroes.
- * defs.h (paddr_nz, preg_nz): Declare.
- * remote-mips.c: Use paddr_nz instead of paddr throughout
- to reduce packet size.
- (pmon_end_download): Improve timeout error handling.
-
-Tue Nov 26 17:21:37 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: Rebuild with autoconf 2.12.
-
-Mon Nov 25 13:17:16 1996 Fred Fish <fnf@ninemoons.com>
-
- From: Paul Eggert <eggert@twinsun.com>
- * remote-bug.c (wait_strings): Avoid creating a trigraph.
-
-Fri Nov 22 15:55:22 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * valops.c (value_at, value_fetch_lazy): Put in D10V call
- to fix up address pointers.
- * values.c (value_from_longest): Removed previous d10v changes.
- * config/d10v/tm-d10v.h (TARGET_PTR_BIT): Change to 4 bytes.
-
-Fri Nov 22 10:06:19 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * config/i386/nm-i386v4.h (LOSING_POLL): Define, needed for
- Unixware 1.1.2.
-
-Thu Nov 21 19:13:58 1996 Mark Alexander <marka@cygnus.com>
-
- * mips-tdep.c: Replace hard-coded constants with MIPS_INSTLEN.
- (common_breakpoint): Use paddr instead of %x to print 64-bit values.
- (heuristic_proc_desc): Add tests for 64-bit instructions.
- (init_extra_frame_info, mips_push_arguments): Recognize additional
- registers for EABI.
- * remote-mips.c: Extend DDB target to allow TFTP downloads.
- * config/mips/tm-mips.h (MIPS_LAST_ARG_REGNUM, MIPS_NUM_ARG_REGS):
- Define.
-
-Wed Nov 20 19:09:16 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * infcmd.c (do_registers_info): Call val_print with the
- virtual buf instead of the raw buf. Needed for REGISTER_CONVERT
- to work with non-floating point regs.
-
- * d10v-tdep.c (d10v_skip_prologue): If we have line debugging
- information, then the end of the prologue should the first
- assembly instruction of the first source line.
-
- * values.c (value_from_longest): Put in D10V call to
- fix up address pointers.
-
- * config/d10v/tm-d10v.h (REGISTER_VIRTUAL_SIZE): Modified.
- (REGISTER_VIRTUAL_TYPE): Modified for PC_REGNUM and SP_REGNUM.
- (REGISTER_CONVERTIBLE): Make PC and SP convertible.
- (REGISTER_CONVERT_TO_VIRTUAL): Define.
- (REGISTER_CONVERT_TO_RAW): Define.
- (D10V_MAKE_DADDR): Define.
- (D10V_MAKE_IADDR): Define.
-
-Wed Nov 20 16:15:15 1996 Geoffrey Noer <noer@cygnus.com>
-
- * config/i386/cygwin32.mh: add MMALLOC_CFLAGS = -I$(MMALLOC_SRC)
- -DMMCHECK_FORCE=1 so memory checks are loaded for cygwin32 gdb
-
-Wed Nov 20 00:43:09 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * callback.h: Delete, moved to ../include.
- * callback.c: Delete, moved to ../sim/common.
- * Makefile.in (SFILES,COMMON_OBJS): Delete callback.[co].
- (callback.o): Delete rule.
- * remote-sim.h: No longer include callback.h.
- (sim_callback_write_stdout): Delete prototype.
- * remote-sim.c (init_callbacks,end_callbacks): New functions.
- (gdb_os_write_stdout, gdb_os_printf_filtered): New functions.
- (gdb_callback, callbacks_initialized): New static globals.
- (gdbsim_open): Call init_callbacks.
- (gdbsim_close): Call end_callbacks.
- (simulator_command): Call init_callbacks.
-
- * config/h8300/h8300.mt (SIM): Change to ../sim/h8300/libsim.a.
- * config/h8500/h8500.mt (SIM): Change to ../sim/h8500/libsim.a.
-
-Mon Nov 18 15:58:05 1996 Jim Wilson <wilson@cygnus.com>
-
- * config/mips/tm-mips.h (FIX_CALL_DUMMY): Change unsigned LONGEST
- to ULONGEST.
-
-Fri Nov 15 15:34:18 1996 Fred Fish <fnf@cygnus.com>
-
- From Peter Schauer <Peter.Schauer@Regent.E-Technik.TU-Muenchen.DE>
- * procfs.c (wait_fd): Handle EINTR error return from poll
- by restarting the poll.
- * defs.h (PIDGET): Define a default version that just
- returns its argument unchanged.
- * inflow.c (terminal_init_inferior): Eliminate #ifdef
- of PIDGET and fold both alternatives into common code.
- (pass_signal): Use PIDGET for pid passed to kill().
-
-Thu Nov 14 15:54:20 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * utils.c (paddr,preg): Use a static variable initialized to 32
- instead of doing addr>>32 to eliminate a warning produced by GCC
- on 32-bit systems.
-
- * config/d10v/tm-d10v.h (ULONGEST): Define.
-
-Tue Nov 12 12:25:27 1996 Jim Wilson <wilson@cygnus.com>
-
- * c-typeprint.c (cp_type_print_method_args): Pass -1 for show in
- recursive call to type_print.
-
-Tue Nov 12 12:18:29 1996 Jim Wilson <wilson@cygnus.com>
-
- * defs.h (ULONGEST): New macro.
- * alpha-tdep.c, breakpoint.c, c-exp.y, ch-exp.c, convex-xdep.c,
- corefile.c, defs.h, f-exp.y, findvar.c, gdbcore.h, m2-exp.y,
- m88k-tdep.c, printcmd.c, remote-hms.c, remote-mips.c, sparc-tdep.c,
- valarith.c, valops.c, values.c, config/gould/tm-np1.h,
- config/mips/tm-mips.h, mswin/prebuilt/gdb/cexptab.c,
- mswin/prebuilt/gdb/fexptab.c, mswin/prebuilt/gdb/m2exptab.c:
- Change all occurances of unsigned LONGEST to ULONGEST.
-
- * configure.host (mips-sgi-irix6): Add.
-
-Tue Nov 12 12:16:40 1996 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * sh-tdep.c: Add functionality for target function calls.
- * config/sh/tm-sh.h: Add support for target function calls.
-
-Tue Nov 12 12:06:58 1996 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * m32r-tdep.c: Add functionality for target function calls.
- * valops.c: Small change to support target function calls.
- * config/m32r/tm-m32r.h: Add support for target function calls.
-
-Mon Nov 11 17:15:59 1996 Geoffrey Noer <noer@cygnus.com>
-
- * defs.h: Modify Nov 11 12:59:00 change so _MSC_VER is checked
- instead of _WIN32.
- * win32-nat.c: Fix Nov 11 12:59:00 change (windows.h should
- be included instead of windefs.h for compilers other than
- VC++).
- * mswin/windefs.h: Remove ^Ms and change C++ style comments
- to C style comments.
-
-Mon Nov 11 14:32:38 1996 Mark Alexander <marka@cygnus.com>
-
- * utils.c (get_cell): Fix off-by-one bug.
- * mips-tdep.c (get_frame_pointer, fix_sign_extension):
- New functions to consolidate common code.
- (mips_frame_chain, init_extra_frame_info): Use new functions
- to fix problems with backtrace and finish commands on ddb board.
-
-Mon Nov 11 12:59:00 1996 Dawn Perchik <dawn@critters.cygnus.com>
-
- * mips-tdep.c, remote-mips.c, values.c, mdebugread.c,
- config/mips/tm-mips.h: Add/fix bugs for 64-bit mips support.
- * defs.h: Cleanup; add prototypes.
- * corefile.c: Change FIXME #ifdef
- * win32-nat.c: Include windefs instead of windows.h.
- * utils.c: Add routines for printing addresses and registers
- based on type size.
-
-Sat Nov 9 01:05:10 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * alpha-tdep.c (heuristic_proc_desc): Stop examining the prologue
- if we encounter a positive stack adjustment.
- (find_proc_desc): If heuristic_fence_post is non-zero, use
- heuristic_proc_start to determine the start of a function before
- calling heuristic_proc_desc.
-
- * coffread.c (coff_symtab_read): Change minimal symbol types
- for C_LABEL symbols from mst_* to mst_file_*.
-
- * config/m68k/sun3os4.mh (MMALLOC_CFLAGS): Define MMCHECK_FORCE to 1.
-
- * configure.in: Handle error message from sun3 native ld when
- configuring HLDFLAGS.
- * configure: Regenerated with autoconf.
-
- * c-valprint.c (c_value_print): Adjust value address by VALUE_OFFSET.
- * cp-valprint.c (cp_print_value): Prevent gdb crashes by making sure
- that the virtual base pointer from an user object still points to
- accessible memory.
-
- * dbxread.c (dbx_symfile_init): Initialize sym_stab_info to
- clear the recently added header_files fields.
- (dbx_symfile_finish): Free hfiles[i].vector to avoid storage leak.
-
-Fri Nov 8 14:30:23 1996 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * config/tm-sh.h: Added a missing comma in middle of
- REGISTER_NAMES list.
-
-Fri Nov 8 12:29:51 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * monitor.c: Fix some formatting and comments.
-
- * remote-sim.c (simulator_command): Set up callbacks before
- entering the simulator.
-
-Thu Nov 7 15:19:08 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * d10v-tdep.c: Fix some problems with inferior function calls.
- * config/d10v/tm-d10v.h (EXTRA_FRAME_INFO): Change dummy to be
- a pointer to the dummy's stack instead of just a flag.
-
-Tue Nov 5 10:21:02 1996 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * m32r-tdep.c: Improved frame_chain and fn prologue analysis.
- * config/tm-m32r.h: Add framesize and register to extra_frame_info.
-
-Tue Nov 5 10:08:07 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * mswin/gdbwin.h: Remove bogus definition of CORE_ADDR.
- * mswin/srcwin.cpp (CSrcScroll1::CSrcScroll1): Initialize depth
- to fix divide-by-zero problem with clicking on source window.
-
-Mon Nov 4 00:48:37 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * mswin/recordit: Fix problem with absolute paths.
- * mswin/recordit: Fix problem with relative paths.
-
-Sun Nov 3 18:06:42 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * mswin/{Makefile.in configure configure.in}: New files for
- configuring wingdb under Unix.
-
-Sat Nov 2 03:54:13 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * irix5-nat.c, osfsolib.c, solib.c (symbol_add_stub): Handle
- missing or zero-sized .text sections properly.
- * mdebugread.c: Handle scRConst and scSUndefined storage classes.
- * stabsread.c (scan_file_globals): Try to resolve symbols
- for shared libraries from the minimal symbol table of the main
- executable first.
-
-Fri Nov 1 13:59:28 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * d10v-tdep.c, config/d10v/tm-d10v.h: Major fixes to support
- inferior function calls and proper stack backtracing on D10V-EVA
- board.
-
-Fri Nov 1 10:50:51 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * config/powerpc/linux.mh (NATDEPFILES): Fix up things so that it
- links.
- (GDBSERVER_DEPFILES,TERMCAP): Ditto.
-
- * monitor.c (dev_name,targ_ops): Move static variables before
- first use, to avoid compiler warnings.
-
-Thu Oct 31 16:37:17 1996 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * m32r-tdep.c: Improved frame_chain and fn prologue analysis.
- * configure.tgt: Add entry for m32r target.
- * monitor.h: Add a flag to tell monitor_store_register to use
- (val, regno) instead of (regno, val).
- * monitor.c: Make monitor_store_register honor the above flag.
- Make monitor_exp ignore DC1/DC3 for m32r.
- Increase buf size in monitor_dump_regs.
-
-Wed Oct 30 18:14:14 1996 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * m32r-tdep.c, m32r-rom.c: New files.
- * config/m32r/m32r.mt: New file.
- * config/m32r/tm-m32r.h: New file.
-
-Tue Oct 29 16:56:01 1996 Geoffrey Noer <noer@cygnus.com>
-
- * config/i386/xm-cygwin32.h:
- * config/powerpc/xm-cygwin32.h:
- add #define LSEEK_NOT_LINEAR so source lines aren't unexpectedly
- truncated.
-
-Tue Oct 29 18:36:43 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * config/powerpc/tm-ppc-eabi.h (TARGET_BYTE_ORDER_SELECTABLE):
- Define.
-
-Tue Oct 29 14:59:20 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * TODO: Add item suggesting an "info bfd" command.
-
-Tue Oct 29 12:48:04 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * d10v-tdep.c: Snapshot that supports D10V-EVA board.
-
- * config/d10v/tm-d10v.h (REGISTER_NAMES): Add imap0,imap1,dmap.
- (TARGET_READ_FP,TARGET_WRITE_FP): Define.
-
-Mon Oct 28 17:34:24 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * mswin/genmakes mswin/recordit: New scripts to generate make
- files for MSVC.
-
-Sun Oct 27 20:18:04 1996 Mark Alexander <marka@cygnus.com>
-
- * config/mips/{tm-vr5000.h,tm-vr5000el.h,vr5000.mt,vr5000el.mt}:
- New files.
- * configure.tgt: Modify cases for vr5000 to use new files.
-
-Sat Oct 26 07:15:14 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * config/alpha/alpha-osf3.mh (XM_CLIBS): Add -lm for OSF/1-4.0.
-
- * procfs.c (proc_set_exec_trap): Under Alpha OSF/1-4.0, tracing
- the entry to the exit system call to detect termination of the
- inferior stopped working. Trace termination of the inferior via
- PRFS_STOPTERM instead.
- (procfs_init_inferior): Do not trace entry to exit system call
- if PIOCSSPCACT is defined.
- (procfs_wait): Handle PR_DEAD event, which signals the termination
- of the inferior if PRFS_STOPTERM is set.
-
- * mdebugread.c (parse_partial_symbols): Ignore stNil section
- start address symbols.
-
- * sparc-tdep.c (get_saved_register): Get saved PC from the
- frame info if not in innermost frame.
-
-Thu Oct 24 10:51:45 1996 Mark Alexander <marka@cygnus.com>
-
- * dbxread.c (process_one_symbol): Interpret end-of-function
- markers correctly; this fixes problem on Vr5000 where all
- functions in a module had the same address.
- * configure.in, configure.tgt, configure.host, gdbserver/configure.in:
- Correct for pc-linux-gnu problem in config.guess.
- * configure: Regenerate.
-
-Thu Oct 24 10:06:58 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * dbxread.c: Don't swap symbols in place, since internal and
- external forms may have different sizes. Don't assume that an
- internal_nlist has the same layout as an external_nlist. Create
- symbol for n_strx element so to hide specifics of nlist from
- partial-stab.h.
- * partial-stab.h: Don't reference dbxread symbols directly. Use
- CUR_SYMBOL_STRX instead.
- * config/i386/xm-windows.h: Define SIGQUIT and SIGTRAP.
-
- * config/v850/tm-v850.h: Define PS_REGNUM and TARGET_V850 for
- MSVC builds.
- * mswin/gdbwin.c (reg_order): Define register order for V850.
- * mswin/gui.cpp (CGuiApp::InitInstance): Define target name for
- V850.
- * mswin/regdoc.h: Define MAXREGS for V850.
-
-Tue Oct 22 16:28:20 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * v850-tdep.c (scan_prologue): Changes to deal with scheduled
- prologues correctly. First, prologue end is now defined by
- presence of a branch, jump or call insn. Second, can no longer
- fix frame offsets because we may not know the offset until after a
- register has been saved.
- * (v850_init_extra_frame_info): Fixup frame offsets here because
- we have all the info at this time.
- * (v850_frame_chain): Use new calling convention for scan_prologue.
-
-Tue Oct 22 10:25:29 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * d10v-tdep.c, config/d10v/tm-d10v.h: Changes to allow stack
- backtraces and inferior function calls.
-
-Tue Oct 22 10:32:46 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-make.sed: Update init.c editing to work with Oct 8 change.
- (@HLDFLAGS@): Always edit out.
-
-Mon Oct 21 18:17:08 1996 Mark Alexander <marka@cygnus.com>
-
- * mdebugread.c (parse_partial_symbols): Fix 64-bit
- sign-extension problems in calculating psymtab addresses.
- * buildsym.c (end_symtab): Use macro to pop context.
-
-Mon Oct 21 14:40:50 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * v850-tdep.c: Cleanup lots of things. Add many comments.
-
- * v850-tdep.c (v850_init_extra_frame_info v850_frame_chain): Fix
- sign bugs with scanning prologues. Get a little smarter about
- calculating the length of uninteresting instructions.
-
-Mon Oct 21 14:01:38 1996 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * top.c: Add new commands "set annotate" and "show annotate".
-
-Sun Oct 20 04:38:39 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * corelow.c (core_close): Clear inferior_pid only if there is
- an open core_bfd.
-
- * cp-valprint.c (cp_print_value_fields): Pass correct address
- to val_print, not 0.
-
- From Andreas Schwab (schwab@issan.informatik.uni-dortmund.de):
- * eval.c (evaluate_subexp_standard) [case BINOP_REPEAT]: Chase
- typedefs before checking for integral type of right operand.
-
-Fri Oct 18 17:26:22 1996 Mark Alexander <marka@cygnus.com>
-
- * mdebugread.c (parse_symbol): Fix crash when malloc has
- no type info and void type has no associated pointer type.
-
-Thu Oct 17 18:18:20 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * configure.host: New file, host configuration mapping.
- * configure.tgt: New file, target configuration mapping.
- * configure.in: Remove host and target mapping.
- * configure: Rebuild.
-
-Wed Oct 16 17:46:03 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * breakpoint.c (must_shift_inst_regs): New global.
- (bpstat_stop_status): Change #if uses of DECR_PC_AFTER_BREAK into
- equivalent expression uses.
- * infrun.c (wait_for_inferior): Ditto.
-
-Wed Oct 16 01:53:43 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * v850-tdep.c (v850_push_arguments): Use symbolic names for arg
- registers.
- * config/v850/tm-v850.h: Change FP to 29. Define arg regs.
-
-Tue Oct 15 16:30:07 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * Makefile.in (init.c): Don't use -s option with grep. It means
- something different under Digital Unix.
-
- * buildsym.c (finish_block): Treat LOC_BASEREG_ARG and
- LOC_LOCAL_ARG as arguments so that GDB will know about function
- args declared this way. Mostly affects dwarf.
- * dwarfread.c (decode_die_type): Change default type from int to
- void. This allows GDB to recognize void functions.
- * (new_symbol): If AT_PROTOTYPED is present, set a flag in the
- type structure.
- * findvar.c (extract_floating store_floating): Clean up comments
- to reflect reality.
- * gdbtypes.h: Add TYPE_FLAG_PROTOTYPED so that we can tell if a
- function has a prototype. Currently, only dwarf supports this.
- * utils.c (floatformat_from_doublest): Fix logic error with
- converting from double to float. (It wasn't shifting mant_long if
- it had a hidden bit.)
- * v850-tdep.c: Add support for function calling. Fix some
- problems with debugging code w/o debug symbols.
- * config/v850/tm-v850.h: Ditto.
-
-Tue Oct 15 18:19:42 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * utils.c: Always ensure that size_t is defined. Check
- HAVE_STDDEF_H rather than __STDC__
- (xmalloc, xrealloc): Use size_t rather than long.
-
-Tue Oct 15 14:24:19 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * config/powerpc/tm-ppc-eabi.h: Undefine NO_SINGLE_STEP so targets
- can use single-step commands.
-
-Sun Oct 13 11:38:25 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * stabsread.c (define_symbol): If REG_STRUCT_HAS_ADDR is non-zero,
- follow typedefs before checking TYPE_CODE for structures and unions.
-
-Fri Oct 11 15:43:54 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * frame.h: Move definition of struct frame_saved_regs to before
- struct frame to make it possible to use frame_saved_regs in
- EXTRA_FRAME_INFO macro.
-
- * v850-tdep.c config/v850/tm-v850.h: Lotsa new functions and
- macros to make frame operations (such as backtrace) work.
-
-Fri Oct 11 14:23:50 1996 Fred Fish <fnf@cygnus.com>
-
- * dbxread.c (process_one_symbol): Check for null string directly
- rather than using strcmp against "".
- * partial-stab.h: Ditto.
-
-Fri Oct 11 12:18:32 1996 Mark Alexander <marka@cygnus.com>
-
- * gdbserver/{gdbreplay.c,low-linux.c,remote-utils.c,utils.c}:
- Make it compile on Linux and eliminate some warnings.
-
-Thu Oct 10 16:32:08 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * Makefile.in (init.c): Fixup final sed script to work around
- Linux bug with `p' operator.
-
-Wed Oct 9 18:02:48 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * remote-mips.c: Use the correct name everywhere (DDB) for NEC's
- VR4300 target.
- (ddb_ops, pmon_ops): Fix the documentation strings.
-
-Wed Oct 9 07:42:44 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * Makefile.in (init.c): Retro HPUX grep lacks -h option. Strip
- filenames with sed instead.
-
-Tue Oct 8 15:59:44 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * defs.h: Remove decls of xmalloc and xrealloc. There is a
- conflicting definition in libiberty.h.
-
-Tue Oct 8 11:47:13 1996 Fred Fish <fnf@cygnus.com>
-
- * dbxread.c (dbx_symfile_read): Call free_pending_blocks rather
- than poking global variable (which is now static).
- * hpread.c (hpread_build_psymtabs): Ditto.
- * os9kread.c (os9k_symfile_read): Ditto.
- * xcoffread.c (xcoff_initial_scan): Ditto.
-
- * buildsym.h (free_pending_blocks): Declare here.
- (pending_blocks): Remove declaration of global symbol.
- (free_pendings): Remove declaration of global symbol.
- (make_blockvector): Declare here.
- (record_pending_block): Declare here.
-
- * dstread.c (make_blockvector): Remove static copy that was old
- clone of version in buildsym.c.
- (process_dst_block): Call record_pending_block rather than doing
- it by hand.
- (read_dst_symtab): Ditto.
-
- * buildsym.c (make_blockvector): Make global rather than static,
- (record_pending_block): New function, code moved from finish_block.
- (finish_block): Use record_pending_block.
- (free_pending_blocks): New function.
- (really_free_pendings): Call free_pending_blocks.
- (pending_blocks): Make static instead of global.
- (free_pendings): Make static instead of global.
-
-Tue Oct 8 09:03:22 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * config/i386/windows.mh config/i386/xm-windows.h:: New config
- files to support building Wingdb (built under Microsoft build
- environment).
-
- * Makefile.in: Add rule for hpux-thread.o (needs special header
- files).
- * (SUBDIRS): Remove mswin.
- * Change procedure for creating init.c. Speeds things up quite a
- bit.
- * config.in configure configure.in: Check for select, poll.
- * Check for OSF header files before including hpux-thread.o.
- * Don't configure doc or testsuite when building under MSVC.
- * findvar.c value.h (read_register_pid write_register_pid): Make
- global. Needed for hppa-tdep.c.
- * (supply_register): Don't set pid to inferior_pid when supplying
- registers.
- * hppa-tdep.c (saved_pc_after_call): frame_saved_pc ->
- FRAME_SAVED_PC.
- * (frame_saved_pc): Change name to hppa_frame_saved_pc.
- * (hppa_pop_frame): Don't use a pid of 0 with target_write_pc.
- Use write_pc instead, which uses the correct pid.
- * (target_read_pc target_write_pc): Use read/write_register_pid
- instead of read/write_register to preserve the pid passed in.
- * inftarg.c (child_can_run): Add flag child_suppress_run to allow
- hpux-threads.c to override this as a runnable target.
- * config/pa/nm-hppah.h: Define target_new_objfile and
- target_pid_to_str.
- * config/pa/tm-hppa.h (FRAME_SAVED_PC): Use hppa_frame_saved_pc
- instead of frame_saved_pc.
- * config/m68k/tm-m68k.h: Define TARGET_M68K for Wingdb.
- * config/m68k/tm-monitor.h: Use FRAME_CHAIN_VALID_ALTERNATE, since
- we can't easily determine the start file bounds with ELF.
- * config/mips/tm-mips.h: Define TARGET_MIPS for Wingdb.
- * hpux-thread.c: New file for HPUX/OSF thread support.
- * osf-share/{README AT386/cma_thread_io.h HP800/cma_thread_io.h
- RIOS/cma_thread_io.h cma_attr.h cma_deb_core.h cma_debug_client.h
- cma_errors.h cma_handle.h cma_init.h cma_list.h cma_mutex.h
- cma_sched.h cma_semaphore_defs.h cma_sequence.h cma_stack.h
- cma_stack_int.h cma_tcb_defs.h cma_util.h}: New files for OSF
- thread support.
-
-Sun Oct 6 15:48:09 1996 Fred Fish <fnf@cygnus.com>
-
- * buildsym.c (finish_block): Change innerblock_anon_complaint to
- print the addresses as part of the complaint. Add a complaint for
- cases where the block end address is smaller than the block start
- address, in case any such conditions slip through our fixup mechanism.
- * symmisc.c (dump_symtab): Only print blockvector for primary
- symtabs, to avoid massive duplication of output due to secondary
- symtabs that point to same blockvector. Also do some minor
- formatting tweaks.
-
-Mon Oct 7 10:42:32 1996 Per Bothner <bothner@deneb.cygnus.com>
-
- Replace header_files global by per-objfile field.
- * gdb-stabs.h (struct dbx_symfile_info): Add fields header_files,
- n_header_files, n_allocated_header_files.
- * stabsread.h (header_files, n_header_files, n_allocated_header_files):
- Replace externs by macros HEADER_FILES, N_HEADER_FILES, and
- N_ALLOCATED_HEADER_FILES.
- * dbxread.c (dbx_symfile_finish): Free HEADER_FILES.
- (free_header_files, init_header-files): Don't free/init headerfiles.
- (various functions): Use macros instead of header_files globals.
- * stabsread.c (various functions): Likewise.
-
-Sun Oct 6 22:43:06 1996 Jason Merrill <jason@yorick.cygnus.com>
-
- * dwarf2read.c (read_tag_reference_type): New fn.
- (read_type_die): Call it.
- (dwarf_attr): Also look in the DIEs referred to by specification
- or abstract_origin attributes.
-
-Wed Oct 2 22:07:16 1996 Fred Fish <fnf@cygnus.com>
-
- * inferior.h (IN_SIGTRAMP): Pass pc to SIGTRAMP_START and
- SIGTRAMP_END.
- * config/i386/tm-i386os9k.h (SIGTRAMP_START, SIGTRAMP_END):
- Define with dummy pc arg.
- * config/m68k/tm-nbsd.h: Ditto.
- * doc/gdbint.texinfo: Document that SIGTRAMP_START and
- SIGTRAMP_END are macros that take an single argument.
-
-Mon Sep 30 20:02:45 1996 Fred Fish <fnf@cygnus.com>
-
- * defs.h: Remove define of PRIVATE_XMALLOC.
-
-Mon Sep 30 15:39:28 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * config/v850/tm-v850.h: Use distinct register for PC, not EIPC.
-
-Mon Sep 30 11:16:34 1996 Jeffrey A Law (law@cygnus.com)
-
- * top.c (execute_control_command): Free values from while_control
- and if_control conditions after evaluation to avoid storage leaks.
- From Peter Schauer.
-
-Fri Sep 27 17:43:06 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * configure configure.in: Recognize v850 target.
- * v850-tdep.c: New file, NEC V850 target support.
- * config/v850/{v850.mt tm-v850.h}: New files for NEC V850 support.
-
-Fri Sep 27 14:48:15 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * infrun.c (wait_for_inferior): Update current_line and
- current_symtab when stepping continues in the middle of a new line.
-
-Fri Sep 27 10:25:30 1996 Fred Fish <fnf@cygnus.com>
-
- * top.c (print_gdb_version): Rewrote to comply with new GNU coding
- standards for the --version option.
- (print_gnu_advertisement): Remove, now part of print_gdb_version.
- (show_version): Remove call to print_gnu_advertisement.
- * top.h (print_gnu_advertisement): Remove prototype.
- * main.c (print_gdb_help): Move help to static function and
- add prototype.
- (main): Call print_gdb_help rather than inlining it.
- (main): Remove call to print_gnu_advertisement.
-
-Fri Sep 27 13:32:53 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * config/d10v/tm-d10v.h (TARGET_{INT,PTR}_BIT): Define.
- (TARGET_{,LONG_}DOUBLE_BIT): Ditto.
-
-Thu Sep 26 23:10:26 1996 Mark Alexander <marka@cygnus.com>
-
- * configure.in, config/i386/tm-linux.h: Fix configure
- problem on older Linux systems that prevented core files
- from being recognized.
-
-Wed Sep 25 18:31:33 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * dbug-rom.c: New file, support for Motorola's dBUG monitor.
- * config/m68k/monitor.mt (TDEPFILES): Add it.
- * NEWS: Mention it.
-
-Mon Sep 23 16:13:50 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * config/d10v/tm-d10v.h (SAVED_PC_AFTER_CALL): Fixed.
- Now single-steps correctly.
- * d10v-tdep.c (d10v_pop_frame): Fixed.
-
-Fri Sep 20 16:10:58 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * config/sh/tm-sh.h (REGISTER_NAMES): Move fp registers to
- be consistent with GCC.
- (FPUL_REGNUM, etc): Renumber to match list changes.
- (ADDR_BITS_REMOVE): Delete.
- * sh-tdep.c (sh_reg_names, sh3_reg_names, sh3e_reg_names):
- Rearrange to match REGISTER_NAMES.
- * sh3-rom.c (sh3_regnames, sh3e_regnames): Ditto.
-
-Thu Sep 19 16:19:01 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * d10v-tdep.c: Stack chain should work now.
-
-Tue Sep 17 18:46:57 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * d10v-tdep.c, config/d10v/tm-d10v.h: Snapshot.
-
-Tue Sep 17 12:20:50 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Add cases for MIPS 5000 like MIPS 4300.
- * configure: Rebuild.
-
-Tue Sep 17 12:09:00 1996 Dawn Perchik <dawn@critters.cygnus.com>
-
- * ser-e7kpc.c: Added wingdb support for target e7000pc.
-
-Tue Sep 17 10:56:52 1996 James G. Smith <jsmith@cygnus.co.uk>
-
- * remote-mips.c (pmon_wait): DDB PMON does not require forced
- re-entry back into debug mode.
-
-Mon Sep 16 14:32:58 1996 James G. Smith <jsmith@cygnus.co.uk>
-
- * remote-mips.c (mips_load): Ensure that the PC is explicitly
- loaded after a load to a DDB PMON system.
-
-Fri Sep 13 12:02:39 1996 Fred Fish <fnf@cygnus.com>
-
- * Makefile.in (INTERNAL_LDFLAGS): Add @HLDFLAGS@ to list.
- (HLDENV): Set to @HLDENV@.
- (gdb): Prefix link command line with $(HLDENV).
- * configure.in: Add support to test for --enable-shared and
- generate appropriate values for HLDFLAGS and HLDENV.
- * configure: Regenerated with autoconf.
-
-Sun Sep 8 15:26:27 1996 Fred Fish <fnf@cygnus.com>
-
- * alpha-nat.c (fetch_core_registers): Match Sep 4 gdbcore.h prototype
- change for core_read_registers in struct core_fns.
- * core-regset.c (fetch_core_registers): Ditto & add prototype.
- * core-sol2.c (fetch_core_registers): Ditto & add prototype.
- * i386aix-nat.c (fetch_core_registers): Ditto & add prototype.
- * i386b-nat.c (fetch_core_registers): Ditto.
- * i386mach-nat.c (fetch_core_registers): Ditto & add prototype.
- * irix4-nat.c (fetch_core_registers): Ditto.
- * irix5-nat.c (fetch_core_registers): Ditto.
- * lynx-nat.c (fetch_core_registers): Ditto & add prototype.
- * m68knbsd-nat.c (fetch_core_registers): Ditto.
- * mips-nat.c (fetch_core_registers): Ditto & add prototype.
- * rs6000-nat.c (fetch_core_registers): Ditto.
- * sparc-nat.c (fetch_core_registers): Ditto.
- * sun3-nat.c (fetch_core_registers): Ditto & add prototype.
- * ultra3-nat.c (fetch_core_registers): Ditto & add prototype.
-
- * alpha-nat.c (register_addr): Match Sep 4 gdbcore.h prototype change.
- * delta68-nat.c (register_addr): Ditto.
- * gdbserver/low-linux.c (register_addr): Ditto.
- * gdbserver/low-hppabsd.c (register_addr): Ditto.
- * i386m3-nat.c (register_addr): Ditto.
- * mips-nat.c (register_addr): Ditto.
- * ultra3-nat.c (register_addr): Ditto.
-
-Sun Sep 8 15:14:00 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * blockframe.c (inside_main_func): Cleanup slightly. Move
- mainsym def into the block it's used in.
- * configure.in configure: Allow NATDEPFILES to be recognized in
- .mh files regardless of whitespace.
-
- * cpu32bug-rom.c (cpu32bug_cmds): Change load_response string to
- keep downloads from hanging.
-
- * remote-wiggler.c: Add support for flash upgrades.
- * (wiggler_error): Fix message format. Add new error code.
- * (wiggler_write_byets): Error code is hex. Report errors with
- proper routine name.
- * (wiggler_read_byets): Report errors with proper routine name.
- * (get_packet): Add support for new flash commands.
- * (wiggler_load): Call clear_symtab_users() to reset things
- properly after download.
- * (flash_xfer_memory bdm_update_flash_command): New funxtions to
- support flash upgrades for Wiggler.
- * (_initialize_remote_wiggler): Add `bdm update-flash' command.
-
-Fri Sep 6 13:14:13 1996 Geoffrey Noer <noer@cygnus.com>
-
- * ser-tcp.c: don't include netinet/tcp.h if __CYGWIN32__
-
-Thu Sep 5 17:05:13 1996 Geoffrey Noer <noer@cygnus.com>
-
- * config/i386/cygwin32.mh:
- * config/powerpc/cygwin32.mh: build ser-tcp.o for both hosts
-
-Thu Sep 5 12:09:13 1996 Per Bothner <bothner@deneb.cygnus.com>
-
- * value.h (COERCE_REF): Fix previous change.
- (COERCE_ENUM): Add a check_typedef (this is the real fix).
-
-Thu Sep 5 03:28:30 1996 Wilfried Moser <moser@rtl.cygnus.com>
-
- * eval.c (evaluate_subexp_standard): In case of OP_ARRAY: make a
- better check of array boundaries.
-
-Thu Sep 5 01:29:42 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * configure: Update aclocal.m4 and re-run autoconf to get correct
- defs for BFD stuff.
- * remote-wiggler.c (wiggler_error): Error codes are hex. Also,
- fix default message generation.
-
-Wed Sep 4 17:28:40 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * Makefile.in: Add mswin to SUBDIRS. Add rules for
- mswin/libwingdb.a and remote-wiggler.o.
- * breakpoint.c (breakpoint_here_p): Clean up bp enabled test.
- * (breakpoint_inserted_here_p): New func, just like
- breakpoint_here_p, except it's honest. Honestly.
- * breakpoint.h: Proto for above.
- * configure configure.in: Add mswin to configdirs if host is
- i[3456]86-*-windows.
- * core-aout.c (fetch_core_registers register_addr) gdbcore.h:
- Change all vars that can contain addresses to type CORE_ADDR.
- * findvar.c (supply_register): Allow val to be NULL. This means
- that regno is unsupported.
- * (read_pc read_pc_pid write_pc write_pc_pid): Make non-pid forms
- just call pid forms with inferior_pid so that there's only once
- place to hack PC's and such.
- * infrun.c (proceed): Don't skip breakpoints if user changed PC.
- * remote-wiggler.c: New file. Support for BDM interface from
- Macraigor Systems.
- * serial.c: Enhance serial logging capability. Add hex and octal
- output modes (set remotelogbase {hex|octal|ascii}. Also log
- breaks, timeouts, errors, and eofs.
- * serial.h: Redefine SERIAL_SEND_BREAK to go through a wrapper
- function so that we can log breaks. Don't export serial_logfile
- or serial_logfp.
- * top.c (execute_command): Don't test for serial_logfp here.
- Just call serial_log_comand, and let serial.c sort it out.
- * valops.c (value_of_variable): Don't attempt to establish frames
- for static and global variables. This makes things work a bit
- better if the stack or frame pointer is trashed.
- * config/m68k/monitor.mt (TDEPFILES): Add remote-wiggler.o.
- * config/m68k/tm-m68k.h: Define STACK_ALIGN. CPU32 can't hack
- misaligned stacks during function calls.
-
-Wed Sep 4 13:06:26 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * terminal.h: Don't use #elif.
-
-Wed Sep 4 06:49:35 1996 Wilfried Moser <moser@rtl.cygnus.com>
-
- * ch-exp.c (parse_tuple_element): Allow (*): for array tuples
- if we have a type.
-
- * eval.c (evaluate_subexp_standard): In case of OP_ARRAY:
- check number of args against bounds of array to avoid
- memory corruption.
-
- * value.h (COERCE_REF): Do a CHECK_TYPEDEF in case we get
- a TYPE_CODE_TYPEDEF.
-
-Fri Aug 30 15:07:14 1996 James G. Smith <jsmith@cygnus.co.uk>
-
- * remote-mips.c: Provide support for DDBVR4300 target board.
- (ddb_open, ddb_ops): Added.
- (mips_monitor_type): MON_DDB Added.
- (mips_enter_debug, mips_exit_debug, mips_initialize,
- mips_fetch_registers, common_breakpoint, mips_load,
- _initialize_remote_mips): Updated.
-
-Thu Aug 29 17:00:18 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * nlm/configure.in (i[345]86-*-*): Recognize i686 for pentium pro.
- * nlm/configure: Regenerate.
-
- * gdbserver/configure.in (i[345]86-*-*): Recognize i686 for
- pentium pro.
-
-Wed Aug 28 13:11:15 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: If CY_AC_PATH_TCLCONFIG can't find TCL, don't run
- CY_AC_LOAD_TCLCONFIG.
- * configure: Rebuild.
-
-Tue Aug 27 12:40:40 1996 Fred Fish <fnf@cygnus.com>
-
- * infrun.c (wait_for_inferior): Initialize stop_func_end before calling
- find_pc_partial_function.
-
-Tue Aug 27 10:17:34 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * configure: Regenerate again.
-
-Tue Aug 27 04:25:08 1996 Geoffrey Noer <noer@cygnus.com>
-
- * configure.in: work around host_alias configure bug.
- AC_CANONICAL_HOST is called twice (first by AC_CHECK_TOOL
- and second by AC_CANONICAL_SYSTEM). The second clobbers the
- previous setting. Circumventing by moving the second check
- to before the first.
- * configure: regenerated
-
-Mon Aug 26 18:36:54 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * config/d10v/d10v.mt: New file.
- * config/d10v/tm-d10v.h: New file.
- * configure.in: New target D10V.
- * d10v-tdep.c: New file.
-
-Sun Aug 25 00:09:47 1996 Fred Fish <fnf@rtl.cygnus.com>
-
- * rs6000-tdep.c: Fix typo in comment.
- * valops.c (call_function_by_hand): Set using_gcc to 2
- for code compiled without -g, per comment in code.
- * config/a29k/tm-a29k.h (STACK_ALIGN): Add comment.
- * config/sparc/tm-sparc.h (STACK_ALIGN): Add comment.
- * config/sparc/tm-sp64.h (STACK_ALIGN): Add comment.
- * config/pyr/tm-pyr.h (STACK_ALIGN): Add comment.
- * config/m88k/tm-m88k.h (STACK_ALIGN): Add comment.
- * config/pa/tm-hppa.h (PUSH_ARGUMENTS): Enclose args in ()'s.
- (STACK_ALIGN): Add comment, move to be with other associated
- macros, and document.
- * config/mips/tm-mips.h (PUSH_ARGUMENTS): Enclose args in ()'s.
- (STACK_ALIGN): Remove completely, handled by PUSH_ARGUMENTS.
- * config/alpha/tm-alpha.h (PUSH_ARGUMENTS): Enclose args in ()'s.
- * config/rs6000/tm-rs6000.h (STACK_ALIGN): Remove completely,
- handled by PUSH_ARGUMENTS.
- (PUSH_ARGUMENTS): Enclose args in ()'s.
-
-Fri Aug 23 13:55:05 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * infrun.c (wait_for_inferior): Try to reenable shared library
- breakpoints even if auto_solib_load is not set.
-
-Wed Aug 21 16:31:27 1996 Fred Fish <fnf@cygnus.com>
-
- * valprint.c (print_longest): Test for CC_HAS_LONG_LONG as well as
- PRINTF_HAS_LONG_LONG.
- * expprint.c (dump_expression): Ditto.
- * configure.in: Fix check for long long support in compiler to
- use a function body, not a nested function.
- * configure: Rebuild with autoconf.
-
-Tue Aug 20 17:59:42 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * aclocal.m4: Include ../bfd/aclocal.m4.
- * configure.in: Add stdlib.h to AC_CHECK_HEADERS. Call
- BFD_NEED_DECLARATION on malloc, realloc, and free.
- * acconfig.h: Add NEED_DECLARATION_MALLOC,
- NEED_DECLARATION_REALLOC, and NEED_DECLARATION_FREE.
- * configure, config.in: Rebuild.
- * defs.h: Include <stddef.h> and <stdlib.h> based on HAVE_*_H
- rather than __STDC__. Only declare malloc, realloc, and free if
- NEED_DECLARATION_* is defined.
-
-Tue Aug 20 15:37:03 1996 Fred Fish <fnf@cygnus.com>
-
- * solib.c (_initialize_solib): Add missing '\' chars at ends of
- strings that continue on next line.
- (enable_break): Replace "return 0" with setting success to zero
- and letting normal return handle the return.
-
-Sat Aug 17 14:16:23 1996 Fred Fish <fnf@cygnus.com>
-
- * mips-tdep.c (mips_push_arguments): Make sure sp and struct_addr
- are properly aligned.
-
-Fri Aug 16 17:54:26 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * rs6000-tdep.c (rs6000_fix_call_dummy): Add full set of arguments.
- * config/rs6000/tm-rs6000.h (FIX_CALL_DUMMY): Pass all arguments
- to function, declare function correctly.
-
-Fri Aug 16 17:24:35 1996 Dawn Perchik <dawn@critters.cygnus.com>
-
- * symtab.h: changed namespace to _namespace for compiling under
- MFC v4.0.
-
-Fri Aug 16 13:52:21 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-make.sed: Update for various recent changes, add some
- comments.
-
-Fri Aug 16 15:47:36 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * config/rs6000/tm-rs6000.h (FIX_CALL_DUMMY): Cast args to be an
- integer for type correctness.
-
-Fri Aug 16 15:15:37 1996 James G. Smith <jsmith@cygnus.co.uk>
-
- * config/mips/{vr4300.mt, vr4300el.mt} (SIM): Add -lm when
- simulator is included.
-
-Thu Aug 15 13:44:13 1996 Fred Fish <fnf@cygnus.com>
-
- * findvar.c (write_register_pid): Only needed when TARGET_WRITE_PC
- is not defined.
- (read_register_pid): Only needed when TARGET_READ_PC is not
- defined.
- * hppa-tdep.c (frame_saved_pc): Remove prototype.
- * infptrace.c (udot_info): Prototype when CHILD_XFER_MEMORY is
- not defined.
- * config/xm-aix4.h (aix_resizewindow): Convert old style decl
- to prototype.
- * xcoffsolib.c (command.h): Include for needed prototypes.
-
-Wed Aug 14 17:54:19 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * config/i386/cygwin32.mh: Set NAT_FILE to nm-empty.h to make
- native work.
-
-Wed Aug 14 02:03:42 1996 Fred Fish <fnf@cygnus.com>
-
- From Blair MacIntyre <bm@cs.columbia.edu>:
- * hppa-tdep.c (hppa_fix_call_dummy): Use MSYMBOL_TYPE rather
- than SYMBOL_TYPE on msymbols.
- * somsolib.c (som_solib_create_inferior_hook): Ditto.
-
- * Makefile.in (init.c): Generate with prototypes.
-
- * config/pa/tm-hppa.h (frame_saved_pc): Add prototype.
- * config/rs6000/xm-rs6000.h (aix_resizewindow): Ditto.
- * config/rs6000/tm-rs6000.h (frame_initial_stack_address): Ditto.
- (pc_load_segment_name): Ditto.
- (pop_frame): Ditto.
- (extract_return_value): Ditto.
- (is_magic_function_pointer): Ditto.
- (push_dummy_frame): Ditto.
- (fix_call_dummy): Ditto.
- (push_arguments): Ditto.
- (skip_trampoline_code): Ditto.
- (aix_process_linenos): Ditto.
-
- * config/m68k/tm-cisco.h (get_longjmp_target): Add prototype.
- * config/m68k/tm-es1800.h: Ditto.
- * config/m68k/tm-vx68.h: Ditto.
- * config/m68k/tm-sun3.h: Ditto.
- * config/m68k/tm-m68kv4.h: Ditto.
-
-Tue Aug 13 23:04:36 1996 Fred Fish <fnf@cygnus.com>
-
- * config/mips/nm-mips.h (get_longjmp_target): Add prototype.
- * config/mips/nm-irix3.h (get_longjmp_target): Add prototype.
- * remote-mips.c (mips_read_processor_type): Remove prototype.
- * mips-tdep.c (gdb_print_insn_mips): Add prototype and make static.
- * irix5-nat.c (fetch_core_registers): Add prototype.
-
-Mon Aug 12 21:23:44 1996 Fred Fish <fnf@cygnus.com>
-
- * remote-pa.c (boot_board): Add dummy params to make type compatible
- for passing to add_com.
- * scm-exp.c (scm_lreadr): Ensure svalue is not used uninitialized.
- * buildsym.c (compare_line_numbers): Change function to match
- prototype and also what qsort expects.
-
-Mon Aug 12 19:19:00 1996 Mark Alexander <marka@cygnus.com>
-
- * remote.c: Make remote_write_size public.
- * sh-tdep.c (_initialize_sh_tdep): Set remote_write_size to 300
- to prevent packet errors with some versions of CMON.
-
-Mon Aug 12 16:20:58 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * defs.h: Define CONST_PTR as blank if compiling with Microsoft
- C, else it's `const'.
- * c-lang.c c-lang.h ch-lang.c f-lang.c language.c m2-lang.c
- scm-lang.c: Microsoft C can't hack const pointers. Use CONST_PTR
- macro instead.
- * configure configure.in defs.h: Use AC_C_CONST to figure out if
- the compiler supports const. Gets rid of some cruft in defs.h.
- * dwarf2read.c: <string.h> -> "gdb_string.h"
- * remote-sim.c: Add prototypes. Fix call to gdbsim_kill.
- * sparcl-tdep.c (download): Add prototypes to write_routine and
- start_routine args.
-
- * mswin/gdbwin.c: Don't include both varargs.h AND stdarg.h. Get
- rid of varargs.h Include string.h.
- * (gdbwin_update gdbwin_fputs regs_changed_f bpt_changed_f
- update): Fix prototypes, fix calls.
- * (update): Return value for catch_errors.
- * (run_execute_command togdb_command_from_tty togdb_command):
- Cleanup catching of errors from calls to execute_command. Also,
- dup command string to avoid modifying const strings.
- * (togdb_breakinfo_i_init togdb_breakinfo_i_next): Use 0 instead
- of NULL when see if b->address isn't set.
- * (bi_disable_bpt bi_enable_bpt bi_delete_all
- bi_delete_breakpoint): Add arg to calls to update.
- * (gui_command): Add prototype.
- * (mswin_query): Fix prototype.
- * (_initialize_gdbwin): Dup string to avoid modifying const.
- * (info_path togdb_get_info_path): Remove const from decls cuz
- this can't be const (it points at malloc'ed memory).
- * (togdb_searchpath): Remove const from path. Dup string to
- avoid modifying const strings.
- * rindex -> strrchr.
- * (gdbwin_list_symbols): Regexp param is const.
- * Fix lots of refs to psymtabs to deref correct pointers.
- * (togdb_set_breakpoint_sal): Call set_breakpoint_sal with sal,
- not &sal.
- * mswin/gdbwin.h (togdb_searchpath togdb_get_info_path
- toget_set_info_path): Fix prototypes to match reality.
- * mswin/gui.cpp: Define _beginthreadex and _endthreadex routines
- with proper prototypes.
- * mswin/iface.cpp (gdbwin_fputs): Define with correct number of args.
- * mswin/ser-win32s.c: Fix defs of min and max.
- * mswin/serdll32.c (OpenComm16): Make cbInQueue and cbOutQueue be
- USHORT.
- * (WriteComm16): Change lpBug from LPVOID to LPCSTR.
- * mswin/serdll32.h: Fix prototypes for OpenComm16 and WriteComm16.
-
-Sun Aug 11 20:54:16 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * main.c (main): Make sure command loop is used with cygwin32.
- * terminal.h: Allow cygwin32 to use termios.h.
-
-Fri Aug 9 12:42:49 1996 Jeffrey A Law (law@cygnus.com)
-
- * somread.c (som_symtab_read): Handle secondary definition
- symbols (aka weak symbols).
-
- * config/tm-hppa.h (EXTRACT_RETURN_VALUE): Fix thinko in
- last change.
-
-Thu Aug 8 10:12:36 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * symfile.c (symfile_bfd_open): Change ifdef from __WIN32__ to
- _WIN32.
-
- * somread.c: Rearrange order of includes to fix warnings under
- hpux-10.10. Also don't include sys/file.h.
-
-Wed Aug 7 21:45:52 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * dbxread.c: Don't include param.h or sys/file.h.
- * (dbx_symfile_read): Determine symfile_relocatable from bfd
- flags instead of file extension. Also clean up a little bit.
-
-Wed Aug 7 17:18:37 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * dwarf2read.c dwarfread.c exec.c infcmd.c infrun.c main.c
- mdebugread.c os9kread.c source.c top.c utils.c: Don't
- include param.h or sys/file.h (or unistd.h in some cases).
- * defs.h exec.c inflow.c remote-array.c remote-e7000.c
- sparcl-tdep.c terminal.h utils.c: Replace all occurances of
- __WIN32__, WINGDB, WIN32, etc... with _WIN32.
- * main.c: Remove #ifndef WINGDB around option processing. Fix
- bug with passing argc==0 and argv==NULL to getopt.
- * (main) Remove calls to access() before source_command. Let
- soure_command handle access errors.
- * maint.c (maintenance_dump_me): #ifdef out for _WIN32.
- * symtab.c (operator_chars): Make this global for wingdb.
- * top.c (disconnect): #ifdef out for _WIN32.
- * (source_command): If got an error and from_tty, then call print
- error, else just return quietly.
- * utils.c (fatal_dump_core): Can't kill ourselves under windows.
- Just exit.
- * (pollquit notice_quit): #ifdef out stuff that doesn't exist
- under windows.
-
-Wed Aug 7 09:59:19 1996 Jeffrey A Law (law@cygnus.com)
-
- * config/pa/tm-hppa.h (EXTRACT_RETURN_VALUE): Tweak for
- structures > 4 bytes in size.
-
- * valops.c (call_function_by_hand): Handle aligning stacks that
- grow up correctly.
- * config/pa/tm-hppa.h (USE_STRUCT_CONVENTION): Define.
- (STACK_ALIGN): Define.
- * hppa-tdep.c (hppa_alignof): Don't demand a minumim two byte
- alignment on structs/unions.
-
-Sun Aug 4 16:22:42 1996 Fred Fish <fnf@cygnus.com>
-
- * config/powerpc/nm-aix.h (PTRACE_ARG3_TYPE): Define to "int *",
- which is the documented type under at least AIX 3 and AIX 4.
-
-Sat Aug 3 04:02:46 1996 Fred Fish <fnf@cygnus.com>
-
- * config/alpha/alpha-osf3.mh (XM_FILE): Change from xm-alpha.h to
- xm-alphaosf.h.
- (MMALLOC_CFLAGS): Define NO_MMCHECK to not install consistency
- checks.
-
-Thu Aug 1 10:11:34 1996 Fred Fish <fnf@cygnus.com>
-
- * config/mips/tm-mips.h (TM_MIPS_H): Enclose file contents in
- this, define when contents are included.
- (mips_read_processor_type): Add prototype.
- * config/mips/xm-mips.h: Remove strdup decl, now in gdb_string.h
- * mdebugread.c (ecoff_relocate_efi): Add prototype.
- (fixup_sigtramp): Only needed when TM_MIPS_H is defined.
-
-Wed Jul 31 20:21:24 1996 Fred Fish <fnf@cygnus.com>
-
- * rs6000-nat.c (add_vmap): Return 0 to caller rather than random value.
- (vmap_ldinfo): Ensure got_exec_file is not used uninitialized.
- (fetch_core_registers): Add prototype.
- (vmap_symtab): Ditto.
- (objfile_symbol_add): Ditto.
- (add_vmap): Ditto.
- (vmap_ldinfo): Ditto.
- (vmap_exec): Ditto.
-
-Tue Jul 30 17:57:46 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * stabsread.c (get_substring): Declare second arg as int.
-
- * remote-es.c: Include gdb_string.h after defs.h.
-
-Mon Jul 29 21:13:20 1996 Fred Fish <fnf@cygnus.com>
-
- * rs6000-tdep.c (push_arguments): Remove unused variable "pc".
- (branch_dest): Remove unused variable "offset".
- (pop_dummy_frame): Add prototype and make static.
- (push_arguments): Guard against using len uninitialized.
- (push_arguments): Guard against using arg uninitialized.
- (frame_saved_pc): Remove unused variable "frameless".
- (free_loadinfo): Ifdef out unused function.
-
- * xcoffread.c (compare_lte): Change prototype and function to
- be correct type for passing to qsort.
- (add_stab_to_list): Ifdef out unused function and prototype.
- (compare_lte): Add prototype
- (arrange_linetable): Ditto.
- (record_include_begin): Ditto.
- (record_include_end): Ditto.
- (process_linenos): Ditto.
- (xcoff_next_symbol_text): Ditto.
- (scan_xcoff_symtab): Ditto.
- (xcoff_initial_scan): Ditto.
-
- * mips-tdep.c (mips_read_processor_type): Add parens around
- bitwise-and operands in comparison; previous expression always
- evaluated to 0 because of equality comparison of two constants.
-
- * rs6000-tdep.c (skip_prologue): Add missing parens around
- operands of logical-or so that first operand does not bind
- to previous logical-and.
-
- * configure.in: Expand "long long" test to include code that triggers
- known problem on HPUX with native compiler.
- (configure): Regenerated.
-
-Mon Jul 29 18:12:27 1996 Jeffrey A Law (law@cygnus.com)
-
- * somsolib.c (som_solib_create_inferior_hook): Don't
- warn if __d_pid can't be found.
-
-Sun Jul 28 10:46:39 1996 Fred Fish <fnf@cygnus.com>
-
- * config/mips/tm-mips.h (struct frame_info): Forward decl.
- (struct type): Ditto.
- (struct value): Ditto.
-
- * config/mips/tm-mips.h (sigtramp_address): Move extern decl
- from mips-tdep.c to here.
- (sigtramp_end): Ditto.
- (fixup_sigtramp): Ditto.
-
- * config/mips/tm-mips.h (init_extra_frame_info): Add prototype.
- (mips_frame_chain): Ditto.
- (mips_step_skips_delay): Ditto.
- (mips_frame_saved_pc): Ditto.
- (mips_find_saved_regs): Ditto.
- (mips_frame_num_args): Ditto.
- (mips_pop_frame): Ditto.
- (mips_extract_return_value): Ditto.
- (mips_store_return_value): Ditto.
- (mips_push_dummy_frame): Ditto.
- (mips_push_arguments): Ditto.
- (mips_do_registers_info): Ditto.
- (ecoff_relocate_efi): Ditto.
- (ecoff_relocate_efi): Ditto.
- * irix4-nat.c (fetch_core_registers): Add prototype.
- * mips-tdep.c (read_next_frame_reg): Add prototype
- (heuristic_proc_start): Ditto.
- (heuristic_proc_desc): Ditto.
- (mips_print_register): Ditto.
- * config/mips/nm-irix5.h (procfs_set_watchpoint): Add prototype.
- (procfs_stopped_by_watchpoint): Ditto.
- * config/mips/nm-irix4.h (procfs_set_watchpoint): Add prototype.
- (procfs_stopped_by_watchpoint): Ditto.
- * config/alpha/tm-alpha.h (ecoff_relocate_efi): Add prototype.
- (struct symbol): Add forward decl for prototype.
-
- * breakpoint.c (internal_breakpoint_number): Only needed if
- GET_LONGJMP_TARGET or SOLIB_ADD is defined.
-
- * objfiles.c (ecoff_relocate_efi): Remove prototype.
-
-Sat Jul 27 17:47:35 1996 Fred Fish <fnf@cygnus.com>
-
- * configure.in: Add test for "long long" support.
- * configure: Regenerate with autoconf.
- * acconfig.h: Add CC_HAS_LONG_LONG
- * config.in: Regenerate with autoheader.
- * config/mips/tm-mips64.h (FORCE_LONG_LONG): Remove
- * config/sparc/tm-sp64.h (CC_HAS_LONG_LONG): Remove.
- * config/mips/tm-vr4300el.h (CC_HAS_LONG_LONG): Remove.
- * config/mips/tm-vr4300.h (CC_HAS_LONG_LONG): Remove.
- * config/mips/xm-irix5.h (CC_HAS_LONG_LONG): Remove
- (PRINTF_HAS_LONG_LONG): Remove.
- (FORCE_LONG_LONG): Remove.
- * config/powerpc/xm-aix.h (UINT_MAX): Undef and use gdb's version.
- * config/convex/xm-convex.h (CC_HAS_LONG_LONG): Remove
- (PRINTF_HAS_LONG_LONG): Remove.
- * config/xm-nbsd.h (CC_HAS_LONG_LONG): Remove.
- (PRINTF_HAS_LONG_LONG): Remove.
- * config/pa/tm-hppa.h (GET_FIELD): Put parens around
- subtraction inside shift. Put parens around subtraction
- in operand of bitwise and.
- (struct frame_info): Forward declare
- if __STDC__ defined.
- (frame_saved_regs): Ditto.
- (struct value): Ditto.
- (struct type): Ditto.
- (struct inferior_status): Ditto.
- (init_extra_frame_info): Add prototype.
- (skip_prologue): Ditto.
- (frameless_function_invocation): Ditto.
- (frame_chain): Ditto.
- (frame_chain_valid): Ditto.
- (saved_pc_after_call): Ditto.
- (hppa_fix_call_dummy): Ditto.
- (hppa_push_arguments): Ditto.
- (pa_do_registers_info): Ditto.
- (in_solib_call_trampoline): Ditto.
- (in_solib_return_trampoline): Ditto.
- (push_dummy_frame): Ditto.
- * convex-tdep.c (decout): Use print_longest rather than
- fprintf_filtered.
- * defs.h: Remove use of FORCE_LONG_LONG and __GNUC__ to set
- CC_HAS_LONG_LONG.
- (INT_MIN): Fix so it works correctly when assigned to a long long.
- * valprint.c (longest_to_int): Rewrite to remove dependence
- on INT_MIN and INT_MAX.
- (print_longest): Rewrite the code that falls back to synthesized
- hex output when LONGEST value is not representable as in a long and
- printf doesn't support printing long longs.
- * ch-valprint.c (chill_val_print): Cast 2nd arg of
- chill_print_type_scalar to LONGEST.
- chill_print_type_scalar): Make static and add prototype.
- * hppa-tdep.c (get_field): Ifdef out unused function.
- (set_field): Ditto.
- (extract_3): Ditto.
- (extract_5_store): Ditto.
- (extract_11): Ditto.
- (extract_12): Ditto.
- (deposit_17): Ditto.
- (extract_14): Convert to static and add prototype.
- (deposit_14): Ditto.
- (extract_21): Ditto.
- (deposit_21): Ditto.
- (extract_17): Ditto.
- (extract_5r_store): Ditto.
- (extract_5R_store): Ditto.
- (extract_5_load): Ditto.
- (find_proc_framesize): Ditto.
- (find_dummy_frame_regs): Ditto.
- (sign_extend): Ditto.
- (find_unwind_entry): Add prototype.
- (find_return_regnum): Ditto.
- (unwind_command): Ditto.
- (find_dummy_frame_regs): Add parens around subtraction in operand
- of bitwise-and.
- (skip_prologue): Add parens around operands of logical-and inside
- operand of logical-or.
- (sign_extend): Add parens around operands of subtraction inside
- operand of shift.
- (low_sign_extend): Ditto.
- * top.c (filename_completer): Convert old style decl of
- filename_completion_function into prototype.
- * f-lang.c (patch_common_entries): Ifdef out unused function.
- * stabsread.c (read_cfront_baseclasses): Remove unused local
- variable "msg_noterm".
- (resolve_cfront_continuation): Remove unused local variable "fip".
- (read_type): Remove unused variable xtypenums.
- (read_cfront_static_fields): Remove unused variable "i".
- (read_cfront_static_fields): Remove unused variable "nfields".
- (read_cfront_member_functions): Add missing comment terminator.
- (read_cfront_static_fields): Return 1 rather than random value.
- (read_cfront_baseclasses): Ditto.
- (read_cfront_baseclasses): Ditto.
- (read_cfront_baseclasses): Ditto.
- * somsolib.c (som_solib_create_inferior_hook): Remove unused
- variable "u".
- (som_solib_create_inferior_hook): Remove unused variable
- shadow_contents.
- (language.h): Add for needed prototypes.
- (som_solib_sharedlibrary_command): Add prototype.
- * hpread.c: (hpread_read_array_type): Add prototype.
- * somread.c (hpread_build_pysmtabs): Add prototype.
- (hpread_symfile_finish): Ditto.
- (hpread_symfile_init): Ditto.
- * hppah-nat.c (fetch_register): Convert old style decl
- to prototype.
- (gdbcore.h): Include for needed prototypes.
- (fetch_register): Remove unused variable "mess".
- * remote-pa.c (get_offsets): Ifdef out unused function.
- (remote_start_remote): Remove unused variable "timeout".
- (boot_board): Add prototype.
- (reaad_frame): Add prototype.
- (getpkt): Remove unused variable "bp".
- (remote_kill): Add prototype.
- (remote_mourn): Add prototype.
- (remote_insert_breakpoint): Add prototype.
- (remote_remove_breakpoint): Add prototype.
- * valops.c (value_push): Only use if PUSH_ARGUMENTS is not defined.
- * infcmd.c (do_registers_info): Only need prototype if
- DO_REGISTERS_INFO is not defined.
- (breakpoint_auto_delete_contents): Only need if
- CALL_DUMMY_BREAKPOINT_OFFSET is defined.
-
-Sat Jul 27 08:49:49 1996 Fred Fish <fnf@cygnus.com>
-
- * xcoffread.c (xcoff_end_psymtab): Add textlow_not_set parameter.
- (END_PSYMTAB): Ditto.
- (scan_xcoff_symtab): Call xcoff_end_psymtab with textlow_not_set.
-
-Fri Jul 26 14:07:37 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * printcmd.c (_initialize_printcmd): Initialize
- tm_print_insn_info.flavour.
-
-Thu Jul 25 19:41:31 1996 Fred Fish <fnf@cygnus.com>
-
- * Makefile.in (scm-valprint.o): Depends upon gdbcore_h.
- (arm-tdep.o): Ditto.
- (dcache.o): Ditto.
- (i386ly-tdep.o): Ditto.
- (i960-tdep.o): Ditto.
- (m68k-tdep.o): Ditto.
- (nindy-tdep.o): Ditto.
- (scm-lang.o): Ditto.
- (w65-tdep.o): Ditto.
- (z8k-tdep.o): Ditto.
- (m68k-tdep.o): Depends upon value_h and gdb_string.h
- (m2-valprint.o): Depends upon m2-lang.h.
- (sparc-tdep.o): Depends upon gdb_string.h
- (valprint.o): Depends upon valprint.h
-
- * remote-e7000.c (notice_quit): Remove prototype.
- * top.c (initialize_targets): Remove prototype, now in target.h.
- * stabsread.c (resolve_cfront_continuation): Remove prototype.
- * dbxread.c (resolve_cfront_continuation): Remove prototype.
- * symfile.h (set_demangling_style): Remove prototype.
- * config/tm-sysv4.h (in_plt_section): Remove prototype, in objfiles.h.
- * config/sparc/tm-sparc.h (single_step): Remove extern decl, now in
- target.h.
- * config/arc/tm-arc.h (one_stepped, single_step): Remove extern decls,
- now in target.h.
- * ser-unix.c (hardwire_restore): Remove obsolete prototype.
- * sparc-tdep.c (single_step): Remove forward decl of isbranch.
- * scm-lang.c (find_function_in_inferior): Remove prototype.
- (value_allocate_space_in_inferior): Ditto.
- * infrun.c (write_pc_pid): Remove prototype, now in inferior.h.
- * defs.h (strchr): Remove declarations, they are declared in
- gdb_string.h also.
- (strrchr): Ditto.
- (strstr): Ditto.
- (strtok): Ditto.
- (strerror): Ditto.
- * f-valprint.c (f77_print_array_1): Remove extra arg that was being
- passed to f77_print_array_1.
- * gdbtypes.c (add_name): Remove unused variables lenstrlen and lenstr.
- * scm-exp.c (scm_istr2int): Remove unused variable "j".
- (scm_parse): Remove unused variable "str".
- * hp300ux-nat.c (store_inferior_register): Remove unused variable
- "buf".
- (store_inferior_registers): Remove unnecessary decl "registers".
- * m68k-tdep.c (m68k_pop_frame): Remove unused variable "fi".
- * scm-lang.c (scm_get_field): Remove unused variable "val".
- (scm_lookup_name): Remove unused variable "symval".
- * objfiles.c (map_to_file): Remove unused local variable "tempfd".
- * procfs.c (do_attach, do_detach): Remove unused variable "result".
- (last_resume_pid): Remove unused static variable.
- * alpha-tdep.c (alpha_linux_sigtramp_offset): Remove unused variable
- "res".
- * objfiles.c (map_to_address): Remove unused function.
- * f-valprint.c (print_max): Remove extraneous extern decl,
- in valprint.h.
- (calc_f77_array_dims): Remove extraneous prototype, in f-lang.h.
- * ch-exp.c (write_lower_upper_value): Remove prototype for
- type_lower_upper.
-
- * gdbtypes.c (cfront_mangle_name): #ifdef out unused function.
- * ch-exp.c (parse_mode_call): Ditto.
- * f-valprint.c (there_is_a_visible_common_named): Ditto.
- * f-lang.c (clear_function_list): Ditto.
- (get_bf_for_fcn): Ditto.
- (clear_bf_list): Ditto.
- (add_common_block): Ditto.
- (patch_all_commons_by_name): Ditto.
- (find_first_common_named): Ditto.
- (add_common_entry): Ditto.
- (allocate_saved_function_node): Ditto.
- (allocate_saved_bf_node): Ditto.
- (allocate_common_entry_node): Ditto.
- (allocate_saved_f77_common_node): Ditto.
-
- * arm-tdep.c (gdbcore.h): Include for necessary prototypes.
- * dcache.c (gdbcore.h): Ditto.
- * i386ly-tdep.c (gdbcore.h): Ditto.
- * i960-tdep.c (gdbcore.h): Ditto.
- * m2-valprint.c (m2-lang.h): Ditto.
- * m68k-tdep.c (gdbcore.h): Ditto.
- (value.h): Ditto.
- (gdb_string.h): Ditto.
- * nindy-tdep.c (gdbcore.h): Ditto.
- * scm-lang.c (gdbcore.h): Ditto.
- * scm-valprint.c (gdbcore.h): Ditto.
- * w65-tdep.c (gdbcore.h): Ditto.
- * z8k-tdep.c (gdbcore.h): Ditto.
- * sparc-tdep.c (gdb_string.h): Include.
- * valprint.c (valprint.h): Include.
-
- * config/xm-lynx.h: Remove part of comment about INT_MIN
- redefined warnings from defs.h, since INT_MIN define in
- defs.h is now protected by #ifndef INT_MIN.
- * config/i386/xm-i386bsd.h: Ditto.
- * config/m68k/xm-hp300bsd.h: Ditto.
- * config/m68k/xm-news.h: Ditto.
-
- * config/pa/xm-hppah.h (INT_MIN): Remove bogus INT_MIN
- definition as 0x80000000. The macro in defs.h is better.
- * config/i386/xm-i386m3.h (INT_MIN): Ditto.
- * config/i386/xm-i386mach.h (INT_MIN): Ditto.
- * config/ns32k/xm-ns32km3.h (INT_MIN): Ditto.
- * config/pa/xm-hppab.h: Ditto.
-
- * core-aout.c (fetch_core_registers): Add prototype.
- * hp300ux-nat.c (fetch_inferior_register): Ditto.
- (store_inferior_register_1): Ditto.
- (store_inferior_register): Ditto.
- * config/m68k/tm-m68k.h (find_saved_regs): Ditto.
- *scm-valprint.c (c_val_print): Ditto.
- * procfs.c (add_fd): Ditto.
- (remove_fd): Ditto.
- (wait_fd): Ditto.
- (sigcodename): Ditto.
- (sigcodedesc): Ditto.
- (procfs_kill_inferior): Ditto.
- (procfs_xfer_memory): Ditto.
- (procfs_store_registers): Ditto.
- (create_procinfo): Ditto.
- (procfs_init_inferior): Ditto.
- (proc_set_exec_trap): Ditto.
- (procfs_attach): Ditto.
- (procfs_detach): Ditto.
- (procfs_prepare_to_store): Ditto.
- (procfs_files_info): Ditto.
- (procfs_open): Ditto.
- (procfs_wait): Ditto.
- (procfs_fetch_registers): Ditto.
- (procfs_mourn_inferior): Ditto.
- (procfs_can_run): Ditto.
- (procfs_thread_alive): Ditto.
- (procfs_stop): Ditto.
- * alpha-nat.c (fetch_core_registers): Ditto.
- * config/alpha/tm-alpha.h (alpha_osf_skip_sigtramp_frame): Ditto.
- * objfiles.c (ecoff_relocate_efi): Ditto.
- * inflow.c (pass_signal): Ditto.
- (handle_sigio): Ditto.
- * annotate.c (breakpoint_changed): Ditto.
- * callback.c (wrap): Ditto.
- (fdbad): Ditto.
- (fdmap): Ditto.
- * utils.c (malloc_botch): Ditto.
- (fputs_maybe_filtered): Ditto.
- (vfprintf_maybe_filtered): Ditto.
- * defs.h (notice_quit): Ditto.
- * defs.h (xmalloc, xrealloc): Ditto.
- * top.c (stop_sig): Ditto.
- (init_signals): Ditto.
- (user_defined_command): Ditto.
- (source_cleanup_lines): Ditto.
- (dont_repeat_command): Ditto.
- (serial_log_command): Ditto.
- (disconnect): Ditto.
- * target.h (initialize_targets): Ditto.
- * os9kread.c (read_minimal_symbols): Ditto.
- * mdebugread.c (mdebug_psymtab_to_symtab): Ditto.
- (fdr_name): Ditto.
- (push_parse_stack): Ditto.
- (pop_parse_stack): Ditto.
- (is_pending_symbol): Ditto.
- (add_pending): Ditto.
- * serial.c (serial_logchar): Ditto.
- (serial_interface_lookup): Ditto.
- * serial.h (serial_log_command): Ditto.
- * f-valprint.c (info_common_command): Ditto.
- * gdbtypes.h (print_type_scalar): Ditto.
- * scm-valprint.c (scm_scmlist_print): Ditto.
- (scm_ipruk): Ditto.
- * scm-lang.c (scm_printstr): Ditto.
- (in_eval_c): Ditto.
- (evaluate_subexp_scm): Ditto.
- * scm-exp.c (scm_read_token): Ditto.
- (scm_skip_ws): Ditto.
- (scm_lreadparen): Ditto.
- * m2-lang.c (emit_char): Ditto.
- (m2_printchar): Ditto.
- (m2_printstr): Ditto.
- (m2_create_fundamental_type): Ditto.
- * f-lang.c (emit_char): Ditto.
- (f_printchar): Ditto.
- (f_printstr): Ditto.
- (f_create_fundamental_type): Ditto.
- * ch-lang.c (chill_printchar): Ditto.
- (chill_printstr): Ditto.
- (chill_create_fundamental_type): Ditto.
- (value_chill_length): Ditto.
- (value_chill_card): Ditto.
- (value_chill_max_min): Ditto.
- (evaluate_subexp_chill): Ditto.
- * ch-exp.c (PEEK_TOKEN): Ditto.
- (peek_token_): Ditto.
- (forward_token_): Ditto.
- (parse_case_label): Ditto.
- (parse_opt_untyped_expr): Ditto.
- (parse_unary_call): Ditto.
- (parse_call): Ditto.
- (parse_named_record_element): Ditto.
- (parse_tuple_element): Ditto.
- (parse_opt_element_list): Ditto.
- (parse_tuple): Ditto.
- (parse_primval): Ditto.
- (parse_operand6): Ditto.
- (parse_operand5): Ditto.
- (parse_operand4): Ditto.
- (parse_operand3): Ditto.
- (parse_operand2): Ditto.
- (parse_operand1): Ditto.
- (parse_operand0): Ditto.
- (parse_expr): Ditto.
- (parse_then_alternative): Ditto.
- (parse_else_alternative): Ditto.
- (parse_if_expression): Ditto.
- (parse_untyped_expr): Ditto.
- (growbuf_by_size): Ditto.
- (match_simple_name_string): Ditto.
- (decode_integer_value): Ditto.
- (decode_integer_literal): Ditto.
- (match_float_literal): Ditto.
- (match_float_literal): Ditto.
- (match_string_literal): Ditto.
- (match_character_literal): Ditto.
- (match_integer_literal): Ditto.
- (match_bitstring_literal): Ditto.
- (write_lower_upper_value): Ditto.
- * ch-lang.h (type_lower_upper): Ditto.
- * c-lang.c (emit_char): Ditto.
- * dwarfread.c (free_utypes): Ditto.
- * stabsread.h (resolve_cfront_continuation): Ditto.
- * stabsread.c (get_substring): Ditto.
- (read_one_struct_field): Ditto.
- * stabsread.h (process_later): Ditto.
- * demangle.c (set_demangling_command): Ditto.
- * defs.h (set_demangling_style): Ditto.
- * maint.c (maintenance_info_command): Ditto.
- (print_section_table): Ditto.
- (maintenance_info_sections): Ditto.
- (maintenance_print_command): Ditto.
- * symtab.h (maintenance_print_statistics): Ditto.
- * objfiles.h (in_plt_section): Ditto.
- * objfiles.c (add_to_objfile_sections): Ditto.
- * bcache.c (hash): Ditto.
- (lookup_cache): Ditto.
- * exec.c (bfdsec_to_vmap): Ditto.
- (ignore): Ditto.
- * f-exp.y (growbuf_by_size, match_string_literal): Ditto.
- * language.c (unk_lang_printchar): Ditto.
- (unk_lang_printstr): Ditto.
- (unk_lang_create_fundamental_type): Ditto.
- (unk_lang_print_type): Ditto.
- (unk_lang_val_print): Ditto.
- (unk_lang_value_print): Ditto.
- * target.c (update_current_target): Ditto.
- (debug_to_open): Ditto.
- (debug_to_close): Ditto.
- (debug_to_attach): Ditto.
- (debug_to_detach): Ditto.
- (debug_to_resume): Ditto.
- (debug_to_wait): Ditto.
- (debug_to_fetch_registers): Ditto.
- (debug_to_store_registers): Ditto.
- (debug_to_prepare_to_store): Ditto.
- (debug_to_xfer_memory): Ditto.
- (debug_to_files_info): Ditto.
- (debug_to_insert_breakpoint): Ditto.
- (debug_to_remove_breakpoint): Ditto.
- (debug_to_terminal_init): Ditto.
- (debug_to_terminal_inferior): Ditto.
- (debug_to_terminal_ours_for_output): Ditto.
- (debug_to_terminal_ours): Ditto.
- (debug_to_terminal_info): Ditto.
- (debug_to_kill): Ditto.
- (debug_to_load): Ditto.
- (debug_to_lookup_symbol): Ditto.
- (debug_to_create_inferior): Ditto.
- (debug_to_mourn_inferior): Ditto.
- (debug_to_can_run): Ditto.
- (debug_to_notice_signals): Ditto.
- (debug_to_thread_alive): Ditto.
- (debug_to_stop): Ditto.
- * breakpoint.h (set_breakpoint_sal): Ditto.
- * remote-utils.c (usage): Ditto.
- * remote.c (set_thread): Ditto.
- (remote_thread_alive): Ditto.
- (get_offsets): Ditto.
- (read_frame): Ditto.
- (remote_insert_breakpoint): Ditto.
- (remote_remove_breakpoint): Ditto.
- * sparc-nat.c (fetch_core_registers): Ditto.
- * corelow.c (add_to_thread_list): Ditto.
- (ignore): Ditto.
- * inftarg.c (proc_wait): Ditto.
- * infptrace.c (udot_info): Ditto.
- (fetch_register): Ditto.
- * ser-unix.c (hardwire_noflush_set_tty_state): Ditto.
- (hardwire_print_tty_state): Ditto.
- (hardwire_flush_output): Ditto.
- (hardwire_flush_input): Ditto.
- (hardwire_send_break): Ditto.
- (hardwire_setstopbits): Ditto.
- * ser-tcp.c (tcp_return_0): Ditto.
- (tcp_noflush_set_tty_state): Ditto.
- (tcp_print_tty_state): Ditto.
- * solib.c (match_main): Ditto.
- * gdbtypes.c (print_bit_vector): Ditto.
- (print_arg_types): Ditto.
- (dump_fn_fieldlists): Ditto.
- (print_cplus_stuff): Ditto.
- * symfile.h (entry_point_address): Ditto.
- * symfile.c (decrement_reading_symtab): Ditto.
- * valops.c (value_arg_coerce): Ditto.
- * value.h (find_function_in_inferior): Ditto.
- (value_allocate_space_in_inferior): Ditto.
- * values.c (vb_match): Ditto.
- * thread.c (info_thread_command): Ditto.
- (restore_current_thread): Ditto.
- (thread_apply_all_command): Ditto.
- (thread_apply_command): Ditto.
- * inferior.h (write_pc_pid): Ditto.
- * infrun.c (delete_breakpoint_current_contents): Ditto.
- * breakpoint.c (print_it_normal): Ditto.
- (watchpoint_check): Ditto.
- (print_it_done): Ditto.
- (print_it_noop): Ditto.
- (maintenance_info_breakpoints): Ditto.
- (create_longjmp_breakpoint): Ditto.
- (hbreak_command): Ditto.
- (thbreak_command): Ditto.
- (watch_commnd_1): Ditto.
- (rwatch_command): Ditto.
- (awatch_command): Ditto.
- (do_enable_breakpoint): Ditto.
- * ch-valprint.c (chill_val_print_array_elements): Ditto.
- * eval.c (evaluate_subexp): Ditto.
- (get_label): Ditto.
- (evaluate_struct_tuple): Ditto.
- * eval.c (init_array_element): Ditto.
-
- * alpha-tdep.c (push_sigtramp_desc): Add prototype and make static.
- * breakpoint.c (hw_breakpoint_used_count): Ditto.
- (hw_watchpoint_used_count): Ditto.
- * findvar.c (write_register_gen): Ditto.
- (read_register_pid): Ditto.
- * symtab.c (cplusplus_hint): Ditto.
- * infcmd.c (breakpoint_auto_delete_contents): Ditto.
- * ch-valprint.c (chill_print_type_scalar): Ditto.
- * gdbtypes.c (add_name): Ditto.
- (add_mangled_type): Ditto.
- (cfront_mangle_name): Ditto.
- * sparc-tdep.c (isbranch): Ditto.
- * inftarg.c (child_stop): Ditto.
- * win32-nat.c (child_stop): Ditto.
- * mac-nat.c (child_stop): Ditto.
- * remote-utils.c (sr_com): Ditto.
- * dbxread.c (process_now): Ditto.
- * ch-exp.c (require): Ditto.
- (check_token): Ditto.
- (expect): Ditto.
- (parse_mode_call): Ditto.
- (parse_mode_or_normal_call): Ditto.
- * scm-lang.c (scm_lookup_name): Ditto
- * f-lang.c (allocate_saved_bf_node): Ditto.
- (allocate_saved_function_node): Ditto.
- (allocate_saved_f77_common_node): Ditto.
- (allocate_common_entry_node): Ditto.
- (add_common_block): Ditto.
- (add_common_entry): Ditto.
- (find_first_common_named): Ditto.
- (patch_common_entries): Ditto.
- (patch_all_commons_by_name): Ditto.
- (clear_bf_list): Ditto.
- (get_bf_for_fcn): Ditto.
- (clear_function_list): Ditto.
- * scm-exp.c (scm_istr2int): Ditto.
- (scm_istring2number): Ditto.
- * scm-valprint.c (scm_inferior_print): Ditto.
- * f-typeprint.c (print_equivalent_f77_float_type): Ditto.
- * f-valprint.c (f77_get_dynamic_length_of_aggregate): Ditto.
- (f77_create_arrayprint_offset_tbl): Ditto.
- (f77_print_array_1): Ditto.
- (f77_print_array): Ditto.
- (list_all_visible_commons): Ditto.
- (there_is_a_visible_common_named): Ditto.
- * mdebugread.c (ecoff_relocate_efi): Ditto.
- * callback.c (os_close): Ditto.
- (os_get_errno): Ditto.
- (os_isatty): Ditto.
- (os_lseek): Ditto.
- (os_open): Ditto.
- (os_read): Ditto.
- (os_read_stdin): Ditto.
- (os_write): Ditto.
- (os_write_stdout): Ditto.
- (os_rename): Ditto.
- (os_system): Ditto.
- (os_time): Ditto.
- (os_unlink): Ditto.
- (os_shutdown): Ditto.
- (os_init): Ditto.
- (os_printf_filtered): Ditto.
-
- * scm-lang.h (scm_parse): Change old style decl to prototype.
- * config/alpha/tm-alphalinux.h (alpha_linux_sigtramp_offset): Ditto.
- * top.c (init_proc): Ditto.
- (query_hook): Ditto.
- (error_hook): Ditto.
- * f-lang.c (c_value_print): Ditto.
- * ch-exp.c (parse_expression): Ditto.
- (parse_primval): Ditto.
- (parse_untyped_expr): Ditto.
- (parse_opt_untyped_expr): Ditto.
- (ch_lex): Ditto.
- * config/sparc/tm-sparc.h (sparc_init_extra_frame_info): Ditto.
- (sparc_frame_saved_pc): Ditto.
- (sparc_push_dummy_frame): Ditto.
- (sparc_pop_frame): Ditto.
- * defs.h (fclose): Ditto.
- (atof): Ditto.
- (error_hook): Ditto.
-
- * arc-tdep.c (single_step): Change arg to type "enum target_signal".
- * rs6000-tdep.c (single_step): Ditto.
- * sparc-tdep.c (single_step): Ditto.
-
- * breakpoint.c (cleanup_executing_breakpoints): Change unused arg type
- to PTR which is what make_cleanup expects.
- * utils.c (null_cleanup): Change arg type to PTR.
- * defs.h (null_cleanup): Change prototype to match actual function.
- * config/sparc/tm-sparc.h (struct frame_info): Move forward decl.
- * ch-valprint.c (chill_val_print): Cast 2nd arg of
- chill_print_type_scalar to LONGEST.
- * infrun.c (wait_for_inferior): Have empty switch case for
- BPSTAT_WHAT_CHECK_SHLIBS when SOLIB_ADD is not defined.
- (stop_on_solib_events): Only needed if SOLIB_ADD is defined.
- * infcmd.c (attach_command): Only need auto_solib_add if SOLIB_ADD
- is defined.
- * symfile.c (generic_load): Scan long int using a long int spec,
- not an int spec.
- * infptrace.c (udot_info): Only need local variables if KERNEL_U_SIZE
- is defined.
- (fetch_register): Only need function if FETCH_INFERIOR_REGISTERS is
- not defined.
- * inflow.c (handle_sigio): Only need prototype when the actual
- function is compiled in.
- * valprint.c (longest_to_int): Expand error message to be
- separate messages for args larger than largest signed int
- and args smaller than smallest signed int.
- * valprint.c (print_longest): Fix problems with support for case
- where compiler supports type "long long" but the runtime doesn't
- support printing them with "%ll".
- * scm-valprint.c (scm_scmlist_print, scm_scmval_print): Change
- return types to void since we don't actually return anything
- meaningful and callees ignore the values anyway.
- * procfs.c (modify_inherit_on_fork_flag): Enclose pr_flags in PIOCSET
- ifdef.
- (modify_run_on_last_close_flag): Ditto.
- (wait_fd): Enclose local variables "num_fds" and "i" LOSING_POLL
- ifdef
- * alpha-tdep.c (push_sigtramp_desc): Return proc_desc rather than
- random value.
- * infrun.c (wait_for_inferior): Ensure random_signal is not used
- uninitialized.
- * valops.c (call_function_by_hand): Ensure struct_addr is not used
- uninitialized.
- * breakpoint.c (watch_command_1): Ensure prev_frame is not used
- uninitialized.
- * utils.c (vfprintf_maybe_filtered): Change second arg from "char *"
- to "const char *".
- * infptrace.c (udot_info): Add two dummy args so that the type is
- correct for passing to add_info.
- * f-lang.c (saved_fcn): Move decl to head of file so it can be used
- in prototypes.
- (saved_bf_symnum): Ditto.
- (SAVED_FUNCTION): Ditto.
- (SAVED_FUNCTION_PTR): Ditto.
- (SAVED_BF): Ditto.
- (SAVED_BF_PTR): Ditto.
- * ch-exp.c (parse_named_record_element): Build error message in
- temporary buffer before passing it to expect, rather than passing
- wrong number of args to expect.
- * demangle.c (set_demangling_style): Call set_demangling_command with
- correct number of arguments.
- * inferior.h (terminal_init_inferior_with_pgrp): Change arg type to
- int to match actual function.
- (os_isatty): Call fdmap with right number of arguments, was missing
- the host_callback* arg.
- * target.c (cleanup_target): Prototype all functions casts.
- * target.h (one_stepped, single_step): Declare here and convert
- single_step to prototype.
- * infrun.c (one_stepped, single_step): Don't declare externs
- here, they have moved to target.h.
- * eval.c (init_array_element): Declare previously undeclared
- last two args as LONGEST.
- * dcache.c (dcache_xfer_memory): Change xfunc decls to prototype form.
-
-Thu Jul 25 16:11:54 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * dsrec.c (load_srec): Protect ANSI style function parms with PARAMS.
-
-Mon Jul 22 18:13:27 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * Makefile.in (os9kread.o): Remove dependency on partial-stab.h.
- * dbxread.c (read_dbx_symtab end_psymtab), partial-stab.h: Don't
- use partial_symtab->textlow==0 as a flag, as 0 is a legitimate
- text address. Use a seperate flag (textlow_not_set) instead.
- This makes stabs in ELF .o files work a lot better.
- * mdebugread.c xcoffread.c: Define textlow_not_set for
- partial-stab.h.
- * stabsread.h (end_psymtab): Add textlow_not_set arg to prototype.
-
-Sat Jul 20 10:41:06 1996 Fred Fish <fnf@cygnus.com>
-
- * dwarf2read.c (struct filenames): Change internal "struct file"
- to "struct fileinfo" to avoid conflict with "struct file" in
- <sys/file.h> on HPUX and Solaris.
-
-Fri Jul 19 14:05:57 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * dwarf2read.c: New file, DWARF 2 reader originally contributed by
- Brent Benson, with additions by Gary Funck and Jerry Kreuscher.
- * Makefile.in (COMMON_OBS): Add dwarf2read.o.
- (SFILES): Add dwarf2read.c.
- (dwarf2read.o): Add build rule.
- * symfile.h (dwarf2_has_info, dwarf2_build_psymtabs): Declare
- exported functions.
- * elfread.c (elf_symfile_read): Call them.
- (elf_symtab_read) [HARRIS_TARGET]: Skip some special symbols.
-
-Thu Jul 18 01:22:01 1996 Geoffrey Noer <noer@cygnus.com>
-
- * symfile.c (symfile_bfd_open):
- * exec.c (exec_file_command): for __GO32__ and __WIN32__ systems,
- free the user from having to type the .exe extension.
-
-Wed Jul 17 06:54:50 1996 Mark Alexander <marka@cygnus.com>
-
- * mon960-rom.c: Shorten the mon960_inits string to a single
- carriage return; this prevents a hang on connecting immediately
- after powerup, when MON960 is attempting autobaud detection.
-
-Tue Jul 16 23:47:04 1996 Mark Alexander <marka@cygnus.com>
-
- * a29k-tdep.c (get_saved_register): Allow PC to be modified
- when innermost frame is selected, but not in outer frames.
-
-Tue Jul 16 23:37:25 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * command.c (do_setshow_command): Don't segfault when showing
- var_string and var_string_noescape vars that are NULL.
-
-Mon Jul 15 16:55:48 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * win32-nat.c (handle_load_dll): dos_path_to_unix_path renamed to
- cygwin32_conv_to_posix_path.
- (child_create_inferior): unix_path_to_dos_path renamed to
- cygwin32_conv_to_win32_path. Rewrite code to translate PATH.
-
-Mon Jul 15 16:44:05 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * defs.h printcmd.c: Create global disassemble_info structure
- tm_print_insn_info.
- * i386-tdep.c (set_assembly_language_command): set
- tm_print_insn_info.mach to the appropriate value for 386 or 8086
- disassembly.
- * printcmd.c (print_insn): Move init of disassembler_info to
- _initialize_printcmd. Set endian for disassembler here.
- * sparc-tdep.c: Set tm_print_insn_info.mach as appropriate to
- select sparc/sparclite.
- * config/sparc/{tm-sparc.h tm-sparclite.h}: Get rid of
- TM_PRINT_INSN. Set TM_PRINT_INSN_MACH to
- bfd_mach_sparc/bfd_mach_sparc_sparclite.
-
-Fri Jul 12 19:04:32 1996 Fred Fish <fnf@cygnus.com>
-
- * hpread.c (hpread_lookup_type): Use xmmalloc/xmrealloc rather
- than xmalloc/xrealloc.
-
-Fri Jul 12 17:59:47 1996 Fred Fish <fnf@cygnus.com>
-
- * objfiles.c (map_to_file): Error return from mmalloc_findbase is
- a NULL pointer, not a -1.
-
-Fri Jul 12 10:16:24 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * i386-tdep.c (set_assembly_language_command): New routine to
- select between i386 and i8086 instruction sets for disassembly.
- New command `set assembly-language {i386 i8086}'.
-
-Thu Jul 11 21:13:21 1996 Mark Alexander <marka@cygnus.com>
-
- * monitor.c (monitor_write_memory, monitor_read_memory_single):
- Disable use of "long long" memory read/write commands; can't
- use them because we hold the values to read/write in an int
- variable, and because strtoul fails on values that exceed the
- size of a long. This fixes breakpoint problems on MON960.
-
-Thu Jul 11 11:39:31 1996 Fred Fish <fnf@cygnus.com>
-
- * config/m68k/xm-hp300hpux.h (HAVE_MMAP): Remove definition.
- * config/pa/xm-hppah.h (HAVE_MMAP): Ditto.
-
-Wed Jul 10 16:54:41 1996 Fred Fish <fnf@cygnus.com>
-
- * Makefile.in (MMALLOC_CFLAGS): Eliminate intermediate MMALLOC_DISABLE
- and MMALLOC_CHECK macros, and add comment indicating how host dependent
- makefile fragment should modify MMALLOC_CFLAGS to not use mmalloc, or
- to use it but to not do heap corruption checking.
- * gdbserver/Makefile.in: Ditto.
- * utils.c (init_malloc): Replace warning() use with direct call of
- fprintf_unfiltered, since current_target has not yet been set and thus
- we cannot use warning(). If we try to use mmcheck and it fails,
- suggest that this configuration needs NO_MMCHECK or MMCHECK_FORCE
- defined. Other small mmalloc related cleanups.
- * config/sparc/sun4os4.mh (MMALLOC_CFLAGS): Define MMCHECK_FORCE to 1.
- * config/alpha/alpha-osf2.mh (MMALLOC_CFLAGS): Set to -DNO_MMCHECK.
-
- * config/sparc/xm-sun4os4.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
- * config/i386/xm-i386v4.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
- * config/i386/xm-linux.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
- * config/m68k/xm-hp300hpux.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
- * config/m68k/xm-m68kv4.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT);
- * config/m68k/xm-sun3os4.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
- * config/pa/xm-hppah.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
- * config/sparc/xm-sun4sol2.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
- Remove obsolete defines.
-
- * config/alpha/alpha-linux.mh (MMALLOC_DISABLE):
- * config/alpha/alpha-osf1.mh (MMALLOC_DISABLE):
- * config/rs6000/rs6000.mh (MMALLOC_DISABLE):
- * config/rs6000/aix4.mh (MMALLOC_DISABLE):
- * config/powerpc/aix4.mh (MMALLOC_DISABLE):
- * config/powerpc/aix.mh (MMALLOC_DISABLE):
- * config/ns32k/ns32km3.mh (MMALLOC_DISABLE):
- * config/mips/mipsm3.mh (MMALLOC_DISABLE):
- * config/mips/decstation.mh (MMALLOC_DISABLE):
- * config/m88k/cxux.mh (MMALLOC_DISABLE):
- * config/i386/i386mk.mh (MMALLOC_DISABLE):
- * config/i386/i386m3.mh (MMALLOC_DISABLE):
- * config/i386/i386gnu.mh (MMALLOC_DISABLE):
- Use MMALLOC_CFLAGS instead.
-
-Tue Jul 9 22:41:12 1996 Jeffrey A Law (law@cygnus.com)
-
- * h8300-tdep.c: Remove some outdated comments.
- (h8300_skip_prologue): Rework to be more correct for the H8/300H.
- Handle stm.l insns for the H8/S.
- (examine_prologue): Likewise.
-
-Tue Jul 9 16:48:55 1996 Raymond Jou <rjou@mexican.cygnus.com>
-
- * ser-mac.c (mac_close): Change a typo SetSetBuf to SerSetBuf.
-
-Mon Jul 08 08:50:39 1996 Mark Alexander <marka@cygnus.com>
-
- * mon960-rom.c (mon960_open): Add floating point detection to
- prevent hang on non-FPU processors (PR 9775).
- (mon960_cmds): Swap setmem.cmdw and setmem.cmdl to fix problem
- setting breakpoints and improve loading speed.
-
-Sun Jul 7 14:57:34 1996 Fred Fish <fnf@cygnus.com>
-
- * coffread.c (record_minimal_symbol): Don't presave name string
- on symbol_obstack before passing to prim_record_minimal_symbol.
- It now handles saving the string itself.
- * dbxread.c (read_dbx_dynamic_symtab): Ditto.
- * mipsread.c (read_alphacoff_dynamic_symtab): Ditto.
- * os9kread.c (record_minimal_symbol): Ditto.
- * solib.c (solib_add_common_symbols): Ditto.
-
- * coffread.c (coff_symtab_read): Don't presave name string on
- symbol_obstack before passing to prim_record_minimal_symbol_and_info.
- It now handles saving the string itself.
- * dbxread.c (record_minimal_symbol): Ditto.
- * elfread.c (record_minimal_symbol_and_info): Ditto.
-
- * dstread.c (record_minimal_symbol): Remove static function that just
- called prim_record_minimal_symbol with the same args (after change to
- prim_record_minimal_symbol to do it's own name string saves).
- * nlmread.c (record_minimal_symbol): Ditto.
- * somread.c (record_minimal_symbol): Ditto.
-
- * hpread.c (hpread_read_enum_type): Save symbol name on symbol obstack.
- (hpread_read_function_type): Ditto.
- (hpread_process_one_debug_symbol): Ditto.
- * mdebugread.c (parse_symbol): Ditto.
- (new_symbol): Ditto.
- * minsyms.c (prim_record_minimal_symbol_and_info): Ditto.
-
- * coffread.c (process_coff_symbol): Use obsavestring to save
- SYMBOL_NAME, rather than obstack_copy0.
- * dstread.c (create_new_symbol): Ditto
- * symfile.c (obconcat): Ditto.
- * stabsread.c (patch_block_stabs): Ditto.
- * xcoffread.c (SYMNAME_ALLOC): Ditto.
-
- * symfile.c (obsavestring): Update comments
- * solib.c (solib_add_common_symbols): Remove local var origname.
-
-Wed Jul 3 15:56:08 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * configure: Re-build with autoconf-2.10.
-
- * sparcl-tdep.c (_initialize_sparc_tdep) config/sparc/tm-sparc.h,
- config/sparc/tm-sparclite.h: Initialize tm_print_insn from
- TM_PRINT_INSN, which comes from the tm file.
-
-Tue Jul 02 21:41:20 1996 Mark Alexander <marka@cygnus.com>
-
- * coffread.c, dbxread.c, elfread.c, mipsread.c, nlmread.c,
- os9kread.c: Replace identical sym_offsets functions with
- default_symfile_offsets.
- * somread.c (som_symfile_offsets): Use new SIZEOF_SECTION_OFFSETS
- macro to allocate section_offsets.
- * symfile.c (default_symfile_offsets): New function.
- * symfile.h: Declare default_symfile_offsets.
- * symtab.h: Define SIZEOF_SECTION_OFFSETS macro to
- simplify allocation of section_offsets.
-
-Tue Jun 11 12:02:55 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * Makefile.in (INTERNAL_LDFLAGS): Add in flags from configure.
- * configure configure.in: Only make sol-thread.o for native.
- Also, switch to dlopened libthread_db.so.1.
- * sol-thread.c: Switch to using dlopen to get the thread_db
- library.
-
-Thu Jun 13 16:53:25 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * configure, configure.in: Change test for libthread_db to only
- work for configs where build/host/target are the same.
-
-Tue Jul 2 15:04:20 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * config/powerpc/{linux.mh,xm-linux.h}: New files, for Linux on
- PowerPC.
-
- * configure.in (powerpc-*-linux): Add Linux, System V, and ELF
- support.
- * configure: Regenerate.
-
-Mon Jul 1 13:00:43 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- From Raymond Jou <rjou@mexican.cygnus.com>:
- * mpw-make.sed: Add lines to whack out autoconf hook
- @CONFIG_LDFLAGS@.
-
-Mon Jul 01 11:07:15 1996 Mark Alexander <marka@cygnus.com>
-
- * remote-e7000.c (e7000_stop): New function.
-
-Fri Jun 28 06:34:19 1996 Dawn Perchik <dawn@cygnus.com>
-
- * configure, configure.in: Add target sparclet.
- * monitor.h, monitor.c: Added monitor flags MO_NO_ECHO_ON_SETMEM
- (don't expect echo on setmem command), MO_RUN_FIRST_TIME (if
- command to start process running on target is different from one
- to continue execution), MO_HEX_PREFIX (if addresses from monitor
- have a "0x" prefix).
- * monitor.c, parse.c, sparc-tdep.c: Don't require strings in the
- registers array. This is to allow NULLs to be place holders in
- the tm-*.h file so that only minor changes are needed when a new
- processor is introduced (eg, one without floating point).
- * sparc-tdep.c: Conditionally remove dependancies on floating
- point.
- * sparclet-rom.c, config/sparc/sparclet.mt,
- config/sparc/tm-sparclet.h: New files for target sparclet.
- * symfile.c (load_command): Add option for 2nd parameter; a load
- offset added to the vma of each section.
-
-Fri Jun 28 05:39:19 1996 Dawn Perchik <dawn@cygnus.com>
-
- * main.c (main): Add option "l" for setting remote_timeout.
-
-Fri Jun 28 05:25:18 1996 Dawn Perchik <dawn@cygnus.com>
-
- * remote-e7000.c, remote.c, target.h, top.c: Add set option
- "remote_timeout" for setting remote_timeout. Add set option
- "use_hard_breakpoints" for setting hardware .vs. memory
- breakpoints.
-
-Fri Jun 28 04:32:18 1996 Dawn Perchik <dawn@cygnus.com>
-
- * remote-e7000.c (e7000_parse_device): New function.
- Add option "tcp_remote" to target command if using
- tcp to connect to a remote host which is then connected
- via serial port to the e7000 (for exampole, a port master).
- (e7000_open): Change to call e7000_parse_device.
-
-Fri Jun 28 03:47:17 1996 Dawn Perchik <dawn@cygnus.com>
-
- * monitor.c (monitor_debug): Fix remotedebug buffering.
-
-Thu Jun 27 18:24:17 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * config/i386/cygwin32.mh, config/powerpc/cygwin32.mh
- (NATDEPFILES): Add a space.
-
-Wed Jun 26 06:05:39 1996 Wilfried Moser <moser@rtl.cygnus.com>
-
- * gdbtypes.c (create_array_type): If TYPE_LENGTH (result_type)
- is zero, set TYPE_FLAG_TARGET_STUB to force reevaluation of the type.
-
- * ch-exp.c (calculate_array_length): Function removed.
-
-Tue Jun 25 17:41:06 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * remote-e7000.c (e7000_read_inferior_memory_large): New function.
- (e7000_xfer_inferior_memory): Call it.
-
-Tue Jun 25 23:14:07 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
-
- * gdb/gdbserver/Makefile.in (docdir): Removed.
-
-Tue Jun 25 22:05:38 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
-
- * Makefile.in (bindir, libdir, datadir, mandir, infodir, includedir):
- Use autoconf set values.
- (docdir): Removed.
- * configure.in (AC_PREREQ): autoconf 2.5 or higher.
- * nlm/Makefile.in (bindir, libdir, datadir, mandir, infodir,
- includedir): Use autoconf set values.
- (docdir): Removed.
- * nlm/configure.in (AC_PREREQ): autoconf 2.5 or higher.
- * nlm/configure: Rebuilt.
- * gdb/gdbserver/Makefile.in (datadir): Set to $(prefix)/share.
-
-Mon Jun 24 09:56:14 1996 Angela Marie Thomas (angela@cygnus.com)
-
- * stabsread.c (read_cfront_member_functions): add type
-
-Sun Jun 23 23:40:48 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * win32-nat.c: #include <unistd.h>.
- (unix_paths_to_dos_paths, dos_paths_to_unix_paths): Delete.
- (child_create_inferior): Convert only env var PATH to win32 style.
- (set_pathstyle_dos): Delete.
- (_initialize_inftarg): Delete dos-path-style command.
-
-Thu Jun 20 13:42:23 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * configure.in: Revise sol-thread.o test.
- * configure: Regenerated.
-
- * source.c (find_source_lines): Reassign size to result of read.
-
-Tue Jun 18 16:25:54 1996 Jeffrey A. Law <law@rtl.cygnus.com>
-
- * h8300-dep.c (gdb_print_insn_h8300): Handle the H8/S.
- (h8300_command): Likewise.
- (set_machine): Likewise.
- (set_machine_hook): Likewise.
- (_initialize_h8300m): Likewise.
-
- * config/h8300/tm-h8300.h (h8300smode): Declare.
-
-Sun Jun 16 15:21:51 1996 Jeffrey A. Law <law@rtl.cygnus.com>
-
- * somsolib.c (som_solib_create_inferior_hook): Handle tracking
- of shl_load calls for hpux10.
-
-Thu Jun 13 11:16:10 1996 Tom Tromey <tromey@thepub.cygnus.com>
-
- * config.in: Regenerated.
- * acconfig.h (HAVE_THREAD_DB_LIB): Added entry.
-
- * configure: Regenerated.
- * aclocal.m4 (CY_AC_PATH_TCLH, CY_AC_PATH_TKH): Use odd names to
- avoid name clashes with SunOS headers.
-
-Tue Jun 11 19:52:50 1996 Fred Fish <fnf@cygnus.com>
-
- From Michael Snyder <Michael_Snyder@next.com>:
- * bcache.c (print_bcache_statistics): Avoid divide-by-zero
- exception if one or more objfile has no symbols, such as when
- a dynamic library has been stripped.
-
-Tue Jun 11 12:02:55 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * Makefile.in (INTERNAL_LDFLAGS): Add in flags from configure.
- * configure configure.in: Only make sol-thread.o for native.
- Also, switch to dlopened libthread_db.so.1.
- * sol-thread.c: Switch to using dlopen to get the thread_db
- library.
-
-Mon Jun 10 14:17:19 1996 Fred Fish <fnf@cygnus.com>
-
- * config/sparc/{xm-sun4sol2.h,xm-sun4os4.h} (MMAP_BASE_ADDRESS):
- Change from 0xE0000000 to 0xC0000000.
-
-Thu Jun 6 17:10:32 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * config/powerpc/xm-solaris.h: Initial version of support for
- Solaris on PowerPC.
-
-Wed Jun 5 01:52:57 1996 James G. Smith <jsmith@cygnus.co.uk>
-
- * configure.in (configdirs): Force 4100 builds to use 4300 GDB
- target.
- * configure: Rebuild.
-
- * config/mips/vr4300el.mt (SIM_OBS): Include simulator in
- little-endian builds.
-
-Mon Jun 3 11:48:29 1996 Jeffrey A Law (law@cygnus.com)
-
- * inftarg.c (child_thread_alive): Protect declaration with
- #ifndef CHILD_THREAD_ALIVE.
-
- * source.c (find_source_lines): Check the time on the symtab's bfd if
- it exists, else check the time on the exec_bfd.
-
-Thu May 30 09:43:17 1996 Mark Alexander <marka@cygnus.com>
-
- * dsrec.c (make_srec): Fix calculation of address size
- to allow addresses less than 0x100.
-
-Thu May 30 04:24:09 1996 Wilfried Moser <moser@rtl.cygnus.com>
-
- * ch-exp.c (ch_lex): In case of LOC_TYPEDEF call calculate_array_length.
-
-Tue May 28 16:15:47 1996 Geoffrey Noer <noer@cygnus.com>
-
- * remote-mips.c: cannot use EINVAL for breakpoint test since
- its value varies for different hosts (e.g. go32's is 19, while
- sunos is 22). Changed to hardcoded 22 since that is what the
- mips boards return.
-
-Tue May 28 11:14:58 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * configure: Regenerated.
- * aclocal.m4 (CY_AC_PATH_TCLH): Don't use AC_TRY_RUN.
- (CY_AC_PATH_TKH): Don't use AC_TRY_RUN.
-
-Sun May 26 16:56:35 1996 Miles Bader <miles@gnu.ai.mit.edu>
-
- * solib.c (solib_absolute_prefix, solib_search_path): New variables.
- (_initialize_solib): Add set/show commands for those variables.
- (solib_map_sections): Implement searching using them.
-
-Sun May 26 14:14:49 1996 Fred Fish <fnf@cygnus.com>
-
- Changes from: David Mosberger-Tang <davidm@azstarnet.com>
-
- * NEWS: Add Alpha Linux as a new native configuration.
-
- * mdebugread.c (parse_symbol): When we find a malloc() symbol with
- return type VOID, assume no debugging info is available for that
- object file and patch the return value into VOID *. Otherwise,
- operations requiring an implicit call to malloc() will fail.
-
- * infrun.c (wait_for_inferior): The criterion to detect entering a
- sigtramp handler is now: (a) the current pc is inside a sigtramp
- handler, (b) the previous pc is not in a sigtramp handler, and (c)
- the current stack pointer is "inner" than the old one. Condition
- (c) is new to avoid mistaking a return from a signal handler into
- sigtramp as a new sigtramp invocation.
-
- * dcache.c (struct dcache_block): Declare addr as CORE_ADDR. An
- int may not be big enough to hold an address.
- (dcache_hit): Ditto.
- (dcache_peek_byte): Fix indentation.
-
- * configure.in (alpha-*-linux*): Add target.
- * configure: Rebuild
-
- * config/alpha/tm-alpha.h (PROC_DESC_IS_DYN_SIGTRAMP): New macro.
- (SET_PROC_DESC_IS_DYN_SIGTRAMP): Ditto.
- (DYNAMIC_SIGTRAMP_OFFSET): Ditto.
- (SIGCONTEXT_ADDR): Ditto.
- (FRAME_PAST_SIGTRAMP_FRAME): Ditto.
-
- * config/alpha/alpha-linux.mh: New file.
- * config/alpha/alpha-linux.mt: Ditto.
- * config/alpha/nm-linux.h: Ditto.
- * config/alpha/tm-alphalinux.h: Ditto.
- * config/alpha/xm-alphalinux.h: Ditto.
- * config/alpha/xm-alphaosf.h: Renamed from xm-alpha.h.
- * config/alpha/alpha-osf1.mh (XM_FILE): Change from xm-alpha.h to
- xm-alphaosf.h.
- * config/alpha/alpha-osf2.mh: Ditto.
-
- * blockframe.c (find_pc_partial_function): Pass PC to
- SIGTRAMP_START and SIGTRAMP_END macros for the benefit of systems
- that detect sigtramp code via designated code sequences (as is the
- case for Linux/Alpha, for example).
-
- * config/i386/tm-i386bsd.h: Change SIGTRAMP_START and SIGTRAMP_END
- to ignore new PC argument.
- * config/m68k/tm-hp300bsd.h: Ditto.
- * config/vax/tm-vax.h: Ditto.
-
- * alpha-tdep.c (alpha_linux_sigtramp_offset): New function.
- (alpha_osf_skip_sigtramp_frame): Ditto.
- (push_sigtramp_desc): Ditto.
- (alpha_find_saved_regs): Use SIGCONTEXT_ADDR macro to extract
- sigcontext address from frame.
- (alpha_saved_pc_after_call): When in sigtramp, use
- alpha_frame_saved_pc() instead of read-register().
- (after_prologue): When inside a dynamically generated sigtramp
- function, there is no prologue, so return address of first
- instruction.
- (alpha_in_prologue): Fix typo in comment.
- (find_proc_desc): Use macro DYNAMIC_SIGTRAMP_OFFSET to determine
- whether we're inside a dynamicaly generated sigtramp function. If
- so, create and push and appropriate procedure descriptor.
- (alpha_frame_chain): Use macro FRAME_PAST_SIGTRAMP_FRAME to obtain
- the frame past a sigtramp frame (if the current frame is indeed a
- sigtramp function).
- (init_extra_frame_info): Don't read next frame register off of
- stack-pointer when inside a dynamiccaly generated sigtramp.
- (alpha_pop_frame): Also unlink and destroy procedure descriptors
- created for dynamically generated sigtramp functions.
-
- * alpha-nat.c: When compiling under Linux, include <asm/reg.h> and
- <alpha/ptrace.h> instead of <machine/reg.h>
-
-Tue Jul 2 13:58:10 1996 Miles Bader <miles@gnu.ai.mit.edu>
-
- * gnu-nat.c (inf_validate_task_sc):
- Give terminal to gdb while asking question.
- (inf_resume): Don't validate the task suspend-count while execing.
-
-Thu Jun 13 11:04:52 1996 Miles Bader <miles@gnu.ai.mit.edu>
-
- * gnu-nat.c (inf_validate_task_sc): Query user before clearing any
- additional suspend count.
- (S_proc_wait_reply, gnu_attach): Don't call inf_validate_task_sc.
- (inf_resume): Call inf_validate_task_sc here.
- (gnu_resume): Call inf_update_procs to ensure noticing new threads.
-
-Fri Jun 7 17:00:43 1996 Miles Bader <miles@gnu.ai.mit.edu>
-
- * gnu-nat.c (gnu_create_inferior: attach_to_child): Return PID.
-
-Thu May 23 15:13:56 1996 Jeffrey A Law (law@cygnus.com)
-
- * h8300-tdep.c (IS_PUSH): Refine.
- (IS_MOVE_FP, IS_MOV_SP_FP): Accept H8/300H varaints.
- (IS_SUB4_SP, IS_SUBL_SP): New macros.
- (h8300_skip_prologue): Handle H8/300H prologue code sequences.
- (examine_prologue): Handle addresses from 0x010000 to 0xffffff
- when in H8/300H mode. Get the return pointer's address correctly
- for the H8/300H. Handle H8/300H prolouge code sequences.
-
- * symfile.c (generic_load): Print the starting address
- of the file just loaded.
-
-Thu May 23 12:09:52 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-make.sed: Edit @THREAD_DB_OBS@ out of makefile.
-
-Tue May 21 11:53:56 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * breakpoint.c (bpstat_do_actions): Avoid endless recursion
- if a `source' command is contained in bs->commands.
-
- * infrun.c (wait_for_inferior): Update step_frame_address when
- stepping into a new line.
-
- From schwab@issan.informatik.uni-dortmund.de (Andreas Schwab):
- * breakpoint.c (breakpoint_1): Add shlib_disabled case to
- bpenables array.
-
-Mon May 20 22:52:00 1996 Mark Alexander <marka@cygnus.com>
-
- * dsrec.c (load_srec): Add WAITACK parameter, for machines
- like EST visionICE that send back an ACK after each S-record.
- * monitor.c (monitor_wait_srec_ack): New function.
- (monitor_load): Pass monitor_wait_srec_ack to load_srec
- if the monitor's MO_SREC_ACK flag is set.
- * monitor.h: Define MO_SREC_ACK flag.
- * remote-est.c (est_cmds): Add MO_SREC_ACK flag.
- * sh3-rom.c (sh3_load): Accomodate change in load_srec prototype.
- * srec.h: Add WAITACK parameter to load_srec prototype.
-
-Sun May 19 21:22:00 1996 Rob Savoye <rob@chinadoll>
-
- * config/sparc/sparclite.mt: Add the sparc simulator.
-
-Sun May 19 16:49:37 1996 Fred Fish <fnf@cygnus.com>
-
- * defs.h (read_command_lines, query_hook): Update prototypes.
- (readline_begin_hook, readline_hook, readline_end_hook): Declare.
- * breakpoint.c (commands_command): Build message in temporary buffer
- and pass that, as well as tty control flag, to read_command_lines.
- * top.c (readline_begin_hook, readline_hook, readline_end_hook):
- Define here.
- (command_loop): Check for non-NULL instream before looping.
- (command_line_input): Use readline_hook when appropriate, to get
- user input from a GUI window.
- (read_next_line): Also build prompt if getting user input from a GUI.
- (recurse_read_control_structure): Fix typo in comment.
- (read_command_lines): Use passed in prompt and tty flag to decide how
- to build message. Use readline_begin_hook when appropriate, to set
- up a GUI interaction window. Just return head, whether NULL or not,
- after using readline_end_hook to complete GUI interaction.
- (define_command, document_command): Build message in a temporary
- buffer and pass it to read_command_lines, along with tty flag.
-
-
-Sat May 18 02:43:58 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * blockframe.c (frameless_look_for_prologue):
- Add FUNCTION_START_OFFSET only if func_start is non-zero.
- * minsyms.c (lookup_minimal_symbol_by_pc): Return NULL if
- pc is not in a known section.
- * stack.c (print_frame_info): Remove check for fi->pc in known
- section, now handled by lookup_minimal_symbol_by_pc.
-
-
-Fri May 17 13:31:04 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * sh-stub.c: New file, was config/sh/stub.c.
-
-
-Wed May 15 08:25:12 1996 Jeffrey A Law (law@cygnus.com)
-
- * top.c (read_next_line): Fix thinkos. From Donn Seeley.
-
- * coffread.c (coff_symtab_read): Handle C_LABEL symbols like
- C_STAT symbols.
- * h8300-tdep.c (h8300_pop_frame): Reset $sp and $pc correctly.
- Flush cached frames just before exiting.
- * remote-sim.c (gdbsim_resume): Complain if the program isn't
- being run.
- * config/h8300/tm-h8300.h (BELIEVE_PCC_PROMOTION): Define.
-
-Tue May 14 18:05:16 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * procfs.c (procfs_thread_alive procfs_stop): Make static.
- (procfs_pid_to_str): New routine to print out thread id's in an
- intelligible manner.
- * sol-thread.c (sol_thread_fetch_registers): Re-order manner in
- which supply_register is called to fix bug with writing
- individual regs.
- * config/sparc/tm-sun4sol2.h: Define default for
- target_pid_to_str in case host lacks libthread_db.
-
-Mon May 13 23:53:30 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * Makefile.in config.in configure configure.in
- config/sparc/nm-sun4sol2.h config/sparc/sun4sol2.mh
- config/sparc/tm-sun4sol2.h: Use autoconf to config Solaris thread
- and pthread support, since pre-2.5 systems don't come with
- libthread_db.so.1.
-
- * procfs.c (info_proc): Use int instead of id_t. Old versions of
- Irix don't seem to define this.
-
-Mon May 13 17:40:58 1996 Jeffrey A Law (law@cygnus.com)
-
- * top.c (execute_control_command, case while_control): Allow
- a while command to be interrupted.
-
-Mon May 13 16:17:36 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * sol-thread.c: More cleanup, add comments.
- (sol_thread_resume): Prevent people from trying to step
- inactive threads.
- (sol_thread_wait sol_thread_fetch_registers
- sol_thread_store_registers): Remove unnecessary check for
- sol_thread_active. These routines won't get called unless threads
- are active.
-
-Mon May 13 11:29:37 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- SH3-E support from Allan Tajii <atajii@hmsi.com>:
- * sh-tdep.c (sh_reg_names, sh3_reg_names): Add empty names for
- float registers.
- (sh3e_reg_names): New register name array.
- (sh_processor_type_table): Add sh3e processor type.
- * config/sh/tm-sh.h (REGISTER_VIRTUAL_TYPE): Fix test.
- (REGISTER_NAMES, NUM_REGS, NUM_REALREGS, etc): Adjust for
- full set of registers.
- * remote-e7000.c (want_sh3, want_sh3_nopc): New globals.
- (e7000_fetch_registers, e7000_wait): Use them.
- * sh3-rom.c (sh3_regnames): Add float registers.
- (sh3e_cmds, sh3e_ops): New globals.
- (sh3e_open): New function.
- (_initialize_sh3_rom): Rename from _initialize_sh3, set up
- sh3e target vector.
-
-Fri May 10 15:53:38 1996 Stu Grossman (grossman@lisa.cygnus.com)
-
- * sol-thread.c: Cleanup. gcc -Wall fixes. Add prototypes.
- Print out messages instead of codes for thread_db errors. Make
- access macros for thread and lwp manipulation. Make cleanups to
- fixup inferior_pid in case of errors.
-
-Thu May 9 19:06:02 1996 Fred Fish <fnf@cygnus.com>
-
- * aclocal.m4: Remove unused definition of AC_C_CROSS.
- * configure.in: Add powerpcle-*-solaris* host and target config
- so April 30th change does not get lost next time configure is
- rebuilt.
-
-Thu May 9 14:13:08 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * Makefile.in, breakpoint.c, corelow.c, fork-child.c, inflow.c,
- infrun.c, mac-nat.c, procfs.c, remote.c, sol-thread.c, thread.c,
- win32-nat.c, config/nm-lynx.h: Rename thread.h to gdbthread.h to
- avoid conflict with Solaris /usr/include/thread.h.
-
-Thu May 9 12:33:32 1996 Rob Savoye <rob@chinadoll.cygnus.com>
-
- * abug-rom.c: Config file for the older style ABug monitor that
- runs on the mvme13x boards.
- * config/m68k/monitor.mt: Add abug support for m68k cross
- debugging.
-
-Wed May 8 20:33:24 1996 Fred Fish <fnf@cygnus.com>
-
- * infcmd.c (do_registers_info): Always print the raw floating
- point value's bytes in big endian order, so the the leftmost bit
- is the most significant.
- * breakpoint.c (clear_momentary_breakpoints): Remove dead code
- that is referenced nowhere else.
- (set_breakpoint): Ditto.
- (do_enable_breakpoint): Created from enable_once_breakpoint
- with a couple of changes.
- (enable_breakpoint): Call do_enable_breakpoint with an appropriate
- bpdisp enum value to set disposition of breakpoint.
- (enable_once_breakpoint): Ditto.
- (enable_delete_breakpoint): Ditto.
- * breakpoint.h (clear_momentary_breakpoints): Remove prototype.
- * symtab.c (find_pc_line): Improve comments.
- * xcoffread.c: Ditto.
-
-Tue May 7 18:37:06 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * target.c (debug_to_xfer_memory): Insert line breaks when
- dumping the memory block.
-
-Mon May 6 13:52:52 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * fork-child.c (fork_inferior), inferior.h: init_trace_fun now
- returns a possibly modified pid.
- * inftarg.c (ptrace_him): Now returns pid;
- * m3-nat.c (m3_trace_him): Now returns pid;
- * infcmd.c (run_command): Minor cleanup.
- * infrun.c (wait_for_inferior): Add another check for one_stepped
- near where we read the pc to avoid erroneously setting
- random_signal for multi-threaded support.
- * procfs.c: Add support for Solaris LWPs. Remove def of
- LOSING_POLL. Many cleanups... Several workarounds for Solaris
- lossage. System call entry and exit are now handled by
- dynamically registered handlers.
- * (syscallname): Don't barf when handed an unknown syscall
- number.
- * (info_proc_syscalls): Ditto.
- * sol-thread.c: New file. Implements Solaris thread support.
- * symfile.c (symbol_file_add): Add call to target_new_objfile to
- notify target-dependent code about new symbol tables.
- * (clear_symtab_users): Call target_new_objfile to notify it of
- the removal of all symbol tables.
- * target.c (push_target): Make sure that to_close is non-zero
- before calling it.
- * target.h (target_new_objfile): Provide default.
- * config/alpha/nm-osf2.h: Define LOSING_POLL because this version
- of OSF can't hack using poll with /proc.
- * config/sparc/nm-sun4sol2.h (target_new_objfile): Define to be
- sol-thread-new-objfile.
- * config/sparc/sun4sol2.mh: Add sol-thread.o to NATDEFFILES, and
- add libthread_db.so.1 to NAT_CLIBS.
- * config/sparc/tm-sun4sol2.h: Define PIDGET, TIDGET, and
- target_pid_to_str.
-
-Sat May 4 02:13:34 1996 N Srin Kumar <nsrin@wipinfo.soft.net>
-
- * procfs.c (remove_fd): Fix copy of fds to fill hole left after
- removal of the requested fd.
-
-Mon May 6 07:52:48 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * rs6000-tdep.c (_initialize_rs6000_tdep): Don't do XCOFF specific
- hooks under ELF.
-
- * config/powerpc/tm-ppc-eabi.h: Define ELF_OBJECT_FORMAT.
-
-Thu May 2 12:46:14 1996 Jeffrey A Law (law@cygnus.com)
-
- From Peter Schauer:
- * breakpoint.h (enum bpdisp): Add del_at_next_stop.
- * breakpoint.c (insert_breakpoints, watchpoint_check,
- bpstat_stop_status): Avoid bad references to memory freed via
- delete_breakpoint on watchpoints going out of scope.
- Do not delete these watchpoints, disable them and change their
- disposition to del_at_next_stop instead.
- (breakpoint_auto_delete): Delete all breakpoints whose disposition
- is del_at_next_stop.
- (breakpoint_init_inferior): Use switch to avoid reference to
- already deleted breakpoint.
-
-Wed May 1 17:29:18 1996 Fred Fish <fnf@cygnus.com>
-
- * Makefile.in (rs6000-nat.o): Depend on xcoffsolib.h.
- * config/rs6000/rs6000.mh (NATDEPFILES): Move xcoffread.o ...
- * config/rs6000/rs6000.mt (TDEPFILES): ... to here.
- * xcoffsolib.c (xcoff_relocate_symtab_hook): Define and initialize.
- (solib_info): Call xcoff_relocate_symtab via the hook.
- (sharedlibrary_command): Ditto.
- * xcoffread.c: Remove all FAKING_RS6000 comments and defines.
- (xcoff_add_toc_to_loadinfo_hook): Define and initialize here.
- (xcoff_init_loadinfo_hook): Define and initialize here.
- (scan_xcoff_symtab): Call xcoff_add_toc_to_loadinfo via the hook.
- (xcoff_initial_scan): Call xcoff_init_loadinfo via the hook.
- * xcoffsolib.h (xcoff_relocate_symtab_hook): Declare extern func.
- * rs6000-tdep.c (_initialize_rs6000_tdep): Add initializations
- of xcoff_add_toc_to_loadinfo_hook and xcoff_init_loadinfo_hook.
- * rs6000-nat.c (_initialize_core_rs6000): Add initialization
- of xcoff_relocate_symtab_hook.
-
-Tue Apr 30 13:22:02 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * configure (powerpcle-*-solaris*): Add Solaris support.
-
- * config/powerpc/{solaris.m[ht],tm-solaris.h}: New files for
- Solaris support.
-
-Mon Apr 29 16:17:31 1996 Dawn Perchik <dawn@cygnus.com>
-
- * c-valprint.c (c_val_print): Fix printing for arrays defined
- with 0 length.
-
-Sun Apr 28 15:08:05 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- Support for bi-endian remote breakpoints.
- * remote.c (big_break_insn, little_break_insn): New globals.
- (break_insn): Remove.
- (remote_insert_breakpoint, remote_remove_breakpoint): Use own
- code if REMOTE_BREAKPOINT defined, otherwise call memory
- breakpoint functions.
- * config/sh/tm-sh.h (REMOTE_BREAKPOINT): Remove.
- (BIG_REMOTE_BREAKPOINT, LITTLE_REMOTE_BREAKPOINT): Define.
-
- * mon960-rom.c (mon960_cmds): Remove forward decl.
- (mon960_load): Use current_monitor instead of mon960_cmds.
- (mon960_regnames): Remove backslashes from line ends.
- (_initialize_mon960): Fix documentation string.
-
-Sun Apr 28 12:10:35 1996 Fred Fish <fnf@cygnus.com>
-
- * symfile.h (psymbol_allocation_list): Expand comments which
- describe the psymbol allocation list and how each field is
- used.
-
-Sun Apr 28 03:44:30 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * breakpoint.c (delete_breakpoint): Fix bpt->val, bpt->exp
- storage leaks.
- (breakpoint_re_set_one): Fix b->exp, b->val, b->cond storage leaks.
-
- * infcmd.c (run_command), solib.c (locate_base): Check for
- target_has_execution in addition to inferior_pid, a core file
- from a threaded program is yielding a non-zero inferior_pid.
-
- * sparc-tdep.c (get_saved_register): Handle window registers
- in a dummy frame correctly.
-
-Sat Apr 27 20:38:32 1996 Fred Fish <fnf@cygnus.com>
-
- * Makefile.in (CLIBS): Move $(MMALLOC) past all other libs,
- so that anything that wants an allocation function not yet pulled
- in, will get it from mmalloc rather than a system library.
- * Makefile.in (INSTALLED_LIBS): Reorder to match order of CLIBS,
- to avoid surprising results when used.
-
-Sat Apr 27 00:12:05 1996 Dawn Perchik (dawn@cygnus.com)
-
- * stabsread.c: Changes and bug fixes for cfront support.
- Fix bug for class data members.
- Fix parsing bug when no base classes exist.
- Fix memory bug - allocate space for cplusplus specific info.
- Add support for static data.
- Add prototypes for static functions.
- Enhance comments to show what each function expects to parse.
- Cleanup code.
- * stabsread.c(resolve_cont),dbxread.c(resolve_cont): Rename
- function to resolve_cfront_continuation.
-
-Fri Apr 26 23:58:26 1996 Jeffrey A Law (law@cygnus.com)
-
- * infrun.c (wait_for_inferior): Call registers_changed when
- restarting the inferior to get over a nullified instruction.
-
-Tue Apr 24 12:12:55 1996 Dawn Perchik (dawn@cygnus.com)
-
- * dbxread.c,stabsread.c,gdbtypes.c,partial-stab.h,valops.c:
- Add new support for parsing cfront stabs.
-
-Wed Apr 24 00:32:55 1996 Jeffrey A Law (law@cygnus.com)
-
- * infrun.c (wait_for_inferior): Move "have_waited" label
- outside of #ifdef conditionals. Don't trash the wait status
- if we get a signal and the current instruction is nullified.
-
-Mon Apr 22 20:17:01 1996 Fred Fish <fnf@cygnus.com>
-
- * Makefile.in (VERSION): Bump version number to 4.16.1.
- * NEWS: Update for 4.16 release.
-
-Mon Apr 22 16:32:29 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * monitor.h: Clean up comment formatting.
- (current_monitor): Remove decl.
- (LOADTYPES, LOADPROTOS, INIT_CMD, etc): Remove definitions.
- (push_monitor, SREC_SIZE): Remove.
- * monitor.c: Expand old macro into current_monitor derefs
- everywhere.
- * remote-os9k.c (current_monitor): Remove definition.
-
-Mon Apr 22 14:54:45 1996 Mark Alexander <marka@superball.cygnus.com>
-
- * corefile.c (specify_exec_file_hook): Allow arbitrary number of
- hooks.
- (call_extra_exec_file_hooks): New function.
- * h8300-tdep.c: Lint; add .h files to provide missing declarations,
- remove unused variables.
- (set_machine_hook): New function.
- (_initialize_h8300m): Initialize it.
-
-Fri Apr 19 15:03:49 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * remote-mips.c (encoding): Don't specify size, to avoid bug in
- SunOS native compiler.
-
-Thu Apr 18 18:46:57 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * monitor.c: Use int rather than LONGEST for values, since
- the formatting strings are not prepared to accept long longs.
-
-Wed Apr 17 20:17:27 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * arm-tdep.c (initialize_arm_tdep): Make apcs32 a `zinteger'.
-
-Tue Apr 16 17:38:23 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * corelow.c (add_to_thread_list): Make sure reg_sect is non-null
- before de-referencing it. Prevents deref of NULL pointer if core
- file lacks .reg section.
- * defs.h: Rename floatformat_{to from}_long_double to
- floatformat_{to from}_doublest. Get rid of FLOATFORMAT_{TO
- FROM}... macros.
- * findvar.c (extract_floating store_floating): Change all refs to
- FLOATFORMAT_{FROM TO}... to floatformat_{from to}_doublest.
- * utils.c: Change floatformat_{to from}_long_double to
- floatformat_{to from}_doublest cuz the new routines will use
- whatever size (double or long double) is appropriate.
- * config/i960/tm-i960.h (REGISTER_CONVERT_TO_VIRTUAL
- REGISTER_CONVERT_TO_RAW): Change FLOATFORMAT... macros to
- floatformat... routine calls.
-
-Mon Apr 15 16:34:11 1996 Per Bothner <bothner@kalessin.cygnus.com>
-
- * stabsread.c (read_type): Move handling of '@' from type
- number handling to handling of types proper (as emitted by gcc!).
- For typedefs, allocate the typedef type before reading its
- definition, to properly handling recursive types.
-
-Mon Apr 15 11:19:26 1996 Jeffrey A Law (law@cygnus.com)
-
- * ch-exp.c (calculate_array_length): Fix prototype.
-
-Sat Apr 13 14:21:16 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * remote-nindy.c (nindy_open): Acquire more target state so that
- user can attach to a previously running program.
- * (nindy_fetch_registers nindy_store_registers): Get rid of fp
- conversion code. That's all handled in {extract store}_floating
- now.
- * utils.c (floatformat_to_double): Don't bias exponent when
- handling zero's, denorms or NaNs.
- * config/i960/tm-i960.h (REGISTER_CONVERT_TO_VIRTUAL
- REGISTER_CONVERT_TO_RAW): Change to using DOUBLST and
- FLOATFORMAT_TO/FROM_DOUBLEST macros.
- * config/i960/tm-nindy960.h: Undefine
- REGISTER_CONVERT_TO_VIRTUAL, REGISTER_CONVERT_TO_RAW, and
- REGISTER_CONVERTIBLE. These are no longer necessary now that all
- the magic happens in extract/store_floating.
-
-Sat Apr 13 02:58:02 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * eval.c (evaluate_subexp_standard): Report error when attempting to
- evaluate subscripts for types which cannot be subscripted.
-
- * valarith.c (value_x_binop, value_x_unop): Add noside parameter.
- Return a zero value with the return type of the member function
- if noside is EVAL_AVOID_SIDE_EFFECTS instead of calling the member
- function.
- * values.h (value_x_binop, value_x_unop): Update prototypes
- accordingly.
- * eval.c (evaluate_subexp_standard): Update all callers of
- value_x_binop, value_x_unop accordingly.
-
- * valarith.c (value_neg, value_complement): Perform ANSI C/C++
- integral promotion on operands.
-
-Fri Apr 12 13:19:27 1996 Fred Fish <fnf@cygnus.com>
-
- * README: Update for 4.16 release.
- * configure.in (AC_CHECK_FUNCS): Also check for sbrk.
- * configure: Regenerate with autoconf.
- * config.in: Regenerate with autoheader.
- * main.c (main): Only use sbrk() when HAVE_SBRK is defined.
- * top.c (command_loop): Ditto.
-
-Fri Apr 12 09:45:29 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * defs.h: Define TARGET_{FLOAT DOUBLE LONG_DOUBLE}_FORMAT
- defaults for bi-endian targets. Replace function pointers for
- floatformat routines with macros. No need for these to be runtime
- selectable.
- * findvar.c: Get rid of floatformat function pointers. Use
- macros in extract_floating and store_floating.
- * remote-nindy.c (nindy_fetch_registers nindy_store_registers):
- Use floatformat macros.
-
-Thu Apr 11 21:28:02 1996 Fred Fish <fnf@cygnus.com>
-
- From: Miles Bader <miles@gnu.ai.mit.edu>
- * configure.in (AC_CHECK_HEADERS): check for endian.h.
- Use AC_CHECK_TOOL to find AR & RANLIB. Add AC_PROG_AWK.
- Add host & target cases for i[345]86-*-gnu*.
- * config.in: Regenerate with autoheader.
- * configure: Regenerate with autoconf.
- * Makefile.in (AR, AWK): Set from corresponding autoconf substs.
- (init.c): Don't scan mig-generated files.
- * defs.h (endian.h): Include if HAVE_ENDIAN_H defined.
- * config/nm-m3.h (ATTACH_NO_WAIT): Define.
- * infcmd.c (attach_command): Use "#ifndef ATTACH_NO_WAIT"
- rather than "#ifndef MACH".
-
-Thu Apr 11 18:49:42 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * remote.c (remotewritesize): New GDB variable, controls size
- of memory packets sent to the target.
-
-Thu Apr 11 13:47:52 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * dcache.c: Add prototypes. Make many functions static.
- * (dcache_peek dcache_fetch dcache_poke): Make dcache_fetch and
- dcache_poke call dcache_xfer_memory directly in order to fix
- problems with turning off dcache. dcache_peek is now unnecessary,
- so it goes away.
-
- * defs.h: Define new macros HOST_{FLOAT DOUBLE LONG_DOUBLE}_FORMAT
- and TARGET_{FLOAT DOUBLE LONG_DOUBLE}_FORMAT to specify a pointer
- to a struct floatformat. This allows for better handling of
- targets whose floating point formats differ from the host by more
- than just byte order.
- * (floatformat_to_long_double floatformat_from_long_double):
- Prototypes for new functions in utils.c.
- * (floatformat_to_doublest floatformat_from_doublest): Prototypes
- for pointers to floating point conversion functions. The actual
- function uses either double or long double if the host supports it.
- * findvar.c (floatformat_to_doublest floatformat_from_doublest):
- Initialize to point at correct function depending on HAVE_LONG_DOUBLE.
- * (extract_floating store_floating): Rewrite. Now, if host fp
- format is the same as the target, we just do a copy. Otherwise,
- we call floatformat_{to from}_doublest.
- * remote-nindy.c (nindy_xfer_inferior_memory): Change param
- `write' to `should_write'.
- * utils.c (floatformat_to_long_double
- floatformat_from_long_double): New routines that implement long
- double versions of functions in libiberty/floatformat.c.
- * config/i960/tm-i960.h (TARGET_LONG_DOUBLE_FORMAT): Define this for
- i960 extended real (80 bit) numbers.
- * nindy-share/nindy.c (ninMemGet ninMemPut): Return number of bytes
- actually read or written.
-
-Wed Apr 10 02:56:06 1996 Wilfried Moser <moser@rtl.cygnus.com>
-
- * ch-valprint.c (chill_val_print): Remove call to calculate_array_length.
- (calculate_array_length): Move function from here ...
-
- * ch-exp.c (calculate_array_length): ... to here.
- (parse_primval): If we have a symbol with an array type
- and the length is 0, call calculate_array_length.
-
-Tue Apr 9 01:23:05 1996 Wilfried Moser <moser@rtl.cygnus.com>
-
- * eval.c (evaluate_subexp_standard): In case of TYPE_CODE_SET:
- Add some checks for powerset compatibility.
-
- * valops.c (value_slice): Use lowbound instead of lowerbound for
- call to slice_range_type to get correct bounds.
-
-Mon Apr 8 12:53:56 1996 Fred Fish <fnf@cygnus.com>
-
- * Makefile.in (scm-exp.o, scm-lang.o, scm-valprint.o): Add targets and
- dependencies.
- * scm-lang.c (gdb_string.h): Include.
- * objfiles.c (add_to_objfile_sections): Cast second arg of obstack_grow
- call to correct type (char *).
- * cp-valprint.c (cp_print_static_field): Ditto.
- * somsolib.c (som_solib_create_inferior_hook): Add a declaration
- for external find_unwind_entry function (from hppa-tdep.c).
- * remote-pa.c (remote_write_bytes, remote_read_bytes): Change
- type of second arg to "char *" to be type compatible with
- dcache.
- (remote_wait): Cast second arg to strtol to correct type.
- * hppa-tdep.c (compare_unwind_entries): Change argument types to
- "const void *" to be type compatible with qsort, and then
- assign to local args prior to use.
-
-Mon Apr 8 15:35:52 1996 Jeffrey A Law (law@cygnus.com)
-
- * infptrace.c (kill_inferior): Remove call to "kill"; update
- comments.
-
-Mon Apr 8 14:05:07 1996 Geoffrey Noer <noer@cygnus.com>
-
- * remote-e7000.c: don't append :23 to target port if __WIN32__
- is defined (it's WinGDB).
-
-Sun Apr 7 22:34:29 1996 Fred Fish <fnf@cygnus.com>
-
- From: Miles Bader <miles@gnu.ai.mit.edu>
- * gnu-nat.c, gnu-nat.h, msg.defs, exc_request.defs, i386gnu-nat.c,
- msg_reply.defs, notify.defs, process_reply.defs, reply_mig_hack.awk,
- config/nm-gnu.h, config/i386/{i386gnu.mh, i386gnu.mt, nm-gnu.h,
- m-i386gnu.h, xm-i386gnu.h}: New files for GNU hurd.
-
-Sun Apr 7 13:32:41 1996 Fred Fish <fnf@cygnus.com>
-
- * configure.in (case host): Add i386sco5 host.
- * configure: Regenerate.
-
- From: Robert Lipe <robertl@dgii.com>
- Add support for SCO OpenServer 5 (a.k.a. 3.2v5*) This
- target is an SVR3.2 with COFF, ELF, and shared libes, but
- no /proc.
- * config/i386/i386sco5.mh: New file.
- * config/i386/nm-i386sco5.h: New file.
-
-Sat Apr 6 08:55:22 1996 Fred Fish <fnf@cygnus.com>
-
- * bcache.c (bcache): When size of chunk to cache is exactly equal to
- BCACHE_MAXLENGTH, stash chunk as unique copy.
-
-Sat Apr 6 00:46:26 1996 Fred Fish <fnf@cygnus.com>
-
- * symfile.c (INLINE_ADD_PSYMBOL): Remove ifdef.
- (add_psymbol_to_list): Add an arg for passing CORE_ADDR values and
- use it, rather than calling add_psymbol_addr_to_list.
- (add_psymbol_addr_to_list): Delete.
- (add_psymbol_to_list): Make psymbol static to avoid random data in
- gaps due to alignment of structure members.
- * symfile.h (INLINE_ADD_PSYMBOL, ADD_PSYMBOL_TO_LIST,
- ADD_PSYMBOL_ADDR_TO_LIST): Remove. Real world tests show no
- performance improvements by inlining via complicated macros and
- they just make gdb larger and harder to maintain.
- * dwarfread.c (add_enum_psymbol): Replace ADD_PSYMBOL_TO_LIST
- and/or ADD_PSYMBOL_ADDR_TO_LIST macro(s) with call to
- add_psymbol_to_list with appropriate long or CORE_ADDR args.
- (add_partial_symbol): Ditto.
- * partial-stab.h: Ditto.
- * os9kread.c (read_os9k_psymtab): Ditto
- * mdebugread.c (parse_partial_symbols): Ditto.
- (handle_psymbol_enumerators): Ditto.
- (demangle.h): Include.
- * hpread.c (hpread_build_psymtabs): Ditto.
- (hpread_build_psymtabs): Ditto.
- (demangle.h): Include
-
-Thu Apr 4 20:16:55 1996 Fred Fish <fnf@cygnus.com>
-
- * configure.in: Check for setpgid function.
- * config.in: Regenerate with autoheader.
- * configure: Regenerate with autoconf.
- * inflow.c (_initialize_inflow): Only try to use _SC_JOB_CONTROL
- if it is actually defined.
- (gdb_setpgid): Use HAVE_SETPGID.
- * ch-exp.c: Change include of <string.h> to "gdb_string.h".
- * c-exp.y, f-exp.y, m2-exp.y: Ditto.
- * c-exp.y, serial.c: Include <ctype.h>.
- * config/m68k/nm-news.h: Add typedef for pid_t which is
- apparently missing from <sys/types.h>. Enclose entire
- file in NM_NEWS_H ifndef and define when included.
- * config/mips/nm-news-mips.h: Ditto.
- * config/m68k/tm-m68k.h (REGISTER_CONVERT_TO_VIRTUAL,
- REGISTER_CONVERT_TO_RAW): Change name of temporary variable.
-
-Thu Apr 4 19:04:18 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * arm-xdep.c: Move native-specific code to here from arm-tdep.c.
- * arm-tdep.c (arm_apcs_32): New global.
- (arm_addr_bits_remove, arm_saved_pc_after_call,
- arm_push_dummy_frame, arm_pop_frame): New functions.
- (arm_skip_prologue): Updated version from Richard Earnshaw.
- (_initialize_arm_tdep): Add set/show "apcs32".
- * config/arm/tm-arm.h (ADDR_BITS_REMOVE): Call
- arm_addr_bits_remove.
- (SAVED_PC_AFTER_CALL): Call arm_saved_pc_after_call.
- (frame_find_saved_regs): Declare properly.
- (PUSH_DUMMY_FRAME): Call arm_push_dummy_frame.
- (POP_FRAME): Call arm_pop_frame, use ADDR_BITS_REMOVE instead of
- explicit mask.
- * config/arm/nm-arm.h: New file.
- * config/arm/xm-arm.h (KERNEL_U_ADDR, FETCH_INFERIOR_REGISTERS):
- Move definitions to nm-arm.h.
- * config/arm/arm.mh (NAT_FILE): Define.
-
- * symfile.c (generic_load): Initialize data_count properly.
-
-Thu Apr 4 17:17:53 1996 Fred Fish <fnf@cygnus.com>
-
- * symmisc.c (print_objfile_statistics): Print memory used by
- psymbol cache obstack.
-
-Thu Apr 4 15:43:07 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * symfile.c (report_transfer_performance): New function.
- (generic_load): Call it to report transfer rate.
- * remote-e7000.c (e7000_load): Ditto.
-
-Mon Apr 1 16:31:00 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-make.sed: Change references to config.h to be in objdir,
- edit out rules to rebuild config.h.
-
-Mon Apr 1 08:32:23 1996 Fred Fish <fnf@cygnus.com>
-
- * hppa-tdep.c (hppa_pop_frame): Call clear_proceed_status before
- proceeding.
-
-Sun Mar 31 16:15:43 1996 Fred Fish <fnf@cygnus.com>
-
- * hppah-nat.c (store_inferior_registers, store_inferior_registers,
- fetch_register, child_xfer_memory): Use call_ptrace function supplied
- by infptrace.c rather than calling ptrace directly.
-
-Sun Mar 31 15:39:00 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * mon960-rom.c: Cleanups and elimination of unused code,
- clarify documentation string.
- (mon960_serial, mon960_ttyname): Remove.
- * config/i960/tm-mon960.h (ADDITIONAL_OPTIONS,
- ADDITIONAL_OPTION_CASES, ADDITIONAL_OPTION_HELP): Remove.
-
-Sat Mar 30 11:00:22 1996 Fred Fish <fnf@cygnus.com>
-
- * configure.in: Check whether printf family supports printing
- long doubles or not and define PRINTF_HAS_LONG_DOUBLE if so.
- * acconfig.h: Provide default undef for PRINTF_HAS_LONG_DOUBLE.
- * configure: Regenerate.
- * valprint.c (print_floating): Use PRINTF_HAS_LONG_DOUBLE.
- * c-exp.y (parse_number): Use PRINTF_HAS_LONG_DOUBLE.
- * configure.in: Fix have_gregset and have_fpregset autoconf
- variable names so that they match the pattern required to
- cache them.
-
-Fri Mar 29 21:39:56 1996 Fred Fish <fnf@cygnus.com>
-
- * core-aout.c (fetch_core_registers): Cast core_reg_size to int
- before testing against reg_ptr.
- * eval.c (evaluate_subexp_standard): Cast type of
- TYPE_FN_FIELD_VOFFSET to int.
- * findvar.c (extract_signed_integer, extract_unsigned_integer,
- extract_long_unsigned_integer): Cast type of sizeof to int.
- * values.c (unpack_field_as_long, modify_field): Ditto.
- * valops.c (value_assign, call_function_by_hand): Ditto.
- * infcmd.c (do_registers_info): Ditto.
- * ser-tcp.c (tcp_open): Ditto.
- * remote.c (putpkt): Ditto.
- * dcache.c (dcache_peek): Ditto.
- * dcache.c (dcache_poke): Ditto.
- * m2-exp.y (yylex): Ditto.
- * gnu-regex.c (re_match_2): Ditto.
- * f-lang.c (ADD_BF_SYMNUM, saved_bf_list_end, tmp_bf_ptr): Ifdef
- out unused macro definition and variables.
- * inftarg.c (proc_wait): Move from main.c to here, and make static.
- * valprint.c (val_print_string): Change bufsize from int to unsigned.
- * main.c (wait.h): Include.
- * top.c (command_line_input): Remove unused variable "c".
- * f-typeprint.c (f_type_print_varspec_prefix): Add missing enum
- value TYPE_CODE_TYPEDEF to switch statement.
- (f_type_print_varspec_suffix): Add missing enum value
- TYPE_CODE_TYPEDEF to switch statement.
- * ch-exp.c (parse_primval): Add remaining enumeration values to
- switch statement, with no specific action.
- (ch_lex): Add LOC_UNRESOLVED in switch statement.
- (pushback_token): Ifdef out, since code using it is ifdef'd out.
- * stabsread.c (cleanup_undefined_types): Remove unused label
- "badtype".
- * objfiles.h (print_symbol_bcache_statistics): Add prototype.
- * maint.c (objfiles.h): Include.
- (maintenance_print_statistics): Remove unused variable "temp".
- * minsyms.c (lookup_minimal_symbol_solib_trampoline): Remove
- unused variable "found_file_symbol".
- * m2-exp.y (yylex): Add LOC_UNRESOLVED case to switch.
- * language.c (lang_bool_type): Use existing function local type
- variable rather than create block local variables.
- * solib.c (disable_break): Enclose in ifndef SVR4_SHARED_LIBS.
- * infptrace.c (wait.h, command.h): Include.
- * ser-tcp.c (gdb_string.h): Include
- * i386-tdep.c (codestream_seek): Change "place" to CORE_ADDR.
- (i386_get_frame_setup): Change "pc" from int to CORE_ADDR.
- * command.c (complete_on_enum): Make assignment used as truth value
- explictly check against NULL.
- (wait.h): Include.
- * infrun.c (wait_for_inferior): Ifdef out prologue_pc since code
- that uses it is ifdef'd out.
- * parser-defs.h: Add prototype for write_dollar_variable.
- * infrun.c: Add prototype for write_pc_pid.
- * breakpoint.h: Add prototype for re_enable_breakpoints_in_shlibs.
- * symmisc.c (bcache.h): Include.
- * bcache.h: Add prototype for print_bcache_statistics.
- * symfile.c: Include <time.h>.
- * printcmd.c (print_scalar_formatted): Change len to unsigned int.
- * valarith.c (value_equal): Cast result of TYPE_LENGTH to int.
- * valarith.c (value_binop): Change result_len, promoted_len1,
- and promoted_len2 to unsigned int.
- * valarith.c (value_subscripted_rvalue): Change elt_offs and
- elt_size to unsigned int.
- * valops.c (value_array): Change typelength to unsigned int.
- (destructor_name_p): Change len to unsigned int.
- * scm-lang.h (scm_parse): Add prototype for scm_unpack.
- * symfile.c (decrement_reading_symtab): Change return type to void.
- * valarith.c (value_subscript): Remove unused variable "word".
- (value_subscript): Remove unused variable "tint".
- * valops.c (auto_abandon): Ifdef out, since code using it is also
- ifdef'd out.
- * eval.c (init_array_element): Remove unused variable "val".
- * Makefile.in (values.o): Depends on scm-lang.h.
- (command.o): Depends upon wait_h.
- (ser-tcp.o): Depends upon gdb_string.h.
- (infptrace.o): Depends upon wait_h and command_h.
- (maint.o): Depends on objfiles.h and symfile.h.
- * values.c (allocate_repeat_value): Remove unused variable
- "element_type".
- (scm-lang.h): Include.
- * breakpoint.c (create_longjmp_breakpoint): Enclose in
- GET_LONGJMP_TARGET define, unused otherwise.
- * config/i386/nm-linux.h: Add prototypes for i386_insert_watchpoint,
- i386_remove_watchpoint and i386_stopped_by_watchpoint.
-
-Thu Mar 28 12:53:19 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * configure.in (sparc64-*-solaris2*): Delete.
- Stick with sparc-*-solaris2*.
- * configure: Regenerated.
-
-Thu Mar 28 06:51:26 1996 Fred Fish <fnf@cygnus.com>
-
- * valops.c (value_assign): Make copy of internal variable value
- before returning it as a new value, since it is owned by the
- internal variable and will be freed along with it.
-
-Wed Mar 27 08:36:17 1996 Jeffrey A Law (law@cygnus.com)
-
- * From Peter Schauer.
- * breakpoint.c (breakpoint_re_set_one): Keep temporary
- breakpoints bp_until, bp_finish, bp_watchpoint_cope, bp_call_dummy
- and bp_step_resume in case breakpoint_re_set_one is called due
- to a step over a dlopen call.
- * infrun.c (wait_for_inferior): Always remove breakpoints from
- inferior in BPSTAT_WHAT_CHECK_SHLIBS case.
-
-Tue Mar 26 13:15:32 1996 Fred Fish <fnf@cygnus.com>
-
- * config/mips/tm-mips.h (COERCE_FLOAT_TO_DOUBLE): Only prefer
- non-prototyped case over prototyped case for C.
- * config/pa/tm-hppa.h (COERCE_FLOAT_TO_DOUBLE): Ditto.
-
-Sat Mar 23 17:24:28 1996 Fred Fish <fnf@cygnus.com>
-
- * os9kread.c (os9k_process_one_symbol): Note nonportable
- assumption that an int can hold a char *.
-
- * bcache.h (struct hashlink): Wrap data[] inside union with
- double to force longest alignment.
- (BCACHE_DATA): New macro to access data[].
- (BCACHE_ALIGNMENT): New macro to get offset to data[].
- * bcache.c (lookup_cache, bcache): Use BCACHE_DATA to get
- address of cached data. Use BCACHE_ALIGNMENT to compute
- amount of space to allocate for each hashlink struct.
-
-Sat Mar 23 12:14:02 1996 Fred Fish <fnf@cygnus.com>
-
- * ch-lang.c (evaluate_subexp_chill): Fix typo.
-
-Thu Mar 21 08:27:19 1996 Fred Fish <fnf@cygnus.com>
-
- * Makefile.in (VERSION): Bump version to 4.15.3
-
-Thu Mar 21 10:56:41 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * config.in: Rename from config.h.in.
- * configure.in: Call AC_CONFIG_HEADER with config.h:config.in.
- Change CONFIG_HEADERS test in AC_OUTPUT accordingly.
- * configure: Rebuild.
- * Makefile.in (stamp-h): Depend upon config.in, not config.h.in.
- Set CONFIG_HEADERS to config.h:config.in.
-
-Tue Mar 19 12:47:51 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * partial-stab.h (case N_ENDM): Finish current partial symbol
- table for Solaris 2 cc.
-
-Tue Mar 19 10:39:15 1996 Jeffrey A Law (law@cygnus.com)
-
- * rs6000-nat.c (exec_one_dummy_insn): Don't clobber the
- PC in the registers array. From Peter Schauer.
-
-Mon Mar 18 13:47:09 1996 Fred Fish <fnf@cygnus.com>
-
- * symfile.c (reread_symbols): Reinitialize bcache struct
- members to zero using memset. Also use memset to reinit
- global_psymbols and static_psymbols, rather than explicitly
- resetting each structure member.
-
-Sat Mar 16 19:47:36 1996 Fred Fish <fnf@cygnus.com>
-
- * configure.in: Add fragment to create stamp-h.
-
- From Peter Schauer <Peter.Schauer@Regent.E-Technik.TU-Muenchen.DE>
- * configure.in (AC_CHECK_HEADERS): Check for link.h.
- * configure: Regenerate with autoconf.
- * config.h.in: Regenerate with autoheader.
- * config/i386/nm-linux.h: Include solib.h only if HAVE_LINK_H
- is defined.
- * solib.c: Exclude most of the code if HAVE_LINK_H is not defined.
- * config/i386/linux.mh: Reinstate XM_CLIBS, it is needed for
- older a.out based systems.
-
-Sat Mar 16 16:45:43 1996 Fred Fish <fnf@cygnus.com>
-
- * config.h.in: New file.
- * acconfig.h: New file, for autoheader.
- * configure.in (AC_CONFIG_HEADER): Add, generate config.h.
- * configure: Regenerate.
- * Makefile.in (defs_h): Add config.h
- (distclean): Remove config.h and stamp-h during distclean.
- (config.h, stamp-h): New targets to remake config.h when necessary.
- * defs.h (config.h): Include before any other includes or defines.
- * i386-tdep.c (gdb_string.h): Move include after include of defs.h.
- * i386v4-nat.c (defs.h): Include before testing HAVE_SYS_PROCFS_H.
-
-Sat Mar 16 14:55:27 1996 Fred Fish <fnf@cygnus.com>
-
- From Peter Schauer <Peter.Schauer@Regent.E-Technik.TU-Muenchen.DE>
- * Makefile.in (INSTALLED_LIBS): Make sure that @LIBS@ will not
- result in an empty line, to work around a bug in native Ultrix 4.4
- and OSF/1-3.2C make.
-
-Sat Mar 16 13:33:17 1996 Fred Fish <fnf@cygnus.com>
-
- * configure.in: Add gdbserver to configdirs under linux.
- * configure: Regenerate.
-
-Fri Mar 15 12:06:58 1996 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * config/i386/nm-nbsd.h (FLOAT_INFO): Comment out.
- * config/i386/tm-nbsd.h (NUM_REGS): Define.
-
-Thu Mar 14 10:31:18 1996 Jeffrey A Law (law@cygnus.com)
-
- * solib.c (solib_break_names): Add _r_debug_state for
- vanilla SVR4 implementations. From Peter Schauer.
-
-Mon Mar 11 14:24:57 1996 Dawn Perchik <dawn@critters.cygnus.com>
-
- * mon960-rom.c: New file; support mon960 rom monitor on i960.
- * monitor.c (monitor_debug): Change remotedebug to buffer strings.
- * monitor.c (monitor_open): Add test for flag MO_NO_ECHO_ON_OPEN before
- epecting prompt and echo during open.
- * monitor.c (monitor_stop): Add test for flag MO_SEND_BREAK_ON_OPEN to
- determine if break should be sent as stop command.
- * monitor.h: Add flags MO_NO_ECHO_ON_OPEN and MO_SEND_BREAK_ON_OPEN.
- * i960-tdep.c (mon960_frame_chain_valid): New function for getting
- stack frame on mon960.
- * Makefile.in: Add mon960 files.
- * configure.in: Changed i960-*-coff* and i960-*-elf* to target mon960;
- added i960-nindy-coff* and i960-nindy-elf* for target nindy.
- * configure: Regenerated.
- * config/i960/mon960.mt, config/i960/tm-mon960.h: New files;
- support mon960 rom monitor on i960.
-
-Mon Mar 11 11:02:47 1996 Steve Chamberlain <sac@slash.cygnus.com>
-
- With Michael Snyder:
- * i386-tdep.c (skip_trampoline_code): Fix strncmp length.
- * win32-nat.c (CHECK, DEBUG*, debug_*): New.
- (handle_load_dll): Don't reload symbols.
- (handle_exception): Use the DEBUG_* names.
- (child_wait): Add DEBUG_* code.
- (_initialize_inftarg): Add new commands to set debug_ names.
-
-Mon Mar 11 09:19:58 1996 Jeffrey A Law (law@cygnus.com)
-
- * From Peter Schauer:
- * breakpoint.c (insert_breakpoints): Use ALL_BREAKPOINTS_SAFE.
- (bpstat_stop_status): Likewise.
- (remove_solib_event_breakpoints): Likewise.
- (clear_momentary_breakpoints): Likewise.
- (re_enable_breakpoints_in_shlibs): Don't reenable a breakpoint
- if we still can't read the memory for that breakpoint.
- (mention): Add bp_shlib_event case to keep gcc quiet.
-
-Fri Mar 8 12:08:12 1996 Jeffrey A Law (law@cygnus.com)
-
- * breakpoint.h (enum enable): New enum shlib_disabled for
- shared library breakpoints that have been temporarily disabled.
- * breakpoint.c: Handle temporarily disabled shared library
- breakpoints like disabled breakpoints in most places.
- (insert_breakpoints): Use shlib_disabled to indicate
- that an unsettable breakpoint is only temporarily disabled.
- (re_enable_breakpoints_in_shlibs): New function.
- * corelow.c (solib_add_stub): After adding shared libraries,
- try to reenable any temporarily disabled breakpoints.
- * infcmd.c (attach_command): Likewise.
- * infrun.c (wait_for_inferior): Likewise.
-
-Fri Mar 8 11:41:25 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * defs.h (extract_long_unsigned_integer): Declare.
- * findvar.c (extract_long_unsigned_integer): New function.
- * printcmd.c (print_scalar_formatted): Use it.
- * valprint.c (val_print_type_code_int): Likewise.
-
-Thu Mar 7 17:40:50 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * infcmd.c (do_registers_info): Ignore anonymous registers.
- * sh-tdep.c (set processor): New command to set specific
- processor type.
- (sh_reg_names, sh3_reg_names): Arrays of register names for
- SH and SH3 processors.
- (sh_set_processor_type): New function.
- * sh3-rom.c (sh3_open): Call it.
- (sh3_regname): Add names of all the bank registers.
- (sh3_supply_register): Clean up formatting.
- * config/sh/tm-sh.h (NUM_REGS, NUM_REALREGS): Increase to include
- bank registers.
- (REGISTER_NAMES): Add names of bank registers.
- (FP15_REGNUM): Define.
- (REGISTER_VIRTUAL_TYPE): Use it.
- * monitor.c: Clean up some comments.
-
-Thu Mar 7 12:09:51 1996 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * i386b-nat.c: Revert part of Mar 5 change. FreeBSD collapsed the
- s* and t* symbols too.
-
-Thu Mar 7 15:18:51 1996 James G. Smith <jsmith@cygnus.co.uk>
-
- * symfile.c (generic_load): Avoid division by zero.
-
-Wed Mar 6 17:57:59 1996 Jeffrey A Law (law@cygnus.com)
-
- * breakpoint.c (bfd_lookup_symbol): Provide for all SVR4 systems,
- not just those with HANDLE_SVR4_EXEC_EMULATORS.
-
- From Peter Schauer:
- * breakpoint.c (internal_breakpoint_number): Move to file scope.
- (create_solib_event_breakpoint): Use an internal breakpoint number.
-
-Wed Mar 6 00:32:44 1996 Wilfried Moser <moser@rtl.cygnus.com>
-
- * valarith.c (value_in): Change builtin_type_chill_bool to
- LA_BOOL_TYPE.
-
-Tue Mar 5 23:48:36 1996 Wilfried Moser <moser@rtl.cygnus.com>
-
- * ch-exp.c (parse_primval): Handle CARD, MAX, MIN.
- (match_string_literal): Handle control sequence.
- (match_character_literal): Deto.
-
- * ch-lang.c (chill_printchar): Change formating of nonprintable
- characters from C'xx' to ^(num).
- (chill_printstr): Deto.
- (value_chill_card, value_chill_max_min): New functions to process
- Chill's CARD, MAX, MIN.
- (evaluate_subexp_chill): Process UNOP_CARD, UNOP_CHMAX, UNOP_CHMIN.
-
- * expression.h (exp_opcode): Add UNOP_CARD, UNOP_CHMAX, UNOP_CHMIN
- for Chill's CARD, MAX, MIN.
-
- * valarith.c (value_in): Add processing of TYPE_CODE_RANGE
- and change return type from builtin_type_int to
- builtin_type_chill_bool.
-
-Tue Mar 5 18:54:04 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * config/nm-nbsd.h (link_object, lo_name, etc): Move to here
- from config/nm-nbsd.h.
- * config/sparc/nm-nbsd.h (regs, fp_status, etc): Move to here
- from config/sparc/tm-nbsd.h.
-
- * config/m68k/nm-hp300hpux.h (FIVE_ARG_PTRACE): Define here
- instead of in config/m68k/xm-hp300hpux.h.
-
-Tue Mar 5 12:05:35 1996 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * i386b-nat.c, m68knbsd-nat.c (fetch_core_registers): Provide
- implementation for NetBSD systems.
-
-Mon Mar 4 23:44:16 1996 Per Bothner <bothner@kalessin.cygnus.com>
-
- * valarith.c (binop_user_defined_p): Return 0 for BINOP_CONCAT.
- (value_concat): Handle varying strings (add COERCE_VARYING_ARRAY).
-
- * ch-lang.c (evaluate_subexp_chill case MULTI_SUBSCRIPT): Error
- if "function" is pointer to non-function.
-
-Mon Mar 4 17:47:03 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * top.c (print_gdb_version): Update copyright year.
-
-Mon Mar 4 14:44:54 1996 Jeffrey A Law (law@cygnus.com)
-
- From Peter Schauer:
- * infrun.c (wait_for_inferior): Remove breakpoints and
- switch terminal settings before calling SOLIB_ADD.
- * solib.c (enable_break, SVR4 variant): Don't map in symbols
- for the dynamic linker, the namespace pollution causes real
- problems.
-
-Sun Mar 3 17:18:57 1996 James G. Smith <jsmith@cygnus.co.uk>
-
- * remote-mips.c (common_breakpoint): Explicitly terminate the
- returned buffer.
-
-Wed Feb 28 22:32:18 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- From Wilfried Moser <wilfried.moser@aut.alcatel.at>:
- * remote.c (remote_detach): Send a command 'D' to the target
- when detaching, update the function's comments.
-
-Thu Jun 6 16:11:38 1996 Miles Bader <miles@gnu.ai.mit.edu>
-
- * gnu-nat.c (thread_cmd_list): New declaration.
- (parse_int_arg): New function.
-
-Wed Jun 5 17:28:04 1996 Miles Bader <miles@gnu.ai.mit.edu>
-
- * gnu-nat.h (struct proc): Add DETACH_SC field.
- * gnu-nat.c (make_proc): Set DETACH_SC.
- (struct inf): Add DETACH_SC & DEFAULT_THREAD_DETACH_SC fields.
- (make_inf): Set DETACH_SC & DEFAULT_THREAD_DETACH_SC fields.
- (add_thread_commands): Add set/show for detach-suspend-count.
- Add takeover-suspend-count cmd.
- (inf_detach): Set suspend counts to the detach SC, not 0.
- (set_thread_detach_sc_cmd, show_thread_detach_sc_cmd,
- set_task_detach_sc_cmd, show_task_detach_sc_cmd,
- set_thread_default_thread_detach_sc_cmd,
- show_thread_default_thread_detach_sc_cmd): New functions.
- (show_task_cmd): Also show detach-suspend-count values.
- (thread_takeover_sc_cmd): New function.
-
-Fri May 31 16:49:24 1996 Miles Bader <miles@gnu.ai.mit.edu>
-
- * gnu-nat.c (show_thread_run_cmd): Actually print state.
-
-Thu May 30 10:47:56 1996 Miles Bader <miles@gnu.ai.mit.edu>
-
- * gnu-nat.c (inf_signal): Make unforwardable exceptions an error.
-
-Tue May 28 17:06:36 1996 Miles Bader <miles@gnu.ai.mit.edu>
-
- * gnu-nat.c (inf_validate_stopped): proc_getprocinfo takes a
- pointer to the flags now, not the flags themselves.
-
-Mon May 27 13:31:17 1996 Miles Bader <miles@gnu.ai.mit.edu>
-
- * gnu-nat.c (gnu_wait): Print debugging msgs for pending execs.
- (gnu_create_inferior): Check return from ptrace.
-
-Sun May 26 16:56:35 1996 Miles Bader <miles@gnu.ai.mit.edu>
-
- * gnu-nat.h (struct proc): Add DEAD field.
- * gnu-nat.c (make_proc): Initialize DEAD.
- (inf_set_traced, inf_validate_task_sc, inf_validate_procs: Frob it.
- (gnu_wait): Only abort for 0 threads if the task isn't dead.
-
-Sat May 25 17:06:05 1996 Miles Bader <miles@gnu.ai.mit.edu>
-
- * gnu-nat.c (inf_signal): Pass SIGCODE when posting a signal.
-
-Wed May 22 18:44:28 1996 Miles Bader <miles@gnu.ai.mit.edu>
-
- * gnu-nat.c (S_proc_wait_reply): Add SIGCODE argument.
- (inf_set_traced): Only give no-signal-thread error message if
- turning *on* tracing.
-
-Wed May 15 13:03:16 1996 Miles Bader <miles@gnu.ai.mit.edu>
-
- * gnu-nat.c (inf_validate_procs): If INF has no threads, always
- set inf->threads_up_to_date to 0.
- (inf_signal): Pass in new SIGCODE argument to msg_sig_post_untraced.
- (gnu_wait): Pass in new TIMEOUT arg to interrupt_operation.
- (proc_update_sc): Cast thread state arg to thread_set_state.
- (proc_get_state): Cast thread state arg to thread_get_state.
- (inf_validate_task_sc): Cast task_basic_info arg to task_info.
- * i386gnu-nat.c (gnu_fetch_registers, gnu_store_registers): Call
- inf_update_procs before we lookup the thread.
- * config/i386/i386gnu.mh (MH_CFLAGS): New variable.
-
-Tue May 7 17:52:33 1996 Miles Bader <miles@gnu.ai.mit.edu>
-
- * gnu-nat.c (gnu_kill_inferior): Use inf_set_task to clear the task.
-
-Mon May 6 19:06:49 1996 Miles Bader <miles@gnu.ai.mit.edu>
-
- * gnu-nat.c (inf_set_traced): Use msg_set_init_int with
- INIT_TRACEMASK instead of setting the exec flags.
-
-Fri May 3 19:10:57 1996 Miles Bader <miles@gnu.ai.mit.edu>
-
- * gnu-nat.c (inf_validate_procs): Don't clear INF->task if we find
- the task's died, so others have a chance at it.
- (gnu_resume): When single-stepping a single thread, given an error
- if there is no such thread. When single-stepping one but running
- the others, just given a warning and still run all the threads.
- (gnu_wait): If there seem to be no threads, look harder, and
- signal an error if there really aren't any.
- (gnu_attach): Reset thread numbering to 0.
-
- * i386gnu-nat.c (gnu_fetch_registers, gnu_store_registers): Give
- thread name in warning messages.
-
- * gnu-nat.c (active_inf): New function.
- (show_sig_thread_cmd, show_stopped_cmd): Use it.
- (info_port_rights, info_send_rights_cmd, info_port_sets_cmd,
- info_recv_rights_cmd, info_port_rights_cmd, info_port_rights_cmd):
- New functions.
- (add_task_commands): Add new port-right info commands.
-
-Fri Apr 26 20:42:16 1996 Miles Bader <miles@gnu.ai.mit.edu>
-
- * gnu-nat.c (gnu_wait): Instead of _hurd_intr_rpc_mach_msg, just
- use mach_msg with MACH_RCV_INTERRUPT.
- (set_noninvasive_cmd): New function.
- (add_task_commands): Add command entry for `set noninvasive'.
-
-Mon Mar 4 14:12:02 1996 Miles Bader <miles@gnu.ai.mit.edu>
-
- * gnu-nat.c (gnu_read_inferior): Use hurd_safe_memmove, not safe_bcopy.
- (safe_bcopy): Function removed.
-
-Mon Dec 4 14:18:26 1995 Miles Bader <miles@gnu.ai.mit.edu>
-
- * gnu-nat.c (proc_update_sc): Assert only threads can have state.
- (make_proc): Initialize state_valid & state_changed fields.
-
-Tue Nov 28 17:51:21 1995 Miles Bader <miles@gnu.ai.mit.edu>
-
- * reply_mig_hack.awk: New file.
-
-Tue Nov 14 14:31:03 1995 Miles Bader <miles@gnu.ai.mit.edu>
-
- * breakpoint.c (breakpoint_1): Print breakpoint thread field.
-
- * lynx-nat.c (child_wait): Return TARGET_WAITKIND_SPURIOUS for new
- threads.
-
-Mon Nov 13 18:30:53 1995 Miles Bader <miles@gnu.ai.mit.edu>
-
- * target.c (debug_to_check_threads): New function.
-
- * inflow.c (terminal_init_inferior_with_pgrp): New function.
- (terminal_init_inferior): Call terminal_init_inferior_with_pgrp.
- * inferior.h (terminal_init_inferior_with_pgrp): New declaration,
- but only if PROCESS_GROUP_TYPE is defined.
-
-Mon Nov 6 16:42:09 1995 Miles Bader <miles@gnu.ai.mit.edu>
-
- * target.c (debug_to_thread_alive): Pass through the return value.
-
-Thu Nov 2 18:05:00 1995 Miles Bader <miles@gnu.ai.mit.edu>
-
- * target.c (signals, target_signal_from_host, target_signal_to_host):
- Add mach exceptions.
- * target.h (enum target_signal): Add mach exceptions.
-
-Mon Oct 30 16:41:04 1995 Miles Bader <miles@gnu.ai.mit.edu>
-
- * gnu-nat.c: New file: gnu native backend.
- * i386gnu-nat.c: New file: i386-specific part of gnu native backend.
- * gnu-nat.h: New file.
- * config/nm-gnu.h: New file.
- * config/tm-i386gnu.h: New file.
- * config/xm-i386gnu.h: New file.
- * config/i386/i386gnu.mh: New file.
- * config/i386/i386gnu.mt: New file.
-
-Wed Feb 28 15:50:12 1996 Fred Fish <fnf@cygnus.com>
-
- * Makefile.in (VERSION): Bump version to 4.15.2 to establish
- baseline for gdb 4.16 rerelease testing.
-
-Wed Feb 28 13:32:05 1996 Jeffrey A Law (law@cygnus.com)
-
- * somsolib.c (som_solib_create_inferior_hook): Before returning
- call clear_symtab_users.
-
-Tue Feb 27 00:04:46 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * remote-e7000.c (e7000_open): Delete all breakpoints when
- connecting to e7000. Change connect message to allow use of
- monitor.exp in test suite.
- * (e7000_load): Print transfer rate of download.
- * symfile.c (generic_load): Print transfer rate of download.
-
-Sun Feb 25 13:58:33 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * configure.in (mips*-*-vxworks*): New config.
- * configure: Regenerated.
-
- * config/mips/vxmips.mt, config/mips/tm-vxmips.h: New files.
- * remote-vxmips.c (vx_convert_to_virtual, vx_convert_from_virtual):
- Remove, never used.
-
-Sat Feb 24 12:30:28 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * partial-stab.h (case N_FUN): Function symbols generated
- by SPARCworks cc have a meaningless zero value, do not update
- pst->textlow if the function symbol value is zero.
-
- * stabsread.c (define_symbol): Initialize SYMBOL_TYPE field
- for function prototype declaration symbols.
-
-Fri Feb 23 22:33:04 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * remote-e7000.c (e7000_load): New routine to download via the
- network.
- * (e7000_wait): Don't backup PC when we hit a breakpoint.
- Apparantly new sh2 pods get this right...
- * (e7000_ops): Add call to e7000_load.
-
-Thu Feb 22 00:52:42 1996 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * config/m68k/{nbsd.mh,nbsd.mt,nm-nbsd.h,tm-nbsd.h,xm-nbsd.h},
- m68knbsd-nat.c: New files, support for NetBSD/m68k.
-
- * configure.in (m68k-*-netbsd*): New config.
- * configure: Regenerated.
-
-Wed Feb 21 19:00:21 1996 Fred Fish <fnf@cygnus.com>
-
- * standalone.c (open, _initialize_standalone): Fix obvious typos
- reported by Martin Pool <martin@citr.uq.oz.au>.
-
-Wed Feb 21 14:24:04 1996 Jeffrey A Law (law@cygnus.com)
-
- * solib.c (solib_create_inferior_hook): Fix thinko.
-
-Tue Feb 20 23:59:19 1996 Jeffrey A Law (law@cygnus.com)
-
- * solib.c (solib_break_names): Define for Solaris and Linux.
- (enable_break): For SVR4 systems, first try to use the debugger
- interfaces in the dynamic linker to track shared library events
- as they happen, then fall back to BKPT_AT_SYMBOL code. Convert
- BKPT_AT_SYMBOL code to use shared library event breakpoints.
- (solib_create_inferior_hook): Simplify BKPT_AT_SYMBOL code,
- it no longer needs to restart/wait on the inferior.
- * symfile.c (find_lowest_section): No longer static.
- * symfile.h (find_lowest_section): Corresponding changes.
-
-Tue Feb 20 18:54:08 1996 Fred Fish <fnf@cygnus.com>
-
- * valops.c (COERCE_FLOAT_TO_DOUBLE): Define default value.
- (value_arg_coerce): Use COERCE_FLOAT_TO_DOUBLE.
- * config/alpha/tm-alpha.h (COERCE_FLOAT_TO_DOUBLE): Define to 1.
- * config/mips/tm-mips.h: Ditto.
- * config/pa/tm-hppa.h: Ditto.
- * config/rs6000/tm-rs6000.h: Ditto.
- * config/sparc/tm-sparc.h: Ditto.
-
-Tue Feb 20 17:32:05 1996 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * config/{i386,ns32k}/nbsd.mh (NATDEPFILES): Remove core-aout.o.
-
- * config/nm-nbsd.h (FETCH_INFERIOR_REGISTERS): Defined.
- * config/xm-nbsd.h (CC_HAS_LONG_LONG, PRINTF_HAS_LONG_LONG):
- #ifdef'd out definitions --- Causes serious gdb failures on
- the i386. Need to investigate further before enabling.
-
- * i386b-nat.c (fetch_inferior_registers, store_inferior_registers,
- fetch_core_registers): New functions. These functions are defined
- if FETCH_INFERIOR_REGISTERS is set. Registers are fetched/stored
- with ptrace PT_GETREGS/PT_SETREGS.
-
-Tue Feb 20 16:55:06 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * findvar.c (extract_floating store_floating): Replace `long
- double' with `DOUBLEST'.
-
-Mon Feb 19 15:25:51 1996 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * config/xm-nbsd.h (CC_HAS_LONG_LONG, PRINTF_HAS_LONG_LONG):
- Define.
-
-Mon Feb 19 10:32:05 1996 Jeffrey A Law (law@cygnus.com)
-
- * symtab.h (looup_minimal_symbol_solib_trampoline): Declare.
-
- * breakpoint.h (remove_solib_event_breakpoints): Declare.
- * breakpoint.c (remove_solib_event_breakpoints): New function.
- * somsolib.c (solib_create_inferior_hook): Remove all solib event
- breakpoints before inserting any new ones. Use a solib event
- breakpoint for the breakpoint at "_start".
- Remove extraneous "\n" from calls to warning.
-
- * breakpoint.c (breakpoint_1): Add missing "sigtramp" to bptypes
- name array.
-
-Mon Feb 19 01:09:32 1996 Doug Evans <dje@cygnus.com>
-
- * dwarfread.c (add_partial_symbol): Use ADD_PSYMBOL_ADDR_TO_LIST
- for CORE_ADDR values.
- (new_symbol): Use SYMBOL_VALUE_ADDRESS for CORE_ADDR values.
- * symfile.h (add_psymbol_{,addr}to_list): Add prototypes.
-
-Sun Feb 18 14:37:13 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * mipsread.c (mipscoff_symfile_read): Unconditionally add
- alpha coff dynamic symbols for all symbol files. Makes skipping
- over the trampoline code work when stepping from a function in a
- shared library into a function in a different shared library.
-
-Sun Feb 18 09:27:10 1996 Stu Grossman (grossman@cygnus.com)
-
- * config/sparc/tm-sparc.h: Define PS_FLAG_CARRY. Define
- RETURN_VALUE_ON_STACK to return long doubles on the stack.
-
-Sat Feb 17 16:33:11 1996 Fred Fish <fnf@cygnus.com>
-
- * Makefile.in (ch-exp.o): Add dependencies.
- (various): Add gdb_string.h to dependencies that need it.
-
-Sat Feb 17 08:57:50 1996 Fred Fish <fnf@cygnus.com>
-
- * symmisc.c (print_symbol_bcache_statistics): Update description for
- printing byte cache statistics.
-
-Thu Feb 16 16:02:03 1996 Stu Grossman (grossman@cygnus.com)
-
- * Add native support for long double data type.
- * c-exp.y (%union): Change dval to typed_val_float. Use DOUBLEST
- to store actual data. Change types of INT and FLOAT tokens to
- typed_val_int and typed_val_float respectively. Create new token
- DOUBLE_KEYWORD to specify the string `double'. Make production
- for FLOAT use type determined by parse_number. Add production for
- "long double" data type.
- * (parse_number): Use sscanf to parse numbers as float, double or
- long double depending upon the type of typed_val_float.dval. Also
- allow user to specify `f' or `l' suffix to explicitly specify
- float or long double constants. Change typed_val to
- typed_val_int.
- * (yylex): Change typed_val to typed_val_int. Also, scan for
- "double" keyword.
- * coffread.c (decode_base_type): Add support for T_LNGDBL basic
- type.
- * configure, configure.in: Add check for long double support in
- the host compiler.
- * defs.h: Define DOUBLEST appropriatly depending on whether
- HAVE_LONG_DOUBLE (from autoconf) is defined. Also, fix prototypes
- for functions that handle this type.
- * expression.h (union exp_element): doubleconst is now type
- DOUBLEST.
- * m2-exp.y f-exp.y (%union): dval becomes type DOUBLEST.
- * findvar.c (extract_floating): Make return value be DOUBLEST.
- Also, add support for numbers with size of long double.
- * (store_floating): Arg `val' is now type DOUBLEST. Handle all
- floating types.
- * parser-defs.h parse.c (write_exp_elt_dblcst): Arg expelt is now
- DOUBLEST.
- * valarith.c (value_binop): Change temp variables v1, v2 and v to
- type DOUBLEST. Coerce type of result to long double if either op
- was of that type.
- * valops.c (value_arg_coerce): If argument type is bigger than
- double, coerce to long double.
- * (call_function_by_hand): If REG_STRUCT_HAS_ADDR is defined, and
- arg type is float and > 8 bytes, then use pointer-to-object
- calling conventions.
- * valprint.c (print_floating): Arg doub is now type DOUBLEST.
- Use appropriate format and precision to print out floating point
- values.
- * value.h: Fixup prototypes for value_as_double,
- value_from_double, and unpack_double to use DOUBLEST.
- * values.c (record_latest_value): Remove check for invalid
- floats. Allow history to store them so that people may examine
- them in hex if they want.
- * (value_as_double unpack_double): Change return value to DOUBLEST.
- * (value_from_double): Arg `num' is now DOUBLEST.
- * (using_struct_return): Use RETURN_VALUE_ON_STACK macro (target
- specific) to expect certain types to always be returned on the stack.
-
-Fri Feb 16 14:00:54 1996 Fred Fish <fnf@cygnus.com>
-
- * bcache.c, bcache.h: New files to implement a byte cache.
- * Makefile.in (SFILES): Add bcache.c.
- (symtab_h): Add bcache.h.
- (HFILES_NO_SRCDIR): add bcache.h
- (COMMON_OBJS): Add bcache.o
- (bcache.o): New target.
- * dbxread.c (start_psymtab): Make global_syms & static_syms
- type "partial_symbol **".
- * hpread.c (hpread_start_symtab): Ditto.
- * os9kread.c (os9k_start_psymtab): Ditto.
- * stabsread.h (start_psymtab): Ditto.
- * {symfile.c, symfile.h} (start_psymtab_common): Ditto.
- * maint.c (maintenance_print_statistics): Call
- print_symbol_bcache_statistics.
- * objfiles.c (allocate_objfile): Initialize psymbol bcache malloc
- and free pointers.
- * solib.c (allocate_rt_common_objfile): Ditto.
- * symfile.c (reread_symbols): Ditto.
- (free_objfile): Free psymbol bcache when objfile is freed.
- (objfile_relocate): Use new indirect psymbol pointers.
- * objfiles.h (struct objfile): Add psymbol cache.
- * symfile.c (compare_psymbols): Now passed pointers to pointers to
- psymbols.
- (reread_symbols): Free psymbol bcache when freeing other objfile
- resources.
- (add_psymbol_to_list, add_psymbol_addr_to_list): Initialize new
- psymbol using the psymbol bcache.
- (init_psymbol_list): Psymbol lists now contain pointers rather than
- the actual psymbols.
- * symfile.h (psymbol_allocation_list): Psymbol lists now dynamically
- grown arrays of pointers.
- (ADD_PSYMBOL_VT_TO_LIST): Initialize new symbol using the psymbol
- bcache.
- * symmisc.c (print_partial_symbols): Now takes pointer to pointer
- to partial symbol.
- (print_symbol_bcache_statistics): New function to print per objfile
- bcache statistics.
- (print_partial_symbol, print_partial_symbols,
- maintenance_check_symtabs, extend_psymbol_list):
- Account for change to pointer to pointer to partial symbol.
- * symtab.c (find_pc_psymbol, lookup_partial_symbol, decode_line_2,
- make_symbol_completion_list):
- Account for change to pointer to pointer to partial symbol.
- * symtab.h (bcache.h): Include.
- * xcoffread.c (xcoff_start_psymtab): Make global_syms & static_syms
- type "partial_symbol **".
-
-Fri Feb 16 10:02:34 1996 Fred Fish <fnf@cygnus.com>
-
- * dwarfread.c (free_utypes): New function.
- (read_file_scope): Call free_utypes as cleanup, rather than just
- freeing the utypes pointer.
-
-Thu Feb 15 21:40:52 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * demangle.c (is_cplus_marker): New function, checks if a
- character is one of the commonly used C++ marker characters.
- * defs.h (is_cplus_marker): Add prototype.
- * c-typeprint.c (c_type_print_base), ch-lang.c (chill_demangle),
- cp-valprint.c (cp_print_class_method), mdebugread.c (parse_symbol),
- stabsread.c (define_symbol, read_member_functions, read_struct_fields),
- symtab.h (OPNAME_PREFIX_P, VTBL_PREFIX_P, DESTRUCTOR_PREFIX_P),
- values.c (vb_match): Use is_cplus_marker instead of comparison
- with CPLUS_MARKER.
-
-Thu Feb 15 18:08:13 1996 Fred Fish <fnf@cygnus.com>
-
- * symfile.h (INLINE_ADD_PSYMBOL): Default this to 0 and possibly
- delete entirely someday.
-
-Thu Feb 15 15:25:34 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-make.sed: Edit out makefile rebuild rule.
- (host_alias, target_alias): Comment out instead of deleting.
- (@LIBS@): Edit out references.
-
-Tue Feb 13 22:56:46 1996 Fred Fish <fnf@cygnus.com>
-
- * symfile.c (add_psymbol_to_list, add_psymbol_addr_to_list):
- Use n_psyms in OBJSTAT, not psyms.
-
-Mon Feb 12 15:59:31 1996 Doug Evans <dje@charmed.cygnus.com>
-
- * configure.in (sparclet-*-aout*): New config.
- * configure: Regenerated.
-
-Mon Feb 12 14:17:52 1996 Fred Fish <fnf@cygnus.com>
-
- * somsolib.c (som_solib_add): Use xmalloc rather than bare
- unchecked call to malloc.
- * remote-mips.c (pmon_load_fast): ditto.
- * remote-mm.c (mm_open): ditto.
- * hpread.c (hpread_lookup_type): ditto.
- * remote-adapt.c (adapt_open): ditto.
-
-Mon Feb 12 13:11:32 1996 Fred Fish <fnf@cygnus.com>
-
- * f-lang.c (allocate_saved_bf_node, allocate_saved_function_node,
- allocate_saved_f77_common_node, allocate_common_entry_node,
- add_common_block): Use xmalloc rather than malloc, some of which
- were unchecked.
- * gnu-regex.c: At same point as other gdb specific changes
- #undef malloc and then #define it to xmalloc.
- * ch-exp.c (growbuf_by_size): Use xmalloc/xrealloc rather than
- bare unchecked calls to malloc/realloc.
- * stabsread.c (dbx_lookup_type): Use xmalloc rather than bare
- unchecked call to malloc.
-
-Wed Feb 7 11:31:26 1996 Stu Grossman (grossman@cygnus.com)
-
- * symtab.c (gdb_mangle_name): Change opname var to be const to
- match return val of cplus_mangle_name.
- * i960-tdep.c: Change arg types of next_insn to match callers.
-
-Wed Feb 7 07:34:24 1996 Fred Fish <fnf@cygnus.com>
-
- * config/i386/linux.mh (XM_CLIBS, GDBSERVER_LIBS): Remove. These
- apparently aren't needed in any reasonably recent version of
- linux.
-
-Tue Feb 6 21:37:03 1996 Per Bothner <bothner@kalessin.cygnus.com>
-
- * stabsread.c (read_range_type): If !self-subrange and language
- is Chill, assume a true range. If a true_range is a sub_subrange,
- use builtin_type_int for index_type.
-
-Tue Feb 6 18:38:51 1996 J.T. Conklin <jtc@slave.cygnus.com>
-
- * nindy-share/nindy.c (say): Use stdarg.h macros when compiling
- with an ANSI compiler.
-
-Mon Feb 5 18:24:28 1996 Steve Chamberlain <sac@slash.cygnus.com>
-
- From Michael_Snyder@NeXT.COM (Michael Snyder):
- * valops.c (value_arg_coerce): Coerce float to double, unless the
- function prototype specifies float.
-
-Mon Feb 5 09:51:55 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * language.c (set_language_command): Use languages table when
- printing available languages.
-
-Sat Feb 3 12:22:05 1996 Fred Fish <fnf@cygnus.com>
-
- Fix problems reported by Hans Verkuil (hans@wyst.hobby.nl):
- * command.c (add_cmd): Add missing initialization for enums member.
- Reorder members to match structure declaration to make it easier to
- tell when one is missing.
- * exec.c (exec_file_command): Fix problem where filename in malloc'd
- memory is referenced after being freed.
-
-Sat Feb 3 03:26:21 1996 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * dwarfread.c (read_func_scope): Avoid GDB core dumps if
- AT_name tag is missing.
-
- * procfs.c (procfs_stopped_by_watchpoint): Fix logic when
- FLTWATCH and FLTKWATCH are defined.
-
- * remote.c (remote_read_bytes): Advance memaddr for transfers,
- return number of bytes transferred for partial reads.
-
- * top.c (init_signals): Reset SIGTRAP to SIG_DFL.
-
-Fri Feb 2 13:40:50 1996 Steve Chamberlain <sac@slash.cygnus.com>
-
- * win32-nat.c (mappings): Add ppc registers.
- (child_resume): Turn off step for ppc.
-
-Thu Feb 1 10:29:31 1996 Steve Chamberlain <sac@slash.cygnus.com>
-
- * config/powerpc/(cygwin32.mh, cygwin32.mt, tm-cygwin32.h,
- xm-cygwin32.h): New.
- * config/i386/(*win32*): Becomes *cygwin32*.
- * configure.in (i[3456]86-*-win32*): Becomes i[3456]86-*-cygwin32.
- (powerpcle-*-cygwin32): New.
- * configure: Regenerate.
- * win32-nat.c (child_create_inferior): Call CreateProcess
- with the right program arg.
-
-Thu Feb 1 11:01:10 1996 Jeffrey A Law (law@cygnus.com)
-
- * config/pa/tm-hppa.h (SOFT_FLOAT): Provide a default definition.
-
-Wed Jan 31 19:01:28 1996 Fred Fish <fnf@cygnus.com>
-
- * serial.c: Change fputc/fputs/fprintf to _unfiltered forms.
-
-Wed Jan 31 18:36:27 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * config/sparc/xm-sun4os4.h (HAVE_TERMIOS): Remove.
-
- * config/sparc/xm-sparc.h (HAVE_WAIT_STRUCT): Remove, never used.
-
- * config/i386/nm-i386mach.h (CHILD_PREPARE_TO_STORE): Move to
- here from config/i386/xm-i386mach.h, fix name.
- * config/i386/nm-sun386.h: Ditto, from config/i386/xm-sun386.h.
- * config/i386/nm-ptx4.h (CHILD_PREPARE_TO_STORE): Move to
- here from config/i386/xm-ptx4.h.
- * config/i386/nm-ptx4.h: Ditto, from config/i386/xm-ptx.h.
- * config/i386/nm-symmetry.h: Ditto, from config/i386/xm-symmetry.h.
- * config/m68k/nm-sun3.h: Ditto, from config/m68k/xm-sun3.h.
- * config/sparc/nm-nbsd.h: Ditto, from config/sparc/xm-nbsd.h.
- * config/sparc/nm-sun4os4: Ditto, from config/sparc/xm-sparc.h.
-
- * config/sparc/nm-sun4sol2.h: New file, renamed from nm-sysv4.h.
- (PRSVADDR_BROKEN): Move here from xm-sun4sol2.h.
- * config/sparc/sun4sol2.mh (NAT_FILE): Update.
-
-Wed Jan 31 17:20:26 1996 Jeffrey A Law (law@cygnus.com)
-
- * config/pa/tm-hppa.h (EXTRACT_RETURN_VALUE): Handle software
- floating point correctly.
- (STORE_RETURN_VALUE): Likewise.
- * config/pa/tm-pro.h (SOFT_FLOAT): define.
-
-Wed Jan 31 13:34:52 1996 Fred Fish <fnf@cygnus.com>
-
- * config/i386/xm-linux.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
- Define to what should be reasonable values. However, apparently
- a bug in linux mmap prevents mapped symbol tables from working.
-
-Tue Jan 30 18:26:19 1996 Fred Fish <fnf@cygnus.com>
-
- * defs.h (errno.h>: Move #include closer to head of file to solve
- obscure problem with systems that declare perror with const arg, in
- both errno.h and stdio.h, and const is defined away by intervening
- local include.
-
-Tue Jan 30 15:41:10 1996 Fred Fish <fnf@cygnus.com>
-
- From Jon Reeves <reeves@zk3.dec.com>:
- * i386-stub.c (getpacket): Change fprintf stream from "gdb" to stderr.
- (mem_fault_routine): Fix misplaced volatile type qualifier in decl.
-
-Mon Jan 29 19:05:58 1996 Fred Fish <fnf@cygnus.com>
-
- * Makefile.in (diststuff): Make all-doc; diststuff target does not
- exist in doc/Makefile.in.
-
-Mon Jan 29 18:44:57 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * config/m88k/xm-cxux.h (BP_HIT_COUNT): Remove, never used.
-
-Mon Jan 29 00:10:35 1996 Wilfried Moser <moser@rtl.cygnus.com>
-
- * ch-valprint.c (calculate_array_length): New function to
- determine the length of an array type.
- (chill_val_print (case TYPE_CODE_ARRAY)): If the length of an
- array type is zero, call calculate_array_length.
-
- * gdbtypes.c (get_discrete_bounds (case TYPE_CODE_ENUM)): The
- values may not be sorted. Scan all entries and set the real lower
- and upper bound.
-
-Sun Jan 28 15:50:42 1996 Fred Fish <fnf@cygnus.com>
-
- * config/xm-linux.h: Move include of solib.h and #define of
- SVR4_SHARED_LIBS from here ...
- * config/nm-linux.h: ...to here.
-
-Sat Jan 27 10:34:05 1996 Fred Fish <fnf@cygnus.com>
-
- * configure.in (AC_CHECK_HEADERS): Check for sys/procfs.h.
- Also check for gregset_t and fpregset_t types.
- * configure: Regenerate.
- * core-regset.c (sys/procfs.h): Only include if HAVE_SYS_PROCFS_H
- is defined.
- (fetch_core_registers): Turn into stub unless both HAVE_GREGSET_T
- and HAVE_FPREGSET_T are defined. These changes allow systems
- like linux that are migrating to /proc support to use a single
- configuration for both new and old versions.
-
- * config/i386/linux.mt: Note that this is now for both a.out and
- ELF systems.
- * config/i386/linux.mh (NATDEPFILES): Add solib.o, core-regset.o,
- i386v4-nat.o
- * config/i386/tm-linux.h (tm-sysv4.h): Include.
- * config/i386/xm-linux.h (solib.h): Include
- (SVR4_SHARED_LIBS): Define.
- * i386v4-nat.c: Only compile if HAVE_SYS_PROCFS_H is defined.
- (supply_gregset, fill_gregset): Compile if HAVE_GREGSET_T defined.
- (supply_fpregset, fill_fpregset): Compile if HAVE_FPREGSET_T
- defined.
-
-Fri Jan 26 13:48:14 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * config/sparc/xm-sparc.h (NEW_SUN_CORE): Remove, never used.
- * config/i386/xm-sun386.h: Ditto.
- * config/m68k/xm-sun2.h, config/m68k/xm-sun3.h: Ditto.
-
-Thu Jan 25 16:05:53 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * Makefile.in (INSTALLED_LIBS, CLIBS): Include @LIBS@.
-
-Thu Jan 25 09:22:15 1996 Steve Chamberlain <sac@slash.cygnus.com>
-
- From Greg McGary <gkm@gnu.ai.mit.edu>:
- * dcache.c (dcache_peek, dcache_poke): Advance addr for
- multi-byte I/O.
-
-Thu Jan 25 13:08:51 1996 Doug Evans (dje@cygnus.com)
-
- * infrun.c (normal_stop): Fix test for shared library event.
-
-Thu Jan 25 03:26:38 1996 Doug Evans <dje@charmed.cygnus.com>
-
- * configure.in (sparc64-*-*): Add default host configuration.
- (sparc64-*-solaris2*): Add target configuration.
- (sparc64-*-solaris2* host): Link statically if GCC used.
- * configure: Regenerated.
- * sparc/sp64sol2.mt: New file.
-
-Wed Jan 24 22:31:37 1996 Doug Evans <dje@charmed.cygnus.com>
-
- * Makefile.in (RUNTEST): srcdir renamed to rootsrc.
-
-Wed Jan 24 15:42:24 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * Makefile.in (lint): Close backquotes.
-
-Wed Jan 24 13:19:10 1996 Fred Fish <fnf@cygnus.com>
-
- * NEWS: Make note of new record and replay feature for
- remote debug sessions.
- * serial.c (gdbcmd.h): Include.
- (serial_logfile, serial_logfp, serial_reading, serial_writing):
- Define here, for remote debug session logging.
- (serial_log_command, serial_logchar, serial_write, serial_readchar):
- New functions for remote debug session logging.
- (serial_open): Open remote debug session log file when needed.
- (serial_close): Close remote debug session log file when needed.
- (_initialize_serial): Add set/show commands for name of remote
- debug session log file.
- * serial.h (serial_readchar): Declare
- (SERIAL_READCHAR): Call serial_readchar().
- (SERIAL_WRITE): Call serial_write().
- (serial_close): Declare as extern.
- (serial_logfile, serial_logfp): Declare.
- * top.c (execute_command): Declare serial_logfp. Log user command
- in remote debug session log if log file is open.
- * remote-array.c (array_wait): #ifdef out echo to gdb_stdout.
- (array_read_inferior_memory): Rewrite to fix memory overwrite bug.
- * remote-array.c (SREC_SIZE): Remove, duplicates define in
- monitor.h.
- * remote-array.c (hexchars, hex2mem): Remove, unused.
- * gdbserver/low-linux.c (store_inferior_registers): Remove
- unnecessary extern declaration of registers[].
- * gdbserver/Makefile.in (all): Add gdbreplay.
- * gdbserver/gdbreplay.c: New file.
- * gdbserver/README: Give example of recording a remote
- debug session with gdb and then replaying it with gdbreplay.
-
-Tue Jan 23 18:02:35 1996 Per Bothner <bothner@kalessin.cygnus.com>
-
- * stabsread.c (rs6000_builtin_type): Make bool type unsigned.
- (read_one_struct_field): Support boolean bitfields.
- * c-valprint.c (c_val_print): Print booleans properly.
-
-Tue Jan 23 18:54:09 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * remote-vxsparc.c (vx_convert_to_virtual, vx_convert_from_virtual):
- Remove, never used.
- * config/sparc/vxsparc.mt (TDEPFILES): Add remote-vxsparc.o.
-
-Tue Jan 23 14:36:05 1996 Per Bothner <bothner@kalessin.cygnus.com>
-
- * ch-exp.c (parse_tuple): Error if invalid mode.
-
- * value.h (COERCE_ARRAY): Don't coerce enums.
- (COERCE_ENUM): Don't COERCE_REF.
- (COERCE_NUMBER): New macro (same as COERCE_ARRAY then COERCE_ENUM).
- * valops.c (value_assign): Only do COERCE_ARRAY if internalvar (let
- value_cast handle it otherwise); do *not* COERCE_ENUM either way.
- * valarith.c: Use COERCE_NUMBER instead od COEREC_ARRAY.
- Add COERCE_REF before COERCE_ENUM.
- * values.c (value_as_long): Simplify.
-
- * valops.c (value_array): Create internalvar if !c_style_arrays.
-
- * language.c (lang_bool_type): Add Fortran support.
- * eval.c (OP_BOOL): Use LA_BOOL_TYPE.
-
-Tue Jan 23 13:08:26 1996 Jeffrey A Law (law@cygnus.com)
-
- * symfile.c (auto_solib_add): Renamed from auto_solib_add_at_startup.
- All references changed.
- * breakpoint.c (bpstat_what): Add shlib_event to the class types.
- Update state table. Reformat so that it's still readable.
- When we hit the shlib_event breakpoint, set the calss of shlib_event.
- (breakpoint_1): Add "shlib events" as a breakpoint type.
- Print the shlib_event breakpoint like other breakpoints.
- (create_solib_event_breakpoint): New function.
- (breakpoint_re_set_one): Handle solib_event breakpoints.
- * breakpoint.h (enum bytype): Add bp_shlib_event breakpoint type.
- (enum bpstat_what_main_action): Add BPSTAT_WHAT_CHECK_SHLIBS
- action.
- (create_solib_event_breakpoint): Declare.
- * infrun.c (wait_for_inferior): Handle CHECK_SHLIBS bpstat.
- (normal_stop): Inform the user when the inferior stoped due
- to a shared library event.
- (_initialize_infrun): Add new set/show variable "stop-on-solib-events"
- to control whether or not gdb continues the inferior or stops it when
- a shared library event occurs.
- * minsyms.c (lookup_minimal_symbol_solib_trampoline): New function.
- * somsolib.c (TODO list): Update.
- (som_solib_create_inferior_hook): Arrange for gdb to be notified
- when significant shared library events occur.
- * hppa-tdep.c (find_unwind_entry): No longer static.
-
-Tue Jan 23 09:00:48 1996 Doug Evans <dje@charmed.cygnus.com>
-
- * printcmd.c (print_insn): Pass fprintf_unfiltered to
- INIT_DISASSEMBLE_INFO.
-
-Mon Jan 22 16:59:40 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * remote.c (remotebreak): New GDB variable.
- (remote_break): New global.
- (remote_interrupt): Send a break instead of ^C if remote_break.
- * NEWS: Describe the new variable.
-
-Mon Jan 22 16:24:11 1996 Doug Evans <dje@charmed.cygnus.com>
-
- * sparc-tdep.c (_initialize_sparc_tdep): Always use print_insn_sparc.
-
-Fri Jan 19 07:19:38 1996 Fred Fish <fnf@cygnus.com>
-
- * hp300ux-nat.c (getpagesize): Remove unused function
- fetch_core_registers.
- (hp300ux_core_fns): Remove, is unused.
- (_initialize_core_hp300ux): Remove, is unused.
- (gdbcore.h): Remove #include, no longer needed.
-
-Fri Jan 19 00:59:53 1996 Jeffrey A Law (law@cygnus.com)
-
- * rs6000-nat.c (exec_one_dummy_insn): Rework to avoid
- ptrace bug in aix4.1.3 on the rs6000.
-
-Wed Jan 17 13:22:27 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * remote-hms.c (hms_ops): Add value for to_thread_alive.
- * remote-nindy.c (nindy_ops): Ditto.
- * remote-udi.c (udi_ops): Ditto.
-
-Tue Jan 16 18:00:35 1996 James G. Smith <jsmith@cygnus.co.uk>
-
- * remote-mips.c (pmon_opn, pmon_wait, pmon_makeb64, pmon_zeroset,
- pmon_checkset, pmon_make_fastrec, pmon_check_ack,
- pmon_load_fast): New functions. Support for the PMON monitor world.
- (common_open): New function to merge support for different monitors.
- (mips_open): Use common_open().
- (mips_send_command): New function.
- (mips_send_packet): Scan out-of-sequence packets.
- (mips_enter_debug, mips_exit_debug): New functions.
- (pmon_ops): New target definition structure.
-
-Tue Jan 16 11:22:58 1996 Stu Grossman (grossman@cygnus.com)
-
- * Makefile.in (CLIBS): Add LIBS to allow libraries to be
- specified on the make command line (via make LIBS=xxx).
-
-
-Fri Jan 12 21:41:58 1996 Jeffrey A Law (law@cygnus.com)
-
- * symtab.c (find_pc_symtab): Don't lose if OBJF_REORDERED
- is set but there are no psymtabs.
-
-Fri Jan 12 15:56:12 1996 Steve Chamberlain <sac@slash.cygnus.com>
-
- * dsrec.c (load_srec): Remove unused variable.
- * monitor.c (monitor_expect): Don't expect a ^C to echo.
- * serial.c (serial_open): Add parallel interface.
- * sh3-rom.c (parallel, parallel_in_use): New.
- (sh3_load): If parallel_in_use, download though the
- parallel port.
- (sh3_open): Open parallel port if specified.
- (sh3_close): New function.
- (_inititalize_sh3): Add sh3_close hook and documentation.
- * monitor.c (monitor_close): Export.
- * monitor.h (monitor_close): Add prototype.
-
-Fri Jan 12 13:11:42 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- From Wilfried Moser <wilfried.moser@aut.alcatel.at>:
- * remote.c (remotetimeout): New GDB variable, use to set the
- remote timeout for reading.
-
-Fri Jan 12 07:14:27 1996 Fred Fish <fnf@cygnus.com>
-
- * lynx-nat.c, irix4-nat.c, sparc-nat.c: Include gdbcore.h
- to get "struct core_fns" defined.
- * Makefile.in (lynx-nat.o, irix4-nat.o, sparc-nat.o):
- Are dependent upon gdbcore_h.
-
-Thu Jan 11 23:13:24 1996 Per Bothner <bothner@cygnus.com>
-
- * symfile.c (decrement_reading_symtab): New function.
- * symfile.c, symtab.h (currently_reading_symtab): New variable.
- * symfile.c (psymtab_to_symtab): Adjust currently_reading_symtab.
- * gdbtypes.c (check_typedef): Don't call lookup_symbol if
- currently_reading_symtab (since that could infinitely recurse).
-
-Thu Jan 11 17:21:25 1996 Per Bothner <bothner@kalessin.cygnus.com>
-
- * stabsread.c (read_struct_type): Trivial simplification.
-
- * stabsread.c (define-symbol): Use invisible references
- for TYPE_CODE_SET and TYPE_CODE_BITSTRING too.
- * valops.c (call_function_by_hand): Likewise.
- * eval.c (evaluate_subexp_standard): When known, use the formal
- parameter type as the expected type when evaluating arg expressions.
- * ch-lang.c (evaluate_subexp_chill): Likewise (for MULTI_SUBSCRIPT).
-
-Thu Jan 11 10:08:14 1996 Tom Tromey <tromey@creche.cygnus.com>
-
- * main.c (main): Disable window interface if --help or --version
- specified.
-
-Wed Jan 10 16:08:49 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
-
- * configure.in, configure: Recognize rs6000-*-aix4*.
- * config/powerpc/xm-aix.h: Reduce to include "xm-aix4.h".
- * config/rs6000/aix4.mh (XM_FILE): Point to xm-aix4.h.
- * config/rs6000/xm-aix4.h: New file.
- * config/xm-aix4.h: New file.
-
-Wed Jan 10 11:25:37 1996 Fred Fish <fnf@cygnus.com>
-
- From Wilfried Moser <wilfried.moser@aut.alcatel.at>:
- * gdbserver/low-linux.c: New file.
- * remote.c (remote_read_bytes): Fix aborts on larger packets.
-
- * config/i386/linux.mh (GDBSERVER_DEPFILES, GDBSERVER_LIBS):
- Define.
- * stabsread.c (define_symbol): If register value is too large,
- tell what it is and what max is.
-
-Tue Jan 9 09:33:53 1996 Jeffrey A Law (law@cygnus.com)
-
- * hpread.c (hpread_build_psymtabs): Finish Jan 4th
- enum namespace -> enum_namespace change.
-
-Tue Jan 9 04:44:47 1996 Wilfried Moser <moser@rtl.cygnus.com>
-
- * ch-exp.c (parse_primval): In case ARRAY, add missing
- FORWARD_TOKEN ().
-
-Mon Jan 8 13:29:34 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * remote-mips.c (mips_receive_header): Recognize \012 instead
- of \n, but write \n when program sends a \012.
- * ser-mac.c (mac_input_buffer): Increase size of buffer.
-
-Mon Jan 8 12:00:40 1996 Jeffrey A Law (law@cygnus.com)
-
- * infptrace.c (initialize_infptrace): Move function out of
- #ifdef conditional; put code within the function inside an
- #ifdef conditional.
-
- * buildsym.c (end_symtab): Remove sort_pending and sort_linevec
- arguments. Sorting is now dependent on OBJF_REORDERED. All
- callers/references changed.
- * dbxread.c (read_ofile_symtab): Correctly determine value for
- last_source_start_addr for reordered executables.
- (process_one_symbol): Handle N_FUN with no name as an end of
- function marker.
- * partial-stab.h (case N_FN, N_TEXT): Don't assume CUR_SYMBOL_VALUE
- is the high text address for a psymtab.
- (case N_SO): Likewise.
- (case N_FUN): Handle N_FUN with no name as an end of function
- marker.
- * minsyms.c (lookup_minimal_symbol_by_pc): Examine all symbols
- at the same address rather than a random subset of them.
- * coffread.c (coff_symfile_init): Set OBJF_REORDERED.
- * elfread.c (elf_symfile_init): Similarly.
- * somread.c (som_symfile_init): Similarly.
- * xcoffread.c (xcoff_symfile_init): Similarly.
-
-Fri Jan 5 17:46:01 1996 Stu Grossman (grossman@cygnus.com)
-
- * stack.c (print_stack_frame print_frame_info) symmisc.c
- (dump_symtab): Change RETURN_MASK_ERROR to RETURN_MASK_ALL so
- that catch_errors doesn't get blindsided by QUIT and lose the
- cleanup chain. This fixes a problem where ^C while in a
- user-defined command sometimes leaves instream NULL and causes a
- segfault in command_loop.
-
-Fri Jan 5 13:59:16 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
-
- * configure.in, configure: Add `-ldl -lw' for Solaris linking.
-
-Fri Jan 5 12:02:00 1996 Steve Chamberlain <sac@slash.cygnus.com>
-
- * config/sh/sh.mt, config/powerpc/*.mt, config/pa/hppapro.mt,
- config/m68k/monitor.mt, config/h8500/h8500.mt, config/h8300/h8300.mt:
- srec.o renamed to dsrec.o.
-
-Thu Jan 4 16:04:54 1996 Stu Grossman (grossman@cygnus.com)
-
- * breakpoint.c (remove_breakpoint): Change error to warning so
- that hardware watchpoint removal problems won't leave breakpoint
- traps in the target.
- * remote-e7000.c (e7000_insert_breakpoint,
- e7000_remove_breakpoint): Use e7000 based breakpoints, not memory
- breakpoints.
- * (e7000_wait): Adjust PC back by two when we see a breakpoint to
- compensate for e7000 maladjustment.
- * sparcl-tdep.c (sparclite_check_watch_resources): Fix logic bug
- which prevented hardware watchpoints from working.
-
-Thu Jan 4 10:44:17 1996 Fred Fish <fnf@cygnus.com>
-
- * infptrace.c (udot_info): New function.
- (PT_*): Define each individually if that one is not defined.
- * rs6000-nat.c (kernel_u_size): New function
- Include <sys/user.h> for "struct user"
- * alpha-nat.c (kernel_u_size): New function.
- Include <sys/user.h> for "struct user"
- * sparc-nat.c (kernel_u_size): New function.
- Include <sys/user.h> for "struct user"
- * i386b-nat.c (kernel_u_size): New function.
- * i386v-nat.c (kernel_u_size): New function.
- * config/i386/nm-fbsd.h (KERNEL_U_SIZE): Define.
- (kernel_u_size): Declare.
- * config/i386/nm-linux.h (KERNEL_U_SIZE): Define.
- (kernel_u_size): Declare.
- * config/sparc/nm-sun4os4.h (KERNEL_U_SIZE): Define.
- (kernel_u_size): Declare.
- * config/alpha/nm-osf2.h (KERNEL_U_SIZE): Define.
- (kernel_u_size): Declare.
- * config/rs6000/nm-rs6000.h (KERNEL_U_SIZE): Define.
- (kernel_u_size): Declare.
-
-Thu Jan 4 11:00:01 1996 steve chamberlain <sac@slash.cygnus.com>
-
- * mdebugread.c (mylookup_symbol): enum namespace becomes
- enum_namespace type.
- * symfile.c (add_psymbol_to_list)
- (add_psymbol_addr_to_list): Ditto.
- * symtab.c (lookup_partial_symbol): Ditto.
- (lookup_symbol): Ditto.
- (lookup_block_symbol): Ditto.
- * win32-nat.c (handle_load_dll): Use incoming dll base.
- (child_wait): Catch DLL load errors.
- (create_child_inferior): Translated between paths correctly.
-
-Wed Jan 3 23:13:53 1996 Fred Fish <fnf@cygnus.com>
-
- * i386v4-nat.c (supply_gregset, fill_gregset): Subtract NUM_FREGS
- from NUM_REGS to get number of general registers that we care about.
- * config/i386/tm-i386.h (REGISTER_BYTES): Define in terms
- of number of general regs and number of floating point regs.
-
-Wed Jan 3 19:49:54 1996 steve chamberlain <sac@slash.cygnus.com>
-
- * config/i386/tm-win32.h (IN_SOLIB_CALL_TRAMPOLINE): New.
- (SKIP_TRAMPOLINE_CODE): New.
- * config/i386/xm-win32.h (CANT_FORK): Deleted.
- (SLASH*) Changed to use unix style slash.
- * symtab.h (namespace enum): becomes typedef to avoid namespace
- collision in C++.
- * infcmd.c (path_command): Use empty string if PATH name not set.
- * i386-tdep.c (skip_trampoline_code): New function.
- * srec.c: Renamed dsrec.c to avoid filename collision.
- * Makefile.in: Cope with renaming.
-
-Wed Jan 3 13:09:04 1996 Fred Fish <fnf@cygnus.com>
-
- * symmisc.c (print_objfile_statistics): Print memory use statistics
- for objfile psymbol, symbol, and type obstacks.
-
-Tue Jan 2 13:41:14 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * config/mips/nm-irix5.h: Restore.
- (TARGET_HAS_HARDWARE_WATCHPOINTS, etc): Define as for Irix 4;
- from Lee Iverson <leei@ai.sri.com>.
- * config/mips/irix5.mh (NAT_FILE): Use nm-irix5.h.
- * config/mips/irix[345].mh (MUNCH_DEFINE): Remove.
-
-For older changes see ChangeLog-95
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/contrib/gdb/gdb/ChangeLog-97 b/contrib/gdb/gdb/ChangeLog-97
deleted file mode 100644
index 4f9a949..0000000
--- a/contrib/gdb/gdb/ChangeLog-97
+++ /dev/null
@@ -1,2855 +0,0 @@
-Wed Dec 31 11:43:53 1997 Mark Alexander <marka@cygnus.com>
-
- * dsrec.c (load_srec): Check remotedebug flag when printing
- debug info.
-
-Wed Dec 31 10:33:15 1997 David Taylor <taylor@texas.cygnus.com>
-
- * breakpoint.c (breakpoint_re_set): add _siglongjmp to list of
- longjmp breakpoints.
-
-Mon Dec 29 21:25:34 1997 Mark Alexander <marka@cygnus.com>
-
- * dve3900-rom.c: New file to support Densan DVE-R3900/20 board.
- * monitor.c (monitor_debug): Move to utils.c, rename to puts_debug.
- (monitor_write_memory, monitor_read_memory, monitor_insert_breakpoint,
- monitor_remove_breakpoint): Remove useless address bits if current
- monitor has MO_ADDR_BITS_REMOVE flag.
- * monitor.h (MO_ADDR_BITS_REMOVE): Define.
- * utils.c (puts_debug): Formerly monitor_debug from monitor.c;
- move here and make public. Add better support for carriage returns.
- * defs.h (puts_debug): Declare.
- * dsrec.c (load_srec): Use puts_debug to print remotedebug information.
- Output header record correctly.
- (make_srec): Output a header record instead of a termination record
- if sect is non-NULL (value is ignored), but abfd is NULL.
- * config/mips/tm-tx39.h (DEFAULT_MIPS_TYPE): Remove definition.
- (REGISTER_NAMES): Define to add R3900-specific registers.
- * config/mips/tm-tx39l.h: Ditto.
- * config/mips/tx39.mt (TDEPFILES): Add dve3900-rom.o and support files.
- * config/mips/tx39l.mt: Ditto.
-
-Wed Dec 24 12:48:48 1997 Stan Shebs <shebs@andros.cygnus.com>
-
- * dsrec.c: Cosmetic improvements.
- (make-srec): Change indexing of format and code tables to
- remove confusing empty entries.
-
-Mon Dec 22 21:51:53 1997 Mark Alexander <marka@cygnus.com>
-
- * remote-mips.c (_initialize_remote_mips): Fix DDB doc string.
-
-Sun Dec 21 17:00:06 1997 David Taylor <taylor@texas.cygnus.com>
-
- * d30v-tdep.c (d30v_frame_find_saved_regs): split most of
- function off into d30v_frame_find_saved_regs_offsets;
- (d30v_frame_find_saved_regs_offsets): new function. Got
- backtrace working when calling from framefull (unoptimized)
- routines (.e.g, main) into frameless (optimized) routines
- (e.g., printf).
-
-Fri Dec 19 09:49:49 1997 David Taylor <taylor@texas.cygnus.com>
-
- * d30v-tdep.c (d30v_frame_chain): test end_of_stack
- (d30v_frame_find_saved_regs): set it.
- * config/d30v/tm-d30v.h: improved FRAME_CHAIN_VALID
-
-Thu Dec 18 12:34:28 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- From Gavin Koch <gavin@cygnus.com>: mips-tdep.c
- * (mips_push_arguments): For big-endian shorts and char's store at
- * the correct location.
-
-Thu Dec 18 00:26:46 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * mdebugread.c (parse_partial_symbols): Delete check that symbols
- for file not already loaded. Did not work when an include file
- was involved.
-
-Wed Dec 17 10:43:04 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * elfread.c (elf_symfile_read): Since the partial symbol table is
- searched last in first, insert mdebug or XCOFF info into the
- partial symbol table before any DWARF2 info.
-
-Thu Dec 18 00:00:48 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * symfile.c (init_psymbol_list): Handle init with zero elements.
-
- * elfread.c (elf_symfile_read): If `mainline', clear psymbol table
- using init_psymbol_list 0. For build_psymtabs functions, pass
- mainline==0 so that psymbol_list isn't re-initialized.
-
- * symfile.c (discard_psymtab): New function, correctly unlink an
- empty psymtab from an object file.
- * dbxread.c (end_psymtab): Call discard_psymtab.
- * xcoffread.c (xcoff_end_psymtab): Ditto.
- * hpread.c (hpread_end_psymtab): Ditto.
- * os9kread.c (os9k_end_psymtab): Ditto.
-
-Wed Dec 17 10:47:05 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * tracepoint.c (set_raw_tracepoint): initialize addr_string
- to NULL; (trace_actions_command): call readline_begin_hook only
- if from_tty is true.
-
-Tue Dec 16 20:05:48 1997 Mark Alexander <marka@cygnus.com>
-
- * configure.tgt: Change little-endian tx39 target name to tx39l.
-
-Tue Dec 16 11:24:30 1997 Jeffrey A Law (law@cygnus.com)
-
- * remote-sim.c (gdbsim_open): Use "--architecture" instead of
- ambigious short form.
-
-Tue Dec 16 10:29:16 1997 David Taylor <taylor@texas.cygnus.com>
-
- * d30v-tdep.c (d30v_frame_chain): don't or in DMEM_START to
- FP_REGNUM value before return; (prologue_find_regs): two sets
- of offsets -- frame pointer and stack pointer, not just one that
- tries to do double duty; (d30v_frame_find_saved_regs): stop once
- we hit pc (in case we're stopped in the middle of the prologue)
- and improve handling of frameless prologues; (d30v_push_arguments):
- *ALL* arguments go on the stack until we run out of args registers,
- force sp to be 8 byte aligned.
-
- * config/tm-d30v.h (EXTRACT_STRUCT_VALUE_ADDRESS): fix, it's r2,
- not r0; (FRAME_CHAIN_VALID): handle use of external memory;
- (STACK_ALIGN): define.
-
-Mon Dec 15 15:13:57 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-sim.c (gdbsim_wait): When HAVE_SIGACTION and SA_RESTART
- intall cntrl-c handler with SA_RESTART clear. On BSD systems this
- stops read syscalls's being restarted.
-
- * configure.in (configdirs): Check for sigaction.
- * configure: Re-generate.
-
-Mon Dec 15 11:38:52 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * dwarf2read.c: From change proposed by Gavin Koch.
- (address_significant_size): New static variable.
- (dwarf2_build_psymtabs_hard): Check consistency between
- `address_size' and `address_significant_size'.
- (read_address): MASK out all but the significant bits, as
- determined by `address_significant_size', of any addresses.
- (elf-bfd.h): Include.
- (dwarf2_build_psymtabs_hard): Set `address_significant_size'
- according to the arch_size of the elf object file.
-
-Thu Dec 11 13:40:46 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * dwarf2read.c (dwarf_decode_lines): Change type of address to
- CORE_ADDR.
-
-Thu Dec 11 14:28:01 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * tracepoint.c (trace_find_command): don't error if going
- backwards thru the trace buffer in a loop.
- * (struct tracepoint): delete unused field.
-
-Wed Dec 10 17:57:00 1997 David Taylor <taylor@texas.cygnus.com>
-
- * d30v-tdep.c : don't bury lots of magic numbers in the code
- instead use defines for the opcodes and opcode masks; update
- to use actual d30v patterns; fix register sizes to be 4 bytes
- not 2 bytes; improve prologue testing now that we have a C
- compiler; fix stack frame handling enough to get backtraces
- working; initial changes to push and pop frames (so that gdb
- can call functions in the inferior).
-
- * config/d30v/tm-d30v.h: update DMEM_START, IMEM_START, and
- STACK_START; change FR_REGNUM to 61 (was 11). Reformat comment
- about DUMMY FRAMES so that it is readable. Fix SAVED_PC_AFTER_FRAME
- macro.
-
-Wed Dec 10 17:41:07 1997 Jim Blandy <jimb@zwingli.cygnus.com>
-
- * ch-valprint.c (chill_val_print): To avoid segfaults, don't print
- a string whose dynamic length is longer than its static length.
-
-Wed Dec 10 15:54:00 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * dwarf2read.c (dwarf2_build_psymtabs_hard): Check
- cu_header.length is within dwarf_info_buffer not
- dwarf_abbrev_buffer.
-
-Mon Dec 8 14:28:49 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * tracepoint.c (memrange_sortmerge): allow for memranges
- that overlap. (collect_pseudocommand etc.) cleanup decls.
-
-Fri Dec 5 09:22:35 1997 Nick Clifton <nickc@cygnus.com>
-
- * config/v850/tm-v850.h (BREAKPOINT): Reverted back to old value...
-
-Thu Dec 4 09:30:22 1997 Nick Clifton <nickc@cygnus.com>
-
- * config/v850/tm-v850.h (BREAKPOINT): Changed to match new value.
-
-Wed Dec 3 12:44:15 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * tracepoint.c: Add declaration for x_command.
-
- * printcmd.c (x_command): Remove static declaration.
-
-Wed Dec 3 12:00:42 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * tracepoint.c (finish_tfind_command): call do_display so that
- auto-displays are updated by tfind. Also, keep track of frame
- and current-function so that tfind behaves like stepping (only
- show the stack frame if we step into a new function or return).
-
-Wed Dec 3 14:14:58 1997 David Taylor <taylor@texas.cygnus.com>
-
- * sol-thread.c: additional support for debugging threaded core
- files on solaris; previously only kernel threads were found --
- user threads generated errors.
- * corelow.c: don't register core_ops as a target if
- coreops_suppress_target is true (set by sol-thread.c).
-
-Tue Dec 2 14:53:09 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * tracepoint.c: make "tdump" command handle literal memranges.
-
-Tue Dec 2 11:34:48 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * tracepoint.c: use "lookup_cmd" to parse actions commands
- (thus allowing unambiguous prefixes and aliases).
-
-Tue Dec 2 10:15:57 1997 Nick Clifton <nickc@cygnus.com>
-
- * configure.tgt: Add support for Thumb target.
-
-Tue Dec 2 10:14:15 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * tracepoint.c: move prototype of validate_actionline(), and
- make it consistent with the function declaration.
-
-Thu Nov 27 09:07:18 1997 Michael Meissner <meissner@cygnus.com>
-
- * Makefile.in (tracepoint_h): New macro for tracepoint.h
- includes.
- (tracepoint.o): Add rule to build.
-
-Wed Nov 26 22:59:04 1997 Jeffrey A Law (law@cygnus.com)
-
- * remote-sim.c (gdbsim_cntrl_c): Lose ANSI prototype.
-
- * tracepoint.c (set_raw_tracepoint): fix typo
-
-Wed Nov 26 11:33:09 1997 Keith Seitz <keiths@onions.cygnus.com>
-
- * tracepoint.c (set_raw_tracepoint): Make sure there's a trailing
- slash on the directory name.
-
- * top.c (get_prompt): New function.
- * top.h: Declare it.
-
-Wed Nov 26 09:59:47 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * dwarf2read.c (struct comp_unit_head): Change length and
- abbrev_offset fields to unsigned int.
- (dwarf2_build_psymtabs_hard): Verify length and offset read from
- .debug_info section.
-
-Mon Nov 24 19:36:34 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * tracepoint.c, tracepoint.h: new module, implements tracing,
- which is a new functionality somewhat like breakpoints except
- that a tracepoint stops the inferior only long enough to collect
- and cache selected buffers and memory locations, then allows
- the inferior to continue; the cached trace data can then be
- examined later.
-
-Mon Nov 24 14:17:02 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * infcmd.c: export registers_info, for use by other modules.
- * printcmd.c: export output_command, for use by other modules.
- * stack.c: export locals_info and args_info, for use by other modules.
- * remote.c: export getpkt, putpkt, and fromhex for external use.
- Make fromhex case-insensative. New function "remote_console_output"
- abstracts the acceptance of "O" packets from target.
- Make all "remotedebug" output go to stdout, not stderr.
-
-Mon Nov 24 08:59:28 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * valprint.c (print_longest): When CC has long long but printf
- doesn't, print decimal value as three parts.
-
- * config/i386/tm-fbsd.h: New file.
- * config/i386/fbsd.mt (TM_FILE): Change to tm-fbsd.h.
-
- * config/i386/nm-fbsd.h (FLOAT_INFO): Move definition from here.
- * config/i386/tm-fbsd.h (FLOAT_INFO): To here.
-
- * configure.in (PRINTF_HAS_LONG_LONG): Check full functionality of
- %ll format specifier.
- (SCANF_HAS_LONG_DOUBLE): Check the scanf family for support of
- long double using %Lg.
- * acconfig.h: Provide default undef for SCANF_HAS_LONG_DOUBLE.
- * configure: Re-generate.
-
- * c-exp.y (parse_number): Use sscanf %Lg when host has
- SCANF_HAS_LONG_DOUBLE not PRINTF_HAS_LONG_DOUBLE
-
-Sun Nov 23 17:12:58 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * printcmd.c (print_insn): Set the machine type if known.
-
- * i386-tdep.c (_initialize_i386_tdep): Delete "set
- assembly-language" command. Replaced by generic "set
- architecture". Set initial machine using bfd_lookup_arch.
-
-Fri Nov 21 19:43:23 1997 Jim Blandy <jimb@zwingli.cygnus.com>
-
- * valops.c (call_function_by_hand): If the function has a
- prototype, convert its arguments as if by assignment. Otherwise,
- do the usual promotions.
- * stabsread.c (define_symbol): Set the TYPE_FLAG_PROTOTYPED flag
- on functions' types when we can; all C++ functions should get it,
- and if the Sun-style prototype notation is in the stabs, we can
- notice that.
-
-Fri Nov 21 12:20:16 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * aclocal.m4 (AM_CYGWIN32, AM_EXEEXT): Remove. They are already
- defined by the inclusion of ../bfd/aclocal.m4.
- * configure: Rebuild.
-
-Fri Nov 21 10:52:39 1997 Michael Meissner <meissner@cygnus.com>
-
- * Makefile.in (SHELL): Really do the change.
-
-Fri Nov 21 02:19:57 1997 Geoffrey Noer <noer@cygnus.com>
-
- * Makefile.in: also revert SHELL change until configury
- changes work
-
-Thu Nov 20 16:35:13 1997 Doug Evans <devans@canuck.cygnus.com>
-
- * sparc-tdep.c (sparc_pc_adjust): Don't assume sizeof (long) == 4.
-
-Thu Nov 20 04:11:27 1997 Geoffrey Noer <noer@cygnus.com>
-
- * aclocal.m4: add EXEEXT setting rule
- * configure.in: call it
- * configure: regenerate
- * Makefile.in: pepper with EXEEXTs in appropriate places,
- set SHELL = @SHELL@ for those lame hosts that don't have a /bin/sh
- For some reason, EXEEXT isn't getting substututed in correctly
- so for now, set EXEEXT to empty string
-
-Mon Nov 17 15:35:06 1997 Doug Evans <devans@canuck.cygnus.com>
-
- * Makefile.in (remote-sim.o): Depend on $(INCLUDE_DIR)/callback.h.
-
-Fri Nov 14 13:04:34 1997 Jeffrey A Law (law@cygnus.com)
-
- * jv-exp.y (copy_exp, insert_exp): Avoid ANSI prototypes.
-
-Thu Nov 13 09:47:35 1997 Michael Meissner <meissner@cygnus.com>
-
- * d30v-tdep.c (d30v_print_flags): Function to print the d30v flags
- in a human readable format.
- (print_flags_command): Command wrapper to call d30v_print_flags.
- (d30v_do_registers_info): When printing out all of the registers,
- print out the flag values in a human readable fashion.
- (_initialize_d30v_tdep): Add info flags command to print the
- flags.
-
- * config/d30v/tm-d30v.h (PSW_*): Add macros for each of the PSW
- bits that are defined.
-
-Wed Nov 12 14:58:39 1997 Jeff Holcomb <jeffh@cygnus.com>
-
- * symfile.c (generic_load): Handle cancel from the
- ui_load_progress_hook routine.
- * dsrec.c (load_srec): Handle cancel from the
- ui_load_progress_hook routine.
-
-Mon Nov 10 15:13:13 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * valprint.c (print_longest): The b, h, w, and g format specifiers
- print unsigned values.
-
-Mon Nov 10 02:02:49 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * top.c (quit_confirm): Change exit message.
-
-Tue Nov 4 16:52:50 1997 Geoffrey Noer <noer@cygnus.com>
-
- * config/i386/cygwin32.mh: because cygwin.dll calls malloc/realloc
- to allocate memory for environ space, gdb cannot use memory
- checks -- set -DNO_MMCHECK
-
-Tue Nov 4 13:50:59 1997 Jim Blandy <jimb@sendai.cygnus.com>
-
- * jv-exp.y (ArrayAccess): Implement Name [ Expression ]; check the
- code to see why this is not trivial.
- (copy_exp, insert_exp): New functions.
-
-Fri Oct 24 17:24:00 1997 Dawn Perchik <dawn@cygnus.com>
-
- * dwarf2read.c (dwarf2_build_psymtabs_hard): Handle the case
- where a compilation unit die has no children (DW_TAG_compile_unit
- has DW_children_no).
- (scan_partial_symbols): Add comment for nesting_level.
-
-Wed Oct 29 15:53:24 1997 David Taylor <taylor@texas.cygnus.com>
-
- * solib.c (solib_break_names): add entry for Solaris 2.6 run
- time linker. From Casper Dik via Peter Schauer.
-
-Tue Oct 28 17:31:47 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * configure.in (configdir): Add -lcomdlg32 and -ladvapi32
- to WIN32LIBS.
-
- * configure: Rebuild
-
-Fri Oct 24 16:48:21 1997 David Taylor <taylor@texas.cygnus.com>
-
- * sol-thread.c (sol_find_new_threads_callback,
- sol_find_new_threads): New functions.
- * config/sparc/nm-sun4sol2.h (FIND_NEW_THREADS): New macro, invoke
- sol_find_new_threads.
- * thread.c (info_threads_command): invoke FIND_NEW_THREADS if it
- is defined.
-
-Thu Oct 23 16:16:04 1997 Jeff Law (law@fast.cs.utah.edu)
-
- * dbxread.c (process_one_symbol): Put back initialization
- of a variable lost during last change. Don't perform
- assignment inside conditionals.
- * stabsread.c (symbol_reference_defined): Return -1 for error/not
- found. All callers changed appropriately.
- (define_symbol): Don't perform assignment inside conditionals.
-
-Wed Oct 22 13:04:52 1997 Jeffrey A Law (law@cygnus.com)
-
- * mdebugread.c (psymtab_to_symtab_1): Handle new live range stabs
- entries.
-
- * dbxread.c: More comment cleanups.
- * stabsread.c: Fix various violations of the GNU coding and
- formatting standards. Update/add comments to make code clearer.
- (resolve_reference): Delete unused function.
- (ref_search_val): Remove function. It didn't belong in stabsread.c
- (resolve_live_range): No longer returns a value. Do not add it
- to the live range list until the entire range stab has been parsed.
- (get_substring): Remove duplicate declaration.
- (resolve_symbol_reference): Now static. Remove unnecessary code
- to deal with cleanups.
- (ref_add): Use xrealloc instea of realloc.
- (process_reference): Reorganize slightly to make clearer.
- * stabsread.h (resolve_symbol_reference): Remove declaration.
- (resolve_reference): Likewise.
- * symtab.c (find_active_alias): New function.
- (lookup_block_symbol): Use find_active_alias.
- * symtab.h (struct range_list): Fix dangling struct live_range
- reference.
- (ref_search_val): Remove decl.
-
- * symtab.h (struct range_list): Renamed from struct live_range.
- (struct symbol): Remove struct live_range_info substruct.
- Bring the alias list and range list fields up to the toplevel
- as "aliases" and "ranges".
- (SYMBOL_ALIASES, SYMBOL_RANGES): Corresponding changes.
- (SYMBOL_RANGE_START, SYMBOL_RANGE_END, SYMBOL_RANGE_NEXT): Delete.
- * stabsread.c: Corresponding changes.
-
- * dbxread.c: Fix various violations of the GNU coding and
- formatting standards. Update/add comments to make code
- clearer.
- (process_later): Use xrealloc instead of realloc.
-
- * symtab.c: Include inferior.h.
-
-Tue Oct 21 14:15:26 1997 Per Bothner <bothner@cygnus.com>
-
- * ch-exp.c: Rename FIELD_NAME to DOT_FIELD_NAME (to avoid conflict).
-
-Fri Oct 17 13:22:02 1997 Stan Shebs <shebs@andros.cygnus.com>
-
- * infcmd.c: Improve grammar of "set args" help.
-
-Thu Oct 16 15:03:58 1997 Michael Meissner <meissner@cygnus.com>
-
- * remote-sds.c (sds_load): Properly declare as static.
-
-Wed Oct 15 10:27:14 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * config/sparc/tm-sparc.h (FIX_CALL_DUMMY): Mask off displacement
- to 30 bits in call insn to handle --enable-64-bit-bfd.
- (STORE_STRUCT_RETURN): Change to handle --enable-64-bit-bfd.
-
-Tue Oct 14 22:13:27 1997 Dawn Perchik <dawn@cygnus.com>
-
- * stabsread.c: Make ref_map entries dynamically allocated.
-
-Thu Oct 9 12:37:57 1997 Frank Ch. Eigler <fche@cygnus.com>
-
- * printcmd.c (print_address_symbolic, address_info): Mask
- target-specific flag bits from PC, for more aesthetic disassembly.
- * config/mips/tm-mips.h: Added PC masking for MIPS family
- (especially the MIPS16).
-
-Sat Oct 4 18:45:44 1997 Mark Alexander <marka@cygnus.com>
-
- * remote-mips.c (mips-initialize): Work around flakiness in
- some versions of PMON after loading a program.
-
-Fri Oct 3 15:49:18 1997 Per Bothner <bothner@cygnus.com>
-
- * c-lang.h, cp-valprint.c (static_field_print): Make non-static.
- * parse.c, parser-defs.h (length_of_subexp): Make non-static.
- * jv-exp.y (FieldAccess): Handle dollar-VARIABLE as primary.
- (ArrayAccess): Likewise. Also remove warnings.
- (CastExpression): Implement (typename) UnaryExpression.
- (push_qualified_expression_name): Fix small bug.
- * jv-lang.c: Use TYPE_TAG_NAME, not TYPE_NAME for class names.
- (_initialize_jave_language): Fix typo (jave -> java).
- (java_language): Java does *not* have C-style arrays.
- (java_class_from_object): Make more general (and complicated).
- (java_link_class_type): Fix typo "super" -> "class". Handle arrays.
- (java_emit_char, java_printchar): New function.
- (evaluate_subexp_java case BINOP_SUBSCRIPT): Handle Java arrays.
- * jv-valprint.c (java_value_print): Implement printing of Java arrays.
- (java_print_value_fields): New function.
- (java_val_print): Better printing of TYPE_CODE_CHAR, TYPE_CODE_STRUCT.
-
-Fri Oct 3 09:52:26 1997 Mark Alexander <marka@cygnus.com>
-
- * config/mips/tm-mips.h (MAKE_MSYMBOL_SPECIAL): Force MIPS16
- addresses to be odd.
- (MIPS_FPU_SINGLE_REGSIZE, MIPS_FPU_DOUBLE_REGSIZE): Define.
- * mips-tdep.c (mips_extract_return_value): Doubles aren't
- returned in FP0 if FP registers are single-precision only.
-
-Mon Sep 29 23:03:03 1997 Mark Alexander <marka@cygnus.com>
-
- * mips-tdep.c (set_reg_offset): New function.
- (mips16_heuristic_proc_desc): Calculate offsets of registers
- saved by entry pseudo-op after rest of prologue has been read.
- Use set_reg_offset to ignore all but the first save of a given
- register.
- (mips32_heuristic_proc_desc): Initialize frame adjustment value.
- * remote-sim.c (gdbsim_store_register): Don't update registers
- that have a null or empty name.
- * findvar.c (read_register_bytes): Don't fetch registers
- that have a null or empty name.
-
-Tue Sep 30 13:35:54 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * config/mips/tm-mips.h (NUM_REGS): Define conditionally.
- (REGISTER_NAMES): Ditto.
-
-Fri Sep 26 21:08:22 1997 Keith Seitz <keiths@pizza.cygnus.com>
-
- * dsrec.c (load_srec): add ui_load_progress_hook to
- display some feedback to user
-
- * symfile.c (generic_load): add ui_load_progress_hook to
- display some feedback to user
-
-Fri Sep 26 17:32:22 1997 Jason Molenda (crash@pern.cygnus.com)
-
- * command.c (add_cmd, add_show_from_set): Insert new commands in
- alphabetical order.
-
-Fri Sep 26 12:22:00 1997 Mark Alexander <marka@cygnus.com>
-
- * config/mips-tm-mips.h (mips_extra_func_info): New frame_adjust
- member for storing offset of MIPS16 frame pointer from SP.
- * mips-tdep.c: Use RA_REGNUM instead of hardcoded 31 throughout.
- (PROC_FRAME_ADJUST): Define.
- (mips16_heuristic_proc_desc): Store frame pointer adjustment value.
- (get_frame_pointer): Use frame pointer adjustment value when
- calculating frame address.
- * remote-sim.c (gdbsim_fetch_register): Don't fetch registers
- that have a null or empty name.
-
-Fri Sep 26 12:40:51 1997 Jeffrey A Law (law@cygnus.com)
-
- * mips-tdep.c (_initialize_mips_tdep): Allow target files to
- override default FPU type.
-
-Fri Sep 26 10:33:54 1997 Felix Lee <flee@cygnus.com>
-
- * configure.tgt (v850-*-*): necmsg.lib instead of v850.lib.
-
-Wed Sep 24 14:02:09 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * config/v850/tm-v850.h (BREAKPOINT): Use 1 word DIVH insn with
- RRRRR=0 for simulator breakpoint. Previous breakpoint insn was two
- words.
-
-Thu Sep 18 15:07:46 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * ser-e7kpc.c (get_ds_base): Only use under Windows.
- (windows.h): Include when any _WIN32 host.
-
-Wed Sep 24 18:12:47 1997 Stu Grossman <grossman@babylon-5.cygnus.com>
-
- * The following block of changes add support for debugging assembly
- source files.
- * breakpoint.c (resolve_sal_pc): Prevent crash when pc isn't
- associated with a function.
- * buildsym.c (record_line start_symtab end_symtab): Don't delete
- symtabs which only have line numbers (but no other debug symbols).
- * dbxread.c (read_dbx_symtab end_psymtab): Ditto.
-
- * remote-sim.c: New functions gdbsim_insert/remove_breakpoint. Use
- intrinsic simulator breakpoints if available, otherwise do it the
- hard way.
-
- * configure.tgt: Add d30v.
- * d30v-tdep.c: New file.
- * config/d30v/d30v.mt, config/d30v/tm-d30v.h: New files.
-
-Tue Sep 23 11:24:13 1997 Stan Shebs <shebs@andros.cygnus.com>
-
- * Makefile.in (ALLCONFIG): Remove, inaccurate and never used.
-
-Tue Sep 23 00:08:18 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * mips-tdep.c (mips_push_arguments): Tweak alignment of register
- value if the remaining length of a non-integral argument is smaller
- than the register size for big-endian non-EABI mode.
-
- * rs6000-tdep.c (branch_dest): Handle return from signal
- handler function via sigreturn kernel call.
-
-Mon Sep 22 15:32:06 1997 Dawn Perchik <dawn@cygnus.com>
-
- * stabsread.h, symtab.h, dbxread.c, symtab.c, stabsread.c:
- Fix prototypes. Remove function scoped function declarations.
-
-Fri Sep 19 18:51:26 1997 Felix Lee <flee@cygnus.com>
-
- * config/i386/windows.mh (XDEPFILES): need to list some files
- explicitly, for odd reasons.
-
-Tue Sep 16 20:00:05 1997 Per Bothner <bothner@cygnus.com>
-
- * jv-exp.y (push_fieldnames): New, to handle EXP.FIELD1....FIELDN.
- (push_expression_name): New, to handle expression names.
- (push_qualified_expression_name): New, for qualified expression names.
- (parse_number): Fix bugs in parsing of non-decimal integers.
- * jv-lang.h, jv-lang.c (java_demangle_type_signature): New.
- * jv-lang.c (type_from_class): Just use name with java_lookup_class.
- (java_link_class_type): Add dummy "class" field.
- (java_lookup_type): New.
- (evaluate_subexp_java case STRUCTOP_STRUCT): Force to address.
- * jv-typeprint.c (java_type_print_base): Don't print "class" field.
- Use java_demangle_type_signature to print array class types.
- * jv-valprint.c (java_value_print): Preliminary array support.
- Print pointer as TYPE@HEXADDR, instead of (TYPE)0xHEXADDR.
- (java_val_print): Move check for object type to java_value_print.
- Check for null. Print pointer as @HEXADDR, not 0xHEXADDR.
-
- * valops.c (search_struct_field): Search basesclasses in
- ascending, not descending order. Hack to avoid virtual baseclass
- botch for Java interfaces.
-
-Tue Sep 16 19:56:23 1997 Per Bothner <bothner@cygnus.com>
-
- * util.c (run_cleanup_chain, make_run_cleanup, do_run_cleanups):
- New cleanup clean for cleanups to be run when at each 'run' command.
- * infcmd.c (run_command): Call do_run_cleanups.
-
- * solib.c (find_solib): Register cleanup to call clear_solib
- on a new 'run' command.
- (symbol_add_stub): First look for existing objfile with same name.
-
-Tue Sep 16 16:00:01 1997 Stan Shebs <shebs@andros.cygnus.com>
-
- * remote-sds.c (sds_load): New function.
- (sds_ops): Use it.
- (sds_open): Don't set inferior_pid yet.
- (sds_kill): Remove contents.
- (sds_create_inferior): Rewrite to work more like monitor
- interfaces.
- (sds_restart): Remove, no longer used.
-
- * monitor.h (MO_SREC_ACK_PLUS, MO_SREC_ACK_ROTATE): New flags.
- * monitor.c (monitor_wait_srec_ack): Add DINK32-specific ack code.
- * dsrec.c (load_srec): Always write a header S-record.
- * dink32-rom.c (dink32_regnames): Fix the names of float registers.
- (dink32_cmds): Set to use S-record downloading with acks.
- * remote-est.c (est_cmds): Add MO_SREC_ACK_PLUS flag.
-
-Tue Sep 16 10:08:27 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * config/v850/tm-v850.h (BREAKPOINT): Set to a truely illegal
- instruction.
-
- * exec.c (exec_file_command): Call set_architecture_from_file.
-
-Mon Sep 15 13:01:22 1997 Mark Alexander <marka@cygnus.com>
-
- * dbxread.c (MSYMBOL_SIZE): New macro.
- (end_psymtab): Use MSYMBOL_SIZE to extract size from minimal symbol.
- * elfread.c (elf_symtab_read): If ELF symbol is "special",
- such as a MIPS16 function, mark minimal symbol as special too.
- * mips-tdep.c (pc_is_mips16): New function to check whether
- a function is MIPS16 by looking at the minimal symbol. Use
- pc_is_mips16 throughout instead of IS_MIPS16_ADDR macro.
- * config/mips/tm-mips.h (SYMBOL_IS_SPECIAL, MAKE_MSYMBOL_SPECIAL,
- MSYMBOL_IS_SPECIAL, MSYMBOL_SIZE): New functions for setting/testing
- "special" MIPS16 bit in ELF and minimal symbols.
- * mdebugread.c (parse_partial_symbols): Don't construct a partial
- symbol table for a file that already has one.
-
-Sat Sep 13 08:32:13 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * mdebugread.c (parse_symbol, handle_psymbol_enumerators): Handle
- yet another variant of enumerator debugging info, used by DU 4.0
- native cc.
-
-Tue Sep 9 20:47:23 1997 Felix Lee <flee@cygnus.com>
-
- * config/i386/windows.mh (XDEPFILES): reduce to libwingdb.a.
- otherwise link command line is too long.
-
-Tue Sep 9 17:41:41 1997 Jeffrey A Law (law@cygnus.com)
-
- * symtab.c, dbxread.c, stabsread.c: Fix up ANSI-C isms. Fix
- some formatting problems.
-
-Mon Sep 8 16:45:51 1997 Stu Grossman <grossman@cygnus.com>
-
- * ser-e7kpc.c: Don't include w32sut.h. We no longer use the UT
- mechanism. Remove prototypes for dos_async_* functions. They don't
- exist anymore.
-
-Mon Sep 8 12:48:50 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * top.c (quit_confirm, quit_force): New functions, broken out of
- quit_command.
- (quit_command): Just call quit_confirm and quit_force.
- * top.h (quit_confirm, quit_force): Declare.
-
-Sun Sep 7 17:26:30 1997 Dawn Perchik <dawn@cygnus.com>
-
- * dbxread.c, buildsym.c, symtab.c, stabsread.c: Add support for
- reading stabs extensions for live range information.
- * stabsread.h, partial-stab.h: Add prototypes for new functions.
- * symtab.h: Add structure for storing live range information.
-
-Wed Sep 3 16:39:39 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * top.c (set_arch): New function, update target_architecture.
-
- * defs.h, top.c (set_architecture_from_arch_mach): Replace
- set_architecture, takes the arch and machine as arguments.
-
- * sh3-rom.c (sh3e_open): Update.
- (sh3_open): Ditto.
-
-Tue Sep 2 12:00:46 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-e7000.c (e7000_fetch_registers): Fix typo, stray paren.
- (e7000_wait): Ditto.
-
-Mon Sep 1 11:21:03 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * top.c (init_main): Add ``set processor'' as an alias for ``set
- architecture''.
-
-Sat Aug 30 13:44:48 1997 Bob Manson <manson@charmed.cygnus.com>
-
- * config/sparc/sparclite.mt: Removed simulator references (erc32
- has been disabled).
-
-Thu Aug 28 10:20:04 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-e7000.c (e7000_fetch_registers): Check
- target_architecture instead of sh_processor_type.
- (e7000_wait): Ditto.
-
- * config/sh/tm-sh.h (sh_set_processor_type): Delete prototype.
-
- * sh3-rom.c (sh3_open): Call set_architecture not
- sh_set_processor_type.
- (sh3e_open): Ditto.
-
- * sh-tdep.c (sh_show_processor_type_command): Delete.
- (sh_set_processor_type_command): Delete.
- (sh_target_architecture_hook): Rename from sh_set_processor_type,
- use AP to determine architecture.
- (sh_show_regs): Use bfd_mach_sh* types.
-
- * remote-sim.c (gdbsim_open): Pass --arch=XXX to simulator when
- architecture was specified explicitly.
-
- * defs.h (target_architecture, target_architecture_auto,
- set_architecture, set_architecture_from_file): Declare.
- (target_architecture_hook): Allow targets to be notified of set
- arch commands.
-
- * top.c (init_main): Add set/show/info architecture commands.
- (set_architecture, show_architecture, info_architecture): New
- functions, parse same.
- (set_architecture_from_file): New function, determine arch from
- BFD.
-
-Tue Aug 26 17:13:43 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-sim.c (gdbsim_open): Only pass endianness to sim_open
- when set explicitly. Prepend endianness arg so that it can be
- overridden.
-
- * defs.h, top.c (target_byte_order_auto): Make global when
- byteorder is selectable.
-
-Tue Aug 26 15:19:56 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-sim.c (gdbsim_create_inferior): Pass exec_bfd into
- sim_create_inferior.
- (gdbsim_create_inferior): Pass -1 to proceed, sim_create_inferior
- has already set the PC.
- (gdbsim_create_inferior): Allow exec_file to be NULL, make "No
- exec file" a warning. Ditto for "No program loaded".
-
-Mon Aug 25 17:08:01 1997 Geoffrey Noer <noer@cygnus.com>
-
- * ocd.c: revert Sun change -- enable log file handling
-
-Mon Aug 25 12:21:46 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-sim.c (gdbsim_open): Pass exec_bfd to sim_open call.
-
-Sun Aug 24 21:16:59 1997 Geoffrey Noer <noer@cygnus.com>
-
- * ocd.c: comment out sections that create and flush wigglers.log
- log file when using the wiggler.
-
-Thu Aug 21 16:18:08 1997 Geoffrey Noer <noer@cygnus.com>
-
- * config/powerpc/ppc-eabi.mt:
- * config/powerpc/ppc-sim.mt:
- * config/powerpc/ppcle-eabi.mt:
- * config/powerpc/ppcle-sim.mt: ser-ocd.c needs to be before
- other ocd-related files in TDEPFILES
-
-Thu Aug 21 14:56:04 1997 Geoffrey Noer <noer@cygnus.com>
-
- * ppc-bdm.c (bdm_ppc_wait): stop printfing ecr, der
- * ocd.c: initialize remote_timeout
- (ocd_wait): while looping, call ocd_do_command with OCD_AYT
- (ocd_get_packet): remove find_packet goto. If there isn't
- an 0x55 at the start, something is quite wrong so error out
- instead of advancing in the packet and trying again. If checksum
- is invalid, print error message instead of trying again.
- * ser-ocd.c (ocd_readchar): error if we attempt to read past
- the end of the from_wiggler_buffer.
-
-
-Wed Aug 20 14:08:39 1997 Stan Shebs <shebs@andros.cygnus.com>
-
- * dink32-rom.c: Don't use "mf" command to fill, is too picky
- about alignment.
-
-
-Tue Aug 19 08:41:36 1997 Fred Fish <fnf@cygnus.com>
-
- * objfiles.c (objfile_relocate): Add call to breakpoint_re_set
- after relocations are complete.
- * remote-vx.c (vx_add_symbols): Remove call to breakpoint_re_set,
- this is now done in objfile_relocate.
-
-Mon Aug 18 17:29:54 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * win32-nat.c (handle_exception): Return a value indicating
- whether the exception was handled. Don't handle random exceptions
- the first time around, so that structured exception handling
- works.
- (child_wait): Check the return value of handle_exception. Set the
- continue_status argument to ContinueDebugEvent accordingly.
-
-Mon Aug 18 11:14:15 1997 Nick Clifton <nickc@cygnus.com>
-
- * configure.tgt: Add support for v850ea target.
-
-Sun Aug 17 20:31:57 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * m32r-stub.c: fix typo
-
-Sun Aug 17 17:33:34 1997 Stan Shebs <shebs@andros.cygnus.com>
-
- * remote-sds.c: Remove unused remnants of remote.c.
- (tob64): Return the result length.
- (sds_interrupt): Send a stop message.
- (sds_wait): Add debug output for signal interpretation, flag
- that signal was due to a trap.
- (sds_fetch_registers): Fill the registers array correctly for
- PowerPC.
- (sds_store_registers): Get the right values from registers array.
- (putmessage): Tweak length handling so checksum comes out right.
- (sds_insert_breakpoint, sds_remove_breakpoint): Do correctly.
-
-Fri Aug 15 20:53:13 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (init.c): Don't use xargs.
-
-Fri Aug 15 13:59:37 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * infrun.c (wait_for_inferior): Add the symbols for any
- newly loaded objects upon a TARGET_WAITKIND_LOADED event.
-
- Rewrite code which determines the TOC address for calling functions
- in the inferior under AIX.
- * rs6000-nat.c (find_toc_address): New function to determine
- the required TOC address from a function address.
- (_initialize_core_rs6000): Set up find_toc_address_hook to point
- to find_toc_address.
- (xcoff_relocate_symtab, xcoff_relocate_core): Remove
- add_text_to_loadinfo calls.
- (exec_one_dummy_insn): Change pid and status to int to get rid of
- compiler warnings.
- (xcoff_relocate_symtab): Cast ldi to `int *' when passing it to
- ptrace to get rid of compiler warnings.
- * rs6000-tdep.c: Add definition for find_toc_address_hook.
- (rs6000_fix_call_dummy): If find_toc_address_hook is non zero,
- patch TOC address load code in the call dummy with the value
- returned from find_toc_address_hook.
- (struct loadinfo, loadinfo, loadinfolen,
- loadinfotextindex, xcoff_init_loadinfo, free_loadinfo,
- xcoff_add_toc_to_loadinfo, add_text_to_loadinfo, find_toc_address):
- Remove.
- (_initialize_rs6000_tdep): Remove initialization of
- coff_add_toc_to_loadinfo_hook and xcoff_init_loadinfo_hook.
- * xcoffread.c (coff_add_toc_to_loadinfo_hook,
- xcoff_init_loadinfo_hook): Remove.
- (struct coff_symfile_info): Add toc_offset field.
- (scan_xcoff_symtab): Record toc_offset value in toc_offset field
- instead of calling xcoff_add_toc_to_loadinfo_hook.
- (get_toc_offset): New function to return the value of the
- toc_offset field for an object file.
- (xcoff_initial_scan): Remove call of xcoff_init_loadinfo_hook.
- * xcoffsolib.h (add_text_to_loadinfo): Remove declaration.
- * config/rs6000/tm-rs6000.h: Add declarations for
- find_toc_address_hook and get_toc_offset.
-
-Wed Aug 13 19:31:28 1997 Stan Shebs <shebs@andros.cygnus.com>
-
- * remote-sds.c: New file, interface to SDS-compatible monitors.
- * Makefile.in (remote-sds.o): Add build rule.
- * config/powerpc/ppc-eabi.mt, config/powerpc/ppc-sim.mt
- (TDEPFILES): Add remote-sds.o.
-
-Tue Aug 12 14:37:18 1997 Geoffrey Noer <noer@cygnus.com>
-
- * ocd.c (ocd_wait): loop until we're in BDM mode instead of
- assuming control has returned to GDB.
-
-Mon Aug 11 19:16:04 1997 Stan Shebs <shebs@andros.cygnus.com>
-
- * dink32-rom.c: New file, support for DINK32 monitor.
- * Makefile.in (dink32-rom.o): Add build rule.
- * config/powerpc/ppc-eabi.mt, config/powerpc/ppc-sim.mt
- (TDEPFILES): Add dink32-rom.o.
- * monitor.h (MO_32_REGS_PAIRED, MO_SETREG_INTERACTIVE,
- MO_SETMEM_INTERACTIVE, MO_GETMEM_16_BOUNDARY,
- MO_CLR_BREAK_1_BASED): New monitor interface flags.
- * monitor.c: Use them.
- (monitor_store_register): Use setreg.term if defined.
- (monitor_insert_breakpoint, monitor_remove_breakpoint): Notice
- if set_break and clr_break fields are empty.
-
-Mon Aug 11 16:22:36 1997 Geoffrey Noer <noer@cygnus.com>
-
- * ocd.c (ocd_insert_breakpoint, ocd_remove_breakpoint): Macro
- BDM_BREAKPOINT already has braces around it, remove erroneous ones.
- * ser-ocd.c (ocd_write): Conditionalize on _WIN32 instead of
- __CYGWIN32__.
- * config/powerpc/tm-ppc-eabi.h: Remove BDM_NUM_REGS, BDM_REGMAP
- * ppc-bdm.c: move BDM_NUM_REGS, BDM_REGMAP here from tm.h file,
- fill in doc fields of bdm_ppc_ops.
- (bdm_ppc_fetch_registers): Don't ask for invalid registers such
- as the MQ or floating point regs not present on ppc 8xx boards.
- (bdm_ppc_store_registers): Don't write those same invalid registers.
- * config/i386/cygwin32.mh: Stop including ocd.o ser-ocd.o.
- * config/powerpc/ppc-eabi.mt:
- * config/powerpc/ppcle-eabi.mt:
- * config/powerpc/ppc-sim.mt:
- * config/powerpc/ppcle-sim.mt: Include ser-ocd.o.
-
-Mon Aug 11 16:08:52 1997 Fred Fish <fnf@cygnus.com>
-
- * frame.h (enum lval_type): Conditionalize on __GNUC__
- instead of __STDC__.
-
-Sun Aug 10 19:08:26 1997 Jeffrey A Law (law@cygnus.com)
-
- * utils.c (error): Fix return type for !ANSI_PROTOTYPES.
-
-Sun Aug 10 16:49:09 1997 Geoffrey Noer <noer@cygnus.com>
-
- * ocd.c: move ocd_write_bytes proto to ocd.h since it is used
- by ppc-bdm.c, use OCD_LOG_FILE to help debugging, define
- BDM_BREAKPOINT if not defined in tm.h
- (ocd_error): add new error cases
- (ocd_start_remote): send the OCD_INIT command before
- OCD_AYT and OCD_GET_VERSION calls, 80 was correct speed after all
- (ocd_write_bytes): no longer static
- (ocd_insert_breakpoint): no longer static
- (ocd_remove_breakpoint): new
- * ocd.h: add protos for ocd_write_bytes, ocd_insert_breakpoint,
- and ocd_remove_breakpoint
- * ppc-bdm.c: change bdm_ppc_ops so we call ocd_insert_breakpoint
- and ocd_remove_breakpoint instead of memory_insert_breakpoint
- and memory_remove_breakpoint.
- (bdm_ppc_open): after calling ocd_open, modify DER
- register so interrupts will drop us into debugging mode, finally
- disable the watchdog timer on the board so we don't leave BDM
- mode unexpectedly.
-
-Sat Aug 9 01:50:14 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * values.c (value_primitive_field): Account for offset when
- extracting the value of a bitfield.
- From Paul Hilfinger <hilfingr@CS.Berkeley.EDU>.
-
-Fri Aug 8 21:35:44 1997 Mark Alexander <marka@cygnus.com>
-
- * gdbserver/utils.c (error): Change prototype to match defs.h.
- * gdbserver/low-sim.c: Change simulator calls to use new interface.
- * remote.c (remote_write_bytes): Include '$' at start of packet
- and checksum at end of packet in overhead calculation.
-
-Fri Aug 8 15:59:24 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * ser-ocd.c: If _WIN32, include <windows.h>.
- (dll_do_command): New static variable if _WIN32.
- (ocd_open): Set dll_do_command if _WIN32.
- (ocd_write): Use dll_do_command rather than do_command.
- * config/i386/cygwin32.mh (XDEPFILES): Remove libwigglers.a.
- (BDM_DLLNAME, BDM_LIBNAME, BDM_DEFFILE): Don't define.
- ($(BDM_LIBNAME)): Remove target.
- * wigglers.def: Remove.
-
- * config/i386/cygwin32.mh ($(BDM_LIBNAME)): Rename target from
- libwigglers.def.
- (libwigglers.a): Remove target.
-
-Fri Aug 8 13:11:01 1997 Mike Meissner <meissner@cygnus.com>
-
- * config/powerpc/ppc{,le}-{eabi,sim}.mt (TDEPFILES): Make sure
- ppc-bdm.o and ocd.o are used for all powerpc-eabi targets.
-
-Thu Aug 7 19:40:52 1997 Geoffrey Noer <noer@cygnus.com>
-
- Changes to OCD support to support wiggler box as well as
- target boxes:
- * ocd.c: change speed in init command to 0 from 80,
- add (temporary) logging commands to help debugging,
- (ocd_open): if "target ocd wiggler lpt" then use special
- ser-ocd.c serial interface which communicates with Wigglers.dll,
- otherwise ("target ocd <foo>") do as we did before
- (ocd_get_packet): add OCD_LOG_FILE and OCD_SET_CONNECTION to
- switch of known commands of len 0
- * ocd.h: add OCD_LOG_FILE
- * serial.c (serial_open): do serial_interface_lookup on ocd
- in the case of ocd
- * ser-ocd.c: add buffer to contain responses from sending a
- command to the Wigglers.dll.
- (ocd_readchar): return curr char from buffer and increment ptr
- (ocd_write): send buffer to Wigglers.dll, storing response in
- return buffer and initializing curr location ptr to start of
- buffer.
-
-Thu Aug 7 13:39:31 1997 Geoffrey Noer <noer@cygnus.com>
-
- * ocd.h: add OCD_SET_CONNECTION
- * ocd.c: rename "do_command" to "ocd_do_command"
-
-Thu Aug 7 13:09:17 1997 Geoffrey Noer <noer@cygnus.com>
-
- Nomenclature change. BDM is a specific type of OCD
- (On Chip Debugging). Wiggler is the parallel port box controlled
- by Wigglers.dll. The faster target box from Macraigor Systems
- is not a wiggler.
- * ocd.c:
- * ocd.h:
- * ppc-bdm.c:
- * ser-ocd.c:
- Replace all instances of "wiggler_" with "ocd_" and change most other
- instances of "wiggler" to "ocd" or "ocd device" depending on context.
- * config/m68k/monitor.mt: remove remote-wiggler.o from TDEPFILES
- until OCD with that target is supported again.
-
-Wed Aug 6 16:15:31 1997 Geoffrey Noer <noer@cygnus.com>
-
- * Makefile.in: add DLLTOOL = @DLLTOOL@, pass on DLLTOOL to
- sub makes, change clean rule to also remove *.a to remove
- libwigglers.a, in dependencies: add ppc-bdm.o ocd.o ser-ocd.o and
- remove remote-wiggler.o
- * configure.in: add DLLTOOL support
- * configure: regenerate
- * wigglers.def: new file for imports for wigglers.dll
- * ser-ocd.c: new file which is layer between ocd.c and either the
- wigglers.dll or the target box, only stub so far
- * config/powerpc/ppc-eabi.mt: add ppc-bdm.o to TDEPFILES
- * config/powerpc/ppc-sim.mt: add ppc-bdm.o to TDEPFILES
- * config/i386/cygwin32.mh: add ocd.o ser-ocd.o libwigglers.a
- to XDEPFILES, add rules to build libwigglers.a
-
- checking in changes of Stu Grossman <grossman@cygnus.com>:
- * remote-wiggler.c: delete
- * ocd.c: new, was remote-wiggler.c
- always include sys/types.h, include ocd.h, move WIGGLER
- commands and many wiggler prototypes to ocd.h, make wiggler_desc
- static, stop making local wiggler functions static,
- define write_mem_command for wiggler_write_bytes
- (wiggler_start_remote): stop hardcoding the target type,
- instead set and use a target_type variable.
- (wiggler_open): add new target_type and ops args
- (wiggler_wait): now no longer takes pid and target_status as args,
- stop trying to set target_status struct, remove BGND insn
- checks
- (read_bdm_registers): renamed to wiggler_read_bdm_registers
- (wiggler_read_bdm_registers): numregs arg changed to reglen arg,
- remove pktlen check, set reglen instead of numregs
- (dump_all_bdm_regs): delete
- (wiggler_fetch_registers): delete
- (wiggler_prepare_to_store): now just an empty function
- (wiggler_store_registers): delete
- (wiggler_read_bdm_register): new
- (wiggler_write_bdm_registers): new
- (wiggler_write_bdm_register): new
- (wiggler_write_bytes): use write_mem_command variable instead of
- WIGGLER_WRITE_MEM
- (get_packet): renamed to wiggler_get_packet, change refs throughout
- (put_packet): renamed to wiggler_put_packet, change refs throughout
- (wiggler_get_packet): add break to default case of switch,
- change length of WIGGLER_GET_VERSION len to 10 from 4 to match
- specs
- (wiggler_mourn): unpush_target with current_ops, not &wiggler_ops
- (flash_xfer_memory): delete
- (noop_store_registers): new placeholder replacement for
- target_store_registers() which prevents generic_load from trying to
- set up the PC.
- (bdm_update_flash_command): add store_registers_tmp variable,
- make handling of wiggler_ops more generic -- define wiggler_ops
- in a target-specific file instead (such as ppc-bdm.c in the case
- of the ppc), use current_target to deal with registers again
- making this file less target-specific.
- (bdm_read_register_command): new
- (_initialize_remote_wiggler): stop doing add_target (&wiggler_ops),
- comment out add_cmd ("read-register", ...)
- * ocd.h: new, contains common wiggler prototypes, command definitions
- * ppc-bdm.c: file for ppc-specific OCD code, including target_ops
- structure for ppc bdm
- (bdm_ppc_open): new
- (bdm_ppc_wait): new
- (bdm_ppc_fetch_registers): new
- (bdm_ppc_store_registers_: new
- (_initialize_bdm_ppc): new
- * config/powerpc/tm-ppc-eabi.h: add necessary CPU32 BDM defines
-
-Wed Aug 6 00:24:08 1997 Jeffrey A Law (law@cygnus.com)
-
- * hpread.c (hpread_read_struct_type): Use accessor macros rather
- than directly mucking around with data structures.
-
-Tue Aug 5 13:37:14 1997 Per Bothner <bothner@cygnus.com>
-
- * gdbtypes.h: Re-interpret struct field. Suppport address of static.
- Add a bunch of macros.
- * coffread.c, dwarf2read.c, dwarfread.c, mdebugread.c, stabsread.c:
- Update to use new macros.
- * coffread.c, hpread.c, stabsread.c: Remove bugus TYPE_FIELD_VALUE.
- * value.h, values.c (value_static_field): New function.
- * cp-valprint.c, valops.c: Modify to use value_static_field.
-
- * jv-lang.c (get_java_utf8_name): Re-write so it works with
- implied (missing) data field, as defined by cc1java.
- (java_link_class_type): Type length and field offset (in interior)
- now includes object header. Get static fields working.
- * jv-lang.h (JAVA_OBJECT_SIZE): Update for change in Kaffe.
- * jv-typeprint.c (java_type_print_derivation_info,
- java_type_print_base): New functions, for better Java output.
- * jv-valprint.c: Start to support Java-specific output.
-
-Sun Aug 3 08:18:09 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * c-valprint.c (c_val_print): Use extract_address to retrieve
- the address of the virtual function.
- From Peter Bloecher (Peter.Bloecher@eedn.ericsson.se).
-
- * eval.c (evaluate_subexp_standard), valarith.c (value_x_unop):
- Handle C++ operator *.
-
-Fri Aug 1 15:21:44 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Check for cygwin32 environment. Define and
- substitute WIN32LIBS and WIN32LDAPP. Always set configdir to
- unix; setting it to win was for an old Tcl/Tk configuration
- scheme.
- * Makefile.in (TK_CFLAGS): Add @TK_BUILD_INCLUDES@.
- (WIN32LDAPP, WIN32LIBS): Define.
- (CLIBS): Add $(WIN32LIBS).
- (gdb): Use $(WIN32LDAPP).
- * configure: Rebuild.
-
-Thu Jul 31 15:40:19 1997 Per Bothner <bothner@cygnus.com>
-
- * symtab.h (SYMBOL_INIT_LANGUAGE_SPECIFIC, SYMBOL_INIT_DEMANGLED_NAME,
- SYMBOL_DEMANGLED_NAME): Add demangling support for Java.
- * utils.c (fprintf_symbol_filtered): Handle language_java.
-
- * symtab.c (decode_line_1): Handle Java-style package.class.method.
-
-Wed Jul 30 14:04:18 1997 Per Bothner <bothner@cygnus.com>
-
- * java-*: Renamed to jv-*, to make fit within 14 characters.
- * jv-lang.h (java_type_print): Added declaration.
- * jv-typeprint.c: New file. Provides java_print_type.
- * jv-lang.c (java_link_class_type): New function.
- (java_language_defn): Replace c_print_type by java_print_type.
- * Makefile.in: Update accordingly.
-
-Tue Jul 29 10:12:44 1997 Felix Lee <flee@cygnus.com>
-
- * Makefile.in (init.c): except some mswin files do need to be
- scanned. oh well.
-
-Mon Jul 28 14:04:39 1997 Felix Lee <flee@cygnus.com>
-
- * Makefile.in (init.c): don't try to scan mswin for _initialize
- funcs. (generates misleading error message because files have
- .cpp suffix, not .c suffix)
-
-Mon Jul 28 13:27:21 1997 Felix Lee <flee@cygnus.com>
-
- * ser-e7kpc.c: <w32sut.h> -> "mswin/w32sut.h"
-
-Mon Jul 28 02:54:31 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * xcoffread.c (coff_getfilename): Do not strip directory component
- of filename.
-
-Fri Jul 25 15:16:15 1997 Felix Lee <flee@cygnus.com>
-
- * mon960-rom.c: removed unused #includes; no ioctl.h in Windows.
- * nindy-share/ttyflush.c: find sleep() for _MSC_VER.
- * remote-array.c: #include <ctype.h> for isascii().
- * utils.c (notice_quit,pollquit): cleanup. _WIN32 -> _MSC_VER.
-
-Fri Jul 25 16:48:18 1997 Jeffrey A Law (law@cygnus.com)
-
- * top.c (execute_command): Force cleanup of alloca areas.
- * findvar.c (registers_changed): Likewise.
-
-Fri Jul 25 15:37:15 1997 Stu Grossman <grossman@cygnus.com>
-
- * v850ice.c: Include <windows.h>. Support new v850 DLL interface.
- * Add defs for target status.
-
-Tue Jul 22 12:11:48 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * config/mips/tm-mips64.h: longs, long longs, and pointers
- are all 64 bits on EABI mips targets.
-
-Thu Jul 17 11:38:46 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * partial-stab.h (case N_BINCL): detect missing partial symtab.
- * dbxread.c: Add a complaint for N_BINCL without a corresponding
- partial symtab. Remove earlier change of 5/27/97.
-
-Wed Jul 16 10:38:03 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * sol-thread.c (sol_thread_[store, fetch]_registers): if
- inferior_pid is an LWP rather than a Solaris thread, let
- procfs handle the request.
- (rw_common, sol_thread_xfer_memory): procfs_xfer_memory will
- only work if inferior_pid points to an LWP (rather than a
- Solaris thread). Use procfs_first_available to find a good LWP.
- (info_solthreads): added a maintenance command to list all
- known Solaris threads and their attributes.
- * mips-tdep.c (mips_do_registers_info): Completely changed the
- output format to be neat and columnar. Added the helper funcs
- do_fp_register_row and do_gp_register_row. Also small mods to
- mips_print_register, which is still used to print a single reg.
-
-Mon Jul 14 18:02:53 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * procfs.c (wait_fd): Handle an fd that has "hung up" or
- otherwise terminated (Solaris threads).
-
-Thu Jul 10 00:02:41 1997 Martin M. Hunt <hunt@cygnus.com>
-
- * defs.h (init_ui_hook): Change prototype to accept one arg.
- * main.c (gdb_init): Change prototype to accept one arg.
- * top.c (gdb_init): Accepts one argument which it uses to
- call (*init_ui_hook).
-
-Fri Jul 4 14:49:33 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * source.c (OPEN_MODE, FDOPEN_MODE): Define; value depends upon
- whether CRLF_SOURCE_FILES is defined.
- (open_source_file): Use OPEN_MODE with open and openp.
- (print_source_lines): Use FDOPEN_MODE with fdopen. If
- CRLF_SOURCE_FILES is defined, ignore \r characters.
- (forward_search_command): Use FDOPEN_MODE with fdopen.
- (reverse_search_command): Likewise.
- * config/i386/xm-cygwin32.h (CRLF_SOURCE_FILES): Define.
- (LSEEK_NOT_LINEAR): Don't define.
-
-Thu Jul 3 17:41:46 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * mips-tdep.c (mips_extract_return_value): align 4-byte float
- return values within the 8-byte FP register.
-
-Thu Jul 3 13:48:11 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * mips-tdep.c (mips_push_arguments): don't left-adjust 32-bit
- integers in 64-bit register parameters before function calls.
-
-Mon Jun 30 17:54:51 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * mips-tdep.c (mips_push_arguments): special-case handling for
- odd-sized struct parameters passed in registers / on stack.
-
-Mon Jun 30 15:30:38 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * mips-tdep.c (mips_push_arguments): tweak alignment of small
- structs passed in registers for little-endian non-EABI mode.
-
-Mon Jun 30 13:05:39 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * breakpoint.c (frame_in_dummy): use generic dummy if available.
- (check_duplicates, clear_command): compare sections only if
- doing overlay debugging.
-
-Fri Jun 27 23:03:53 1997 Fred Fish <fnf@ninemoons.com>
-
- * buildsym.h (struct subfile): Add debugformat member.
- (record_debugformat): Declare global function.
- * buildsym.c (start_subfile): Initialize debugformat member
- to NULL.
- (record_debugformat): New function to record the format.
- (end_symtab): Copy format into symtab debugformat member.
- (end_symtab): Free subfile debugformat member.
- * symmisc.c (free_symtab): Free debugformat when freeing
- symtab.
- * symfile.c (allocate_symtab): Initialize the new debugformat
- member for new symtabs.
- * symtab.h (struct symtab): Add debugformat member.
- * source.c (source_info): Print the debug format.
-
- * os9kread.c (os9k_process_one_symbol): Call record_debugformat
- with "OS9".
- * hpread.c (hpread_expand_symtab): Call record_debugformat
- with "HP".
- (hpread_process_one_debug_symbol): Ditto.
- * dbxread.c (process_one_symbol): Call record_debugformat
- with "stabs".
- * coffread.c (coff_start_symtab): Call record_debugformat
- with "COFF".
- * xcoffread.c (read_xcoff_symtab): Call record_debugformat
- with "XCOFF".
- * dwarfread.c (read_file_scope): Call record_debugformat
- with "DWARF 1".
- * dwarf2read.c (read_file_scope): Call record_debugformat
- with "DWARF 2".
- * dstread.c (dst_end_symtab): Set debugformat to be
- "Apollo DST".
- * mdebugread.c (new_symtab): Set debugformat to be "ECOFF".
-
-Fri Jun 27 21:05:45 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * mips-tdep.c (mips_push_arguments): handle alignment of
- integer and struct args on stack for mips64 big-endian.
-
-Fri Jun 27 19:19:12 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * config/mips/tm-mips.h (USE_STRUCT_CONVENTION): MIPS_EABI returns
- structs in a register wherever possible.
- * mips-tdep.c (mips_extract_return_value): handle structs.
- (mips_store_return_value): handle values smaller than MIPS_REGSIZE
- (including structs, if gdb ever allows it).
-
-Fri Jun 20 17:58:34 1997 Fred Fish <fnf@cygnus.com>
-
- * sh-tdep.c (sh_skip_prologue): Also recognize fmov insns.
- (sh_frame_find_saved_regs): Recognize fmov insns and adjust
- stack push count accordingly.
- * sh-tdep.c (IS_FMOV, FPSCR_SZ): New defines
-
-Thu Jun 19 08:18:48 1997 Mark Alexander <marka@cygnus.com>
-
- * utils.c (floatformat_from_doublest): Improve test for infinity.
-
-Wed Jun 18 13:47:52 1997 Fred Fish <fnf@cygnus.com>
-
- * dwarfread.c (isreg, optimized_out, offreg, basereg): Move
- global variables into the struct dieinfo structure.
- (locval): Pass pointer to a dieinfo struct rather than a
- pointer to the raw location information. Change prototype.
- Set isreg, optimized_out, offreg and basereg as appropriate.
- (struct_type): Call locval with dieinfo struct pointer.
- (new_symbol): Ditto.
- (new_symbol): Call locval and save location before testing
- the values of the new dieinfo struct flags, set by locval.
-
-Tue Jun 17 13:30:12 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * procfs.c (proc_set_exec_trap, procfs_init_inferior, procfs_wait,
- unconditionally_kill_inferior): Undo Oct 26 1996 and Apr 26 1997
- changes to trace PRFS_STOPTERM and handle PR_DEAD.
- These changes tried to work around a problem with an early DU 4.0
- release, but they trigger subtle timing dependent kernel bugs
- in older OSF/1 releases.
-
-Tue Jun 17 06:52:47 1997 Fred Fish <fnf@cygnus.com>
-
- * dwarfread.c (new_symbol): Use SYMBOL_VALUE_ADDRESS, instead of
- SYMBOL_VALUE, to set the value of LOC_STATIC symbols.
-
-Mon Jun 16 18:38:28 1997 Mark Alexander <marka@cygnus.com>
-
- * infrun.c (wait_for_inferior): Mark registers as invalid when
- stepping over an instruction that triggered a watchpoint.
- * remote-mips.c: Numerous changes to support hardware breakpoints
- and watchpoints on LSI MiniRISC and TinyRISC boards.
- * mips-tdep.c: Move MIPS16-related macros to config/mips/tm-mips.h.
- (mips_breakpoint_from_pc): Account for different breakpoint
- instructions used by PMON and IDT monitor.
- * config/mips/tm-embed.h: Enable hardware breakpoints on embedded
- MIPS targets.
- * config/mips/tm-mips.h: Define breakpoint instructions for
- PMON and IDT monitor. Move MIPS16-related macros here from
- mips-tdep.c.
-
-Fri Jun 13 13:44:47 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * config/mips/tm-tx39[l].h, tx39[l].mt: change r3900 target to tx39.
-
-Fri Jun 13 14:14:10 1997 Jeffrey A Law (law@cygnus.com)
-
- * mn10300-tdep.c (mn10300_analyze_prologue): Fix some comments.
- Add missing return statements after finding an "add imm{16,32},sp"
- instruction.
- (mn10300_frame_chain): Add in size of our register save area to find
- our caller's frame if our caller does not have a frame pointer.
-
-Fri Jun 13 12:55:49 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * symfile.c (generic_load): Check return code of target_write_memory.
-
-Fri Jun 13 10:28:09 1997 Fred Fish <fnf@cygnus.com>
-
- * config/i386/nm-linux.h: Enable prototypes that were #ifdef out.
- * config/tm-sysv4.h (in_plt_section): Add prototype.
-
- * maint.c (maintenance_translate_address): Avoid assignment
- inside if, per GNU coding standards.
- * symfile.c (simple_read_overlay_table): Avoid assignments inside if,
- per GNU coding standards.
-
- * monitor.c (parse_register_dump): Is really a void function.
- Add prototype.
- (monitor_read_memory): Remove unused variable "name".
- (monitor_read_memory): Remove unused variable "regbuf".
- (monitor_open): Remove unused variable "i".
- (get_hex_word): Apparently unused, #if away for now.
- (from_hex): Ditto.
-
- * i386v4-nat.c (supply_fpregset): Remove unused variable "regi".
- (fill_fpregset): Remove unused variables "regi", "to", "from" and
- "registers".
-
- * remote-e7000.c (ctype.h): Include.
- (e7000_insert_breakpoint): #if away unused arg used by unused expr.
- * frame.h (generic_get_saved_register): Add prototype.
- (enum lval_type): Add partial forward decl.
- * dsrec.c (make_srec): Remove unused variable "type_code".
- * remote-sim.c (gdbsim_wait): Handle sim_running and sim_polling
- cases by just ignoring them.
- (command.h): Include.
-
- * java-exp.y (parse_number): Remove unused variable "unsigned_p".
- * java-lang.c (gdbcore.h): Include for prototypes.
- (type_from_class): Remove unused variable "ftype".
- (type_from_class): Remove unused variable "name_length".
- (evaluate_subexp_java): Add default case to handle remaining
- enumerations.
- * java-valprint.c (c-lang.h): Include for prototypes.
-
- * symfile.c (simple_read_overlay_region_table): #if away
- unused function.
- (simple_free_overlay_region_table): Ditto.
- (overlay_is_mapped): Add default case to switch.
- (simple_read_overlay_region_table): Ditto.
- (simple_read_overlay_region_table): Add prototype.
-
- * symtab.c (fixup_symbol_section): Remove unused msym variable.
- (fixup_psymbol_section): Ditto.
- (find_pc_sect_symtab): Make distance a CORE_ADDR.
-
- * utils.c: Add comment about t_addr being either unsigned long or
- unsigned long long.
- (paddr): Change formats to match actual types args are cast to.
- (preg): Ditto.
- (paddr_nz): Ditto.
- (preg_nz): Ditto.
-
- * defs.h (perror_with_name): Is a NORETURN function.
- * utils.c (perror_with_name): Is a NORETURN function.
- (error): Is NORETURN independently of ANSI_PROTOTYPES.
-
- * symtab.c (fixup_symbol_section): Remove prototype.
- * symtab.h: (fixup_symbol_section): Add prototype.
- * m32r-rom.c (report_transfer_performance): Add prototype.
- * sparclet-rom.c: Ditto.
- * dsrec.c: Ditto.
-
- * c-exp.y (parse_number): Cast args to float* or double* as
- appropriate for conversion format.
- * java-exp.y (parse_number): Ditto.
-
- * Makefile.in (c-exp.tab.c): Remove #line lines that refer
- to nonexistant y.tab.c file.
- (java-exp.tab.c): Ditto.
- (f-exp.tab.c): Ditto.
- (m2-exp.tab.c): Ditto.
-
- * sh-tdep.c (symfile.h): Include.
- (gdb_string.h): Include.
- (sh_fix_call_dummy): Ifdef away, currently unused.
- * config/sh/tm-sh.h (pop_frame): Add prototype.
- * config/sh/tm-sh.h (sh_set_processor_type): Add prototype.
-
-Sat Jun 7 02:34:19 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * eval.c (evaluate_subexp_for_sizeof): Handle dereferencing
- of non-pointer values.
-
- * symtab.c (gdb_mangle_name): Improve mangling of nested types,
- their physical names already include the class name.
-
- * valops.c (value_cast): Handle upcast of a class pointer.
-
- From Andreas Schwab (schwab@issan.informatik.uni-dortmund.de):
- * corelow.c (get_core_registers): Make secname big enough.
-
-Fri Jun 6 14:43:23 1997 Keith Seitz <keiths@pizza.cygnus.com>
-
- * config/sh/tm-sh.h: add define for FPSCR_REGNUM
- * sh-tdep.c (sh_show_regs): print out all registers for
- the current processor
-
-Fri Jun 6 13:01:55 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-sim.c (gdbsim_kill): Remove call to depreciated function
- sim_kill.
-
-Thu Jun 5 11:39:03 1997 Ian Lance Taylor <ian@cygnus.com>
-
- Fixes for recent correction to PE format:
- * coffread.c (pe_file): New static variable.
- (struct find_targ_sec_arg): Change resultp from pointer to int to
- pointer to pointer to asection.
- (find_targ_sec): Just store the section in args->resultp, not the
- section offset value.
- (cs_to_section): Compute the section offset value from the
- section.
- (cs_section_address): New static function.
- (coff_symfile_read): Set pe_file.
- (read_one_sym): When reading a PE file, adjust the symbol value to
- include the section address if the symbol has an appropriate
- storage class.
-
-Tue Jun 3 16:24:46 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * configure.tgt: add mipsr3900-elf target
- * config/mips/r3900.mt r3900l.mt tm-r3900.h tm-r3900l.h: ditto
-
-Tue May 27 10:34:11 1997 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * dbxread.c: Check malloc's return for null, prevent segv.
-
-Fri May 23 14:45:02 1997 Bob Manson <manson@charmed.cygnus.com>
-
- * infcmd.c (jump_command): Don't try to dereference sfn if it's
- NULL.
-
-Fri May 23 13:51:57 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * top.c (init_cmd_lists): Always initialize endianlist.
- (init_main): Always define endian commands.
- (set_endian_big): Issue warning if endian not selectable.
- (set_endian_little): Ditto.
- (set_endian_auto): Ditto.
-
-Thu May 22 11:53:21 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-sim.c (simulator_command): Restrict access to the
- simulator to periods when the simulator is open.
-
-Wed May 21 16:03:25 1997 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * procfs.c (init_procinfo): new function, abstracts some code
- shared by create_procinfo and do_attach;
- (procfs_set_inferior_syscall_traps): new function, abstracts
- some code needed by procfs_init_inferior, do_attach, and
- procfs_lwp_creation_handler; (procfs_first_available): new
- function, find any LWP that's runnable; (procfs_thread_alive):
- replace stub function with real implementation;
- (procfs_lwp_creation_handler): fix bug starting new child
- threads; (info_proc): bug fixes and enhancements for the
- "INFO PROCESSES" command; (close_procinfo_file): call new
- function "delete_thread" to cleanup GDB's thread database;
- (proc_init_failed): add new argument "kill", to control whether
- process is killed (so this function can be shared by
- create_procinfo and do_attach); (procfs_exit_handler): handle
- exit from an attached process, and cleanup procinfo handles
- when the process exits; (procfs_resume, procfs_wait): cleanup
- after a thread when it exits; (do_attach, do_detach): handle
- attached processes with multiple threads; plus some general
- improvements in the diagnostic output.
- * sol-thread.c (sol_thread_alive): replace stub with real
- implementation; (thread_to_lwp, lwp_to_thread): enhance to
- handle threads that may have exited; (sol_thread_attach): add
- startup setup stuff; (sol_thread_detach): add unpush_target
- call; (sol_thread_mourn_inferior): add unpush_target call;
- (sol_thread_wait, sol_thread_resume): enhance to deal with
- thread exit cleanly; (sol_thread_new_objfile,
- sol_thread_pid_to_str): detect unsuccessful startup and
- don't crash; plus some general cleanup.
- * thread.c (delete_thread): new function, allows targets to
- notify gdb when a thread is no longer valid.
- * infrun.c (wait_for_inferior): don't try to detect a new
- thread on receiving a TARGET_EXITED event.
-
-Tue May 20 09:32:02 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-sim.c (gdbsim_open): Pass callback struct.
- (init_callbacks): Remove call to sim_set_callbacks.
-
-Thu May 15 07:56:50 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * config/rs6000/tm-rs6000.h (SIG_FRAME_LR_OFFSET): Define.
- * rs6000-tdep.c (frameless_function_invocation): Mark frames
- with a zero PC as frameless to improve backtraces from core dumps
- caused by dereferencing a NULL function pointer.
- (frameless_function_invocation, frame_saved_pc, rs6000_frame_chain):
- Handle frameless functions interrupted by a signal.
-
- * sparc-tdep.c (sparc_init_extra_frame_info, sparc_frame_saved_pc):
- Handle frameless functions interrupted by a signal.
-
-Wed May 14 08:58:55 1997 Jeffrey A Law (law@cygnus.com)
-
- * mn10200-tdep.c (mn10200_analyze_prologue): Update prologue comments
- to reflect current reality. Gross attempt at handling out of
- line prologues.
-
- * mn10200-tdep.c (mn10200_skip_prologue): Don't look at the debug
- symbols to find the end of the prologue.
- * mn10300-tdep.c (mn10300_skip_prologue): Likewise.
-
-Thu May 8 08:42:47 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure.in (AC_TYPE_SIGNAL): Add
- * configure: Re-generate.
- * remote-sim.c: Signal returns RETSIGTYPE.
-
-Wed May 7 20:05:07 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * target.h (target_stop): Drop argument so it can be tested for
- NULL.
-
-Sat May 3 20:51:48 1997 Mark Alexander <marka@cygnus.com>
-
- * utils.c (floatformat_from_doublest): Handle infinity properly.
-
-Thu May 1 11:44:46 1997 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * Finalize merge from Hurd folk.
- Mon Oct 30 16:41:04 1995 Miles Bader <miles@gnu.ai.mit.edu>
- * thread.c (thread_apply_command, thread_apply_all_command,
- thread_command): Make sure TP is alive.
- (thread_alive): New function.
- Tue Nov 14 14:31:03 1995 Miles Bader <miles@gnu.ai.mit.edu>
- * infrun.c (sig_print_info): Deal better with long signal names.
- Wed Nov 22 15:23:35 1995 Miles Bader <miles@gnu.ai.mit.edu>
- * thread.c (thread_id_to_pid): New function.
- Fri Dec 1 13:25:25 1995 Miles Bader <miles@gnu.ai.mit.edu>
- * gnu-nat.c: (set_thread_cmd_list, show_thread_cmd_list,
- set_thread_default_cmd_list, show_thread_default_cmd_list):
- New variables. (set_thread_cmd, show_thread_cmd,
- set_thread_default_cmd, show_thread_default_cmd): New functions.
- Fri Apr 18 15:20:16 1997 Miles Bader <miles@gnu.ai.mit.edu>
- * gnu-nat.c (inf_startup): remove TASK parameter.
- (inf_set_task): replace with new function (inf_set_pid).
- * gdbthread.h: Add extern decl for thread_cmd_list.
-
-Thu May 1 02:28:21 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * printcmd.c (disassemble_command): Adjust low function bound
- by FUNCTION_START_OFFSET.
-
-Mon Apr 28 21:25:32 1997 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * Makefile.in: Add rule for gnu-nat.o and i386gnu-nat.o (Gnu Hurd)
- * config/i386/i386gnu.mh: remove rules for [i386]gnu-nat.o, now
- in Makefile.in (as for other targets); add NATDEPFILE corelow.o to
- satisfy symbol dependancy in solib.c (core_ops).
- * target.[ch] conditionalize Mach-specific signals so that they
- won't show up in non-Mach gdb's!
- * thread.c: change name of static function "thread_switch" to
- "switch_to_thread", to avoid conflict with Mach global symbol;
- move thread_cmd_list to global scope so targets can add their
- own thread commands.
- * infrun.c: sig_print_info: allow for long signal names.
- * gnu-nat.[ch]: tidying up comments.
- * gnu-nat.c: remove calls to prune_threads and renumber_threads;
- gnu_wait must not return -1 when inferior exits;
- attach_to_child will modify inferior_pid in a way that allows
- fork_inferior to remain unchanged; remove extra arg from
- startup_inferior; move Mach thread commands here from thread.c.
-
-Mon Apr 28 18:21:20 1997 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * symtab.c: decode_line_1, replace the assignment to
- values.sals[0].pc which I accidentally left out on 4/3/97.
-
-Mon Apr 28 17:27:40 1997 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * c-exp.y: make parse_number reject "123DEADBEEF".
- (fix by Bob Manson).
- * java-exp.y: Ditto.
- * top.c: change "to enable to enable" to "to enable" in a couple
- of help strings.
-
-Mon Apr 28 09:01:59 1997 Mark Alexander <marka@cygnus.com>
-
- * breakpoint.c (remove_breakpoint): Pass correct type to
- target_remove_watchpoint.
- * target.h: Improve comment for target_{remove,insert}_breakpoint.
-
-Sat Apr 26 03:38:02 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * alpha-tdep.c (heuristic_proc_desc): Increase search limit
- for return address register, handle `ret' instruction.
-
- * corelow.c (get_core_registers): Initialize cf.
-
- * procfs.c: Minor changes to make pre-ANSI compilers happy.
- (procfs_notice_signals): Copy traced signal set back to
- pi->prrun.pr_trace.
- (unconditionally_kill_inferior): If PR_DEAD is defined,
- rerun inferior after killing it.
-
-Fri Apr 25 00:10:18 1997 Jeffrey A Law (law@cygnus.com)
-
- * config/mn10300/tm-mn10300.h (EXTRACT_STRUCT_VALUE_ADDRESS): The
- structure value address is found in $a0 now.
- * config/mn10200/tm-mn10200.h (EXTRACT_STRUCT_VALUE_ADDRESS): Likewise.
-
-Thu Apr 24 13:31:10 1997 Jeffrey A Law (law@cygnus.com)
-
- * config/mn10300/tm-mn10300.h (STORE_RETURN_VALUE): Pointers are
- returned in $a0.
- (EXTRACT_RETURN_VALUE): Likewise.
-
- * mn10300-tdep.c (mn10300_analyze_prologue): Check for a return
- insn at "pc", not "fi->pc".
-
-Wed Apr 23 11:18:45 1997 Jeffrey A Law (law@cygnus.com)
-
- * config/mn10200/tm-mn10200.h (STORE_RETURN_VALUE): Pointers are
- returned in $a0.
- (EXTRACT_RETURN_VALUE): Likewise.
-
-Tue Apr 22 11:58:15 1997 Fred Fish <fnf@cygnus.com>
-
- * config/arm/tm-arm.h (TARGET_DOUBLE_FORMAT): Define to use
- floatformat_ieee_double_littlebyte_bigword for little endian
- target byte order.
- * utils.c (floatformat_to_doublest): Create local preswapped
- copy of input for floatformat_littlebyte_bigword formats.
- (get_field, put_field): Treat floatformat_littlebyte_bigword
- the same as floatformat_little.
- (floatformat_from_doublest): Postswap output words for
- the floatformat_littlebyte_bigwords format.
-
-Tue Apr 22 09:02:10 1997 Stu Grossman (grossman@critters.cygnus.com)
-
- * config/alpha/alpha-osf3.mh config/i386/{i386gnu linux}.mh
- config/mips/{embed embed64 embedl embedl64 vr4300 vr4300el vr5000
- vr5000el}.mt config/powerpc/{aix aix4}.mh config/rs6000/{aix
- aix4}.mh config/sh/sh.mt config/sparc/sp64sim.mt:
- config/v850/v850.mt:
- Remove -lm. That's now handled by configure.
-
- * Makefile.in (maintainer-clean): Add distclean to dependencies.
- Remove duplicate rm's of files.
-
-Mon Apr 21 09:49:25 1997 Stu Grossman (grossman@critters.cygnus.com)
-
- * remote-pa.c: Remove. It's broken and no longer necessary.
-
- Sat Apr 19 11:56:10 1997 Per Bothner <bothner@deneb.cygnus.com>
-
- * java-exp.y: Combine TRUE and FALSE into BOOLEAN_LITERAL.
- (Avoids name clash with broken AIX header files.)
-
-Sat Apr 19 01:49:37 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * serial.c (serial_log_command): Fix fputs_unfiltered calls.
-
- * config/powerpc/tm-ppc-aix4.h, config/rs6000/tm-rs6000-aix4.h
- (DONT_RELOCATE_SYMFILE_OBJFILE): Removed.
- * xcoffsolib.h (struct vmap): Add new members tvma, toffs and dvma,
- remove tadj.
- * exec.c (bfdsec_to_vmap): Initialize new vmap members, initialize
- tstart and dstart with section VMA.
- * rs6000-nat.c (vmap_symtab): Relocate relative to the VMA in the
- object file.
- (vmap_ldinfo, xcoff_relocate_core): Adjust tstart by section offset
- of the text section, remove DONT_RELOCATE_SYMFILE_OBJFILE hack.
- (vmap_exec): Relocate relative to the VMA in the object file,
- relocate .bss section as well.
- (xcoff_relocate_core): No longer adjust section addresses by VMA.
- * rs6000-tdep.c (find_toc_address): Change type of tocbase
- to CORE_ADDR.
- * xcoffread.c (secnum_to_bfd_section): New routine to get
- BFD section from CS section number.
- (scan_xcoff_symtab): Make toc_offset section relative.
-
- * symtab.c (total_number_of_methods): Avoid core dump if
- baseclass type is still undefined.
-
-Fri Apr 18 17:25:10 1997 Stu Grossman (grossman@critters.cygnus.com)
-
- * Makefile.in (SUBDIRS): Add mswin so that make cleanup cleans up
- that directory.
- * defs.h utils.c (error warning): Make message be const.
- * main.c (fputs_unfiltered): Only send gdb_stdout and gdb_stderr
- to hook. Otherwise send it to fputs.
- * monitor.c monitor.h (monitor_get_dev_name): New function. Does
- the obvious.
- * remote-e7000.c: Remove debugify stuff. Change printf, fprintf
- to _filtered forms to make output appear in GUIs. Replace all
- uses of SERIAL_READCHAR with readchar, which has better error
- checking.
- * (e7000_parse_device): Add prototype.
- (readchar): Improve doc. Handle random serial errors.
- (expect): Disable notice_quit code. It's busted. Remove
- serial error handling (it's now handled in readchar). Remove
- remote_debug echoing. That's handled in readchar as well.
- (e7000_parse_device): Remove serial_flag arg. It's not
- necessary.
- (e7000_open): Split into two pieces. Second part is
- e7000_start_remote, and is error protected. Now, when we connect
- to the target, we setup the initial frame and registers so that
- the user gets an immediate indication of where the target is.
- (gch): Remove debug output. That's handled by readchar.
- (e7000_read_inferior_memory): Handle errors better.
- (_initialize_remote_e7000): Get rid of `<xxx>' things from
- command names. They show up when doing completion and confuse
- things horribly.
- * ser-e7kpc.c: Get rid of the DLL's since we can access the device
- directly from Win32s and Win95. Get rid of debugify crud.
- * serial.c: Remove debugify cruft.
- * (serial_logchar serial_log_command serial_write serial_readchar
- serial_send_break serial_close): Merge common functionality into
- serial_logchar. Clean up rest of routines.
- * sparclet-rom.c: Disembowel. Leave only download routine.
- Download routine now switches to remote target automatically.
- * top.c (disconnect): Only define if SIGHUP is defined. Cleans
- up MSVC/Win32 problem.
- * utils.c (gdb_flush): Don't call hook unless it's for gdb_stdout
- or gdb_stderr.
- * config/sh/tm-sh.h: Define TARGET_SH for WinGDB.
- * config/sparc/tm-sparclet.h: Remove override for prompt.
-
-Fri Apr 18 13:38:19 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * remote-sim.c (gdbsim_open): Only pass -E to sim_open if
- TARGET_BYTE ORDER_SELECTABLE.
-
-Fri Apr 18 16:52:41 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-sim.c (init_callbacks): Initialize poll_quit and magic
- fields of gdb_callback.
- (gdbsim_stop): Add gdbsim_stop to list of supported client
- operations.
- (gdbsim_wait, gdbsim_resume): Move call to sim_resume into
- sim_wait where gdb is in a position to handle a long running
- function.
- (gdbsim_cntrl_c): New function. Wrap the sim_resume call in a
- SIGINT handler.
- (gdb_os_poll_quit): New function. Check for a quit pending on the
- console.
-
-Thu Apr 17 14:30:04 1997 Per Bothner <bothner@deneb.cygnus.com>
-
- * objfiles.c (allocate_objfile): Allow NULL bfd argument.
- * defs.h (enum language): Add language_java.
- * java-exp.y, java-lang.c, java-lang.h, java-valprint.c: New files.
- * Makefile.in: Update for new files.
- * symfile.c (deduce_language_from_filename): Recognize .java.
-
-Thu Apr 17 02:20:23 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * m32r-stub.c (stash_registers): Rewrite.
- (restore_registers): Renamed to restore_and_return.
- (cleanup_stash): New function.
- (process_exception): New function.
- (_catchException*): Rewrite.
-
- * remote-sim.c (gdbsim_load): Update call to sim_load.
- (gdbsim_create_inferior): No longer pass start_address to
- sim_create_inferior.
- (gdbsim_open): Pass endian indicator as arg.
-
-Tue Apr 15 15:31:09 1997 Stan Shebs <shebs@andros.cygnus.com>
-
- * remote.c (get_offsets): Don't use scanf for interpreting
- response to qOffsets.
-
-Tue Apr 15 14:51:04 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbserver/Makefile.in (INSTALL_XFORM): Remove.
- (INSTALL_XFORM1): Remove.
- (install-only): Use $(program_transform_name) directly, rather
- than using $(INSTALL_XFORM) and $(INSTALL_XFORM1).
- (uninstall): Transform name.
-
-Mon Apr 14 17:06:27 1997 Mark Alexander <marka@cygnus.com>
-
- * remote-mips.c (mips_load): Ensure that PC gets updated
- after a load on LSI target.
-
-Mon Apr 14 15:54:51 1997 Geoffrey Noer <noer@pizza.cygnus.com>
-
- * procfs.c (notice_signals): fix typo
-
-Mon Apr 14 16:25:10 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbserver/Makefile.in (INSTALL): Change install.sh to
- install-sh.
-
-Mon Apr 14 11:55:27 1997 Geoffrey Noer <noer@pizza.cygnus.com>
-
- * config/i386/cygwin32.mh: remove -lkernel32 from XM_CLIBS
- since gcc automatically includes it
-
-Thu Apr 10 13:20:53 1997 Geoffrey Noer <noer@cygnus.com>
-
- * procfs.c: Substantial (but incomplete) changes to support
- sysv4.2mp procfs as implemented in UnixWare 2.1. The procinfo
- struct now has substructs like struct flt_ctl instead of
- just a fltset_t and has a ctl_fd, status_fd, as_fd, and
- map_fd instead of a single fd. Non-sysv4.2mp procfs models
- still have the structs and multiple fds, but don't use the
- entire struct and the four fds all point to the same thing.
- We use PROCFS_USE_READ_WRITE to decide whether to talk to
- procfs with reads/writes or use ioctl instead. We use
- HAVE_MULTIPLE_PROC_FDS to determine whether procfs really has
- multiple fds or not. PROC_NAME_FMT is split out into
- CTL_PROC_NAME_FMT, AS_PROC_NAME_FMT, MAP_PROC_NAME_FMT,
- STATUS_PROC_NAME_FMT.
-
- (procfs_notice_signals): now a necessary wrapper around
- (notice_signals): which are the new guts for noticing signals
- (open_proc_file): gets a new flag arg used in sysv4.2mp to
- determine whether or not to attempt to open the ctl_fd.
- (procfs_read_status): new local function, reads procfs status
- (procfs_write_pcwstop): new local function, writes a PCWSTOP
- (procfs_write_pckill): new local function, writes a PCKILL
- (unconditionally_kill_inferior): remove signo since we now
- just call procfs_write_pckill().
- (procfs_xfer_memory): call lseek with SEEK_SET rather than 0
- (proc_iterate_over_mappings): the whole function is ifdefed
- on UNIXWARE to keep things readable.
-
- Expanded the syscall_table to include new potential sysv4.2mp
- members. Note that all ifdefs of UNIXWARE should be eliminated
- if possible or renamed to describe what's being selected for a
- bit better. Sysv4.2mp and IRIX both have SYS_sproc so the
- IRIX specific code now also checks it's not UNIXWARE.
-
- * config/i386/tm-i386v42mp.h: also define HAVE_PSTATUS_T,
- HAVE_NO_PRRUN_T, PROCFS_USE_READ_WRITE, and UNIXWARE
- * config/mips/nm-irix4.h: set CTL_PROC_NAME_FMT et al to
- "/debug/%d" as PROC_NAME_FMT used to be
-
-Wed Apr 9 11:36:14 1997 Jeffrey A Law (law@cygnus.com)
-
- * mn10300-tdep.c: Almost completely rewritten based on mn10200
- port.
- * config/mn10300/tm-mn10300.h: Likewise.
-
-Tue Apr 8 10:45:24 1997 Stu Grossman (grossman@critters.cygnus.com)
-
- * config/pa/{hppabsd.mt hppahpux.mt hppaosf.mt}: Remove
- remote-pa.o from TDEPFILES. Nobody uses it, and besides, it's a
- lousy out-of-date clone of remote.c.
-
-Fri Apr 4 08:21:21 1997 Stu Grossman (grossman@critters.cygnus.com)
-
- * remote.c: Fix problems realized while showering.
- * (hexnumlen): Add prototype. Use max, not min.
- * (remote_write_bytes remote_read_bytes): Fix max packet size
- calculations to properly account for packet overhead. Also handle
- (probably rare) case where remote_register_buf_size isn't set.
-
- * remote.c: Fix doc for `C' and `S' commands to indicate full
- address.
- * (remote_ops extended_remote_ops remote_desc remote_write_size):
- Make static.
- * (remote_fetch_registers remote_write_bytes remote_read_bytes):
- Record size of response to fetch registers command, use this to
- limit size of memory read and write commands.
- * (push_remote_target): New function to make it possible to have
- another target switch to the remote target.
- * target.h: Add prototype for push_remote_target.
- * sh-tdep.c (sh_frame_find_saved_regs): Fix sign extension bugs
- for hosts which default to unsigned chars (such as SGI's).
- * (_initialize_sh_tdep): Don't set remote_write_size. It's now
- handled automatically in remote.c.
-
-Thu Apr 3 15:10:30 1997 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * blockframe.c: blockvector_for_pc_sect(), block_for_pc_sect(),
- find_pc_sect_function(), find_pc_sect_partial_function(): new
- functions for debugging overlays; pc without section is ambiguous.
- * breakpoint.[ch]: add section pointer to breakpoint struct;
- add section argument to check_duplicates(); check section as well
- as pc in [breakpoint_here_p(), breakpoint_inserted_here_p(),
- breakpoint_thread_match(), bpstat_stop_status()];
- add section argument to describe_other_breakpoints();
- use INIT_SAL() macro to zero-out new sal structures;
- make resolve_sal_pc() fix up the sal's section as well as its pc;
- match on section + pc in clear_command() and delete_breakpoint();
- account for overlay sections in insert_breakpoints(),
- remove_breakpoint() and breakpoint_re_set_one();
- all this to support overlays where a PC is not unique.
- * exec.c: change xfer_memory() to handle overlay sections.
- * findvar.c: change read_var_value() to handle overlay sections.
- * frame.h: declaration for block_for_pc_sect() [blockframe.c].
- * infcmd.c: jump_command() warns against jumping into an overlay
- that's not in memory. Also use INIT_SAL() to initialize sals.
- * infrun.c: wait_for_inferior() sets a flag to invalidate cached
- overlay state information; Also use INIT_SAL() to init sals.
- * m32r-rom.c: modify load routines to use LMA instead of VMA.
- * m32r-stub.c: mask exit value down to 8 bits; screen out any
- memory read/writes in the range 600000 to a00000, and ff680000
- to ff800000 (hangs because nothing is mapped there); fix strcpy().
- * maint.c: maintenance command "translate-address" supports overlays.
- * minsyms.c: lookup_minimal_symbol_by_pc_sect() supports overlays.
- * objfiles.[ch]: add ovly_mapped field to the obj_section struct;
- this constitutes gdb's internal overlay mapping table. Add macro
- ALL_OBJSECTIONS() to loop thru the obj_structs and look at overlays.
- Add function find_pc_sect_section().
- * printcmd.c: modify print_address_symbolic() with overlay smarts;
- modify address_info() with overlay smarts; add function sym_info()
- to support the INFO SYMBOL command (translate address to symbol(s));
- modify disassemble_command() to work on unmapped overlays.
- * source.c: use INIT_SAL() to initialize sals.
- * symfile.[ch]: change generic_load() to use section's LMA address
- instead of VMA address, for overlay sections.
- Add numerous functions for finding a PC's section / overlay,
- translating between VMA and LMA address ranges, determining if an
- overlay section is mapped, etc. Add several user commands for
- overlay debugging. Add support for a "generic" form of automatically
- reading overlay mapping info from the inferior (based on the default
- (simple) overlay manager which Cygnus provides as an example).
- * symtab.[ch]: add functions find_pc_sect_symtab(),
- find_pc_sect_psymtab(), find_pc_sect_psymbol(), find_pc_sect_line()
- for lookup; modify lookup_symbol and decode_line_1() to use them;
- modify find_function_start_sal() to account for overlay sections;
- add macro INIT_SAL() for initializing struct symtab_and_line.
- * target.c: fix a comment in the declaration of target_ops.
-
-Thu Apr 3 10:31:12 1997 Mark Alexander <marka@cygnus.com>
-
- * mips-tdep.c (mips_in_call_stub, mips_in_return_stub,
- mips_skip_stub, mips_ignore_helper): New functions for dealing
- with MIPS16 call/return thunks.
- (mips_init_frame_pc_first): New function to implement
- INIT_FRAME_PC_FIRST macro; includes code from old macro plus
- new code to skip over MIPS16 thunks.
- (mips_frame_chain): Skip over MIPS16 thunks.
- * config/mips/tm-mips.h (mips_in_call_stub, mips_in_return_stub,
- mips_skip_stub, mips_ignore_helper): Declare.
- (IN_SOLIB_CALL_TRAMPOLINE, IN_SOLIB_RETURN_TRAMPOLINE,
- SKIP_TRAMPOLINE_CODE, IGNORE_HELPER_CALL): New macros that invoke
- the above functions.
- (INIT_FRAME_PC_FIRST): Change to invoke mips_init_frame_pc.
- (mips_init_frame_pc): Declare.
- * infrun.c (wait_for_inferior): Use new IGNORE_HELPER_CALL macro
- to decide if certain library function calls should be ignored.
-
-Wed Apr 2 14:16:51 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * remote-sim.c (gdbsim_open): Check return code from sim_open.
- Update call to sim_open (new arg SIM_OPEN_DEBUG).
-
-Mon Mar 31 14:55:53 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gdbinit.in: New file.
- * .gdbinit: Remove.
- * configure.in: Generate .gdbinit from gdbinit.in.
- * configure: Rebuild.
-
-Sat Mar 29 13:57:20 1997 Fred Fish <fnf@cygnus.com>
-
- * COPYING: Install new version of file from FSF.
- * copying.c (show_copying_command): Update FSF address.
-
-Fri Mar 28 18:33:41 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (distclean): Remove .gdbinit.
-
-Fri Mar 28 15:38:04 1997 Mike Meissner <meissner@cygnus.com>
-
- * remote-sim.c (gdb_os_{,e}vprintf_filtered): Change stdarg type
- to va_list from void *, since va_list might not be a pointer
- type.
-
-Thu Mar 27 14:21:46 1997 Mark Alexander <marka@cygnus.com>
-
- * remote-mips.c: Clean up comment and extraneous semicolon
- for mips_monitor_prompt variable.
-
-Thu Mar 27 12:46:58 1997 Mark Alexander <marka@cygnus.com>
-
- * remote-mips.c: Add `set monitor-prompt' command.
-
-Wed Mar 26 06:47:44 1997 Mark Alexander <marka@cygnus.com>
-
- Fix from Peter Schauer:
- * mdebugread.c (parse_procedure): Set address of procedure to
- block start; this fixes problems with shared libraries introduced
- by change of Mar 21.
-
-Mon Mar 24 19:43:16 1997 Geoffrey Noer <noer@cygnus.com>
-
- * symtab.c (find_pc_symtab): change to support the case
- where the objfile is reordered and contains both coff and
- stabs debugging info (continue on if a psymtab isn't found).
-
-Sun Mar 23 16:19:20 1997 Mark Alexander <marka@cygnus.com>
-
- Fixes from Peter Schauer:
- * config/mips/tm-mips.h (REGISTER_CONVERT_TO_TYPE,
- REGISTER_CONVERT_FROM_TYPE): Swap words if target, not host,
- is big-endian and if registers are 32 bits.
- * mips-tdep.c (mips_print_register, mips_extract_return_value,
- mips_store_return_value): Fix floating-point word-order problems on
- little-endian targets introduced by changes of Mar 21.
-
-Sun Mar 23 15:43:27 1997 Stan Shebs <shebs@andros.cygnus.com>
-
- * remote.c (target_resume_hook, target_wait_loop_hook): New
- globals.
- (remote_resume, remote_wait): Use them.
- * d10v-tdep.c: Set the above hooks.
- (tracesource): New GDB variable, controls source display in
- traces.
- (display_trace): Find and display source line if requested.
- (trace_info): Mention empty trace buffer if appropriate.
- (tdisassemble_command): Robustify argument handling.
-
- * configure.host: Remove extra bogus Linux case.
-
-Sat Mar 22 16:41:35 1997 Fred Fish <fnf@cygnus.com>
-
- * remote-sim.c (simulator_command): Add comment about dealing with
- NULL or empty args.
-
-Sat Mar 22 02:48:11 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * c-exp.y (yylex): Handle nested template parameter lists.
- * symtab.c (decode_line_2): Fix test for valid choice number.
-
-Fri Mar 21 19:10:05 1997 Mark Alexander <marka@cygnus.com>
-
- * mips-tdep.c (mips_push_arguments): On non-EABI architectures,
- copy first two floating point arguments to general registers, so that
- MIPS16 functions will receive the arguments correctly.
- (mips_print_register): Print double registers correctly on
- little-endian hosts.
- (mips_extract_return_value): Return double values correctly
- on little-endian hosts.
-
- * mdebugread.c (parse_procedure): Adjust address of procedure relative
- to address in file descriptor record; this accounts for constant
- strings that may precede functions in the text section. Remove
- now-useless lowest_pdr_addr from argument list and all calls.
-
-Fri Mar 21 15:36:25 1997 Michael Meissner <meissner@cygnus.com>
-
- * configure.tgt (powerpc*-{eabi,linux,sysv,elf}*): Determine
- whether the simulator will be built by whether the Makefile in the
- simulator directory was built.
-
- * configure.in (--enable-sim-powerpc): Delete switch.
- * configure: Regenerate.
-
-Thu Mar 20 20:52:04 1997 Jeffrey A Law (law@cygnus.com)
-
- * mn10200-tdep.c (mn10200_analyze_prologue): Look for save of "a1"
- in the prologue too.
-
- * remote-sim.c (gdb_os_vprintf_filtered): Fix to work with non-ANSI
- compilers.
- (gdb_os_evprintf_filtered): Similarly.
-
-Wed Mar 19 16:13:22 1997 Geoffrey Noer <noer@pizza.cygnus.com>
-
- New UnixWare 2.1 configuration
- * config/i386/i386v42mp.mt: new
- * config/i386/i386v42mp.mh: new
- * config/i386/tm-i386v42mp.h: new
- * config/i386/nm-i386v42mp.h: new
- * configure.tgt: added new entries
- * configure.host: added new entries
-
-Mon Mar 17 17:52:00 1997 J.T. Conklin <jtc@cygnus.com>
-
- * dsrec.c (load_srec): Print leading zeroes when printing section
- addresses.
-
-Mon Mar 17 15:00:16 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
-
- * remote-sim.h: Delete - moved to ../include/remote-sim.h.
-
- * Makefile.in (remote_utils_h): Update path to remote-sim.h.
-
-Fri Mar 7 20:55:28 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
-
- * remote-sim.c (flush_stdout, write_stderr, flush_stderr,
- vprintf_filtered, evprintf_filtered): Callbacks that accept
- varargs.
-
-Sat Mar 15 00:50:46 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * breakpoint.c (insert_breakpoints, watchpoint_check,
- bpstat_stop_status): Do not disable watchpoints going out of scope.
- (insert_breakpoints): Make sure that the current frame is valid
- before calling find_frame_addr_in_frame_chain.
-
- * top.c (setup_user_args): Handle quotes and backslashes.
- (print_gdb_version): Update copyright year.
-
-Fri Mar 14 15:44:03 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (elfread.o): Depend upon elf-bfd.h and elf/mips.h.
-
-Thu Mar 13 22:51:00 1997 Dawn Perchik <dawn@cygnus.com>
-
- * utils.c (pollquit, notice_quit): If _WIN32, limit test for
- cntl-C to wingdb.
- (initialize_utils): If _WIN32, don't call ScreenRows and ScreenCols
- except under wingdb. (Contributed by Martin Hunt).
-
-Thu Mar 13 12:40:49 1997 Tom Tromey <tromey@cygnus.com>
-
- * configure: Regenerated.
- * configure.in: Run AC_CONFIG_AUX_DIR before AC_CANONICAL_SYSTEM.
-
-Thu Mar 13 11:00:22 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * remote-sim.h (sim_state, SIM_DESC): New types.
- (sim_open): Return a `descriptor' as result.
- (*): New argument of descriptor result from sim_open.
- * remote-sim.c (gdbsim_desc): Renamed from gdbsim_open_p.
- (gdbsim_open): Record result of sim_open in gdbsim_desc.
- Pass argv list to sim_open, argv[0] = pseudo program name.
- (*): Pass gdbsim_desc to sim_foo fns.
-
-Wed Mar 12 14:40:06 1997 Tom Tromey <tromey@cygnus.com>
-
- * config.in: Regenerated.
-
- * acconfig.h (START_INFERIOR_TRAPS_EXPECTED, sys_quotactl,
- HAVE_HPUX_THREAD_SUPPORT): Define.
-
-Tue Mar 11 07:25:27 1997 Mark Alexander <marka@cygnus.com>
-
- First cut at supporting simulators in gdbserver:
-
- * configure, configure.in: Allow gdbserver to be configured
- for cross-target environments.
- * gdbserver/Makefile.in: Add simulator support.
- * gdbserver/configure.in: Eliminate assumption that host == target.
- Simplify using gdb/configure.tgt and gdb/configure.host.
- Fix other minor configuration errors.
- * gdbserver/low-sparc.c: Fix compile error.
- * gdbserver/remote-utils.c: Eliminate assumption that registers
- and addresses are four bytes. Fix minor compile errors and warnings.
- * gdbserver/server.c: Rewrite numerous instances of identical code
- for starting inferior processes to call new function start_inferior.
- Eliminate assumption that registers and addresses are four bytes.
- * gdbserver/server.h: Add missing prototypes to eliminate compiler
- warnings.
- * gdbserver/low-sim.c: New file to mate gdbserver with simulators.
- * config/mips/vr5000.mt: Add Vr5000 simulator support to gdbserver.
- * config/i386/linux.mh: Eliminate gdbserver support as a first step
- in moving such support from host to target makefile fragments.
- * config/i386/linux.mt: Move gdbserver support here from linux.mh.
-
-Mon Mar 10 12:27:47 1997 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * symtab.h (INIT_SAL): New macro to initialize symtab_and_line,
- to insure consistant initialization of unused fields to zero.
- * symtab.c: replace initializations of sals with new macro INIT_SAL.
- * breakpoint.c: ditto.
- * infrun.c: ditto.
- * infcmd.c: ditto.
- * source.c: add call to INIT_SAL macro.
-
-Sat Mar 8 00:16:37 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * sparc-tdep.c (isbranch): Always handle v9 branch instructions,
- they might get used on 32 bit targets as well.
-
-Wed Mar 5 19:34:09 1997 Bob Manson <manson@charmed.cygnus.com>
-
- * remote-mips.c (mips_exit_debug): Some IDT boards don't
- send the full exit string.
-
-Wed Mar 5 12:59:27 1997 Jeffrey A Law (law@cygnus.com)
-
- * mn10200-tdep.c (mn10200_push_arguments): Handle new calling
- conventions.
- (mn10200_store_struct_return): Likewise.
-
-Tue Mar 4 10:31:02 1997 Mark Alexander <marka@cygnus.com>
-
- * mips-tdep.c (mips_fetch_instruction): New function; replace
- common code throughout with calls to it.
- (mips_find_saved_regs): Examine MIPS16 entry instruction to determine
- correct saved addresses of $s0 and $s1.
- (mips_find_saved_regs, mips16_heuristic_proc_desc): Use MIPS_REGSIZE
- instead of hardcoded 4.
- (mips16_skip_prologue): Handle extended instructions correctly.
-
-Mon Mar 3 12:29:20 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * defs.h (LONGEST): Move #ifndef LONGEST to outside.
- Try BFD_HOST_64_BIT if ! CC_HAS_LONG_LONG.
-
-Thu Feb 27 18:54:11 1997 Mark Alexander <marka@cygnus.com>
-
- * mips-tdep.c (IS_MIPS16_ADDR, MAKE_MIPS16_ADDR, UNMAKE_MIPS16_ADDR):
- New macros for testing, setting, and clearing bit 0 of addresses.
- Change numerous bits of code where bit 0 was being manipulated
- to use these macros.
-
-Thu Feb 27 14:12:41 1997 Mark Alexander <marka@cygnus.com>
-
- * remote-mips.c: Put back the form feeds.
-
-Thu Feb 27 12:04:24 1997 Mark Alexander <marka@cygnus.com>
-
- * remote-mips.c: Remove form feeds (^L) from source.
- (mips_initialize): LSI PMON doesn't support 'set regsize' command.
- (pmon_wait): Don't need to exit and re-enter debug mode on LSI
- PMON after a continue; it causes target program misbehavior.
- (mips_fetch_register): Don't fetch unsupported registers; this
- cuts down on wasted serial traffic.
-
-Thu Feb 27 09:38:16 1997 Stu Grossman (grossman@critters.cygnus.com)
-
- * configure.in configure (HPUX/OSF thread support): Enable this
- only when running GCC, since HP's thread header files use ANSI C
- which is not supported by their default compiler.
-
- * configure.host (i[3456]86-*-windows): Disable long long
- support for WinGDB. Add mswin to configdirs.
- * configure.in configure: Move calls to configure.host and
- configure.tgt to the top of configure.in to allow them to set
- config variables before they are referenced.
-
-Tue Feb 25 20:21:52 1997 Stan Shebs <shebs@andros.cygnus.com>
-
- * configure.tgt (mips*-*-lnews*): New target.
-
-Mon Feb 24 16:35:00 1997 Jeffrey A Law (law@cygnus.com)
-
- * mn10200-tdep.c (mn10200_analyze_prologue): Don't fix fi->frame
- if we're not the innermost frame. Fix minor typos.
-
-Sat Feb 22 03:39:50 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * stabsread.c (read_type): Fix handling of template names
- with template parameters containing `::'.
-
- * valops.c (search_struct_field, search_struct_method):
- Pass correct valaddr parameter to baseclass_offset.
- Prevent gdb crashes by making sure that the virtual base pointer
- from an user object still points to accessible memory.
-
-Tue Feb 18 13:36:34 1997 Mark Alexander <marka@cygnus.com>
-
- * maint.c: Eliminate -Wall warnings by including some header files.
-
-Tue Feb 18 13:06:30 1997 Mark Alexander <marka@cygnus.com>
-
- * remote-sim.c (init_callbacks): Undo previous change.
-
-Tue Feb 18 11:13:00 1997 Dawn Perchik <dawn@cygnus.com>
-
- * maint.c: Fix dereference of pointer.
- * remote-sim.c: Fix reference of structure member "last_error".
- * debugify.c: Include config.h to get ANSI definitions.
-
-Sat Feb 15 17:43:46 1997 Stu Grossman (grossman@critters.cygnus.com)
-
- * remote-vx.c (vx_attach): Remove code added by kung. It made no
- sense.
-
-Fri Feb 14 13:00:07 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * main.c (print_gdb_help): Make static to match declaration.
-
-Thu Feb 13 18:18:18 1997 Dawn Perchik <dawn@cygnus.com>
-
- * remote-e7000.c, ser-e7kpc.c, serial.c: Remove // comments.
-
-Wed Feb 12 15:58:00 1997 Dawn Perchik <dawn@cygnus.com>
-
- * debugify.c, debugify.h: Make safe for non-ansi compilers.
-
-Wed Feb 12 15:30:00 1997 Dawn Perchik <dawn@cygnus.com>
-
- * defs.h: Fix prototypes for new cleanup functions.
-
-Wed Feb 12 15:08:47 1997 Dawn Perchik <dawn@cygnus.com>
-
- * debugify.c, debugify.h: Fix for general gnu use. Remove C++
- comment, add PARAMS, add license info and fix indentation.
-
-Wed Feb 12 14:42:47 1997 Dawn Perchik <dawn@cygnus.com>
-
- * debugify.c, debugify.h: New files. Provide common macros
- for writing debug info to a log file or stdio.
-
-Wed Feb 12 02:44:39 1997 Dawn Perchik <dawn@cygnus.com>
-
- * c-valprint.c (c_val_print): Fix printing for arrays defined
- with 0 length.
-
-Tue Feb 11 22:24:39 1997 Dawn Perchik <dawn@cygnus.com>
-
- * defs.h: Fix cntl-C to read from the Windows message queue.
- Add prototypes for make_final_cleanup (and the other cleanup
- routines.
- * remote-e7000.c: Fix sync code to timeout if unable to sync.
- Change sync code to report status while trying to sync-up
- with hardware. Add debugging output and document.
- * ser-e7kpc.c: Swap order of len & offset to match implementation.
- Add debugging output and document.
- * serial.c: Add debugging output.
- * top.c: Add call to do_final_cleanups.
- Remove conditionals preventing Win32 from getting SIGQUIT.
- * utils.c: (*_cleanup): Modify cleanup routines to accept a cleanup
- chain as a parameter. Extract this generic code from the cleanup
- routines into separate funtions (*_my_cleanup). Keep old
- functionality by passing "cleanup_chain" to the new funtions.
- Define the cleanup chain "final_cleanup_chain" to be a cleanup
- chain which will be executed only when gdb exits. Add functions
- (*_final_cleanup) to match the original (*_cleanup) functions.
- (pollquit, quit, notice_quit): Fix to read cntl-C from the
- Windows message queue.
-
-Tue Feb 11 15:36:31 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * m32r-rom.c: #include <sys/types.h>.
- #ifdef out new load support if wingdb.
- * m32r/tm-m32r.h (TARGET_M32R): Define, for wingdb.
-
-Tue Feb 11 12:28:09 1997 Jeffrey A Law (law@cygnus.com)
-
-
- * config/mn10200/tm-mn10200.h (STORE_STRUCT_RETURN): Fix.
- * mn10200-tdep.c (mn10200_store_struct_return): New function.
-
- * config/mn10200/tm-mn10200.h (EXTRACT_RETURN_VALUE): Fix case when
- extracting a return value from a register pair.
-
- * mn10200-tdep.c (mn10200_push_arguments): Stack only needs to
- be two byte aligned. Round argument sizes up to two byte boundary.
- Write out args in two byte hunks.
- (mn10200_push_return_address): Implement.
- * config/mn10200/tm-mn10200.h (EXTRACT_RETURN_VALUE): Abort for
- structures > 8 bytes (temporary).
- (STORE_RETURN_VALUE): Likewise.
- (CALL_DUMMY): No longer undefine.
- (USE_STRUCT_CONVENTION): Use for args > 8 bytes.
- (REG_STRUCT_HAS_ADDR): Define.
-
-Mon Feb 10 18:35:55 1997 Mark Alexander <marka@cygnus.com>
-
- * mips-tdep.c (non_heuristic_proc_desc): New function.
- (find_proc_desc): Move non-heuristic proc search code into separate
- function.
- (gdb_print_insn_mips): Use non-heuristic method to find procedure
- descriptor, to avoid prologue examination when disassembling.
- * remote-mips.c: Add support for new "lsi" target (LSI MiniRISC
- aka MicroMeteor board).
- (mips_exit_debug): Prevent protocol reinitialization if an error
- occurs while exiting debug mode.
-
-Mon Feb 10 16:11:57 1997 Jeffrey A Law (law@cygnus.com)
-
- * mn10200-tdep.c: Remove lots of debugging printfs, update/improve
- comments, formatting, etc. Plus other minor fixes for problems
- I found during my first pass over the mn10200 port.
- (mn10200_analyze_prologue): New function.
- (mn10200_frame_chain, mn10200_init_extra_frame_info): Use it.
- * config/mn10200/tm-mn10200.h: Lots of updates/improvements to
- comments, formatting, etc. Minor fixes for problems I found during
- my first pass over the mn10200 port.
- (TARGET_*_BIT): Define appropriately for ints, long longs, doubles and
- pointers.
- (REGISTER_VIRTUAL_TYPE): Define as a long.
- (EXTRACT_RETURN_VALUE): Rework to deal with long ints living
- in register pairs.
- (STORE_RETURN_VALUE): Similarly.
-
- * blockframe.c (generic_get_saved_regs): Remove unused variable
- "addr".
- * breakpoint.c (frame_in_dummy): Move struct breakpoint *b decl
- inside #ifdef CALL_DUMMY.
- (watch_command_1): Initialize target_resources_ok.
- * command.c (do_setshow_command): Provide dummy initialization
- for "match".
- * valops.c (find_function_addr): Move function & prototype inside
- #ifdef CALL_DUMMY.
- (value_arg_coerce): Similarly.
- (value_of_variable): Provide dummy initialization of "frame".
-
-Mon Feb 10 07:54:26 1997 Fred Fish <fnf@cygnus.com>
-
- * xcoffread.c (RECORD_MINIMAL_SYMBOL): Add NULL asection* parameter
- to prim_record_minimal_symbol_and_info call that was missed in Jan 3
- change.
- (scan_xcoff_symtab): Ditto.
-
-Sun Feb 09 09:23:26 1997 Mark Alexander <marka@cygnus.com>
-
- * remote-mips.c (common_breakpoint): Prevent 64-bit addresses
- from being sent to 32-bit targets by masking off upper bits.
- * mips-tdep.c (heuristic_proc_start): Mask off upper 32 bits
- of PC on 32-bit targets.
- (mips16_heuristic_proc_desc): Recognize 'addiu s1,sp,n' as a
- frame setup instruction.
- (mips32_heuristic_proc_desc): Fix warning found by gcc -Wall.
- (mips16_skip_prologue): Recognize 'addiu s1,sp,n' as a valid
- prologue instruction. Fix warnings and bugs found by gcc -Wall.
- * buildsym.c (finish_block): Improve handling of overlapping blocks;
- fixes problem on MIPS16 printing function arguments.
-
-Sat Feb 8 01:14:43 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * dwarf2read.c (dwarf2_linkage_name): New function to get
- the linkage name of a die from DW_AT_MIPS_linkage_name or
- DW_AT_name.
- (read_func_scope, dwarf2_add_field, dwarf2_add_member_fn,
- new_symbol): Use it instead of accessing DW_AT_name.
- (read_partial_die): Use DW_AT_MIPS_linkage name as name of the
- partial die if present.
- (dwarf2_add_member_fn): Make a copy of physname on the type obstack.
-
-Fri Feb 7 10:06:22 1997 Jeffrey A Law (law@cygnus.com)
-
- * blockframe.c (generic_frame_chain_valid): If the new frame
- is not INNER_THAN the old frame, then it's not valid.
-
-Tue Feb 04 09:04:37 1997 Mark Alexander <marka@cygnus.com>
-
- * mips-tdep.c (mips16_get_imm): Fix calculation of extended immediate.
- (mips16_heuristic_proc_desc): Recognize jal(x) instruction.
-
-Mon Feb 03 17:57:58 1997 Mark Alexander <marka@cygnus.com>
-
- * mips-tdep.c (mips16_decode_reg_save): Distinguish between
- sd and sw instructions correctly.
- (heuristic_proc_start): Add support for MIPS16.
- (mips16_get_imm, mips16_heuristic_proc_desc,
- mips32_heuristic_proc_desc): New helper functions for
- heuristic_proc_desc.
- (heuristic_proc_desc): Rewrite and reorganize to support MIPS16.
- (mips_push_arguments): Don't align small arguments in EABI.
- (mips32_skip_prologue): Attempt to shrink code size a little.
-
-Mon Feb 3 11:06:05 1997 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * m32r-stub.c: New -- remote protocol support for M32R cpu.
- * m32r-rom.c: Several experiments with improved download time.
-
-Fri Jan 31 08:26:39 1997 Mark Alexander <marka@cygnus.com>
-
- * mips-tdep.c (MIPS16_INSTLEN): Define.
- (mips_find_saved_regs): Replace hardcoded 2's with MIPS16_INSTLEN.
- (heuristic_proc_start): Recognize 'entry' pseudo-op as a start
- of function on MIPS16.
- (mips32_skip_prologue, mips16_skip_prologue): New helper functions
- for mips_skip_prologue.
- (mips_skip_prologue): Recognize both 16- and 32-bit prologues.
-
-Wed Jan 29 12:45:54 1997 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * config/powerpc/ppc{,le}-sim.mt (SIM): Remove the library
- ../sim/common/libcommon.a.
-
-Tue Jan 28 15:54:13 1997 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * blockframe.c: fix a null pointer ref in generic_get_saved_register
-
-Tue Jan 28 15:39:50 1997 Geoffrey Noer <noer@cygnus.com>
-
- * mn10200-tdep.c (mn10200_frame_chain): Get basic backtracing
- working.
-
-Mon Jan 27 14:31:52 1997 Mark Alexander <marka@cygnus.com>
-
-First set of changes for mips16:
- * config/mips/tm-mips.h (MIPS16_BIG_BREAKPOINT,
- MIPS16_LITTLE_BREAKPOINT, BREAKPOINT_FROM_PC): Define.
- (ABOUT_TO_RETURN): Call new function mips_about_to_return.
- (mips_breakpoint_from_pc, mips_about_to_return): Declare.
- * mem-break.c (memory_breakpoint_from_pc): New function.
- (memory_insert_breakpoint, memory_remove_breakpoint): Use
- memory_breakpoint_from_pc to determine breakpoint contents and size.
- * target.h (memory_breakpoint_from_pc): Declare.
- * monitor.c (monitor_insert_breakpoint): Use memory_breakpoint_from_pc
- to determine size of breakpoint instruction.
- * mips-tdep.c (mips32_decode_reg_save, mips16_decode_reg_save):
- New helper functions for mips_find_saved_regs.
- (mips_find_saved_regs): Recognize mips16 prologues.
- (mips_addr_bits_remove): Strip off upper 32 bits of address
- when target CPU is 32 bits but CORE_ADDR is 64 bits.
- (mips_step_skips_delay): No branch delay slot on mips16.
- (gdb_print_insn_mips): Disassemble mips16 code.
- (mips_breakpoint_from_pc, mips_about_to_return): New functions.
-
-Mon Jan 27 10:34:03 1997 Jeffrey A Law (law@cygnus.com)
-
- * tm-mn10200.h (NUM_REGS): Decrease to 12.
- (REGISTER_NAMES): Elimination registers not found on the mn10200.
- (PC_REGNUM, MDR_REGNUM, PSW_REGNUM): Corresponding changes.
- (LIR_REGNUM, LAR_REGNUM): Delete. They don't exist on the mn10200.
-
-Sat Jan 25 00:07:59 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * dwarf2read.c: Replace integral tag, name and form fields in
- internal structure definitions with the corresponding enumeration
- types from dwarf2.h. Add default cases to switches on enumerations
- where appropriate.
- Make quoting of string arguments in complaint messages consistent.
- Check for NULL returns from DW_STRING.
- (struct partial_die_info): Add sibling and has_type fields, remove
- unused value field.
- (DW_*): Move access macro definitions near the definition of the
- attribute structure.
- (struct field_info): New structure to pass information about fields
- and member functions between die processing routines.
- (dwarf2_build_psymtabs_hard): Set cu_header_offset.
- (scan_partial_symbols): Do not enter DW_TAG_subprogram dies into
- the partial symbol table if the DW_AT_*_pc attributes are missing.
- Add file scope base type definitions to the partial symbol table.
- Skip over child dies if the die has a sibling attribute.
- (add_partial_symbol): Enter global variables with type attributes
- and without location descriptors into the partial symbol table.
- Store value of DW_TAG_variable dies in the partial symbol table.
- Do not enter global variables into the minimal symbol table.
- Add base type definitions to the partial symbol table.
- (psymtab_to_symtab_1): Use dwarf2_get_pc_bounds to determine highpc.
- (process_die): Move check for DW_AT_low_pc to read_func_scope.
- Add a typedef symbol for base type definitions to the symbol table.
- Ignore DW_TAG_inlined_subroutine tags for now.
- (read_file_scope): Use dwarf2_get_pc_bounds to determine pc bounds.
- (read_func_scope, read_lexical_block_scope): Use dwarf2_get_pc_bounds
- to determine pc bounds, ignore dies with invalid bounds.
- (dwarf2_get_pc_bounds): New routine to extract and validate the
- DW_AT_*_pc attributes of a die.
- (dwarf2_add_field, dwarf2_attach_fields_to_type, skip_member_fn_name,
- dwarf2_add_member_fn, dwarf2_attach_fn_fields_to_type):
- New functions to handle fields and member functions.
- (read_structure_scope): Rewritten to use them.
- (read_array_type): Renamed from dwarf_read_array_type.
- Default upper array bound to describe an array with unspecified
- length.
- Create array types in backwards order, as dwarf2 puts out the array
- dimensions from left to right.
- (read_subroutine_type): Handle DW_TAG_unspecified_parameters,
- DW_AT_artificial and DW_AT_prototyped.
- (read_base_type): Make an unsigned type for DW_ATE_boolean.
- Pass objfile to dwarf_base_type.
- (read_partial_die): Use read_attribute to read in the attributes.
- Handle DW_AT_sibling and DW_AT_type.
- Follow references when determining DW_AT_name and DW_AT_external
- attributes of the die.
- Validate DW_AT_*_pc attributes.
- (read_full_die): Use read_attribute to read in the attributes.
- (read_attribute): New function to read an attribute described
- by an abbreviated attribute.
- (new_symbol): Relocate symbol value for DW_TAG_label with baseaddr.
- Do not set SYMBOL_VALUE_ADDRESS for DW_TAG_subprogram,
- SYMBOL_BLOCK_VALUE for the symbol will be set later by finish_block.
- Change symbol class for global variables with a zero valued location
- descriptor to LOC_UNRESOLVED.
- Handle DW_AT_const_value attributes for DW_TAG_variable,
- DW_TAG_formal_parameter and DW_TAG_enumerator.
- Build a typedef symbol for DW_TAG_base_type.
- (dwarf2_const_value): New routine to copy a constant value from an
- attribute to a symbol.
- (dwarf_base_type): Use passed in objfile, not current_objfile
- when calling dwarf2_fundamental_type.
- (dump_die): Use DW_* accessor macros to access values of attributes.
- (decode_locdesc): Handle DW_OP_plus_uconst.
-
-Wed Jan 22 01:31:16 1997 Geoffrey Noer <noer@cygnus.com>
-
- * mn10200-tdep.c: New file.
- * config/mn10200/tm-mn10200.h: New, REGISTER_SIZE is 24 bits not 32,
- SP_REGNUM and FP_REGNUM are different, also no lar or lir.
- * config/mn10200/mn10200.mt: New file.
- * configure.tgt: add mn10200 entry.
-
-Tue Jan 21 18:32:23 1997 Stu Grossman (grossman@lisa.cygnus.com)
-
- * configure.in configure: Check if host has libdl if doing
- Solaris threads.
-
-Tue Jan 21 17:03:26 1997 Geoffrey Noer <noer@cygnus.com>
-
- * mn10300-tdep.c: Wrote/fixed implementations of
- mn10300_frame_chain, mn10300_init_extra_frame_info,
- mn10300_frame_saved_pc
- * config/mn10300/tm-mn10300.h: Redefine INIT_EXTRA_FRAME_INFO
- and INIT_FRAME_PC macros.
-
-Tue Jan 21 17:01:20 1997 Stu Grossman (grossman@lisa.cygnus.com)
-
- * configure.in configure: Check if host has libm. Make sure we
- are using gcc when using the -export-dynamic option. Fixes a
- problem with building under Solaris/SunPro cc.
-
-Mon Jan 20 13:52:13 1997 Mark Alexander <marka@cygnus.com>
-
- * config/mips/{embed,embed64,embedl,embedl64}.mt:
- Link in simulator on MIPS embedded targets.
-
-Sat Jan 18 02:31:29 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * blockframe.c (frameless_look_for_prologue): Mark frames
- with a zero PC as frameless to improve backtraces from core dumps
- caused by dereferencing a NULL function pointer.
-
-Thu Jan 16 14:10:41 1997 Geoffrey Noer <noer@cygnus.com>
-
- * config/mn10300/tm-mn10300.h: fix BREAKPOINT definition.
-
-Tue Jan 14 16:01:06 1997 Geoffrey Noer <noer@cygnus.com>
-
- * mn10300-tdep.c: made a lot more generic, ripping out code
- from copied target (no more mn10300_scan_prologue,
- init_extra_frame_info, and mn10300_fix_call_dummy calls)
- * config/mn10300/tm-mn10300.h: undefine INIT_EXTRA_FRAME_INFO
- and INIT_FRAME_PC macros
-
-Thu Jan 9 11:44:40 1997 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * sparc-tdep.c (sparc_frame_find_saved_regs): Don't use
- FP_REGISTER_BYTES to compute offsets into the saved frame,
- since it fails for SPARC targets configured without any
- FP regs. Instead, use DUMMY_STACK_REG_BUF_SIZE.
-
-Mon Jan 6 11:15:14 1997 Stu Grossman (grossman@critters.cygnus.com)
-
- * symtab.c (fixup_symbol_section): Handle NULL symbols without
- crashing.
-
-Fri Jan 3 12:08:16 1997 Stu Grossman (grossman@critters.cygnus.com)
-
- * Makefile.in configure configure.in: Remove ENABLE_CLIBS,
- ENABLE_OBS, and THREAD_DB_OBS. These are consolidated into LIBS
- and CONFIG_OBS.
- * configure configure.in: Clean up test cases around thread support.
- * configure.tgt (v850-*-*): Include v850ice.o and v850.lib if
- host is Windows.
- * c-valprint.c ch-valprint.c cp-valprint.c eval.c expprint.c
- printcmd.c valops.c value.h values.c: Add bfd_section arg to
- value_at and value_at_lazy.
- * coffread.c dbxread.c elfread.c mdebugread.c minsyms.c symtab.h:
- Add bfd_section arg to prim_record_minimal_symbol_and_info.
- * corefile.c gdbcore.h printcmd.c valops.c: Use read_memory_section
- instead of read_memory. It takes a bfd_section arg.
- * coffread.c dbxread.c elfread.c gdb-stabs.h objfiles.h: Remove
- unnecessary cast for assignment of struct dbx_symfile_info.
- Struct objfile now uses a real pointer instead of PTR for this
- element.
- * dbxread.c (dbx_symfile_init): Stash bfd section pointers for
- text, data and bss into dbx_symfile_info.
- * exec.c (xfer_memory): Handle transfers for user-specified
- sections.
- * findvar.c (read_var_value locate_var_value): Copy bfd section
- from the symbol to the value.
- * gdb-stabs.h: Add section pointers for text, data and bss
- sections.
- * maint.c (translate address command): Add test code for overlay
- address translation.
- * printcmd.c (do_examine do_one_display): Now takes a bfd section
- arg.
- * (print_formatted x_command): Record current section along with
- current address for repeated commands.
- * sparc-nat.c (fetch_inferior_registers): Change
- target_xfer_memory to target_{read write}_memory to allow changes
- to target_xfer_memory interface for section info.
- * symmisc.c (dump_msymbols print_symbol): Print section
- assocaited with symbol.
- * symtab.c (fixup_symbol_section): New routine to
- add section info to symbols returned by lookup_symbol.
- * symtab.h (struct general_symbol_info): Add bfd section to
- symbols.
- * target.c target.h (target_xfer_memory): Add bfd section to
- args.
- * (target_read_memory_section): New routine to read data from a
- specific section.
- * (target_memory_bfd_section): New global variable to pass bfd
- section in to targets.
- * valarith.c (value_add value_addr value_array): Preserve bfd
- section when computing new value.
- * value.h (struct value): Add bfd section to values.
- * values.c (allocate_value value_copy): Initialize/preserve bfd
- section.
- * (unpack_double): Clean up _MSC_VER conditionals to remove
- duplicate code.
- * v850ice.c: New module to support communication with NEC's
- PC-based ICE.
- * config/v850/tm-v850.h (REGISTER_NAMES): Replace sp, gp, fp, and
- ep names with rxx names. sp and fp are renamed via a different
- mechanism.
-
-Fri Jan 3 14:20:05 1997 Geoffrey Noer <noer@cygnus.com>
-
- * mn10300-tdep.c (mn10300_push_arguments): rewrote,
- also removed code elsewhere that made use of RP_REGNUM.
- * config/mn10300/tm-mn10300.h: ripped out RP_REGNUM, V0_REGNUM,
- ARG0_REGNUM, ARGLAST_REGNUM (all not appropriate for mn10300
- arch.), redefined SAVED_PC_AFTER_CALL, EXTRACT_RETURN_VALUE,
- EXTRACT_STRUCT_VALUE_ADDRESS, STORE_RETURN_VALUE.
-
-For older changes see ChangeLog-96
-
-Local Variables:
-mode: indented-text
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/contrib/gdb/gdb/ChangeLog-98 b/contrib/gdb/gdb/ChangeLog-98
deleted file mode 100644
index bd19b49..0000000
--- a/contrib/gdb/gdb/ChangeLog-98
+++ /dev/null
@@ -1,7122 +0,0 @@
-Thu Dec 31 15:26:13 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- * corelow.c (core_ops): Don't initialize statically.
- (init_core_ops): New function, fills in core_ops.
- (_initialize_corelow): Use it.
-
-Thu Dec 31 16:54:30 1998 David Taylor <taylor@texas.cygnus.com>
-
- The following changes were made by
- Elena Zannoni <ezannoni@kwikemart.cygnus.com>
- Edith Epstein <eepstein@sophia.cygnus.com>
- David Taylor <taylor@texas.cygnus.com>
-
- * config/pa/tm-hppa.h (INSTRUCTION_NULLIFIED): Change to read
- nullify instruction bit from IPSW only when we are not in a system
- call.
- (STRCAT_REGISTER, pa_do_strcat_registers_info): Additional
- parameter -- precision.
-
- * Makefile.in (BUILD_TUI): To build the tui, only when configured
- with --enable-tui.
- (YLWRAP): Use ylwrap to avoid problems on systems w/o bison.
- (gdb$(EXEEXT)): Make it dependent on BUILD_TUI.
- (all-tui): Remove dependency from phony target.
- (c-exp.tab.c): Use ylwrap instead of bison.
- (jv-exp.tab.c): Ditto.
- (f-exp.tab.c): Ditto.
- (m2-exp.tab.c): Ditto.
-
- * configure.in (ENABLE_CFLAGS): Define and export BUILD_TUI.
-
- * configure: Regenerated.
-
- * c-typeprint.c (c_type_print_base): Get to the method name by
- skipping over all the namespaces, classes and '::'.
-
- * infcmd.c (run_command): Only call SOLIB_RESTART if it's
- defined.
- (detach_command): Ditto.
-
- * infptrace.c (call_ptrace): Add some debugging code.
-
- * infrun.c (follow_inferior_fork): Only define on HP.
- (wait_for_inferior): Only call SOLIB_IN_DYNAMIC_LINKER if we have
- shared libraries; restore test of IN_SOLIB_DYNSYM_RESOLVE_CODE
- removed by HP.
-
- * Makefile.in (ALLDEPFILES): Add somread.c, hp-psymtab-read.c,
- hp-symtab-read.c.
- (SFILES): Remove the above files
- (COMMON_OBS): Remove somread.o
- (SFILES): Add the tui files to this, so they get
- included in etags tables.
- (all-tui): New rule, which does a recursive make in the tui
- subdir.
- (gdb$(EXEEXT)): Add tui-all to the list of
- dependencies, and add tui/libtui.a to the link list.
- (tui/libtui.a): When recursing, pass down
- ${FLAGS_TO_PASS}. And don't echo the make command. This is
- closer to what the other recursions do.
- (HFILES_NO_SRCDIR) add hpread.h.
- (COMMON_OBS): Add hp-psymtab-read.o, hp-symtab-read.o
- Allow the TUI code to be conditionally enabled.
- (TUI_TARGET, TUI_LIBRARY): New variables, whose values are set by
- the configuration script. They're set to the empty string when
- the TUI isn't enabled.
- (gdb$(GDBEXT)): Use those, instead of referring to tui-all and
- tui/libtui.a directly.
-
- * Makefile.in: Avoid spurious relinking.
- (gdb$(EXEEXT)): Depend on the actual tui library, not on a
- fictitious target. Since the fictitious target never existed, make
- would always relink.
- (tui/libtui.a): Renamed from all-tui. Always recurse to make sure
- the library is up to date.
- (TUI_TARGET): Variable removed; there's no need for it any more.
-
- * Makefile.in: Look for tui include files in the tui source dir.
-
- * Use automake's `aclocal' program to generate aclocal.m4, to allow
- us to use automake macros in configure.in with impunity.
-
- * acconfig.h: Add an entry for the `TUI' symbol.
-
- * acinclude.m4: New file, containing the code from the old
- aclocal.m4. Incorporate (by reference) ../bfd/acinclude.m4, not
- ../bfd/aclocal.m4, since we only want bfd's local macros.
-
- * aclocal.m4: Now automagically generated. Just run aclocal!
-
- * annotate.c (annotate_catchpoint): New function.
-
- * annotate.h: Taking the new includes (symtab.h and gdbtypes.h).
- not taking the ansic C build fix.
- (annotate_catchpoint): Declare.
-
- * blockframe.c (blockvector_for_pc_sect): Check that the end of
- the block is >= to the pc, not just >.
-
- * breakpoint.c (create_temp_exception_breakpoint): #If it out --
- nothing calls it.
- (bpstat_stop_status): Don't call SOLIB_HAVE_LOAD_EVENT if it's not
- defined; don't call SOLIB_HAVE_UNLOAD_EVENT if it's not defined.
- (bpstat_get_triggered_catchpoints): If we don't have shared
- library support, then don't call SOLIB_LOADED_LIBRARY_PATHNAME nor
- SOLIB_UNLOADED_LIBRARY_PATHNAME.
- (watch_command_1): Don't require a run before a watch command
- unless we're on HP [it's an HP OS bug, not a generic limitation]
- (catch_load_command_1): Don't define if no shared libraries.
- (catch_command_1): Don't claim to support fork catchpoints unless
- CHILD_INSERT_FORK_CATCHPOINT is defined, don't claim to support
- vfork catchpoints unless CHILD_INSERT_VFORK_CATCHPOINT is defined,
- don't clain to support shared library load catchpoints if shared
- libraries aren't supported, and don't claim to support exec
- catchpoints unless CHILD_INSERT_EXEC_CATCHPOINT is defined
-
- (bpstat_do_actions): If we just set cmd to NULL, don't then try to
- set it to cmd->next as we'll SEGV.
- (bpstat_do_actions): Simplify significantly. It's
- now almost as simple as before the merge and it no longer has the
- HP bug that breakpoint commands are executed repeatedly.
-
- (break_at_finish_command_1): Rewrite and make sure
- selected_frame points to a frame before using it. Fix string
- termination error.
- (break_at_finish_at_depth_command_1): Ditto.
-
- (can_use_hw_watchpoints): New static variable.
- (read_memory_nobpt): Test for breakpoint type bp_none.
- (insert_breakpoints): Test for breakpoint type bp_catch_exec;
- insure have a current frame before getting the frame address.
- (remove_breakpoints): Check for breakpoints of types bp_none,
- bp_catch_fork, bp_catch_vfork, and bp_catch_exec.
- (bpstat_stop_status): Fix updates of b->hit_count.
- (bpstat_have_active_hw_watchpoints): New function.
- (create_exec_event_watchpoint): New function.
- (watch_command_1): Use can_use_hw_watchpoints.
- (catch_fork_command_1): Change name of function to call from
- target_create_catch_(v)fork_hook to create_(v)fork_even_catchpoint.
- (delete_breakpoint): Test for already deleted breakpoints; add
- support for bp_catch_fork, bp_catch_vfork, and bp_catch_exec
- breakpoints.
- (_initialize_breakpoint): Add can-use-hw-watchpoints to list of
- user settable debugger variables.
-
- (clear_command): When there is no argument
- to the clear command, delete all breakpoints that are hit at
- default line. This will include a breakpoint whose line number
- does not correspond to the default line, but has been set at
- the default address.
-
- (delete_breakpoint): Don't call bpstat_clear_actions, instead
- clear things explicitly; if clearing breakpoint_at, then also
- clear any associated actions so that bpstat_do_actions won't try
- to execute them.
- (_initialize_breakpoint): Fix function name for bx command.
-
- (tbreak_command): Remove static from declaration.
- (maintenance_info_breakpoints): Ditto.
-
- (reattach_breakpoints): New funct definition, used with with
- hardware watchpoints
- (breakpoint_1): Change format and add entries to bptypes[]
- (maintenance_info_breakpoints): Function is no longer static
-
- (_initialize_breakpoint): Removed a comment.
- (exception_catchpoints_are_fragile,
- exception_support_initialized): Define.
- (breakpoint_here_p): Fixed syntax error in conditional
- (disable_watchpoints_before_interactive_call_start): Fixed call to
- check_duplicates. Need a section parameter.
- (enable_watchpoints_after_interactive_call_stop): Fixed call to
- check_duplicates. Need a section parameter.
- (breakpoint_re_set_one): Fixed call to check_duplicates. Need a
- section parameter.
- (delete_command): Fixed syntax error in conditional
- (breakpoint_re_set): Fixed some typos.
-
- (args_for_catchpoint_enable): New type for handling exceptions.
- (current_exception_event): New variable for handling exceptions.
- (insert_breakpoints): Check for additional breakpoint types --
- bp_catch_throw, bp_catch_catch, call_disabled. Also, do some
- additional work to handle an exception catchpoint.
- (remove_breakpoint): There are additional breakpoint types to
- check for: Bp_catch_throw, bp_catch_catch, call_disabled. Also do
- some additional work to remove the exception catchpoints
- (breakpoint_init_inferior): New input parameter. If there are
- exception catchpoints delete them.
- (breakpoint_here_p): There are additional breakpoint enable
- settings to check for: Shlib_disabled, call_disabled
- (breakpoint_thread_match): There are additional breakpoint enable
- settings to check for: Call_disabled
- (ep_is_catchpoint): There are additional breakpoint types to check
- for: Bp_catch_throw, bp_catch_catch
- (ep_is_exception_catchpoint): New function
- (bpstat_find_step_resume_breakpoint): New function
- (bpstat_do_actions): Introduce a local copy of the bpstat
- structure.
- (print_it_normal): There are additional breakpoint types to check
- for: Bp_catch_throw, bp_catch_catch Changeing the control
- structure a bit (adding else ifs) Add code to print out info about
- exceptions.
- (bpstat_stop_status): There are additional breakpoint enable
- settings to check for: Call_disabled. there are additional
- breakpoint types to chack for: Bp_catch_catch and bp_catch_throw.
- Check to see if stopped due to an exception. Minor fixes to the
- catch_errors calls. Make sure to count all encountered
- breakpoints. There was something funky going on previously with
- the counting.
- (bpstat_what): Add cases for new breakpoint types:
- bp_catch_catch, bp_catch_throw.
- (bpstat_get_triggered_catchpoints): Check for new breakpoint types
- : Bp_catch_catch, bp _catch_throw.
- (breakpoint_1): Account for new breakpoint types.
- (describe_other_breakpoints): Account for new breakpoint enable
- setting (call_disabled)
- (check_duplicates): Account for new breakpoint enable setting
- (call_disabled)
- (disable_breakpoints_in_shlibs): New function
- (disable_watchpoints_before_interactive_call_start): New function
- (mention): Account for new breakpoint types.
- (break_command_1): Some additional checking for a valid PC.
- (watch_command_1): Some dditional checking to prevent a watch
- before a run command.
- (ep_parse_optional_filename): Simplified for loop.
- (create_exception_catchpoint): New function
- (cover_target_enable_exception_callback): New function
- (handle_gnu_4_16_catch_command): This used to be thcatch_command_1
- function.e
- (create_temp_exception_breakpoint): New function
- (catch_command_1): Differs from gdb 4.16 and gdb 4.17. Is now
- calling catch_exception_command_1 using the EX_EVENT_CATCH and
- EX_EVENT_THROW values as parameters.
- (clear_command): Additional comments
- (delete_breakpoint): Handle exceptions. Check for additional
- breakpoint enable settings: Shlib_disabled, call_disabled.
- (delete_command): Hp folks are claiming that we should not delete
- shlib_event breakpoints
- (breakpoint_re_set_one): Moved call to check_duplicates. Add new
- breakpoint types to switch statement.
- (breakpoint_re_set_thread): New function
- (enable_command): Account for new breakpoint types.
-
- (insertion_state_t): New enumerated type.
- (remove_breakpoint): New param in funct prototype.
- (insert_breakpoints): Check for bp_catch_fork and bp_catch_vfork.
- (remove_breakpoints): Changed call to remove_breakpoint.
- (detach_breakpoints): New function.
- (remove_breakpoint): New parameter, is. Also changed the
- way b->inserted is set.
- (ep_is_catchpoint): New function.
- (ep_is_shlib_catchpoint): New function.
- (print_it_normal): Check for bp_catch_load, bp_catch_unload,
- bp_catch_fork, bp_catch_vfork, bp_catch_exec. Also new code
- to print out catchpoints properly.
- (bpstat_stop_status): Check for bp_catch_fork, bp_catch_vfork,
- and bp_catch_exec. Also, some code to check for catching a
- shared library load/unload.
- (bpstat_what): Added catch_shlib_event to class enumeration.
- Defined new macro, shlr. Expanded the bpstat_what_main_action
- table. Add cases for bp_catch_load, bp_catch_unload,
- bp_catch_fork, bp_catch_vfork, and bp_catch_exec.
- (bpstat_get_triggered_catchpoints): New function.
- (breakpoint_1): Changes to bptypes definition. Also check for
- bp_catch_load, bp_catch_unload, bp_catch_fork, bp_catch_vfork,
- bp_catch_exec. Similar changes to the switch statement.
- (set_raw_breakpoint): Initialize new breakpoint structure fields.
- dll_pathname, triggered_dll_pathname, forked_inferior_pid,
- exec_pathname.
- (create_solib_load_unload_event_breakpoint): New function.
- (create_solib_load_event_breakpoint): New function.
- (create_solib_unload_event_breakpoint): New function.
- (create_fork_vfork_event_catchpoint): New function.
- (create_fork_event_catchpoint): New function.
- (create_vfork_event_catchpoint): New function.
- (mention): New cases for bp_catch_load, bp_catch_unload,
- bp_catch_fork, bp_catch_vfork, bp_catch_exec.
- (ep_skip_leading_whitespace): New function.
- (ep_find_event_name_end): New function.
- (ep_parse_optional_if_clause): New function.
- (ep_parse_optional_filename): New function.
- (catch_fork_kind): New enumerated type.
- (catch_fork_command_1): New function.
- (catch_exec_command_1): New function.
- (catch_load_command_1): New function.
- (catch_unload_command_1): New function.
- (catch_throw_command_1): New function.
- (catch_command_1): Now calls catch_throw_command_1.
- (tcatch_command): New function.
- (delete_breakpoint): Changed call to remove_breakpoint.
- Also free the new fields in the breakpoint structure.
- (breakpoint_re_set_one): Handle bp_catch_load, bp_catch_unload,
- bp_catch_fork, bp_catch_vfork, bp_catch_exec.
- (disable_command): Handle bp_catch_load, bp_catch_unload,
- bp_catch_fork, bp_catch_vfork, bp_catch_exec.
- (enable_command): Handle bp_catch_load, bp_catch_unload,
- bp_catch_fork, bp_catch_vfork, bp_catch_exec.
- (_initialize_breakpoint): Alter add_com call for catchpoints,
- add add_com call for watchpoints.
-
- * breakpoint.h (enum bptype): New entries bp_catch_catch,
- bp_catch_throw, and bp_none, bp_catch_load, bp_catch_unload,
- bp_catch_fork, bp_catch_vfork,bp_catch_exec. Add declarations for
- new functions bpstat_have_active_hw_watchpoints and
- create_exec_event_catchpoint.
- (tbreak_command): Add prototype.
- (update_breakpoints_after_exec): Add prototype; update comments.
- (reattach_breakpoints): New funct prototype declaration.
- (enable): New enumerated value call_disabled.
- (bpstat_find_step_resume_breakpoint): New funct decl.
- (inf_context): New enumerated type.
- (breakpoint_re_set_thread): New funct decl.
- (breakpoint_init_inferior): New parameter.
- (disable_watchpoints_before_interactive_call_start): New funct decl.
- (enable_watchpoints_after_interactive_call_stop): New funct decl.
- (disable_breakpoints_in_shlibs): New funct decl.
- (struct breakpoint): New fields, dll_pathname,triggered_dll_pathname,
- forked_inferior_pid,exec_pathname BPSTAT_WHAT_CHECK_SHLIBS_RESUME_FROM_HOOK.
- (bpstat_get_triggered_catchpoints): New function.
- (detach_breakpoints): New function.
- (create_solib_load_event_breakpoint): New function.
- (create_solib_unload_event_breakpoint) New function.
- (create_fork_event_catchpoint): New function.
- (create_vfork_event_catchpoint): New function.
- (ep_is_catchpoint): New function.
- (ep_is_shlib_catchpoint) New function.
- (enum bpstat_what_main_action): New entry.
-
- * buildsym.c (finish_block): Get rid of processing_hp_compilation;
- handle LOC_INDIRECT case. Set the BLOCK_GCC_COMPILED to the right
- compiler.
- (push_context): Add symbols for parameters to the context_stack.
- (merge_symbol_lists): New function. Merges two symbol lists.
- (struct context_stack): Add new field param.
-
- (processing_hp_compilation): New external var.
-
- * c-exp.y: Use external flag hp_som_som_object_present to decide
- whether code was compiled by HP's compilers. Add two new C++
- tokens for true and false.
- (yylex): Check for template name is done differently for the
- HP/aCC compiler case; change some of the template processing code
- for handling HP aCC templates.
-
- * c-lang.c (c_create_fundamental_type): Added case to handle
- template args. Handle FT_BOOLEAN type. Set no sign flag for
- FT_CHAR.
- (cplus_builtin_types): New structure for c++ builtin types.
- (cplus_language_defn): Use cplus_builtin_types instead of
- c_builtin_types.
-
- * c-typeprint.c (c_type_print_base): Don't print 'privete' label
- for a class if all members are private, similarly don't print
- 'public' for a struct. Add support for sized enums (HP/aCC). get
- rid of the 'static' keyword printed by the demangler for member
- function, when printing the type of a class. 'static' will be
- added by this function. If the demangled name is null, and the
- method is not stubbed, get the signature by looking at the
- information stored in the symbol structure. Remove printing of
- 'const' and 'volatile' keywords for methods. This is now taken
- care as part of the demangled member names.
- (cp_type_print_method_args): New function. To print a C++ method
- arguments and name to the output stream.
-
- (c_type_print_cv_qualifier): New function. Print out "const" and
- "volatile" attributes.
- (c_type_print_varspec_prefix): Print const or volatile qualifiers.
- (c_type_print_args): Print 'void' for c++.
- (c_type_print_varspec_suffix): Print 'void' for a no argument
- function.
- (c_type_print_base): Print const or volatile qualifiers. Do not
- print 'unnamed union' if HP aCC compiler used. Distinguish
- between struct and class based on the DECLARED_TYPE. Handle
- HP/aCC compiler case for not printing vtable. Add Template
- support.
-
- (cp_type_print_derivation_info): Print out 'protected' when
- appropriate. This applies only to HP's compilers, not gcc.
-
- (c_val_print): Added parameter embedded_offset. Add
- embedded_offset to valaddr in function calls; fix calls to
- val_print and cp_print_value_fields. process TYPE_CODE_METHOD as
- well. moved call to check_typedef out of conditional. added
- embedded offset param to val_print call.
-
- (c_value_print): Add new parameter to call to val_print.
- handle pointer to class case. Attempt to
- determine the real type of the object to be printed.
- ensure that const char *, const unsigned char *
- come out without the type but the volatile variants
- and the signed variants don't.
-
- * coff-solib.c (coff_solib_add): Add parameters to call
- to symbol_file_add.
-
- * coff-solib.h: (Solib_REMOVE_INFERIOR_HOOK): New macro. defined
- to 0. functionality not implemented for coff.
- (SOLIB_CREATE_CATCH_LOAD_HOOK): New macro, generate error message
- for coff.
- (SOLIB_CREATE_CATCH_UNLOAD_HOOK): Ditto.
- (SOLIB_HAVE_LOAD_EVENT): Ditto.
- (SOLIB_LOADED_LIBRARY_PATHNAME): Ditto.
- (SOLIB_HAVE_UNLOAD_EVENT): Ditto.
- (SOLIB_UNLOADED_LIBRARY_PATHNAME): Ditto.
- (SOLIB_IN_DYNAMIC_LINKER): Ditto.
- (SOLIB_RESTART): Ditto.
-
- * command.c (find_cmd): New function. (lookup_cmd_1): Call it,
- change parsing if tui_version or xdb_commands is set.
- (_initialize_command): Install new alias if xdb_commands is set.
-
- * complaints.h: Add ifdef...endif pair at beginning and end of file.
-
- * config.in, configure: Regenerated.
-
- * config/pa/hppabsd.mh (NATDEPFILES): Added new files
- hp-psymtab-read.o and hp-symtab-read.o.
- * config/pa/hppahpux.mh (NATDEPFILES): Ditto.
-
- * config/pa/hppahpux.mh (TERMCAP): Use -lHcurses.
- * config/pa/hppaosf.mh (NATDEPFILES): Ditto.
-
- * config/pa/hpux1020.mh (TERMCAP): Use -lHcurses.
- (MH_CFLAGS): New flag, -D__HP_CURSES, this define
- is used by HP's linker to find the correct curses library.
-
- * config/pa/hpux1020.mh: New file.
-
- * config/pa/hpux1020.mt: New file.
-
- * config/pa/hpux1100.mh (TERMCAP): Link against -lcurses, not
- -lHcurses. The latter does not contain mvwaddstr, wscrl, or
- wstbwlmkfzz.
-
- * config/pa/hpux1100.mh (TERMCAP): Use -lHcurses.
- (MH_CFLAGS): New flag, -D__HP_CURSES, this define
- is used by HP's linker to find the correct curses library.
-
- * config/pa/hpux1100.mh (TERMCAP): When hosting on hpux 11.00, use
- -lHcurses rather than -lcurses.
-
- * config/pa/hpux1100.mh: New file.
-
- * config/pa/hpux1100.mt: New file.
-
- * config/pa/nm-hppah.h (CHILD_HAS_SYSCALL_EVENT): New macro
- (CHILD_THREAD_ALIVE): New macro
- (STOPPED_BY_WATCHPOINT): Add a condition to the macro,
- ! stepped_after_stopped_by_watchpoint
- (TARGET_ENABLE_HW_WATCHPOINTS): New macro
- (hppa_enable_hw_watchpoints): New funct decl
- (TARGET_DISABLE_HW_WATCHPOINTS): New macro
- ( hppa_disable_hw_watchpoints): New funct decl
- these are for HP's implementation of fast
- watchpoints (via page protection).
- (target_pid_to_str): New macro, calls hppa_pid_to_str
- (target_tid_to_str): New macro, calls hppa_tid_to_str
-
- * config/pa/nm-hppah.h (CHILD_POST_WAIT): Delete;
- (CHILD_CREATE_CATCH_FORK_HOOK): Replace with
- CHILD_INSERT_FORK_CATCHPOINT and CHILD_REMOVE_FORK_CATCHPOINT.
- (CHILD_CREATE_CATCH_VFORK_HOOK): Replace with
- CHILD_INSERT_VFORK_CATCHPOINT and CHILD_REMOVE_VFORK_CATCHPOINT.
- (CHILD_CAN_FOLLOW_VFORK_PRIOR_TO_EXEC,
- CHILD_INSERT_EXEC_CATCHPOINT, CHILD_REMOVE_EXEC_CATCHPOINT,
- CHILD_HAS_EXECD, CHILD_REPORTED_EXEC_EVENTS_PER_EXEC_CALL,
- CHILD_POST_ATTACH, TARGET_HAS_HARDWARE_WATCHPOINTS,
- TARGET_CAN_USE_HARDWARE_WATCHPOINT,
- TARGET_REGION_SIZE_OK_FOR_HW_WATCHPOINT,
- TARGET_RANGE_PROFITABLE_FOR_HW_WATCHPOINT, STOPPED_BY_WATCHPOINT,
- HAVE_NONSTEPPABLE_WATCHPOINT, target_insert_watchpoint,
- target_remote_watchpoint): New macros.
-
- * config/pa/nm-hppah.h (CHILD_XFER_MEMORY): Reinsert accidentally
- deleted define.
-
- * config/pa/nm-hppah.h:
- (PREPARE_TO_PROCEED): Defined macro to use
- hppa_prepare_to_proceed.
- (hppa_pid_to_str): Extern decl.
- (hppa_tid_to_str): Extern decl.
- (target_pid_or_tid_to_str): New macro definition.
- (hppa_pid_or_tid_to_str): Extern decl.
- (ENSURE_VFORKING_PARENT_REMAINS_STOPPED): New macro - for
- handling events caused by a call to vfork.
- (hppa_ensure_vforking_parent_remains_stopped): Extern decl.
- (RESUME_EXECD_VFORKING_CHILD_TO_GET_PARENT_VFORK): New macro -
- for handling events caused by a call to vfork.
- (hppa_resume_execd_vforking_child_to_get_parent_vfork): Extern decl.
-
- * config/pa/nm-hppah.h: Fix PREPARE_TO_PROCEED macro.
-
- * config/pa/nm-hppah.h: Fix for gcc compile on HPUX, change
- PT_RDUAREA to PT_RUAREA.
-
- * config/pa/nm-hppah.h: Introduced an HPUXHPPA define.
- A bit of a hack so that I can ifdef some code that
- only works for the HP wildebeest debugger.
-
- * config/pa/nm-hppah.h: Lots of new CHILD_ defines;
- process_event_kind enum.
-
- * config/pa/tm-hppa.h (BREAKPOINT32): New define.
- (CALL_DUMMY_HAS_COMPLETED): New define.
-
- * config/pa/tm-hppa.h (STACK_ALIGN): New macro.
- (NO_EXTRA_ALIGNMENT_NEEDED): New macro.
- (PC_REQUIRES_RUN_BEFORE_USE): New macro.
- (REGISTER_NAMES): Formatting in file changed.
- (CR27_REGNUM): Base register for thread local storage.
- (USE_STRUCT_CONVENTION): New macro used to decide whether
- a function returning a value of type type will
- put it on the stack or into registers (based on the
- PA risc calling conventions).
- (EXTRACT_RETURN_VALUE): Fixed calculation for extracting return value.
- (VALUE_RETURNED_FROM_STACK): New macro.
- (TARGET_READ_PC): Declared the function used in the definition.
- (SKIP_TRAMPOLINE_CODE): Declared the function used in the definition.
- (TARGET_WRITE_PC): Declared the function used in the definition.
- (TARGET_READ_FP): Declared the function used in the definition.
-
- * config/pa/tm-hppa.h (STRCAT_REGISTER): Define macro for
- future use.
- (pa_do_strcat_registers_info): Moved function decl from
- defs.h to this HPUX specific .h file.
-
- * config/pa/tm-hppa.h (USE_STRUCT_CONVENTION): Type_LENGTH returns
- bytes, not bits; fix off by 8 error.
-
- * config/pa/tm-hppa.h:
- New comment for obj_unwind_info definition
- New typedef, obj_private_struct
-
- * config/pa/tm-hppa.h: Delete most target_ macros -- use default
- versions instead; remove extraneous comma from proc_wait macro.
-
- * config/pa/tm-hppa.h: Get rid of macro HP_COMPILED_TARGET.
-
- * config/pa/tm-hppa.h: Removed redefinitions of
- USE_STRUCT_CONVENTION and STACK_ALIGN macros.
-
- * config/pa/tm-hppa.h: Some new definitions
- New macros: Arg0_REGNUM, ARG1_REGNUM, ARG2_REGNUM, ARG3_REGNUM.
- target_pid_to_exec_file, target_acknowledge_forked_child,
- target_create_catch_fork_hook, target_create_catch_vfork_hook,
- target_has_forked, target_has_vforked, require_attach,
- require_detach, proc_wait
- New funct decls: Hppa_pid_to_exec_file,
- hppa_acknowledge_forked_child, hppa_create_catch_fork_hook,
- hppa_create_catch_vfork_hook, hppa_target_has_forked,
- hppa_target_has_vforked, hppa_require_attach,
- hppa_require_detach, process_wait
- (unwind_table_entry): Added comments to describe struct fields.
-
- * config/pa/tm-hppah.h (somsolib.h): Include it.
-
- * config/pa/tm-hppah.h:
- (CHILD_ENABLE_EXCEPTION_CALLBACK): New define
- (CHILD_GET_CURRENT_EXCEPTION_EVENT): New define
-
- * configure.host (hppa-*-hpux10.20, hppa-*-hpux11.0*): New configs.
-
- * configure.in (AC_CHECK_HEADERS): Add check for term.h.
-
- * configure.in: Add an --enable-tui argument.
-
- * configure.in: Construct tui/Makefile from tui/Makefile.in.
-
- * configure.in: Use AM_PROG_CC_STDC. If we have the GUI, then we
- need this to process libgui.h.
-
- * convex-tdep.c (decout): Change FILE to GDB_FILE.
-
- * corefile.c: Include objfiles.h, symfile.h.
- (core_file_command): Attempt to determine the name of the symbol
- file from the core file.
- (read_memory_string): New function.
-
- * corefile.c (core_file_command): Temporary hack to make non-hpux
- work. For, non-hpux, t->to_core_file_to_sym_file does not have a
- reasonable value. No target_ops vector on the stack gives it a
- non-zero value. fix later.
-
- * corelow.c (core_file_to_sym_file): Added new local variable,
- failing command, and do some explicit type castings.
- (core_ops): Add three new fields: to_has_syscall_event,
- to_enable_exception_callback, to_get_current_exception_event.
- Necessary since we still have oldstyle initialization in
- this file
-
- * corelow.c: Include unistd.h
- (core_file_to_sym_file): New function
- (core_file_thread_alive): New function
- (core_ops): Added new target ops vector fields. see below. And
- yes we definitiely need to initialize them here, as long as
- we're using static initialization.
-
- * cxux-nat.c (add_shared_symbol_files): Additonal params for calls
- to symbol_file_add.
-
- * defs.h (gdb_file_isatty): New function decl.
-
- * defs.h (GDB_FILE): If TUI is defined, define a structure rather
- than making this an alias for FILE.
- (gdb_stdout, gdb_stderr): If TUI is defined, then define these
- as pointers to variables of type GDB_FILE rather than making them
- be aliases for stdout and stderr.
-
- * defs.h (TUIDO): Add definition conditionalized on definition
- (or lack thereof) of TUI.
-
- * defs.h (command_class): Add two additional values.
- (precision_type): New enum.
-
- * defs.h (gdb_fclose): Add declaration.
-
- * defs.h (store_address): Change prototype to match function.
-
- * defs.h (tui_version, xdb_commands, dbx_commands): Add decl's.
-
- * defs.h (gdb_file_deallocate): New function declaration
-
- * defs.h:
- (streamtype): New enumerated type to distinguish between
- output to a FILE and output to a buffer.
- (tui_stream): New struct type, named GDB_FILE. Contains,
- streamtype, FILE, buffer, and bufferlength fields.
- (gdb_stdout): Of type GDB_FILE, will pass this around gdb
- rather than stdout.
- (gdb_stderr): Of type GDB_FILE, will pass this around gdb
- rather than stderr.
- (fputs_unfiltered_hook): Change stream parameter from FILE to
- GDB_FILE
- (flush_hook): Change stream parameter from FILE to GDB_FILE
- (gdb_fclose): Fix declaration for gdb_fclose; parameter is now of
- type GDB_FILE **
- (gdb_file_adjust_strbuf): New function declaration. function lives in
- utils.c.
- (gdb_file_init_astring): New function declaration. function lives
- in utils.c
- (gdb_file_get_strbuf): New function declaration. function lives
- in utils.c
-
- * defs.h: Additional include files included when TUI is defined.
-
- * defs.h: Funct decl source_full_path_of.
-
- * demangle.c: Add HP_DEMANGLING_STYLE_STRING.
-
- * demangle.c: Added new demangling style, EDG_DEMANGLING_STYLE_STRING,
- to the demanglers structure. This is for support of
- Kuck & Assoc.'s changes for demangling.
-
- * eval.c (evaluate_subexp_standard): C++ member function changes.
-
- * eval.c (evaluate_subexp_standard): Verify TYPE_TARGET_TYPE is
- non NULL before dereferencing it.
-
- * eval.c (evaluate_subexp_standard): With HP/aCC compiler it is not possible
- to perform inferior calls via function pointers.
- Resolve calls to overloaded functions using find_overload_match.
- We cannot handle HP/aCC pointers to member functions.
- Deal with HP/aCC pointers to members in various kind of expressions.
-
- * f-lang.c (f_printchar): Change FILE to GDB_FILE.
- (f_printstr): Ditto.
- (emit_char): Ditto.
-
- * f-lang.c (f_printstr): Change stdout to gdb_stdout.
-
- * f-typeprint.c (f_print_type): Change FILE to GDB_FILE.
- (f_type_print_varspec_prefix): Ditto.
- (f_type_print_args): Ditto.
- (f_type_print_varspec_suffix): Ditto.
- (print_equivalent_f77_float_type): Ditto.
- (f_type_print_base): Ditto.
-
- * findvar.c (): Hp snapshot 3 changes. (extract_address): Coerce
- return value from extract_unsigned_integer to CORE_ADDR.
- (store_address): Change val from CORE_ADDR to LONGEST; changes to
- support machines where CORE_ADDR and LONGEST are different sizes.
- (get_saved_register): Coerce arg to store_address to LONGEST.
- (read_relative_register_raw_bytes): Cast last arg to
- store_address to LONGEST. (read_register): Cast return from
- extract_address to a CORE_ADDR. (write_register_pid): Change val
- from LONGEST to CORE_ADDR. (read_pc_pid): Save and restore
- inferior_pid if necessary. (write_pc_pid): Ditto.
- (read_var_value): Cast arg to store_address.
-
- * findvar.c (read_relative_register_raw_bytes_for_frame): New
- function.
- (read_relative_register_raw_bytes): Call it.
-
- * findvar.c (symbol_read_needs_frame): Handle LOC_THREAD_LOCAL_STATIC and
- LOC_INDIRECT.
-
- * fork-child.c (fork_inferior): Chenge fifth parameter to be a
- function returning void.
-
- * fork-child.c (fork_inferior): Delete unused variable f.
-
- * fork-child.c:
- (Startup_WITH_SHELL): New macro -- interim fix for a bug
- (breakup_args): New function -- breaks up an argument string into
- an argument suitable for passing into execvp().
- (fork_inferior): Handling problems with starting up gdb with a shell.
- -- again, this appears to be an interim fix.
-
- * fork-child.c:
- (fork_inferior): Added a comment
- (clone_and_follow_inferior): New function.
- (startup_inferior): Minor formatting changes.
-
- * fork-child.c:
- (fork_inferior): Hp change is problematic. The -f option has
- different meanings for different shells. It is particularly
- inappropriate for bourne shells.
-
- * fork-child.c:
- (fork_inferior): Added new parameter, pre_trace_fun.
- pre_trace_fun is a function pointer. For some targets,
- like HPUX, this function gets called to prepare for forking
- a child.
-
- * fork-child.c:
- (fork_inferior): Fixed call to init_trace_fun
-
- * fork-child.c:
- Moved definition of STARTUP_WITH_SHELL to inferior.h
- Added a DEBUGGING macro. Currently set to 0. May remove
- later.
- breakup_args: Add DEBUGGING ifdefs. more sophisticated
- parsing to break up args.
- (fork_inferior): Rename kshell variable to shell. new local
- variable, tryname. Make use of STARTUP_WITH_SHELL macro.
- More error processing if starting up with a shell.
- (startup_inferior): Distinguish between starting up with a shell
- and not doing so.
-
- * gdbthread.h:
- Declarations for load_infrun_state and save_infrun_state take
- an additional parameter.
-
- * gdbthread.h: Note that sometime between gdb 4.16 and 4.17,
- thread.h was renamed gdbthread.h
- (load_infrun_state): Additional parameters
- (store_infrun_state): Additional parameters
-
- * gdbthread.h: Include breakpoint.h
-
- * hp-psymtab-read.c (QUICK_LOOK_UP): Redefine to be 0.
- (hpread_build_psymtabs): Deal with enums.
- (hpread_start_psymtab): Include section offset.
- (hpread_end_psymtab): Take care of offset.
-
- * hp-psymtab-read.c (TRUE): Define.
- (FALSE): Define.
- (file_exists): New function. Checks for existance of file.
- (hpread_pxdb_needed): Rewrite.
- (hpread_quick_traverse): Use correct demangling style.
- Handle F77 case.
- (hpread_get_header): Rewrite.
- (hpread_get_textlow): Add support for DOC_FUNCTION.
- (hpread_build_psymtabs): Make sure we do the right thing
- for pxdb and F77.
-
- * hp-psymtab-read.c (hpread_pxdb_check): Change parenthesis positions.
-
- * hp-psymtab-read.c (hpread_quick_traverse): Compare CORE_ADDR
- variable end_addr to 0 instaed of NULL to get rif of gcc warning.
-
- * hp-psymtab-read.c:
- (Hpread_get_textlow): Added param to function
- Defined convennience macros and some datatypes and variables for
- processing the quick lookup-tables. Looks like the code existed
- before, but has been munged.
- (hpread_pxdb_needed): Major rearrangements of code. Additional local
- variables. Also, more extensive checking for various scenarios:
- debug info for optimized code vs. unoptimized code, pxdb has been
- run vs. pxdb has not been run.
- (VALID_FILE): New macro
- (VALID_MODULE): New macro
- (VALID_PROC): New macro
- (VALID_CLASS): New macro
- (FILE_START): New macro
- (MODULE_START): New macro
- (PROC_START): New macro
- (FILE_END): New macro
- (MODULE_END): New macro
- (PROC_END): New macro
- (FILE_ISYM): New macro
- (MODULE_ISYM): New macro
- (PROC_ISYM): New macro
- (VALID_CURR_FILE): New macro
- (VALID_CURR_MODULE): New macro
- (VALID_CURR_PROC): New macro
- (VALID_CURR_CLASS): New macro
- (CURR_FILE_START): New macro
- (CURR_MODULE_START): New macro
- (CURR_PROC_END): New macro
- (CURR_FILE_ISYM): New macro
- (CURR_MODULE_ISYM): New macro
- (CURR_PROC_ISYM): New macro
- (TELL_OBJFILE): New macro
- (pst_syms_struct): New typedef to keep track of the start/end symbol
- table (LNTT) indices of psymtabs created so far.
- (pst_syms_count): New variable
- (pst_syms_size): New variable
- (told_objfile): New variable
- (init_pst_syms): New function. sets up psymtab symbol index stuff.
- (clear_pst_syms): New function. clean up psymtab symbol index stuff.
- (record_pst_syms): New function. add info about newest psymtab to symbol
- index table.
- (find_next_pst_start): New function. Find a suitable symbol table index.
- (find_next_file_isym): New function
- (find_next_proc_isym): New function
- (find_next_module_isym): New function
- (scan_procs): New function. Scan and record partial symbols for all
- functions starting from specified index and in a specified code range.
- (hpread_quick_traverse: Major rearrangement of code. The function
- now uses all the nifty macros. There are some new local variables.
- Check for EDG_DEMANGLING style. ifdef out some code for handling F77.
- Previously, the function looped over all the modules in the table.
- Now, the function loops over all the files, modules, and procedures.
- With HP aCC and CTTI, it is possible for a compiled object to have a
- file and no module.
- (hpread_build_psymtabs): Added a section of code ifdefed by
- QUICK_LOOK_UP. It check to see whether or not there are any globals
- in the executable. Fix number of params to hpread_start_psymtab call.
- Some changes to the way DNTT_TYPE_MODULE is handled.
- (hpread_get_textlow): Change in signature, minor code changes. The
- function finds the low address associated with a specified symbol.
- In looking for the address for the symbol avoid going of the end of
- the LNTT file.
-
- * hp-psymtab-read.c: Change TRUE to 1 and FALSE to 0. Do some
- reformatting.
-
- * hp-psymtab-read.c: Include demangle.h
- (trans_lang): New function to let gdb know the correct language.
- (hpread_quick_traverse): Use ARM style demangling.
- Demangle procedures names.
- Use gdb language names instead of hp language names.
- Add symbol to list using its demangled name.
-
- * hp-psymtab-read.c: New file.
- (hpread_call_pxdb): New function. Call PXDB to process our file.
- (hpread_pxdb_check): New function. Return TRUE if the file needs
- pre-processing by PXDB and we have thus called PXDB to do this
- processing and the file needs to be re-loaded.
- (hpread_quick_traverse): New function. Traverse the quick look-up
- tables, building a set of psymtabs.
- (hpread_get_header): New function. Get appropriate header from obj
- file, based on pxdb type
- (hpread_symfile_init): No change from hpread.c
- (hpread_build_psymtabs): If there are quick lookup tables, read those,
- then scan the global section LNTT. Otherwise, just scan the whole LNTT.
- Changed: Add a global function entry to the global partial symbol list.
- Handle end of symbols, for QLT case.
- In case of TAGDEF, if it is a class or a template, add the name to the
- var_namespace, so that it is known as a type by gdb.
- In case of CONSTANT, and it is global, add it to the globals.
- (hpread_symfile_finish): No change from hpread.c
- (hpread_get_lntt): Make it not static
- (hpread_get_gntt): No change from hpread.c
- (hpread_get_slt): Make it not static
- (hpread_get_textlow): No change from hpread.c
- (hpread_start_psymtab): No change from hpread.c
- (hpread_end_psymtab): No change from hpread.c
-
- * hp-symtab-read.c (hpread_get_scope_start): Renamed. It was
- hpread_get_depth.
- (hpread_type_translate): Distinguish between signed and unsigned char
- types.
- (hpread_psymtab_to_symtab): Set flag for hp compilation.
- (hpread_read_function_type): Append symbols for parameters to local
- list as well as to the global list. Get the parameters types from the
- local list instead of the global list.
- (hpread_read_struct_type): Add new field num_fn_fields to next_fn_field
- structure. Rewrite handling of templates
- (hpread_type_lookup): Change handling of dntt_type_modifier.
- (hpread_process_one_debug_symbol): Call hpread_get_scope_start instea
- of hpread_get_depth. Handle enum as well.
- (hpread_get_scope_depth): New function. Get nesting depth for a
- DNTT entry.
-
- * hp-symtab-read.c (hpread_psymtab_to_symtab): Set
- processing_gcc_compilation to 0.
-
- * hp-symtab-read.c (hpread_psymtab_to_symtab_1): Change stdout to
- gdb_stdout; change fflush to gdb_flush.
- (hpread_psymtab_to_symtab): Change fflush to gdb_flush.
-
- * hp-symtab-read.c (hpread_read_enum_type): Declare variable.
- (hpread_read_struct_type): Eliminate references
- to 'args' member of fn_field.
-
- * hp-symtab-read.c (hpread_read_struct_type): A static member
- is now indicated by the bitsize field, not the bitpos.
- Initialize physname to empty.
- (fix_static_member_physnames): Use new macros to deal with
- physnames.
-
- * hp-symtab-read.c (hpread_read_struct_type): Change references
- to bitpos member of struct field to use the FIELD_BITPOS macro.
-
- * hp-symtab-read.c (hpread_read_struct_type): Comment out reference to
- obsolete field fn_field.args.
- Add struct complaint definitions for complaints.
- (hpread_read_struct_type): Change call to complain.
- (hpread_read_array_type): Change call to complain.
- (hpread_type_lookup): Change call to complain.
- (hpread_process_one_debug_symbol): Change calls to complain.
- (hpread_type_translate): Change calls to complain.
-
- * hp-symtab-read.c (hpread_read_struct_type): Make sure bitvector
- has been allocated before calling has_vtable.
-
- * hp-symtab-read.c (hpread_read_struct_type): Revert change,
- just check for vtable without checking for bitvectors too.
-
- * hp-symtab-read.c:
- (Hpread_expand_symtab): Change name of local variable from
- at_end_of_module to at_module_boundary.
- Also, if demangling style is already EDG, do not reset it
- to the HP demangling style.
- Change at_end_of_module param to hpread_process_one_debug_symbol
- call to at_module_boundary.
- No longer break out of loop when reach end of module. With CTTI,
- the compiler can generate function symbols which are not in
- any module. Typically they show up after the end of one
- module and before the start of the next module.
- (hpread_read_struct_type): Check that the debug info for
- a TEMPLATE_ARG is correct.
- (hpread_process_one_debug_symbol): Change name of at_end_of_module_p
- param to at_module_boundary_p.
- Also set *at_module_boundary_p = -1 if missing a module end and set
- it to 1 when finished expanding the debug info.
- Handle TLS variable.
-
- * hp-symtab-read.c: Include defs.h, symtab.h, gdbtypes.h, complaints.h.
- (fixup_class): New static variable.
- (fixup_method): New static variable.
- (hpread_get_location): Rewrite.
- (hpread_has_name): Add cases for DNTT_TYPE_DOC_FUNCTION and
- DNTT_TYPE_DOC_MEMFUNC
- (hpread_expand_symtab): Use HP demangling style.
- Set hp_som_som_object_present to 1.
- (hpread_type_translate): Error out if not immediate. Issue warning
- if there is an unhandled type code.
- (error_in_hpread_type_translate_complaint): Remove this structure.
- (hpread_read_enum_type): Don't assume size of enum is always 4 bytes.
- (hpread_read_function_type): Add new parameter to indicate a new block.
- Do not add the parameters to the symbol list.
- If the type was read in earlier, do not modify the type structure.
- If we are creating a new block, set the local symbol list to be the
- param list.
- Need to mark this type as preprocessed.
- (hpread_read_doc_function_type): New function. Read and internalize
- a native DOC function debug symbol.
- (hpread_read_struct_type): A method can be of type doc_function and
- doc_memfunc too.
- Handle case in which a method is read before its class. Deal with
- incomplete method types.
- Handle cases in which HP/aCC compiler creates operator names w/o
- the 'operator' keyword. Rewrite the loop over the fileds.
- (fix_static_member_physnames): New function. Adjust the physnames for
- each static member.
- (fixup_class_method_type): New function. Fix-up the type structure for a
- class.
- (hpread_read_array_type): Change complaint to warning.
- (hpread_type_lookup): Add case for DNTT_TYPE_DOC_FUNCTION.
- For structures/classes set static member to point to strings with full
- names.
- Change calls to hpread_read_function_type to pass extra parameter.
- (hpread_record_lines): Handle case for SLT_NORMAL_OFFSET.
- (class_of): New function. Given a function "f" which is a member of a class,
- find the classname that it is a member of.
- (hpread_process_one_debug_symbol): Deal with possible alias field from the
- som record for the Function or Entry type.
- Do the demangling ourselves if the gdb demangler failed.
- Add support for DOC functions.
- For function types, add parameters to local list.
- (hpread_get_scope_depth): Make this function a no-op.
- (hpread_adjust_bitoffsets): New function. Adjust the bitoffsets for all
- fields of an anonymous union.
- (hpread_get_next_skip_over_anon_unions): New function. Skip over anonymous
- unions.
-
- * hp-symtab-read.c: Include demangle.h
- (hpread_expand_symtab): Ensure we are using ARM-style demangling.
- (hpread_process_one_debug_symbol): Set the mangled and demangled
- names for functions.
- Record the class name to generate the demangled names of member
- functions.
-
- * hp-symtab-read.c: New file.
- (hpread_get_depth): No change from hpread.c
- (hpread_get_line): No change from hpread.c
- (hpread_get_location): No change from hpread.c
- (hpread_has_name): Make it not static. Return 1 for DNTT_TYPE_BLOCKDATA
- and DNTT_TYPE_MEMFUNC. Return 0 for CLASS_SCOPE, REFERENCE,PTRMEM,
- PTRMEMFUNC, CLASS, GENFIELD, VFUNC, MEMACCESS, INHERITANCE,
- FRIEND_CLASS, FRIEND_FUNC, MODIFIER, OBJECT_ID, TEMPLATE, TEMPLATE_ARG,
- FUNC_TEMPLATE, LINK.
- (hpread_psymtab_to_symtab_1): No changes from hpread.c
- (hpread_psymtab_to_symtab): Make it a static function
- (hpread_expand_symtab): Modified
- (hpread_type_translate): If not typep.dntti.immediate do not abort,
- but complain and return. Same for default action. Handle more HP_TYPEs.
- (hpread_lookup_type): Initially allocate a correct-size type-vector.
- (hpread_alloc_type): Reset type_addr only if a type was allocated.
- (hpread_read_enum_type): If this has already a type associated, return.
- (hpread_read_function_type): Do different things depending on whether
- function is a MEMFUNC, a TEMPLATE, a FUNCTION som record.
- Do not use the LOC_REGPARM_ADDR symbol class.
- (hpread_read_struct_type): Handle classes and templates too. Major
- rewrite.
- (hpread_get_nth_template_arg): New function.
- (hpread_read_templ_arg_type): New function.
- (hpread_read_set_type): No change from hpread.c
- (hpread_read_array_type): Modified
- (hpread_read_subrange_type): Add handling of more DNTT entries.
- added support for templates, classes, references, virtual functions.
- (hpread_type_lookup): Handle DNNT_TYPE_MODULE.
- (hpread_record_lines): No changes from hpread.c
- (hpread_process_one_debug_symbol): Handle WITH, COMMON,
- CLASS_SCOPE. Expand TAGDEF case to handle classes and templates.
-
- * hppa-tdep.c (pa_do_strcat_registers_info): Has a new parameter,
- precision, which is passed into the call to pa_strcat_fp_reg to
- indicate whether to display the floating point registers using
- single or double preceision.
- (pa_strcat_registers): Introduce local variable, precision, and
- pass it into call to pa_strcat_fp_reg.
- (pa_strcat_fp_reg): Modified function. New parameter, precision,
- used by function to decide whether to use single or double
- precision. Also added the code to put a double precision value
- into a buffer.
-
- * hppa-tdep.c: Add'l includes <machine/save_state.h>,
- <unistd.h>, declare pa_register_look_aside, define is_pa_2.
- (rp_saved): Check for where to read the return pointer from.
- (pa_do_registers_info): Handle is_pa_2. (pa_register_look_aside):
- new function. (pa_print_registers): Handle is_pa_2.
- (in_solib_call_trampoline): Handle a compiler/linker error.
- (skip_trampoline_code): Changes to some masks used in examining
- instructions. (inst_saves_fr): Test for FSTWS instruction.
- (skip_prologue): Renamed to skip_prologue_hard_way.
- (after_prologue): New function. (skip_prologue): New function.
-
- * hppa-tdep.c (after_prologue): If f is NULL, don't dereference
- it.
-
- * hppa-tdep.c (after_prologue): If no debug info, return zero
- telling caller that we need to find the end of the prologue via
- the hard way (instruction examination).
-
- * hppa-tdep.c (find_unwind_entry): Avoid dereferencing a null
- pointer.
-
- * hppa-tdep.c (hppa_pid_to_exec_file): Deleted -- no longer used.
-
- * hppa-tdep.c (hppa_prepare_to_proceeed): Add prototype.
- (read_unwind_info): Purecov comments, bug fixes.
- (find_unwind_entry): Purecov comments, bug fixes.
- (find_stub_with_shl_get): Purecov comments.
- (frame_chain): Additional parens.
- (hppa_push_arguments): Changes to commented out version of routine.
- (hppa_fix_call_dummy): Purecov comments, fix location of end.o.
- (in_solib_call_trampoline): Purecov comments.
- (in_solib_return_trampoline): Purecov comments.
- (setup_d_pid_in_inferior): Fix location of end.o.
- (initialize_hp_cxx_exception_support): Fix location of end.o.
- (child_enable_exception_callback): Purecov comments.
-
- * hppa-tdep.c:
- (Pa_do_strcat_registers_info): New routine. called by
- tui/tuiRegs.c:_tuiRegisterFormat to place a register name
- and value into a string buffer. Interface may change in
- future. Checking this in so that we have something
- functional for HP.
- (pa_strcat_registers): New routine, called by
- pa_do_strcat_registers_info. Does same thing as
- pa_print_registers except it takes a stream parameter.
- This routine should disappear in future. Checking in
- so that we have something functional to give HP
- (pa_strcat_fp_reg): New routine, called by
- pa_do_strcat_registers_info and pa_strvat_registers
- to place a floating point register name and value into
- a buffer. This interface may change in future.
- Checking in so that we have something functional to give HP.
-
- * hppa-tdep.c: (Pa_print_fp_reg): Change prototype to match def'n.
- (pa_register_look_aside): Fix comment immediately before function.
-
- * hppa-tdep.c: Changes to better support stack unwinding,
- reading and writing registers for HPUX. The HP folks had
- an advantage ... access to a runtime architecture spec ;-}.
- New includes: Ptrace.h
- (internalize_unwinds): Initialize new fields in table.
- (read_unwind_info): Entries in the table are now more complex
- structures. References of the form ...->table[index].stub_type
- are now ...->table[index].stub_unwind.stub_type.
- (find_proc_framesize): Added a check for pc == 0.
- (rp_saved): Entries in the table are now more complex
- structures. References of the form ...->table[index].stub_type
- are now ...->table[index].stub_unwind.stub_type.
- (frameless_function_invocation): Stub_type becomes
- stub_unwind.stub_type
- (saved_pc_after_call): Stub_type becomes stub_unwind.stub_type
- (hppa_frame_saved_pc): Stub_type becomes stub_unwind.stub_type
- (frame_chain_valid): Stub_type becomes stub_unwind.stub_type
- (hppa_call_dummy): Stub_type becomes stub_unwind.stub_type
- (pa_print_fp_reg): Additional params to call val_print
- (in_solib_call_trampoline): Stub_type becomes stub_unwind.stub_type
- (in_solib_return_trampoline): Stub_type becomes stub_unwind.stub_typ
- (skip_trampoline_code): Additional code to handle external
- dyncalls. Also stub_type becomes stub_unwind.stub_type
- (hppa_pid_to_exec_file): New funct. FOr HPUX 10.0 and beyond there
- is an explicit ptrace request for getting the pathname associated
- with a process id (pid).
-
- * hppa-tdep.c: Fix for gcc compile on HPUX
- (hppa_pid_to_exec_file): Remove unwanted param from
- call to call_ptrace. Note, hppa_pid_to_exec_file goes
- away in subsequent hp snapshots.
-
- * hppa-tdep.c: Include bfd.h.
- include dl.h
- (args_for_find_stub): New structure.
- (find_unwind_entry): Deal with null input pc value.
- (rp_saved): Ditto.
- For the import stub, return -24 always.
- (hppa_frame_saved_pc): Save old pc value, to detect we are in a loop.
- (init_extra_frame_info): Use TARGET_READ_FP.
- (frame_chain): Include thread support.
- If the caller's pc is zero, we loose and return, just like stack bottom.
- Disable warning about being unable to find unwind info.
- (hppa_push_arguments): Rewrite.
- (hppa_value_returned_from_stack): New function. Handles returning a value
- larger that 64 bits, stored on the stack.
- (find_stub_with_shl_get): New function. To look up symbols in shlibs.
- (cover_find_stub_with_shl_get): New function. Cover routine for
- find_stub_with_shl_get to pass to catch_errors.
- (hppa_fix_call_dummy): Comment out old stub mechanism. Rewrite using dyncall.
- (target_read_fp): New function.
- (pa_do_registers_info): Floating point registers start at FP4.
- (pa_print_registers): Use FP4_REGNUM instead of 72.
- (skip_trampoline_code): Do machine instruction matching for PA2.0.
- (setup_d_pid_in_inferior): New function. Exception handling support.
- (initialize_hp_cxx_exception_support): Ditto.
- (child_enable_exception_callback): Ditto.
- (child_get_current_exception_event): Ditto.
-
- * hppah-nat.c (child_post_wait, child_post_follow_vfork,
- child_post_follow_inferior_by_clone): New functions.
-
- * hppah-nat.c (child_xfer_memory): Make sure the call to ptrace really
- fails before we give up.
- (hppa_pid_to_str): New function. Format a process id.
- (hppa_tid_to_str): New function. Format a thread id.
-
- * hppah-nat.c (child_xfer_memory): Use xmalloc, not alloca.
- (child_post_wait): Delete.
- (child_post_follow_vfork): Delete decl of child_ops; delete
- large chunks of function -- let it be handled by the normal
- mechanism that notices and handles exec events, in resume().
-
- * hppah-nat.c (require_notification_of_exec_events): New function;
- just notify of exec events, not all events, and just the specified
- pid, don't include it's children (10.20 version).
- (child_acknowledge_created_inferior): Call new function
- require_notification_of_exec_events instead of
- require_notification_of_events.
-
- * hppah-nat.c [!GDB_NATIVE_HPUX_11]: Move HPUX 10.x-specific
- support code here from infptrace.c.
-
- * hppah-nat.c: Removed #define ptrace call_ptrace
- replaced all calls to ptrace with calls to call_ptrace
- (parent_attach_all): Removed call to ptrace
-
- * hpread.c (hpread_psymtab_to_symtab_1): Change fflush to
- gdb_flush; change stdout to gdb_stdout.
- (hpread_psymtab_to_symtab): Change fflush to gdb_flush.
-
- * hpread.h: New file. Includes all includes, struct defs, defines
- from hpread.c.
-
- * infcmd.c
- (attach_command): New local variable, exec_file, added code to
- determine exec_file from pid if exec_file is not already known,
- call new target operation, target_post_attach -- a no-op unless
- on HPUXHPPA
- (detach_command): After detaching, do a SOLIB_RESTART
-
- * infcmd.c (objfiles.h): Fix typo on include line.
-
- * infcmd.c (run_command): Only call SOLIB_RESTART if it's
- defined.
- (detach_command): Ditto.
-
- * infcmd.c:
- (run_stack_dummy): Add calls to
- disable_watchpoints_before_interactive_call_start and
- enable_watchpoints_after_interactive_call_stops
- (finish_command): Alter code handling the evaluation and printing
- of the target function's return value.
- (attach_command): When given a pid, but no exec file, try to determine
- the exec file from the process. If the process does not record a
- full path name, try to qualify the filename against the source path.
- (_initialize_infcmd): Add some verbiage about how to use the attach command
-
- * infcmd.c:
- Include objfiles.h
- (run_command): If program has already been started, and decide
- to restart it, then kill the target, flush the caches,
- call init_wait_for_inferior. Also purge old solib objfiles.
-
- * infcmd.c: Changed calls to val_print, using a new macro,
- SOLIB_RESTART
- (run_command): Calls SOLIB_RESTART
- (do_registers_info): Changed calls to val_print
-
- * infcmd.c: Made the symfile.h include preceed the
- objfiles.h include. The other ordering caused a
- compile problem (incompletely defined types).
-
- * inferior.h (REQUIRE_DETACH): Fix default definition.
- * inftarg.c (child_post_attach): Fix declaration, make static.
- (proc_wait): Make globally visible.
- (child_insert_fork_catchpoint, etc): Fix return type.
-
- * inferior.h (STARTUP_WITH_SHELL): New define.
- (START_INFERIOR_TRAPS_EXPECTED): New define
-
- * inferior.h (fork_inferior): Change fifth parameter to be a function
- returning void.
-
- * inferior.h (proc_wait): Declare.
-
- * inferior.h:
- (Require_ATTACH): New macro
- (REQUIRE_DETACH): New macro
- (detach): Definition is now an extern
- (clone_and_follow_inferior): New definition, it's also an extern
-
- * inferior.h:
- (Require_attach): Default definition for require_attach funct
- (require_detach): Default definition for require_detach funct
- (pre_fork_inferior): New funct decl for function defined in
- infptrace.c
- (fork_inferior): New parameter in funct decl.
-
- * inferior.h:
- New variable decls: Inferior_ignoring_startup_exec_events,
- inferior_ignoring_leading_exec_events -- these variables
- are used when processing an exec call.
- (CALL_DUMMY_HAS_COMPLETED): New default macro -- for targets
- where PC in call dummy implies that call dummy has
- completed. Note, that on HPUX this inference does not hold.
-
- * infptrace.c
- (require_notification_of_events): New function
- (child_acknowledge_created_inferior): Previously named
- hppa_acknowledge_forked_child. Also calling
- require_notification_of_events and clearing some semaphore
- variables
- (child_post_startup_inferior): New function
- (child_create_catch_fork_hook): Previously named
- hppa_create_catch_fork_hook
- (child_create_catch_vfork_hook): Previously named
- hppa_create_catch_vfork_hook
- (child_has_forked): Previously named hppa_target_has_forked
- (child_has_vforked): Previously named hppa_target_has_vforked
- (process_wait): Changed to call target_post_wait
- (attach): Add call to require_notification_of_events
- (child_pid_to_exec_file): New function
- (hppa_require_attach): New local variable, pt_status
- (hppa_get_process_events): New function
-
- * infptrace.c (call_ptrace): Simplify control flow.
- (proc_wait): Move here from inftarg.c, add target_post_wait call.
-
- * infptrace.c (call_ptrace): Add some debugging code.
-
- * infptrace.c (child_pid_to_exec_file): Declare variable.
-
- * infptrace.c (kill_inferior): Clean up call to proc_wait.
-
- * infptrace.c:
- (Call_ptrace): When the ptrace request is PT_SETTRC,
- call ptrace and then call parent_attach_all.
-
- * infptrace.c:
- (Child_has_syscall_event): New function. only applicable
- (for now) on HPUX 10.30 and beyond via the ttrace call.
- In infptrace.c there is a default operation.
- With ttrace, it is possible to tell the kernel to
- notify the debugger that the target program is about to make
- or return from a syscall.
- (child_thread_alive): New function. a default function.
- ptrace doesn't support kernel threads.
- (hppa_enable_page_protection_events): Defualt function
- (hppa_disable_page_protection_events): Default function
-
- * infptrace.c (child_pid_to_exec_file): Fix number of params to
- cal_ptrace call.
-
- * infptrace.c (hppa_pid_or_tid_to_str): New function.
- (hppa_switched_threads): New function.
- (hppa_ensure_vforking_parent_remains_stopped): New function.
- (hppa_resume_execd_vforking_child_to_get_parent_vfork): New function.
-
- * infptrace.c: Most of the changes found in infptrace.c should
- be moved to hppah-nat.c
- (PT_VERSION): A new define
- (startup_semaphore_t): A new struct type. it is used to
- coordinate the parent and child processes after a fork and
- before an exec on HPUX.
- (call_ptrace): Changes to determine whether the ptrace
- request is for starting the tracing of the target process.
- (parent_attach_all): New funct. used on HPUX for coordinating
- the parent and child processes after a fork and before and exec.
- (hppa_acknowledge_forked_child): New funct. prabably belongs
- in hppah-nat.c
- (hppa_enable_catch_fork): New funct. probably belongs in
- hppah-nat.c
- (hppa_disable_catch_fork): New funct. probably belongs in
- hppah-nat.c
- (hppa_create_catch_fork_hook): New funct. probably belongs in
- hppah-nat.c
- (hppa_enable_catch_vfork): New funct. probably belongs in
- hppah-nat.c
- (hppa_disable_catch_vfork): New funct. probably belongs in
- hppah-nat.c
- (hppa_create_catch_vfork_hook): New funct. probably belongs to
- hppah-nat.c
- (hppa_target_has_forked): New funct. probably belongs in
- hppah-nat.c
- (hppa_target_has_vforked): New funct. probably belongs in
- hppah-nat.c
- (process_wait): New funct. also ifdefed for proc_wait.
- (kill_inferior): Call proc_wait rather than wait. this is
- pretty hacky.
- (pre_fork_inferior): New function. used only by HPUX.
- probably should be defined elsewhere.
-
- * infrun.c (follow_inferior_fork): Only define on HP.
- (wait_for_inferior): Only call SOLIB_IN_DYNAMIC_LINKER if we have
- shared libraries; restore test of IN_SOLIB_DYNSYM_RESOLVE_CODE
- removed by HP.
-
- * infrun.c (normal_stop): Add a call to the TUIDO
- macro just before the annotate_stopped label. This
- updates the windows after each program stop.
-
- * infrun.c (normal_stop): Verify stop_command is non-zero before
- dereferencing it (it won't be set if dbx_commands is set).
-
- * infrun.c (resume): Add #ifdef HPPAHPUX around HPUX-specific
- code.
-
- * infrun.c (resume): Add missing semicolon.
-
- * infrun.c (wait_for_inferior): Fix syntax error.
-
- * infrun.c (follow_fork_mode_kind_names): Removed "both" option.
- (follow_fork): Added parameters. additional code for handling
- following of parent, following of child
- (resume): Added code for deciding how to resume in presence of
- fork. Additional params to follow_fork call.
-
- * infrun.c (follow_exec): Ifdef for HPUXHPPA for the moment, the
- code in here assumes the existance of the child_ops target
- vector. This is incorrect for Solaris.
-
- * infrun.c (resume): Fixed ifdefs, HPPAHPUX -> HPUXHPPA.
-
- * infrun.c (wait_for_inferior): Fixed a matching parens problem --
- matching curly brace inside ifdefed code which is not being
- compiled. Change local validFlag to be an 'int' rather than a
- 'bool' and fixed the corresponding assignment statements.
-
- * infrun.c:
- Two new global variables: Inferior_ignoring_startup_exec_events and
- inferior_ignoring_leading_exec_events.
- New static variables: Parent_of_vfork_trap_expected_and_ignorable,
- step_resume_breakpoint, through_sigtramp_breakpoint, pending_follow,
- follow_vfork_when_exec
- (follow_inferior_fork): Does what follow_fork did!
- (follow_fork): Is now a wrapper function for follow_inferior_fork
- (follow_vfork): Is now a wrapper function for follow_inferior_fork
- (follow_exec): New function, handles an exec event.
- (resume): Remove 3 local variables: Child_pid, has_forked, has_vforked.
- move and expand code that tries to follow a fork (i.e. also check
- for vfork and exec
- (init_wait_for_inferior): Initialize the new structure, pending_follow
- (delete_breakpoint_current_contents): When deleting all the breakpoints also
- set the breakpoint struct pointer to NULL.
- (wait_for_inferior): A number of changes.
- The step_resume_breakpoint and through_sigtramp_breakpoint local
- variables are now visible in entire module.
- Changed name of variable from child_inferior_pid to saved_inferior_pid.
- Added several cases to the event processing switch statement:
- Target_WAITKIND_FORKED, TARGET_WAITKIND_VFORKED, TARGET_WAITKIND_EXECD.
- Also, for TARGET_WAITKIND_STOPPED, check to see if expecting a trap
- from the parent of a vfork (ignorable) otherwise break as usual.
- When determining the value of 'random_signal' (0 or 1), no longer check for
- catchpoints.
- When determining how to handle unexpected signals, must now take into
- account fork, vfork, and exec.
- Change call to PC_IN_CALL_DUMMY to a call to CALL_DUMMY_HAS_COMPLETED
- At stop_stepping label, check to see if stopped for fork or
- vfork event.
-
- * infrun.c: New code is related to threads and fork/vfork/exec.
- New static variable: Thread_step_needed
- Deleted static variable: Parent_of_vfork_trap_expected_and_ignorable
- Altered the pending_follow and fork_event structs
- (follow_inferior_fork): Before detaching from child and removing
- all breakpoints form it -- but only if forking or following
- vforks as soon as they happen. Also reset the solib inferior hook.
- The same kind of logic applies to hitting step_resume_breakpoints
- (calling breakpoint_re_set_thread) and to resetting and inserting
- breakpoints.
- (follow_exec): Forward decl
- (follow_vfork): Check to see if gdb followed the child. If
- the child exec'd before gdb saw the parent's vfork event
- then call follow_exec.
- (follow_exec): If the exec occured after a vfork, then follow
- the vfork as well. Do it before following the exec.
- Make sure to update breakpoints after and exec
- (resume): New local variable, should_resume.
- Change parameters in calls to follow_fork, follow_vfork, and
- follow_exec. Some changes to the way various pending_follow.kind
- situations are handled (there's TARGET_WAITKIND_FORKED,
- TARGET_WAITKIND_VFORKED, ARGET_WAITKIND_EXECD. Some additional
- conditions to check before deciding to resume the target (i.e.
- should_resume=1, stepping?, thread_step_needed?i, regular
- resume?)
- (proceed): When proceeded at location that does not have a breakpoint
- set thread_step_needed=0 to indicate that it is not necessary to
- single step thread over breakpoint. SOme additional checks to see
- if it is necessary to step thread over breakpoint.
- (start_remote): Remove call to clear_proceed_status.
- (init_wait_for_inferior): Initialize new fields in fork_event
- structure and add a call to clear_proceed_status.
- (wait_for_inferior): New local variable: New_thread_event.
- Initialize thread_step_needed = 0.
- Minor massaging of conditions for adding a new thread to the thread list.
- No longer resuming execution after adding a new thread. Let user play with thread first.
- Some changes in the way TARGET_WAITKIND_FORKED, ARGET_WAITKIND_VFORKED,
- TARGET_WAITKIND_EXECD are handled -- this is all HPUX related.
- Simplified TARGET_WAITKIND_STOPPED -- HP previously had some
- more complicated code in here.
- Moved the code to resume threads to after the large case statement that processes the events.
- Additional processing for stop_signal=TARGET_SIGNAL_TRAP.
- Cleanup code at process_event_stop_test label.
- Set thread_step_needed when processing a BPSTAT_WHAT_SINGLE.
- Minor massaging of fork/vfork/exec part of stop_stepping code.
- (normal_stop): Minor changes. calling show_and_print_stack_frame.
- (xdb_handle_command): New function
- (_initialize_infrun): Handle xdb_commands. also handle dbx commands
-
- * infrun.c: Changes to support following forks, and handling
- catchpoints.
- (follow_fork_mode_kind_names): New array
- (follow_fork): New function. implements the follow parent,
- or child functionality.
- (resume): Additions to check whether the target process
- just forked and decide which process to follow.
- (wait_for_inferior): Additional variables (child_inferior_pid,
- stepping_through_solib_after_catch,
- - stepping_through_solib_catchpoints.
- - Altered CURRENTLY_STEPPING macro to check for stepping through
- a shared library after hitting a catchpoint.
- - Add parameters to save_infrun_state call
- - Check for fork and vfork when deciding if event is a random
- signal
- - When considering stops due to breakpoints, check for
- BPSTAT_WHAT_CHECK_SHLIBS_RESUME_FROM_HOOK
- - Check for stop due to an explicit catchpoint
- - When checking for single stepping event, also check for
- stepping to get out of dynamic linker's hook after catching
- a shlib event
- (is_internal_shlib_eventpoint): New funct. check to see if
- event type is bp_shlib_event.
- (stopped_for_internal_shlib_event): New funct. check for shlib
- events
- (stopped_for_shlib_catchpoint): New funct. check for catchpoints.
- (normal_stop): Additions to check for shlib event
- (set_follow_fork_mode_command): New funct. handles the new follow
- fork command.
- (_initialize_infrun): Additions for follow-fork-mode command.
-
- * infrun.c: Ifdefing references to
- switched_from_inferior_pid for HPUXHPPA. They don't seem
- useful for Solaris (i.e. non-HPUX)
-
- * infrun.c: Included tuiData.h and tuiDataWin.h, ifdefed for TUI.
- Included top.h. New static variables: Switched_from_inferior_pid,
- number_of_threads_in_syscalls.
- (follow_inferior_fork): If there is a step_resume breakpoint
- explicitly reset the thread number.
- (resume): For TARGET_WAITKIND_VFORKED, removed a check for getting
- the vfork event to soon.
- (init_wait_for_inferior): Added parameter to call to
- breakpoint_init_inferior. Initialize number_of_threads_in_syscalls.
- (wait_for_inferior): New local variables: Prev_sal,
- enable_hw_watchpoints_after_wait, stepping_through_sigtramp,
- stepped_after_stopped_by_watchpoint. Enable watchpoints after a wait.
- Added cases for TARGET_WAITKIND_SYSCALL_ENTRY and
- TARGET_WAITKIND_SYSCALL_RETURN.
- Do additional processing if stop due to breakpoint, but breakpoint is
- only valid for a thread other than the one currently running. Additional
- parameters to save_infrun_state and load_infrun_state. Some additional
- processing for BPSTAT_WHAT_STEP_RESUME. Some additional processing to
- handle stepping over a function.
- (normal_stop): Added notification of switching threads. ifdefing some
- TUI changes and leaving out non-essential TUI changes.
- (restore_selected_frame): Ifdefing some TUI changes
- (restore_inferior_status): Ifdefing some TUI changes
-
- * infrun.c: Removed the TUI ifdefs and TUI code. Also removed
- include for top.h. HP introduced this. I'm taking it out.
-
- * inftarg.c (child_detach_from_process): Declare.
- (child_attach_to_process): Declare.
- (child_stop): Make static to match declaration.
-
- * inftarg.c (ptrace_him): Change prototype back to return int.
-
- * inftarg.c (ptrace_me): Remove debug output, pass NULL to
- fork_inferior if not HPUX.
-
- * inftarg.c:
- (child_require_attach): New funct prototype and definition
- (child_require_detach): New funct prototype and definition
- (proc_wait): Funct prototype and definition are enclosed by
- proc_wait ifndef
- (child_attach_to_process): New function, does most of the
- work that child_attach used to do and some additional
- work to determine whether gdb is already attached to the
- target how to react.
- (child_attach): Altered. It's now a wrapper for
- child_attach_to_process.
- (child_require_attach): New function, called if should attach
- even when gdb is already attached to target.
- (child_detach_from_process): New function, does most of the
- work that child_detach used to do and some additional work
- to determine whether gdb is currently attached to the target.
- (child_detach): Altered. It's now a wrapper for
- child_detach_from_process.
- (child_require_detach): New function, called if should try to
- detach even when gdb is not attached to target.
- (ptrace_him): Calls a new function, target_acknowledge_forked_child.
- Currently, target_acknowledge_forked_child, is only defined to
- do something for HPUX.
- (child_create_inferior): Changed call to fork_inferior.
- (child_ops): Added to_require_attach and to_require_detach fields
- to the child_ops target ops vector.
-
- * inftarg.c:
- Some hacks for ttrace work
- (child_wait): Additional local variables, additional code in
- while loop to check for: Process exited, process forked,
- process vforked, process execd
- (child_thread_alive): John B. seems to think that the kill
- call is inapproapriate for HPUX.
- (child_attach_to_process): Using strtol rather than atoi.
- no longer check for case where there is no known exec file.
- (child_post_attach): New function, a default, a no-op
- (child_insert_fork_catchpoint): New function, a default, a no-op
- (child_remove_fork_catchpoint): New function, a default, a no-op
- (child_create_catch_fork_hook): Deleted
- (child_create_catch_vfork_hook): Deleted
- (child_insert_vfork_catchpoint): New function, a default, a no-op
- (child_remove_vfork_catchpoint): New function, a default, a no-op
- (child_can_follow_vfork_prior_to_exec ):new function, a default,
- a no-op
- (child_insert_exec_catchpoint): New function, a default, a no-op
- (child_remove_exec_catchpoint): New function, a default, a no-op
- (child_has_execd): New function, a default, returns 0
- (child_reported_exec_events_per_exec_call): New function, a
- default, returns 1
- (child_has_exited): New function, a default.
- (child_core_file_to_sym_file): New function, a default, returns NULL.
- (child_ops): Initialize new target_ops vector fields to the
- child* functions.
- * infptrace.c:
- (Call_ptrace): For HPUX, handle additional requests: Pt_CONTIN1,
- PT_STEP1.
- (require_notification_of_events): Add several signals to the
- set of events requiring notification: Ptrace_SIGNAL,
- PTRACE_EXEC, PTRACE_FORK, PTRACE_VFORK
- (child_acknowledge_created_inferior): This function is only
- defined if CHILD_ACKNOWLEDGE_CREATED_INFERIOR is defined.
- (child_post_startup_inferior): Function is only defined if
- CHILD_POST_STARTUP_INFERIOR is defiend. Also, now call
- require_notification_of_events.
- (child_create_catch_fork_hook): Deleted
- (child_create_catch_vfork_hook): Deleted
- (child_insert_fork_catchpoint): New function
- (child_remove_fork_catchpoint): New function
- (child_insert_vfork_catchpoint): New function
- (child_remove_vfork_catchpoint): New function
- (child_has_forked): Now enclosed by a CHILD_HAS_FORKED ifdef
- (child_has_vforked): Now enclosed by CHILD_HAS_VFORKED ifdef
- (child_can_follow_vfork_prior_to_exec): New function
- (child_insert_exec_catchpoint): New function
- (attach): Removed call to require_notification_of_events
- (child_post_attach): New function, call to
- require_notification_of_events moved here.
- (child_pid_to_exec_file): New enclosed by CHILD_PID_TO_EXEC_FILE ifdef
- introduced the concept of a saved_inferior_pid
- (hppa_require_attach): Add some code to decide if gdb is already
- attached to process. Can not figure this out via a ptrace call.
- (hppa_insert_hw_watchpoint): New function
- (hppa_remove_hw_watchpoint): New function
-
- * inftarg.c:
- (child_attach_to_process): Change position in file
- (child_detach_from_process): Change position in file
-
- * inftarg.c:
- (child_attach_to_process): Changed parameter to child_wait call
-
- * inftarg.c:
- (child_post_wait): New function declaration and definition
- (ptrace_him):
- - change return value to a void.
- - change target_acknowledge_forked_child call to
- target_acknowledge_created_inferior
- - call target_post_startup_inferior rather than returning pid.
- (child_attach_to_process): Change param name, fail_if_already_attached
- -> after_fork.
- Invert a couple of if-then-else statments.
- Use REQUIRE_ATTACH macro
- (child_attach): Change params in child_attach_to_process call
- (child_require_attach): Change params in child_attach_to_process call
- (child_detach_to_process): Change param name,
- fail_if_already_attached -> after_fork.
- Invert a couple of if-then-else statments.
- Use REQUIRE_DETACH macro
- (child_detach): Change params in child_detach_from_process call
- (child_require_detach): Change params in child_detach_from_process
- call
- (child_post_startup_inferior): New function
- (child_acknowledge_created_inferior): New function
- (child_clone_and_follow_inferior): New function
- (child_post_follow_inferior_by_clone): New function
- (child_create_catch_fork_hook): New function
- (child_create_catch_vfork_hook): New function
- (child_has_forked): New function
- (child_has_vforked): New function
- (child_post_follow_vfork): New function
- (child_stop): No longer a static function
- (child_pid_to_exec_file): New function
-
- * inftarg.c:
- (child_wait): Child_pid becomes related pid. return pid
- rather than inferior_pid. Changes are in code handling fork
- and vfork
-
- * inftarg.c:
- Include gdb_stat.h and sys/unistd.h
- (child_wait): New local variables. Check for live threads.
- Check for syscall events
- (child_thread_alive): No longer a static funct.
- (ptrace_him): Remove some code inserted in snap3
- (child_create_inferior): Added a bunch of code to handle a
- bad interaction between start-up-with-shell and the HP
- catch-fork/catch-exec logic. I am ifdefing this for
- HPUXHPPA for now.
- (child_has_syscall_event): New default target_ops function
- (child_enable_exception_callback): New default target_ops function
- (child_get_current_exception_event): New default target_ops function
- (child_ops): 3 new fields
-
- * inftarg.c: Remove HPUX_SNAP1 and HPUX_SNAP2 ifdefs
-
- * inftarg.c: Reverted previous change.
-
- * infttrace.c (hppa_remove_hw_watchpoint): Fix check for write
- access hardware watchpoint.
-
- * infttrace.c (proc_wait): Rename from proc_wait.
-
- * infttrace.c (require_notification_of_exec_events): New function;
- just notify of exec events, not all events, and just the specified
- pid, don't include it's children.
- (child_acknowledge_created_inferior): Call new function
- require_notification_of_exec_events instead of
- require_notification_of_events.
- (child_post_startup_inferior): Call require_notification_of_events
-
- * infttrace.c: Changed all references to boolean to int.
- Changed all references to TRUE and FALSE to 1 and 0.
-
- * irix5-nat.c (symbol_add_stub): Add params to call to
- symbol_file_add.
-
- * jv-lang.c (get_dynamics_objfile): Add 2 more parameters to call
- to allocate_objfile.
-
- * main.c (fputs_unfiltered): Changes to prevent cursor form
- jumping around in the TUI. Altered where tuiTermUnsetup and
- tuiTermSetup are called
-
- * main.c (fputs_unfiltered): Changed function so that it
- checks to see if output is to a string buffer or to a
- FILE stream and does the correct action (i.e. strcat or
- fputs). Fixed params for fputs call.
-
- * main.c (fputs_unfiltered): Don't try to call the TUI's
- CommandCharCount functions when the TUI isn't enabled.
-
- * main.c (fputs_unfiltered): Change FILE to GDB_FILE.
-
- * main.c (main): If the user gives the --version or --help flags,
- disable the TUI.
-
- * main.c (tui_version, xdb_commands, dbx_commands): New variables.
- (main): New command line arguments --tui, --xdb, --dbx; add call
- to tyiCleanUp via tuiDo to main loop.
- (fputs_unfiltered): Tui related changes.
-
- * main.c: Define 2 new global variables, gdb_stdout and gdb_stderr
- of type GDB_FILE.
- (main): Allocate space for and initialize gdb_stdout and gdb_stdin.
-
- * objfiles.c (find_pc_sect_section): Make end condition be less
- than s->endaddr, not less than or equal to s->endaddr.
-
- * objfiles.c:
- (allocate_objfile): 2 new parameters: User_loaded and is_solib.
- When appropriate, record in the object file that it is user loaded.
- The run command can use this information to purge object file
- entries associated with the old inferior and keep user loaded
- object files loaded via the add-symbol-file command.
- (objfile_purge_solibs): New function. deletes all objectfile entries
- that are not explicitly loaded by the user.
-
- * objfiles.c:
- (objfile_relocate): Check for LOC_INDIRECT
- (find_pc_sect_section): Change condition from
- pc < s->endaddr to pc <= s->endaddr
-
- * objfiles.h:
- New variables: User_loaded and is_solib
- (OBJF_SHARED): New macro. used to distinguish objfile for
- shared library from "vanilla" objfile.
- (allocate_objfile): Add new parameters to function decl.
- (objfile_purge_solibs): New function decl.
-
- * objfiles.h: Add some typedefs: Importentry, ExportEntry.
- Add some new variables: Import_list, import_list_size,
- export_list, export_list_size
-
- * osfsolib.c:
- (symbol_add_stub): Added params to call to symbol_file_add
-
- * pa/hpux1020.mh (NATDEPFILES): Add corelow.o, symbol table and
- solib files.
-
- * pa/hpux1100.mh (NAT_FILE): Use nm-hppah11.h.
- (NATDEPFILES): Add symbol table and solib files.
-
- * pa/nm-hppah11.h: New file, HPUX11-only definitions.
-
- * pa/tm-hppa.h (proc_wait): Remove decl and macro.
-
- * parse.c (write_dollar_variable): Handle cases in which variables
- besides the debugger ones start with $ and $$.
- (parse_nested_classes_for_hpacc): New function. Parse a string that
- is possibly a namespace / nested class specification.
- (find_template_name_end): New function.
-
- * procfs.c:
- (procfs_init_inferior): Return value is now a void.
-
- * procfs.c (procfs_ops): Initializing new target ops vector fields. see list below.
-
- * procfs.c:
- (procfs_ops): Adding new target_ops vector fields and
- removing a few. see list below
-
- * procfs.c: Added new fields to procfs_ops.
- Necessary since we still have oldstyle initialization in
- this file
-
- * pyr-tdep.c (pyr_do_registers_info): Change stdout to gdb_stdout.
- (frame_locals_address): Change stderr to gdb_stderr.
- (frame_args_addr): Ditto.
-
- * pyr-xdep.c (fetch_inferior_registers): Change stderr to
- gdb_stderr.
-
- * serial.c (serial_close): Call gdb_fclose, not fclose on a
- GDB_FILE.
-
- * serial.c (serial_logchar): Change chtype to ch_type. sigh.
-
- * solib.c (look_for_base): The parameter to file must be
- of type FILE *. So cast exec_bfd -> iostream in the call
- to fileno as a FILE *, not a GDB_FILE *. This will work because
- exec_bfd -> iostream is declared and given a value in bdf and
- bfd will continue to use FILE rather than GDB_FILE.
-
- * solib.c:
- (solib_add): Remove references to exec_ops.
-
- * solib.c:
- (solib_add): Update exec_ops.to_sections
-
- * solib.c:
- (symbol_add_stub): Added params to call to symbol_file_add
-
- * solib.h:
- (SOLIB_REMOVE_INFERIOR_HOOK): New macro. defined to 0.
- functionality not implemented for this target.
-
- * solib.h: Added macro definitions. These macros generate
- error messages for solaris??
- (SOLIB_CREATE_CATCH_LOAD_HOOK)
- (SOLIB_CREATE_CATCH_UNLOAD_HOOK)
- (SOLIB_HAVE_LOAD_EVENT)
- (SOLIB_LOADED_LIBRARY_PATHNAME)
- (SOLIB_HAVE_UNLOAD_EVENT)
- (SOLIB_UNLOADED_LIBRARY_PATHNAME)
- (SOLIB_IN_DYNAMIC_LINKER)
- (SOLIB_RESTART)
-
- * somread.c (is_in_import_list): Ditto.
-
- * somread.c (som_symfile_read): Added some comments
-
- * somread.c (som_symfile_read): Read in import and export lists.
- (som_symtab_read): Change test for dynamic executable.
- (is_in_import_list): New function. Check if a given symbol name
- is in the import list.
- (init_import_symbols): New function. Read in and initialize the
- som import list.
- (init_export_symbols): New function. Read in and initialize the
- som export list.
-
- * somread.c:
- (som_symfile_read): Fix missing comment delimiters
-
- * somsolib.c (DLD_FLAGS_MAPPRIVATE): New macro.
- Define bit of __dld_flags in HP-UX a.out files.
- (DLD_FLAGS_HOOKVALID): Ditto.
- (DLD_FLAGS_LISTVALID): Ditto.
- (DLD_FLAGS_BOR_ENABLE): Ditto.
- (som_solib_total_st_size): Cumulative size in bytes of the
- symbol tables of all shared objects on the so_list_head list.
- (som_solib_st_size_threshhold_exceeded): Threshold for adding symbols
- for shlibs.
- (som_solib_sizeof_symbol_table): New function. Computes size of
- symbol table for a shlib.
- (som_solib_load_symbols): New function. Load symbols from shlib.
- (som_solib_add): Detect if __dld_list is not valid.
- Record main program's symbol table size.
- Load symbols if called from command line.
- Keep threshold into account when loading shlib symbols.
- (som_solib_create_inferior_hook): Use dld_flags macros.
- (som_sharedlibrary_info_command): Let user know if symbols were
- not loaded.
- (som_solib_restart): Discard all the shlibs descriptors.
- (_initialize_som_solib): Chenge help message for auto-solib-add
- command.
- Set threshold for symbol table to 50 megabytes.
-
- * somsolib.c (_initialize_som_solib): Added call to som_solib_restart.
- (som_solib_restart): New function
- (som_solib_in_dynamic_linker): New function
- (som_solib_desire_dynamic_linker_symbols): New function
- (som_solib_unloaded_library_pathname): New function
- (som_solib_loaded_library_pathname): New function
- (som_solib_library_pathname): New function
- (som_solib_have_unload_event): New function
- (som_solib_have_load_event): New function
- (som_solib_create_catch_unload_hook): New function
- (som_solib_create_catch_load_hook): New function
- (som_solib_create_inferior_hook): Rewritten
- dld_cache: New struct
- addr_and_unwind_t: New struct
- (find_unwind_entry) added prototype
-
- * somsolib.c (som_solib_create_inferior_hook): Introduce new local
- msymbol2 and change some msymbol's to msymbol2's -- was clobbering
- msymbol, passing a NULL to lookup_minimal_symbol_solib_trampoline,
- and ultimately core dumping with a SEGV.
-
- * somsolib.c:
- Include assert.h
- (som_solib_mapped_entry): Additional comments for text_addr,
- text_link_addr, text_end, and tsd_start_addr fields. Commenting
- out 2 tsd fields, __data_start and __data_end.
- (som_solib_add_solib_objfile): Add params to calls to symbol_file_add.
- Add some code for distinguishing between a shared library and other
- objfiles. This appears to be a prelude to thread local storage.
- (som_solib_load_symbols): Changes to printf statement
- enclosed by SOLIB_DEBUG ifdef.
- (som_solib_add): Change comment to correctly specify path
- to end.o -- /opt/langtools/lib/end.o. changes to printf statement
- enclosed by SOLIB_DEBUG ifdef.
- Removed several SOLIB_DEBUG ifdefs and the associated printfs.
- Add code to find the start address for the object file's thread
- local storage
- (som_solib_create_inferior_hook): Fix warning messages use correct
- path to end.o -- /opt/langtools/lib/end.o. Change control flow.
- No longer user early returns from function is cases of error.
- (reset_inferior_pid): New function
- (som_solib_remove_inferior_hook): New function
- (so_lib_thread_start_addr): New function. used for tsd.
-
- * somsolib.c: Removed references to ASSERT macro.
-
- * somsolib.c: Add debugging macro.
- (struct som_solib_mapped_entry): Add new field tsd_start_addr.
- (struct so_list): Added new field solib_addr.
- (som_solib_add_solib_objfile): New function.
- (som_solib_load_symbols): Rewritten.
- (som_solib_add): Make sure we don't load the symbols in if the
- threshold was exceeded.
- (som_solib_get_solib_by_pc): New function. Return the address of
- handle of the shared library.
- (som_solib_restart): Disable breakpoints at restart.
- (_initialize_som_solib): Set threshold to 100 megabytes.
-
- * somsolib.c: Add include of fcntl.h so that O_RDONLY is defined.
-
- * somsolib.h (DISABLE_UNSETTABLE_BREAK): New macro.
- (PC_SOLIB): New macro.
-
- * somsolib.h:
- (SOLIB_CREATE_CATCH_LOAD_HOOK): Define
- (SOLIB_CREATE_CATCH_UNLOAD_HOOK): Define
- (SOLIB_HAVE_LOAD_EVENT): Define
- (SOLIB_LOADED_LIBRARY_PATHNAME): Define
- (SOLIB_HAVE_UNLOAD_EVENT): Define
- (SOLIB_UNLOADED_LIBRARY_PATHNAME): Define
- (SOLIB_IN_DYNAMIC_LINKER): Define
- (SOLIB_RESTART): Define
-
- * somsolib.h:
- (SOLIB_REMOVE_INFERIOR_HOOK): New macro. defined to use
- som_solib_remove_inferior_hook.
-
- * somsolib.h:
- (som_solib_create_catch_load_hook)
- (som_solib_create_catch_unload_hook)
- (som_solib_have_load_event)
- (som_solib_loaded_library_pathname)
- (som_solib_have_unload_event)
- (som_solib_unloaded_library_pathname)
- (som_solib_in_dynamic_linker)
- Fix prototypes to use type names, not parameter names.
-
- * source.c (find_source_lines): Make non static.
- (open_source_file): Ditto.
- (source_full_path_of): New function.
- (print_source_lines): Rename to print_source_lines_base and make
- static; formatting.
- (print_source_lines): New function.
- (forward_search_command): Tui changes.
- (reverse_search_command): Tui changes.
- (_initialize_source): Add xdb and dbx compatibility commands.
-
- * source.c (list_command): Handle case of odd number of source
- lines to display.
-
- * source.c:
- (source_full_path_of): New function. file was overlooked
- in merge ;-/.
-
- * stack.c (func_command): Make high bound be <, not <=.
-
- * stack.c (_initialize_stack): For the backtrace command, delete
- the help line about usage, since this has to be a valid help
- message for the 'where' command too.
-
- * stack.c (current_frame_command): Add a check for the
- existance of a stack. If there is no stack produce an
- error message and exit.
-
- * stack.c (down_silently_base, up_silently_base,
- args_plus_locals_info, print_frame_info_base,
- print_stack_frame_base, print_stack_frame_base_stub): Declare.
- (print_frame_local_vars): Add'l parameter.
- (print_stack_frame_stub): New version created, old version renamed
- to show_and_print_stack_frame_base_stub.
- (print_stack_frame_base_stub, print_only_stack_frame_stub,
- show_and_print_stack_frame, print_only_stack_frame,
- stack_publish_stopped_with_no_frame, print_frame_info,
- show_stack_frame, backtrace_full_command, args_plus_locals_info,
- select_and_print_frame, select_and_maybe_print_frame,
- current_frame_command, func_command): New functions.
- (backtrace_command): New function, old renamed to
- backtrace_command_1.
- (print_block_frame_locals, print_frame_local_vars): Additional
- parameter, number of tabs.
- (up_silently_command): New function, old renamed to
- up_silently_command_base.
- (down_silently_command): New function, old renamed to
- down_silently_base.
- (_initialize_stack): Register new commands based on values of
- xdb_commands and dbx_commands variables.
-
- * stack.c (func_command): Make high bound be <, not <=.
-
- * stack.c (parse_frame_specification): Fix prototype to match
- function definition.
- (show_and_print_stack_frame_stub): Fix name.
- (select_and_print_frame): Change uncaught tuiDO call.
-
- * stack.c (up_silent_base): Rename from up_silently_command_base.
-
- * symfile.c (symbol_file_command): Only call SOLIB_RESTART if it's
- defined.
-
- * symfile.c (add_psymbol_with_dem_name_to_list): New function.
- Adds a symbol with a long value to a psymtab. Differs from
- add_psymbol_to_list in taking both a mangled and a demangled name.
-
- * symfile.c (compare_psymbols): Call strcmp directly, instead of
- using macro.
-
- * symfile.c (symbol_file_add): Reindent portions.
- (symbol_file_command): Add call to tuiDo.
-
- * symfile.c (symbol_file_command): Only call SOLIB_RESTART if it's
- defined.
-
- * symfile.c (symfile_bfd_open): Add code to call PXDB on hpux, if
- the file has not already been processed by pxdb.
- Added define USE_PXDB.
-
- * symfile.c (symfile_bfd_open): Change parenthesis positioning
- around call to hpread_pxdb_check.
-
- * symfile.c (symfile_bfd_open): Make not static.
- (RESET_HP_UX_GLOBALS): New macro. Resets globals when new symbol
- file loaded.
- (USE_PXDB): Not needed. Removed.
- (symbol_file_add): Add HP specific code to deal with pxdb.
- (symbol_file_command): Reset HP specific globals if new symbol file
- loaded.
- (symfile_bfd_open): Comment out checking for pxdb.
- (reread_symbols): Reset HP specific globals.
-
- * symfile.c (symfile_bfd_open): Uncomment hpus specific code.
-
- * symfile.c:
- (symbol_file_add): Add user_loaded and is_solib parameters.
- fixed number of parameters in call to allocate_objfile
- (symbol_file_command): Added call to SOLIB_RESTART macro.
- fixed number of parameters in calls to symbol_file_add.
- (add_symbol_file_command): Fixed number of parameters in calls to
- symbol_file_add.
-
- * symfile.c: Added prototype for hpread_pxdb_check.
-
- * symfile.c: Changed HPUX_SNAP1 ifdef to HPUXHPPA. enclosed calls to
- RESET_HP_UX_GLOBALS with an HPUXHPPA ifdef
-
- * symfile.h (symfile_bfd_open): Add protptype.
-
- * symfile.h: Add prototype for add_psymbol_with_dem_name_to_list.
-
- * symfile.h: Clarify purpose of auto_solib_add.
-
- * symmisc.c (maintenance_print_symbols): Call gdb_fclose, not
- fclose on a GDB_FILE* during cleanup.
- (maintenance_print_psymbols): Call gdb_fclose, not fclose on a
- GDB_FILE* during cleanup.
- (maintenance_print_msymbols): Call gdb_fclose, not fclose on a
- GDB_FILE* during cleanup.
-
- * symmisc.c (maintenance_print_symbols): Gdb_fclose now takes a
- GDB_FILE ** parameter. Fix the local GDB_FILE variables and the
- call to make_cleanup.
- (maintenance_print_psymbols): Ditto
- (maintenance_print_msymbols): Ditto
-
- * symmisc.c (print_objfile_statistics): Close quotes in
- output strings.
-
- * symmisc.c:
- (Print_symbol): Add LOC_INDIRECT to switch statement
- (print_partial_symbols): Add LOC_INDIRECT to switch statement
-
- * symtab.c (find_pc_sect_psymtab): High bounds should be <, not <=.
- (find_pc_sect_symtab): Ditto.
-
- * symtab.c (hp_som_som_object_present): New flag to indicate HP
- compiled code.
- (find_pc_sect_psymtab): Change tests to make sure we are checking
- the texthigh adress as well.
- (lookup_transparent_type): New function. Look up a type name
- in the struct_namespace. The type returned must not be opaque.
- (find_pc_sect_symtab): Make sure we check the address 'pc' itself,
- too.
- (find_addr_symbol): Prepare to handle LOC_INDIRECT address class, but
- leave it commented out.
- (find_pc_sect_line): Return correct information if pc is in import
- or export stub (trampoline).
- (decode_line_1): Skip two chars, if they are '$$'. Like for HP's
- $$dyncall. Handle cases in which varaible and function names can start
- with $.
- (overload_list_add_symbol): If cannot demangle name, use it as is.
- Free string after use.
- (make_symbol_overload_list): Initialize oload_name to NULL and
- oload_name_len to 0. If demangle not successful, use name as it is.
- Free string after use.
-
- * symtab.c (lookup_symbol): Changed call to find_pc_sect_symtab,
- to the original find_pc_symtab, in HP added fragment.
-
- * symtab.c (lookup_symbol): Change HPUX_SNAP1 ifdef to a HPUXHPPA ifdef
-
- * symtab.c (lookup_symbol): Ifdef the searching of symbol in the
- minimal symbol tables, for hpux we move this check at the end
- of the function.
- Before we error out if symbol is not found in the symtab, look
- in the statics.
- Before erroring out if static symbol not found look in the globals.
-
- * symtab.c (lookup_symbol): Return symbol as soon as found.
- (decode_line_1): Check whether we have a conditional break. Temporarily
- remove it from the line, to not confure perenthesis checking.
- Handle namespaces.
- (overload_list_add_symbol): New function. Overload
- resolution support.
- (make_symbol_overload_list): Ditto.
-
- * symtab.c:
- (find_template_name_end): New prototype decl.
- (lookup_symbol): When a global or static symbol shows up in the
- psymtab table, but not the symtab table, tell the user that
- the symbol may be an inlined function or a template function and
- provide some guidance to the user about how to more fully
- specify the symbol.
- (lookup_transparent_type): When a global or static symbol shows up
- in the psymtab table, but not the symtab table, tell the user that
- the symbol may be an inlined function or a template function and
- provide some guidance to the user about how to more fully
- specify the symbol.
- (decode_line_1): Handle template function specification when decoding a
- line. May need to be ifdefed for HP's aCC?
- (_initialize_symtab): Handle dbx commands.
-
- * symtab.h (address_class): Add new address calss for
- LOC_THREAD_LOCAL_STATIC and LOC_INDIRECT.
- (lookup_transparent_type): Add prototype.
- (exception_event_kind): New enum for exception catchpoints.
- (exception_event_record): New structure for exception catchpoints.
- (CURRENT_EXCEPTION_KIND): New macro.
- (CURRENT_EXCEPTION_CATCH_SAL): New macro.
- (CURRENT_EXCEPTION_CATCH_LINE): New macro.
- (CURRENT_EXCEPTION_CATCH_FILE): New macro.
- (CURRENT_EXCEPTION_CATCH_PC): New macro.
- (CURRENT_EXCEPTION_THROW_SAL): New macro.
- (CURRENT_EXCEPTION_THROW_LINE): New macro.
- (CURRENT_EXCEPTION_THROW_FILE) new macro.:
- (Current_EXCEPTION_THROW_PC): New macro.
-
- * symtab.h(make_symbol_overload_list): Add prototype.
-
- * symtab.h:
- (symbol_file_add): Add new params to function decl.
-
- * target.c (cleanup_target): Changed casting of default functions for
- to_has_forked, to_has_vforked, to_pid_to_exec_file to get rid of
- warnings.
-
- * target.c (cleanup_target): Changed the default functions for
- to_pid_to_exec_file and to_core_file_to_sym_file
-
- * target.c (cleanup_target): Fixed PARAMS for to_has_syscall_event
-
- * target.c (cleanup_target): Syntax error, mismatched paranthesis.
-
- * target.c:
- (Default_clone_and_follow_inferior): New funct prototype declaration
- and function definition
- (dummy_target): More target_ops vector changes for HPUX
- new fields. ifdefed for HPUX_SNAP2. New fields are
- to_post_wait, to_post_startup_inferior
- to_acknowledge_created_inferior, to_clone_and_follow_inferior,
- to_post_follow_inferior_by_clone, to_create_catch_fork_hook,
- to_create_catch_vfork_hook, to_has_forked, to_has_vforked,
- to_post_follow_vfork, to_pid_to_exec_file
- (de_fault): Add new HPUX specific target_ops operations to
- the de_fault macro
- (INHERIT): Add new HPUX specific target_ops operations to the
- INHERIT macro
- (find_default_clone_and_follow_inferior): New funct definition
- (debug_to_post_wait): New funct
- (debug_to_post_startup_inferior): New funct
- (debug_to_acknowledge_created_inferior): New funct
- (debug_to_clone_and_follow_inferior): New funct
- (debug_to_post_follow_inferior_by_clone): New funct
- (debug_to_create_catch_fork_hook): New funct
- (debug_to_create_catch_vfork_hook): New funct
- (debug_to_has_forked): New funct
- (debug_to_has_vforked): New funct
- (debug_to_post_follow_vfork): New funct
- (setup_target_debug): Initialize new target_ops vector fields.
-
- * target.c:
- (Cleanup_target): Fixed the return type on a few of the
- default function values.
-
- * target.c:
- (Dummy_target): Add 3 new fields
- (nosupport_runtime): New function, used in cleanup_target
- (cleanup_target): Changes in the de_fault macro, both to
- accomodate the new target_ops vector fields and to use
- more accurate default functions.
- (update_current_target): Add new target_ops vector fields to the
- INHERIT macro
- (generic_mourn_inferior): The call to breakpoint_init_inferior now takes a
- parameter
- (normal_pid_to_str): Adding a \0 to the end of buf.
- (debug_to_has_syscall_event): New func
- (debug_to_enable_exception_callback): New func
- (debug_to_get_current_exception_event): New func
- (setup_target_debug): Initialize the 3 new target_ops vector fields
-
- * target.c:
- (Struct signals): Fix message associated with SIGRETRACT.
-
- * target.c:
- (Dummy_target): Fix syntax error
- (cleanup_target): Changed the default values for the new
- target_ops vector fields. HP folks inappropriately set
- most of them to noprocess(). They should be a mixture
- of ignore() and return_zero().
-
- * target.c:
- (Dummy_target): Add new target_ops vector fields and their initializations
- (cleanup_target): Added new new target_ops vector fields to the de_fault
- macro definition.
- (update_current_target): Added new new target_ops vector fields to the INHERIT
- macro definition
- (return_one): New function, used by the de_fault macro
- (debug_to_post_attach): New function
- (debug_to_wait): Added new cases: Target_WAITKIND_FORKED, TARGET_WAITKIND_VFORKED,
- TARGET_WAITKIND_EXECD
- (debug_to_insert_fork_catchpoint): New function
- (debug_to_remove_fork_catchpoint): New function
- (debug_to_insert_vfork_catchpoint): New function
- (debug_to_remove_vfork_catchpoint): New function
- (debug_to_can_follow_vfork_prior_to_exec): New function
- (debug_to_insert_exec_catchpoint): New function
- (debug_to_remove_exec_catchpoint): New function
- (debug_to_core_file_to_sym_file): New function
- (setup_target_debug): Give new fields in current_target target_ops vector values.
-
- * target.c: Hp merge, 4/15/98 snapshot
- There are new target_ops fields that pertain only
- to HPUX. All the changes relate to this. First,
- new fields are added to the dummy_target target_ops
- vector: To_require_attach, to_require_detach.
-
- * target.c: Remove HPUX_SNAP1 and HPUX_SNAP2 ifdefs
-
- * thread.c (info_threads_command): Call print_only_stack_frame
- instead of print_stack_frame.
- (_initialize_thread): Make t an alias for thread only if
- xdb_commands is not set.
-
- * thread.c (thread_command): If no arguments, don't generate an
- error, instead tell the user which thread is current.
- (info_threads_commands): Don't lose the users position within the
- current thread -- remember it and then restore it.
-
- * thread.c:
- (struct thread_info): Add stepping_through_sigtramp field
- (add_thread): Initialize stepping_through_sigtramp field
- (load_infrun_state): Add stepping_through_sigtramp param and
- make sure it gets assigned a value.
- (save_infrun_state): Add stepping_through_sigtramp param and
- make sure that the value gets saved.
- (info_threads_command): Ifdefing some local variables and
- code for HPUXHPPA. HP folks want print the tid rather than pid?
- Also, looks like the HP folks solved the same thread switching
- problem that 4.17 solves. Taking 4.17.
- (restore_current_thread): Print out the current frame after
- switching threads.
- (thread_apply_all_command): Ifdefing a print statement for
- HPUXHPPA. The HP folks want to print out a tid rather than pid?
- (thread_apply_command): Ifdefing a print statement for
- HPUXHPPA. The HP folks want to print out a tid rather than pid?
- (thread_command): Decided not to take HP change.
-
- * thread.c: Fixing gdb core dump problem causing many testsuite
- failures.
- (add_thread): Remove call to bpstat_clear, initialize
- tp->stepping_through_solib_catchpoints = NULL;
-
- * thread.c: Changes for catchpoints, shared libaries,
- (thread_info): Additional fields in the thread_info struct
- for stepping_through_solib_after_catch and
- stepping_through_solib_catchpoints.
- (add_thread): Initialize the new thread_info fields.
- (load_infrun_state): Additional parameters for handling
- catchpoints and shared libraries.
- (save_infrun_state): Additional parameters for handling
- catchpoints and shared libraries.
-
- * top.c (command_loop): Initialize space_at_cmd_start to 0.
- (set_prompt): New function.
- (togglelist, stoplist): New command lists.
- (command_loop): Tui changes -- paranoia to make sure
- insert mode is off when not editing.
- (quit_force): Clean up tui on exit.
- (init_main): Make definition of info status command dependent upon
- dbx mode not being set.
- (fputs_unfiltered_hook): Changed stream parameter from FILE
- to GDB_FILE
- (flush_hook): Changed stream parameter from FILE to GDB_FILE
-
- * top.h (set_prompt): Declare.
-
- * typeprint.c (whatis_exp): Decide real runtime type. For the vtable
- case.
-
- * utils.c (query): Changes to prevent cursor from jumping around in the
- TUI. Call tuiBufferGetc explicitly, rather than passing it
- into tuiDo. The tuiDo function does some additional work
- that is inappropriate when handling queries.
- (GDB_FILE_ISATTY): New macro that takes a GDB_FILE param and
- determines whether or not it's using a tty.
- (gdb_file_isatty); called by the GDB_FILE_ISATTY macro. Does
- the actual work
- (init_page_info): Call GDB_FILE_ISATTY rather than ISATTY
- (print_spaces): Fix parameter to fputc. fix call to
- gdb_file_adjust_strbuf.
- (gdb_file_init_astring): Fix parameter to xmalloc
- (gdb_file_deallocate): New function to deallocate
- a GDB_FILE object and possibly a string buffer
- (gdb_file_init_astring): Initialize buffer as the empty
- string. Indent GNU style.
- (gdb_fopen): Gdb_fopen is called if the GDB_FILE object is
- actually afile rather than astring. The routine now allocates space
- for a GDB_FILE object and initializes its fields in addition to
- performing an fopen.
- (gdb_flush): Fix the parameter passed into fflush. It's now
- stream->ts_filestream.
- (gdb_fclose): Pass in an object of type GDB_FILE **. Fix parameter
- to fclose. It's now tmpstream->ts_filestream. Make sure to free
- the GDB_FILE object and set the GDB_FILE * object to NULL.
- (gdb_adjust_strbuf): New function. Determine if the current
- ts_strbuf field contains sufficient space to concatenate a string
- of length n on the end. If not, then reallocate the ts_strbuf.
- (print_spaces): Check to see if the GDB_FILE is afile or
- astring. If it is astring, then adjust the size of the ts_strbuf
- field and concatenate the correct number of spaces onto the end of
- the buffer. Otherwise continue to use fputc.
- (gdb_file_get_strbuf): New function. return a ptr to the ts_strbuf
- field in a GDB_FILE object.
- (gdb_file_init_astring): New function to allocate space for and
- initialize a GDB_FILE object when it is an astring.
- (set_width): Declare it.
- (pagination_enabled): Define it.
- (query): Tui changes.
- (init_page_info, set_width): New functions.
- (set_width_command): Call set_width.
- (_initialize_utils): Replace termcap stuff with call to
- init_page_info; if xdb_commands set, define am and sm commands;
- define pagination as a set/show command.
- (vfprintf_maybe_filtered): Change FILE to GDB_FILE.
- (fputs_maybe_filtered): Ditto.
- (print_spaces): Ditto.
- (gdb_printchar): Ditto.
- (gdb_flush): Ditto.
- (fputs_filtered): Ditto.
- (vfprintf_filtered): Ditto.
- (vfprintf_unfiltered): Ditto.
- (fprintf_filtered): Ditto.
- (fprintf_unfiltered): Ditto.
- (fprintfi_filtered): Ditto.
- (print_spaces_filtered): Ditto.
- (fprintf_symbol_filtered): Ditto.
- (gdb_fclose): New function.
-
- * valops.c (call_function_by_hand): Assign to param_type only
- if function has parameters.
-
- * valops.c (call_function_by_hand): Ifdef the
- HP_COMPILED_TARGET stuff.
- (value_arg_coerce): Ditto.
-
- * valops.c (call_function_by_hand): Make sure param_type is
- initialized to NULL.
-
- * valops.c (find_rt_vbase_offset): Add parameter to value_at.
- (value_rtti_type): Ditto.
- (value_full_object): Ditto.
-
- * valops.c (search_struct_field_aux): Fixed mismatching parenths
-
- * valops.c (search_struct_field_aux): Make sure TYPE_TAG_NAME
- is not null before copying it.
-
-
- * valops.c (search_struct_field_aux): Set found_class_name to null
- if class has no name (anon unions case). Adjust base_addr
- computation.
-
- * valops.c (value_arg_coerce): Change final arg to int.
-
- * valops.c (value_arg_coerce): Remove the conditional on HP
- compiled target, for doing coercion of float to double. Removed
- third parameter, using_gcc.
- (call_function_by_hand): Do not use HP_COMPILED_TARGET, just
- use the gcc_compiled variable.
-
- * valops.c (value_cast): Take case of the enclosing_type and
- pointer_to_offset fields.
- (value_at): Use VALUE_CONTENTS_ALL_RAW
- (value_fetch_lazy): Ditto
- (value_assign): Handle enclosing_type, embedded_offset and
- pointed_to_offset fields.
- (value_repeat): Use VALUE_CONTENTS_ALL_RAW and VALUE_ENCLOSING_TYPE.
- (value_ind): Set enclosing_type and embedded_offset correctly,
- for a pointer value being dereferenced. Target memory bytes
- corresponding to the size of the enclosing type are retreived.
- (value_addr): Handle enclosing_type and pointed_to_offset.
- (value_push): Use VALUE_CONTENTS_ALL and VALUE_ENCLOSING_TYPE.
- (value_arg_coerce): Coerce floats to doubles only if gcc was not
- used to compile the target.
- (call_function_by_hand): Handle pointers to functions as paramters.
- (value_array): Use VALUE_CONTENTS_ALL and VALUE_ENCLOSING_TYPE.
- (search_struct_method): Produce more informative error message.
- (find_rt_vbase_offset): Deal with negative offsets.
- (value_find_oload_method_list): New function. Return the list of
- overloaded methods of a specified name.
- (find_method_list): New function. Search through the methods of an
- object (and its bases) to find a specified method.
- (value_full_object): New function. Given a value, check its real
- run-time type.
- (value_rtti_target_type): New function. Given a pointer value V, find
- the real (RTTI) type of the object it points to.
- (value_rtti_type): New function. Find the real run-time type of a
- value using RTTI.
-
- * valops.c: Include gdbcmd.h
- Set global overload_resolution to 0.
- (find_function_in_inferior): Modify error message.
- (value_allocate_space_in_inferior): Modify error message.
- (value_cast): Deal with HP/aCC peculiarities.
- (value_of_variable): Use SYMBOL_SOURCE_NAME instead of SYMBOL_NAME.
- (value_addr): Modify address value by adding the embedded offset.
- (value_ind): Modify the address of the object by the pointed_to_offset.
- (call_function_by_hand): Do not do any extra alignment if not needed.
- Fetch the return value from the stack rather then from the register,
- for the hppa architecture.
- (search_struct_field): Rewritten. Now this function uses
- search_struct_field_aux to do all the work.
- (search_struct_field_aux): New function. This is the old
- search_struct_field rewritten.
- (find_rt_vbase_offset): Give error if virtual table pointer is not good.
- (find_overload_match): New function. Find the best function that
- matches on the argument types according to the overload resolution
- rules.
- (_initialize_valops): Add new set/show command for overload-resolution.
-
- * value.h (VALUE_POINTED_TO_OFFSET): New macro.
- Add field pointed_to_offset to value structure.
- Add prototypes for new functions in valops.c.
-
- * value.h (write_register_pid): Change prototype to match
- function.
-
- * value.h: Hp merge, 4/15/98 snapshot
- Added parameter to val_print func decl.
- Added new macro, VALUE_EMBEDDED_OFFSET, and
- new func decl, find_rt_vbase_offset, for C++
- support.
-
- * values.c (allocate_value): Allocate also for value_embedded_offset
- and value_enclosing_type.
- (value_copy): Copy value_embedded_offset and value_enclosing_type too.
- Use all_raw in copying the value itself.
- (value_primitive_field): Add handling of base subobjects.
-
- * values.c (value_copy): Copy the pointed_to_offset as well.
- (allocate_value): Allocate the pointed_to_offset as well.
- (value_virtual_fn_field): Rewrite.
-
- * values.c (value_primitive_field): Adjust embedded offset and
- offset calculation.
-
- * values.c (value_static_field): Take into consideration that static
- data members can be minimal symbols too.
-
- * values.c (value_virtual_fn_field): Fix call to value_at.
-
- * win32-nat.c (handle_load_dll): Added params to call to symbol_file_add.
-
- Other changes have to do with XDB compatability. Leave oout
- for now.
-
- defs.h (vfprintf_filtered): Change FILE to GDB_FILE in decl.
- (fprintf_filtered): Ditto.
- (fprintfi_filtered): Ditto.
- (vfprintf_unfiltered): Ditto.
- (fprintf_unfiltered): Ditto.
-
- infcmd.c (_initialize_infcmd): If xdb_commands is set, make S an
- alias for next and define R, lr, g. Define go.
-
- pyr-tdep.c (pyr_print_insn): Change FILE to GDB_FILE.
-
-
- * breakpoint.c (create_temp_exception_breakpoint): #If it out --
- nothing calls it.
- (bpstat_stop_status): Don't call SOLIB_HAVE_LOAD_EVENT if it's not
- defined; don't call SOLIB_HAVE_UNLOAD_EVENT if it's not defined.
- (bpstat_get_triggered_catchpoints): If we don't have shared
- library support, then don't call SOLIB_LOADED_LIBRARY_PATHNAME nor
- SOLIB_UNLOADED_LIBRARY_PATHNAME.
- (watch_command_1): Don't require a run before a watch command
- unless we're on HP [it's an HP OS bug, not a generic limitation]
- (catch_load_command_1): Don't define if no shared libraries.
- (catch_command_1): Don't claim to support fork catchpoints unless
- CHILD_INSERT_FORK_CATCHPOINT is defined, don't claim to support
- vfork catchpoints unless CHILD_INSERT_VFORK_CATCHPOINT is defined,
- don't clain to support shared library load catchpoints if shared
- libraries aren't supported, and don't claim to support exec
- catchpoints unless CHILD_INSERT_EXEC_CATCHPOINT is defined
-
- There are new target_ops vector fields that pertain
- only to HPUX. Added the to_require_attach and
- to_require_detach fields to exec_ops. These new
- fields are ifdef'ed for HPUX_SNAP1.
-
- * breakpoint.h:
- Fix compile error in enum bptype.
-
- * coff-solib.h:
- Fixed a number of macro definitions. SOLIB_LOADED_LIBRARY_PATHNAME,
- SOLIB_HAVE_LOAD_EVENT, SOLIB_HAVE_UNLOAD_EVENT,
- SOLIB_UNLOADED_LIBRARY_PATHNAME, SOLIB_IN_DYNAMIC_LINKER. These
- macros are only meaningful (for now) for SOM. So, all
- the macros were defined as error(...), but were used in
- conditions. This caused the compile to crap out. I redefined
- these (for now) to be 0.
-
- * procfs.c:
- (procfs_create_inferior): Fix call to fork_inferior -- need another
- parameter.
-
- * solib.h:
- Fixed a number of macro definitions. SOLIB_LOADED_LIBRARY_PATHNAME,
- SOLIB_HAVE_LOAD_EVENT, SOLIB_HAVE_UNLOAD_EVENT,
- SOLIB_UNLOADED_LIBRARY_PATHNAME, SOLIB_IN_DYNAMIC_LINKER. These
- macros are only meaningful (for now) for SOM. So, all
- the macros were defined as error(...), but were used in
- conditions. This caused the compile to crap out. I redefined
- these (for now) to be 0.
-
- * valops.c:
- (search_struct_field): Undeclared local variable, "assigned".
- (find_rt_vbase_offset): Fixed call to value_at
-
- * value.h: Fix signature for find_rt_vbase_offset funct decl
- (missing a param)
-
-Wed Dec 30 17:48:12 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- From J.T. Conklin <jtc@redbacknetworks.com>:
- * i386-stub.c: Fix error string in last change.
-
-1998-12-30 Jason Molenda (jsm@bugshack.cygnus.com)
-
- * utils.c: <Readline/readline.h> instead of "readline/readline.h".
-
- * configure.in (TERM_LIB): Search for the appropriate term library
- on the host system.
- * configure: Regenerated.
- * Makefile.in (TERMCAP): Set based on autoconf check.
- * config/*/*.mh: Don't override TERMCAP setting.
-
-Wed Dec 30 17:23:14 1998 Mark Alexander <marka@cygnus.com>
-
- * value.c (value_virtual_fn_field): Handle the situation where
- vtbl is a pointer to a structure instead of a pointer to an array.
-
-Mon Dec 28 17:43:36 1998 David Taylor <taylor@texas.cygnus.com>
-
- The following changes were made by Jim Blandy <jimb@cygnus.com>,
- Edith Epstein <eepstein@cygnus.com>, Elena Zannoni
- <ezannoni@cygnus.com> Stan Shebs <shebs@cygnus.com>, and David
- Taylor <taylor@cygnus.com>, as part of the project to merge in
- changes originally made by HP; HP did not create ChangeLog
- entries.
-
- * c-lang.h (cp_print_value_fields): Update prototype; fixed
- prototype decl for c_val_print function -- it needed an
- embedded_offset param; fixed prototype of cp_print_value_fields.
- Include value.h.
- (C_LANG_H): Define.
-
- * c-valprint.c (c_val_print): Add new parameter embedded_offset.
- Add embedded_offset to valaddr in function calls. fix calls to
- val_print, and cp_print_value_fields. Attempt to determine the
- real type of the object to be printed. fixed call to
- cp_print_value_fields. process TYPE_CODE_METHOD as well. moved
- call to check_typedef out of conditional. add embedded offset
- param to val_print call.
-
- (c_value_print): Add new parameter to call to val_print. Handle
- pointer to class case. Ensure that const char *, const unsigned
- char * come out without the type but the volatile variants and the
- signed variants don't.
-
- * ch-lang.h (chill_val_print): Add parameter to decl.
-
- * ch-valprint.c: The various print routines have an additional
- parameter. Currently, the new parameter is only used when printing
- C++ expressions. So, in ch-valprint.c, the new parameter is always
- 0. Changes in calls to val_print, chill_val_print, c_val_print
- Affected functions are chill_val_print_array_elements,
- chill_val_print, chill_print_value_fields, chill_value_print.
-
- * cp-valprint.c add vtable pointers names for aCC (HP) compiler.
- (cp_print_class_method): Print message for HP/aCC case.
- (cp_print_class_member): Add comments.
- (cp_print_value): Adjust address computations for virtual base
- classes. add new parameter 'offset'. Find correct offset for
- base class in HP/aCC case. Change call to cp_print_value_fields
- to have extra par.
- (cp_print_value_fields): Do not print also if the only field is
- the vtable pointer. Print out vtable ptr, for HP/aCC compiled
- case. do not print leading '=' in case of anonymous union, or
- struct. add new parameter 'offset'. Do not print the vtable
- pointer as a member, in the HP aCC case. Changed calls to
- val_print to have extra parameter.
- (cp_print_hpacc_virtual_table_entries): New function. Print vtable
- entries, in HP/aCC compiled case.
- (cp_print_static_field): Change call to cp_print_value_fields, and
- val_print.
-
- * d30v-tdep.c (d30v_print_register): Add embedded_offset param
- to val_print call.
-
- * defs.h: Additional include files included when TUI is defined.
- (gdb_file_isatty): New function decl.
- (GDB_FILE): If TUI is defined, define a structure rather
- than making this an alias for FILE.
- (gdb_stdout, gdb_stderr): If TUI is defined, then define these
- as pointers to variables of type GDB_FILE rather than making them
- be aliases for stdout and stderr.
- (TUIDO): Add definition conditionalized on definition
- (or lack thereof) of TUI.
- (command_class): Add two additional values.
- (precision_type): New enum.
- (gdb_fclose): Add decl.
- (store_address): Change prototype to match function.
- (tui_version, xdb_commands, dbx_commands): Add decls.
- (gdb_file_deallocate): New function decl
- (pa_do_strcat_registers_info): New function decl.
- (streamtype): New enumerated type to distinguish between output to
- a FILE and output to a buffer.
- (tui_stream): New struct type, named GDB_FILE.
- (gdb_stdout): Of type GDB_FILE, will pass this around gdb rather
- than stdout.
- (gdb_stderr): Of type GDB_FILE, will pass this around gdb rather
- than stderr.
- (fputs_unfiltered_hook): Change stream parameter from FILE to
- GDB_FILE.
- (flush_hook): Change stream parameter from FILE to GDB_FILE.
- (gdb_fclose): Fix decl for gdb_fclose; parameter is now of
- type GDB_FILE **.
- (gdb_file_adjust_strbuf): New function decl. function lives
- in utils.c.
- (gdb_file_init_astring): New function decl. function lives
- in utils.c.
- (gdb_file_get_strbuf): New function decl. function lives in
- utils.c.
- (source_full_path_of): Declare.
-
- * exec.c (_initialize_exec): Make definition of file command be
- dependent upon dbx_commands not being set.
- (exec_file_attach): New function.
- (exec_file_command): Call it.
- (exec_ops): Add new target vector fields.
-
- * f-lang.h (f_print_type): Change FILE to GDB_FILE in decl.
- (f_val_print): Ditto.
- (f_val_print): Add parameter to the function decl.
-
- * f-valprint.c (_initialize_f_valprint): If xdb_commands is set,
- define lc command.
- (f77_create_arrayprint_offset_tbl): Change FILE to GDB_FILE.
- (f77_print_array): Ditto.
- (f77_print_array_1): Ditto.
- (f_val_print): Ditto.
- (f_val_print): Add a parameter; this new parameter is currently
- only non-zero when handling C++ expressions. In this file its
- value is always 0. changed fflush to gdb_flush.
-
- * gnu-nat.c: (init_gnu_ops): Add new target vector fields.
- (gnu_create_inferior): Add param to fork_inferior call.
-
- * hppa-tdep.c (after_prologue): If f is NULL, don't dereference
- it. if no debug info, return zero telling caller that we need to
- find the end of the prologue via the hard way (instruction
- examination).
- (find_unwind_entry): Avoid dereferencing a null
- pointer.
- (hppa_pid_to_exec_file): Deleted -- no longer used.
- (hppa_prepare_to_proceeed): Add prototype.
- (read_unwind_info): Purecov comments, bug fixes.
- (find_unwind_entry): Purecov comments, bug fixes.
- (find_stub_with_shl_get): Purecov comments.
- (frame_chain): Additional parens.
- (hppa_push_arguments): Changes to commented out version of routine.
- (hppa_fix_call_dummy): Purecov comments, fix location of end.o.
- (in_solib_call_trampoline): Purecov comments.
- (in_solib_return_trampoline): Purecov comments.
- (setup_d_pid_in_inferior): Fix location of end.o.
- (initialize_hp_cxx_exception_support): Fix location of end.o.
- (child_enable_exception_callback): Purecov comments.
- (pa_do_strcat_registers_info): Has a new parameter, precision,
- which is passed into the call to pa_strcat_fp_reg to indicate
- whether to display the floating point registers using
- single or double preceision.
- (pa_strcat_registers): Introduce local variable, precision, and
- pass it into call to pa_strcat_fp_reg.
- (pa_strcat_fp_reg): Modified function. New parameter, precision,
- used by function to decide whether to use single or double
- precision. Also add the code to put a double precision value
- into a buffer.
- (pa_do_strcat_registers_info): New routine. called by
- tui/tuiRegs.c:_tuiRegisterFormat to place a register name
- and value into a string buffer. Interface may change in
- future. Checking this in so that we have something
- functional for HP.
- (pa_strcat_registers): New routine, called by
- pa_do_strcat_registers_info. Does same thing as
- pa_print_registers except it takes a stream parameter.
- This routine should disappear in future. Checking in
- so that we have something functional to give HP
- (pa_strcat_fp_reg): New routine, called by
- pa_do_strcat_registers_info and pa_strvat_registers
- to place a floating point register name and value into
- a buffer. This interface may change in future.
- Checking in so that we have something functional to give HP.
- (pa_print_fp_reg): Change prototype to match def'n.
- (pa_register_look_aside): Fix comment immediately before function.
- Changes to better support stack unwinding, reading and writing
- registers for HPUX. New includes ptrace.h, bfd.h, dl.h.
- (internalize_unwinds): Initialize new fields in table.
- (read_unwind_info): Entries in the table are now more complex
- structures. References of the form ...->table[index].stub_type are
- now ...->table[index].stub_unwind.stub_type.
- (find_proc_framesize): Add a check for pc == 0.
- (rp_saved): Entries in the table are now more complex
- structures. References of the form ...->table[index].stub_type are
- now ...->table[index].stub_unwind.stub_type.
- (frameless_function_invocation): Stub_type becomes
- stub_unwind.stub_type
- (saved_pc_after_call): Stub_type becomes stub_unwind.stub_type
- (hppa_frame_saved_pc): Stub_type becomes stub_unwind.stub_type
- (frame_chain_valid): Stub_type becomes stub_unwind.stub_type
- (hppa_call_dummy): Stub_type becomes stub_unwind.stub_type
- (pa_print_fp_reg): Additional params to call val_print
- (in_solib_call_trampoline): Stub_type becomes
- stub_unwind.stub_type
- (in_solib_return_trampoline): Stub_type becomes
- stub_unwind.stub_typ
- (skip_trampoline_code): Additional code to handle external
- dyncalls. Also stub_type becomes stub_unwind.stub_type
- (hppa_pid_to_exec_file): New funct. FOr HPUX 10.0 and beyond there
- is an explicit ptrace request for getting the pathname associated
- with a process id (pid).
- (hppa_pid_to_exec_file): Remove unwanted param from call to
- call_ptrace.
- (args_for_find_stub): New structure.
- (find_unwind_entry): Deal with null input pc value.
- (rp_saved): Ditto.
- For the import stub, return -24 always.
- (hppa_frame_saved_pc): Save old pc value, to detect we are in a loop.
- (init_extra_frame_info): Use TARGET_READ_FP.
- (frame_chain): Include thread support.
- If the caller's pc is zero, we lose and return, just like stack
- bottom.
- Disable warning about being unable to find unwind info.
- (hppa_push_arguments): Rewrite.
- (hppa_value_returned_from_stack): New function. Handles returning
- a value larger than 64 bits, stored on the stack.
- (find_stub_with_shl_get): New function. To look up symbols in shlibs.
- (cover_find_stub_with_shl_get): New function. Cover routine for
- find_stub_with_shl_get to pass to catch_errors.
- (hppa_fix_call_dummy): Comment out old stub mechanism.
- Rewrite using dyncall.
- (target_read_fp): New function.
- (pa_do_registers_info): Floating point registers start at FP4.
- (pa_print_registers): Use FP4_REGNUM instead of 72.
- (skip_trampoline_code): Do machine instruction matching for PA2.0.
- (setup_d_pid_in_inferior): New function. Exception handling support.
- (initialize_hp_cxx_exception_support): Ditto.
- (child_enable_exception_callback): Ditto.
- (child_get_current_exception_event): Ditto.
-
- * hpux-thread.c (hpux_thread_ops): Add new target vector fields.
-
- * infcmd.c: Include objfiles.h.
- (attach_command): New local variable, exec_file, add code to
- determine exec_file from pid if exec_file is not already known,
- call new target operation, target_post_attach -- a no-op unless
- on HPUXHPPA.
- (detach_command): After detaching, do a SOLIB_RESTART.
- (objfiles.h): Fix typo on include line.
- (run_command): Only call SOLIB_RESTART if it's defined.
- (detach_command): Ditto.
- (run_command): If program has already been started, and decide
- to restart it, the kill the target, flush the caches,
- call init_wait_for_inferior. Also purge old solib objfiles.
- (run_stack_dummy): Add calls to
- disable_watchpoints_before_interactive_call_start and
- enable_watchpoints_after_interactive_call_stops.
- (finish_command): Alter code handling the evaluation and printing
- of the target function's return value.
- (attach_command): When given a pid, but no exec file, try to
- determine the exec file from the process. If the process does not
- record a full path name, try to qualify the filename against the
- source path.
- (_initialize_infcmd): Add some verbiage about how to use the
- attach command.
- (do_registers_info): Changed calls to val_print
- made the symfile.h include preceed the
- objfiles.h include. The other ordering caused a
- compile problem (incompletely defined types).
-
- * inftarg.c (child_post_attach): Fix decl, make static.
- (proc_wait): Make globally visible.
- (child_insert_fork_catchpoint, etc): Fix return type.
- (child_detach_from_process): Declare.
- (child_attach_to_process): Declare.
- (child_stop): Make static to match decl.
- (ptrace_him): Change prototype back to return int.
- (ptrace_me): Remove debug output, pass NULL to fork_inferior if
- not HPUX.
- (proc_wait): function prototype and definition are enclosed by
- proc_wait ifndef
- (child_attach_to_process): New function, does most of the work
- that child_attach used to do and some additional work to determine
- whether gdb is already attached to the target how to react.
- (child_attach): Altered. It's now a wrapper for
- child_attach_to_process.
- (child_require_attach): New function, called if should attach even
- when gdb is already attached to target.
- (child_detach_from_process): New function, does most of the work
- that child_detach used to do and some additional work to determine
- whether gdb is currently attached to the target.
- (child_detach): Altered. It's now a wrapper for
- child_detach_from_process.
- (child_require_detach): New function, called if should try to
- detach even when gdb is not attached to target.
- (ptrace_him): Calls a new function,
- target_acknowledge_forked_child. Currently,
- target_acknowledge_forked_child, is only defined to do something
- for HPUX.
- (child_create_inferior): Changed call to fork_inferior.
- (child_ops): Add to_require_attach and to_require_detach fields
- to the child_ops target ops vector.
- Some hacks for ttrace work:
- (child_wait): Additional local variables, additional code in
- while loop to check for process exited, process forked,
- process vforked, process execd.
- (child_thread_alive): John B. seems to think that the kill
- call is inapproapriate for HPUX.
- (child_attach_to_process): Using strtol rather than atoi.
- no longer check for case where there is no known exec file.
- (child_post_attach): New function, a default, a no-op.
- (child_insert_fork_catchpoint): New function, a default, a no-op.
- (child_remove_fork_catchpoint): New function, a default, a no-op.
- (child_insert_vfork_catchpoint): New function, a default, a no-op.
- (child_remove_vfork_catchpoint): New function, a default, a no-op.
- (child_can_follow_vfork_prior_to_exec ):new function, a default,
- a no-op.
- (child_insert_exec_catchpoint): New function, a default, a no-op.
- (child_remove_exec_catchpoint): New function, a default, a no-op.
- (child_has_execd): New function, a default, returns 0.
- (child_reported_exec_events_per_exec_call): New function, a
- default, returns 1.
- (child_has_exited): New function, a default.
- (child_core_file_to_sym_file): New function, a default, returns NULL.
- (child_ops): Initialize new target vector fields.
-
- * jv-lang.h: (Java_val_print): Add embedded_offset param to func
- decl.
-
- * jv-valprint.c: Changing calls to val_print to accomodate new param.
- (java_value_print): Add embedded_offset param to val_print call
- (java_print_value_fields): Add embedded_offset param to val_print
- call.
- (java_val_print): Add embedded_offset param. alter call to
- c_val_print to accomodate embedded_offset param.
-
- * language.c (lang_bool_type): Return builtin_type_bool in c++
- case.
- (unk_lang_val_print): Add embedded_offset param to
- prototype decl and definition.
-
- * language.h (LA_VAL_PRINT macro, la_val_print function decl):
- altered to accomodate the new parameter to the various print
- functions.
-
- * m2-lang.h (m2_val_print): Add a parameter to the function decl.
-
- * m2-valprint.c (m2_val_print): Add a parameter.
- This parameter is currently only used when evaluating C++
- expressions. So, it is always 0 in this file.
-
- * m3-nat.c (m3_create_inferior): Add param to fork_inferior call
- (m3_pid_to_exec_file): New function
- (m3_ops): Add new target vector fields.
-
- * mac-nat.c (init_child_ops): Add new target vector fields.
-
- * mips-tdep.c: Chnages to accomodate additional parameter
- to val_print.
- (mips_print_register): Alter calls to val_print
-
- * monitor.c (monitor_write): Change stderr to gdb_stderr.
- (monitor_remove_breakpoint): Ditto.
- (init_base_monitor_ops): Add new target vector fields.
-
- * ppc-bdm.c (init_bdm_ppc_ops): Add new target vector fields.
-
- * printcmd.c (do_examine): When saving a value_ptr, remove it from
- the list of value_ptr's to be freed automatically; when discarding
- a previously saved value_ptr, free it.
- (print_formatted): Update comments; add new comments.
- (printf_command, print_insn): Purecov comments.
- (_initialize_printcmd): Add assign as a command if dbx_commands is
- set; create va as an alias for disassemble if xdb_commands is set.
- (address_info): New cases LOC_INDIRECT and
- LOC_THREAD_LOCAL_STATIC.
- (display_command): If tui_version and exp starts with a '$', then
- don't display it unless tui_vSetLayoutTo fails.
- (disassemble_command): Add tuiDo calls.
- (print_scalar_formatted): For integers that are long long, check
- the print format and print out in binary octal, decimal, or
- hex. Call the new print_*_chars functions in valprint.c
- (print_frame_args): Altered calls to val_print, to reflect
- additional parameter to val_print (case LOC_BASEREG_ARG).
-
- * procfs.c: (Procfs_init_inferior): Return value is now a void.
- (procfs_ops): Add new target vector fields.
- (procfs_create_inferior): Fix call to fork_inferior -- need another
- parameter.
-
- * remote-adapt.c (adapt_open): Change stderr to gdb_stderr.
- (adpat_insert_breakpoint): Ditto.
- (init_adapt_ops): Add new target vector fields.
-
- * remote-array.c (array_wait): Change fflush to gdb_flush and
- stdout to gdb_stdout.
- (init_array_ops): Add new target vector fields.
-
- * remote-bug.c (bug_load): Change fflush to gdb_flush; stdout to
- gdb_stdout.
- (bug_wait): Change stderr to gdb_stderr.
- (bug_insert_breakpoint): Ditto.
- (init_bug_ops): Add new target vector fields.
-
- * remote-e7000.c
- (init_e7000_ops): Add new target vector fields.
- * remote-eb.c (init_eb_ops): Ditto.
- * remote-es.c (init_es1800_ops): Ditto.
- (init_es1800_child_ops): Ditto.
- * remote-es.c (init_es1800_ops): Ditto.
- (init_es1800_child_ops): Ditto.
- * remote-hms.c (init_hms_ops): Ditto.
- * remote-hms.c (init_hms_ops): Ditto.
- * remote-nindy.c (init_nindy_ops): Ditto.
- * remote-nrom.c (init_nrom_ops): Ditto.
- * remote-os9k.c (init_rombug_ops): Ditto.
- * remote-rdp.c (init_remote_rdp_ops): Ditto.
- * remote-sds.c (init_sds_ops): Ditto.
- * remote-sim.c (init_gdbsim_ops): Ditto.
- * remote-st.c (init_st2000_ops): Ditto.
- * remote-udi.c (init_udi_ops): Ditto.
- * remote-vx.c (init_vx_ops): Ditto.
- (init_vx_run_ops): Ditto.
- * remote-vx.c: (Init_vx_ops): Ditto.
- (init_vx_run_ops): Ditto.
-
- * remote-mips.c (mips_getstring): Change stderr to gdb_stderr.
- (pmon_insert_breakpoint): Ditto.
- (pmon_remove_breakpoint): Ditto.
- (check_lsi_error): Ditto.
- (common_breakpoint): Ditto.
- (pmon_makeb64): Ditto.
-
- * remote-mips.c (mips_xfer_memory): Change fflush to gdb_flush;
- change stdout to gdb_stdout.
-
- * remote-mm.c (mm_open): Change stderr to gdb_stderr.
- (init_mm_ops): Add new target vector fields.
- (mm_load): Fixed params in commented out call to symbol_file_add.
-
- * remote-nindy.c (instream): Change decl to FILE.
-
- * remote-udi.c (udi_load): Fixed params in call to symbol_file_add.
-
- * remote-vx.c (vx_add_symbols): Fixed params in call to
- symbol_file_add.
-
- * remote.c (init_remote_ops): Cosmetic change to match expected
- test output.
-
- * rs6000-nat.c (add_vmap): Add params to call to allocate_objfile.
-
- * scm-lang.h: Add parameter to scm_val_print function decl.
-
- * scm-valprint.c (scm_scmval_print): Cast svalue to (int); new
- parameter. This parameter is currently only used when evaluating
- C++ expressions. So, it is always 0 in this file.
- (c_val_print): Fixed prototype decl; it needed an embedded_offset
- param.
-
- * sol-thread.c (sol_core_ops): Add new target vector fields.
- (sol_thread_ops): Ditto.
-
- * somsolib.c (DLD_FLAGS_MAPPRIVATE): New macro.
- Define bit of __dld_flags in HP-UX a.out files.
- (DLD_FLAGS_HOOKVALID): Ditto.
- (DLD_FLAGS_LISTVALID): Ditto.
- (DLD_FLAGS_BOR_ENABLE): Ditto.
- (som_solib_total_st_size): Cumulative size in bytes of the
- symbol tables of all shared objects on the so_list_head list.
- (som_solib_st_size_threshhold_exceeded): Threshold for adding symbols
- for shlibs.
- (som_solib_sizeof_symbol_table): New function. Computes size of
- symbol table for a shlib.
- (som_solib_load_symbols): New function. Load symbols from shlib.
- (som_solib_add): Detect if __dld_list is not valid.
- Record main program's symbol table size.
- Load symbols if called from command line.
- Keep threshold into account when loading shlib symbols.
- (som_solib_create_inferior_hook): Use dld_flags macros.
- (som_sharedlibrary_info_command): Let user know if symbols were
- not loaded.
- (som_solib_restart): Discard all the shlibs descriptors.
- (_initialize_som_solib): Chenge help message for auto-solib-add
- command.
- Set threshold for symbol table to 50 megabytes.
- (_initialize_som_solib): Add call to som_solib_restart.
- (som_solib_restart): New function
- (som_solib_in_dynamic_linker): New function
- (som_solib_desire_dynamic_linker_symbols): New function
- (som_solib_unloaded_library_pathname): New function
- (som_solib_loaded_library_pathname): New function
- (som_solib_library_pathname): New function
- (som_solib_have_unload_event): New function
- (som_solib_have_load_event): New function
- (som_solib_create_catch_unload_hook): New function
- (som_solib_create_catch_load_hook): New function
- (som_solib_create_inferior_hook): Rewritten
- dld_cache: New struct
- addr_and_unwind_t: New struct
- (find_unwind_entry) add prototype
- Include assert.h, remove references to ASSERT macro,
- add include of fcntl.h so that O_RDONLY is defined.
- (som_solib_create_inferior_hook): Introduce new local
- msymbol2 and change some msymbol's to msymbol2's -- was clobbering
- msymbol, passing a NULL to lookup_minimal_symbol_solib_trampoline,
- and ultimately core dumping with a SEGV.
- (som_solib_mapped_entry): Additional comments for text_addr,
- text_link_addr, text_end, and tsd_start_addr fields. Commenting
- out 2 tsd fields, __data_start and __data_end.
- (som_solib_add_solib_objfile): Add params to calls to symbol_file_add.
- Add some code for distinguishing between a shared library and other
- objfiles. This appears to be a prelude to thread local storage.
- (som_solib_load_symbols): Changes to printf statement
- enclosed by SOLIB_DEBUG ifdef.
- (som_solib_add): Change comment to correctly specify path
- to end.o -- /opt/langtools/lib/end.o. changes to printf statement
- enclosed by SOLIB_DEBUG ifdef.
- Removed several SOLIB_DEBUG ifdefs and the associated printfs.
- Add code to find the start address for the object file's thread
- local storage
- (som_solib_create_inferior_hook): Fix warning messages use correct
- path to end.o -- /opt/langtools/lib/end.o. Change control flow.
- No longer user early returns from function is cases of error.
- (reset_inferior_pid): New function
- (som_solib_remove_inferior_hook): New function
- (so_lib_thread_start_addr): New function. used for tsd.
- (struct som_solib_mapped_entry): Add new field tsd_start_addr.
- (struct so_list): Add new field solib_addr.
- (som_solib_add_solib_objfile): New function.
- (som_solib_load_symbols): Rewritten.
- (som_solib_add): Make sure we don't load the symbols in if the
- threshold was exceeded.
- (som_solib_get_solib_by_pc): New function. Return the address of
- handle of the shared library.
- (som_solib_restart): Disable breakpoints at restart.
-
- * sparcl-tdep.c (init_sparclite_ops): Add new target vector fields.
-
- * target.c (cleanup_target): Changed casting of default functions
- for to_has_forked, to_has_vforked, to_pid_to_exec_file to get rid
- of warnings. Fixed PARAMS for to_has_syscall_event. Fixed the
- return type on a few of the default function values.
- (cleanup_target): Changes in the de_fault macro, both to
- accomodate the new target_ops vector fields and to use
- more accurate default functions.
- (debug_to_open): Change stderr to gdb_stderr.
- (debug_to_close): Ditto.
- (debug_to_attach): Ditto.
- (debug_to_post_attach): Ditto.
- (debug_to_require_attach): Ditto.
- (debug_to_detach): Ditto.
- (debug_to_require_detach): Ditto.
- (debug_to_resume): Ditto.
- (debug_to_wait): Ditto.
- (debug_to_post_wait): Ditto.
- (debug_to_fetch_registers): Ditto.
- (debug_to_store_registers): Ditto.
- (debug_to_prepare_to_store): Ditto.
- (debug_to_xfer_memory): Ditto.
- (debug_to_files_info): Ditto.
- (debug_to_insert_breakpoint): Ditto.
- (debug_to_remove_breakpoint): Ditto.
- (debug_to_terminal_init): Ditto.
- (debug_to_terminal_inferior): Ditto.
- (debug_to_terminal_ours_for_output): Ditto.
- (debug_to_terminal_ours): Ditto.
- (debug_to_terminal_info): Ditto.
- (debug_to_kill): Ditto.
- (debug_to_load): Ditto.
- (debug_to_lookup_symbol): Ditto.
- (debug_to_create_inferior): Ditto.
- (debug_to_post_startup_inferior): Ditto.
- (debug_to_acknowledge_created_inferior): Ditto.
- (debug_to_clone_and_follow_inferior): Ditto.
- (debug_to_post_follow_inferior_by_clone): Ditto.
- (debug_to_insert_fork_catchpoint): Ditto.
- (debug_to_remove_fork_catchpoint): Ditto.
- (debug_to_insert_vfork_catchpoint): Ditto.
- (debug_to_remove_vfork_catchpoint): Ditto.
- (debug_to_has_forked): Ditto.
- (debug_to_has_vforked): Ditto.
- (debug_to_can_follow_vfork_prior_to_exec): Ditto.
- (debug_to_post_follow_vfork): Ditto.
- (debug_to_insert_exec_catchpoint): Ditto.
- (debug_to_remove_exec_catchpoint): Ditto.
- (debug_to_has_execd): Ditto.
- (debug_to_reported_exec_events_per_exec_call): Ditto.
- (debug_to_has_syscall_event): Ditto.
- (debug_to_has_exited): Ditto.
- (debug_to_mourn_inferior): Ditto.
- (debug_to_can_run): Ditto.
- (debug_to_notice_signals): Ditto.
- (debug_to_thread_alive): Ditto.
- (debug_to_stop): Ditto.
- (debug_to_enable_exception_callback): Ditto.
- (debug_to_get_current_exception_event): Ditto.
- (debug_to_pid_to_exec_file): Ditto.
- (debug_to_core_file_to_sym_file): Ditto.
- (default_clone_and_follow_inferior): New function prototype
- decl and function definition.
- (dummy_target): Add new target_ops vector fields and their
- initializations. More target_ops vector changes for HPUX new
- fields.
- (de_fault): Add new HPUX specific target_ops operations to the
- de_fault macro
- (INHERIT): Add new HPUX specific target_ops operations.
- (debug_to_post_wait): New function.
- (debug_to_post_startup_inferior): Ditto.
- (debug_to_acknowledge_created_inferior): Ditto.
- (debug_to_clone_and_follow_inferior): Ditto.
- (debug_to_post_follow_inferior_by_clone): Ditto.
- (debug_to_create_catch_fork_hook): Ditto.
- (debug_to_create_catch_vfork_hook): Ditto.
- (debug_to_has_forked): Ditto.
- (debug_to_has_vforked): Ditto.
- (debug_to_post_follow_vfork): Ditto.
- (setup_target_debug): Initialize new target_ops vector fields.
- (nosupport_runtime): New function, used in cleanup_target
- (update_current_target): Add new new target_ops vector fields to
- the INHERIT macro definition.
- (generic_mourn_inferior): The call to breakpoint_init_inferior now
- takes a parameter.
- (normal_pid_to_str): Add a \0 to the end of buf.
- (debug_to_has_syscall_event): New function.
- (debug_to_enable_exception_callback): New function.
- (debug_to_get_current_exception_event): New function.
- (setup_target_debug): Initialize the 3 new target_ops vector fields
- (struct signals): Fix message associated with SIGRETRACT.
- (return_one): New function, used by the de_fault macro
- (debug_to_post_attach): New function.
- (debug_to_wait): Add new cases TARGET_WAITKIND_FORKED,
- TARGET_WAITKIND_VFORKED, TARGET_WAITKIND_EXECD.
- (debug_to_insert_fork_catchpoint): New function.
- (debug_to_remove_fork_catchpoint): Ditto.
- (debug_to_insert_vfork_catchpoint): Ditto.
- (debug_to_remove_vfork_catchpoint): Ditto.
- (debug_to_can_follow_vfork_prior_to_exec): Ditto.
- (debug_to_insert_exec_catchpoint): Ditto.
- (debug_to_remove_exec_catchpoint): Ditto.
- (debug_to_core_file_to_sym_file): Ditto.
- (setup_target_debug): Give new fields in current_target target_ops
- vector values.
-
- * target.h: Include symtab.h.
- (target_waitkind): New enumerated values
- TARGET_WAITKIND_SYSCALL_ENTRY, TARGET_WAITKIND_SYSCALL_RETURN,
- TARGET_WAITKIND_FORKED, TARGET_WAITKIND_VFORKED,
- TARGET_WAITKIND_EXECD.
- (target_waitstatus): Add a syscall_id field to structure.
- (child_has_syscall_event): New decl.
- (child_thread_alive): New decl.
- (target_ops): Add 3 new fields: To_has_syscall_event,
- to_enable_exception_callback, to_get_current_exception_event
- (target_enable_exception_callback): New macro.
- (target_has_syscall_event): New macro.
- (target_get_current_exception_event): New macro.
- (TARGET_DISABLE_HW_WATCHPOINTS): New macro.
- (TARGET_ENABLE_HW_WATCHPOINTS): New macro.
- (PC_REQUIRES_RUN_BEFORE_USE): New macro.
- (target_tid_to_str): New macro.
- (target_waitstatus): Additional fields in struct to keep track
- of child pid and pathname to execd file.
- (target_ops): Add in the new target_ops function pointer fields.
- New macros to go along with new target_ops fields.
- In target_waitstatus.value, change name of child_pid field to
- related_pid.
- (target_pid_or_tid_to_str): Define default macro.
- Add missing #endif after PC_REQUIRES_RUN_BEFORE_USE definition
- (ENSURE_VFORKING_PARENT_REMAINS_STOPPED): Define default macro.
- (RESUME_EXECD_VFORKING_CHILD_TO_GET_PARENT_VFORK): Define default
- macro.
- There are new function decls for to_require_attach
- and to_require_detach. There are also new macros,
- target_require_attach and target_require_detach. There are
- also new function decls for find_default_require_detach
- and find_default_require_attach.
- (target_ops): New fields to_post_wait, to_post_startup_inferior
- to_acknowledge_created_inferior, to_clone_and_follow_inferior,
- to_post_follow_inferior_by_clone, to_create_catch_fork_hook,
- to_create_catch_vfork_hook, to_has_forked, to_has_vforked,
- to_post_follow_vfork, to_pid_to_exec_file.
- New function definitions child_pid_to_exec_file, child_post_wait,
- child_post_startup_inferior, child_acknowledge_created_inferior,
- child_clone_and_follow_inferior,
- child_post_follow_inferior_by_clone, child_create_catch_fork_hook,
- child_create_catch_vfork_hook, child_has_forked,
- child_has_vforked, child_acknowledge_created_inferior,
- child_post_follow_vfork.
- New macros target_post_startup_inferior,
- target_acknowledge_created_inferior,
- target_clone_and_follow_inferior,
- target_post_follow_inferior_by_clone,
- target_create_catch_fork_hook, target_create_catch_vfork_hook,
- target_pid_to_exec_file.
- (find_default_clone_and_follow_inferior): New function prototype.
-
-
- * v850ice.c (init_850ice_ops): Init new target vector fields.
-
- * valprint.c (print_binary_chars): Print out long long as
- a binary number.
- (print_octal_chars): Print out long long as an octal number
- (print_decimal_chars): Print out long long as a decimal number
- (strcat_longest): Define it.
- * valprint.c: Hp merge, 4/15/98 snapshot
- Add parameter to val_print. This is used for
- evaluating C++ expressions.
-
- * value.h (VALUE_POINTED_TO_OFFSET): New macro.
- Add field pointed_to_offset to value structure.
- Add prototypes for new functions in valops.c.
- (write_register_pid): Change prototype to match
- function.
- (val_print function decl): Additional parameter.
- (VALUE_EMBEDDED_OFFSET): New macro.
- (find_rt_vbase_offset): New function decl -- for C++ support.
-
-Wed Dec 23 15:03:42 1998 Per Bothner <bothner@cygnus.com>
-
- * Makefile.in (READLINE_CFLAGS): Search $(READLINE_SRC)/.. rather
- than $(READLINE_SRC) so #include <readline/readline.h> will work.
- * top.c: #include <readline/history.h> instead of "history.h".
- * tracepoint.c: Likewise.
- * mac-xdep.c: Likewise.
-
-Wed Dec 23 12:32:00 1998 Andrew Cagney <cagney@chook.cygnus.com>
-
- * defs.h (TARGET_FLOAT_FORMAT, TARGET_DOUBLE_FORMAT): Define using
- TARGET_BYTE_ORDER and not target_byte_order.
-
-Tue Dec 22 10:51:33 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * config/i386/cygwin.mh (TERMCAP): define.
- (from Chris Faylor, cgf@cygnus.com)
-
- * top.c: specify directory name for including readline.h
-
- * tracepoint.c: ditto.
-
- * utils.c: ditto.
-
-Mon Dec 21 13:30:34 1998 Mark Alexander <marka@cygnus.com>
-
- * value.c (value_virtual_fn_field): Handle the situation where
- vtbl is a pointer to a structure instead of a pointer to an array.
-
-Mon Dec 21 10:38:11 1998 Andrew Cagney <cagney@chook>
-
- * mips-tdep.c: (MIPS_DEFAULT_FPU_TYPE): Default to
- MIPS_FPU_DOUBLE.
-
-1998-12-17 J.T. Conklin <jtc@redbacknetworks.com>
-
- * blockframe.c (get_frame_saved_regs): If the saved_regs_addr ptr
- is null, ensure that saved registers are copied from the local
- variable that was used to obtain them.
-
-Sat Dec 19 09:55:09 1998 Stu Grossman <grossman@babylon-5.cygnus.com>
-
- * mips-tdep.c (mips32_heuristic_proc_desc): Clear temp_saved_regs
- on restart. Fixes problem with backtracing through functions that
- use virtual frame pointers.
-
-Fri Dec 18 14:23:34 1998 Andrew Cagney <cagney@chook>
-
- * mips-tdep.c (mips_push_arguments): Don't left-shift small
- structs being passed in a register when an O64 target.
-
- * config/mips/tm-mips.h (enum mips_fpu_type, mips_fpu): Move to
- mips-tdep.c.
-
- * mips-tdep.c (mips_fpu_string): Delete variable.
- (mips_fpu_type_auto): New variable.
- (mips_fpu_type): Rename mips_fpu.
- (_initialize_mips_tdep): Delete initialization of mips_fpu et.al.
- Rewrite ``set mipsfpu'' command set.
- (set_mipsfpu_command, show_mipsfpu_command,
- set_mipsfpu_single_command, set_mipsfpu_double_command,
- set_mipsfpu_none_command, set_mipsfpu_auto_command): New
- functions, handle commands.
- (mips_push_arguments, mips_push_dummy_frame, mips_pop_frame,
- mips_extract_return_value): Update.
-
-Thu Dec 17 02:15:40 1998 Andrew Cagney <cagney@chook.cygnus.com>
-
- * configure.tgt (gdb_target): Identify mips64*vr4100*-*-elf* as
- vr4100.
-
-Thu Dec 17 01:34:36 1998 Andrew Cagney <cagney@chook>
-
- * gdbtypes.c (build_gdbtypes): New function.
- (_initialize_gdbtypes): Call.
-
-Wed Dec 16 11:47:00 1998 Andrew Cagney <cagney@chook>
-
- * gdbarch.c (show_architecture): Use TARGET_ARCHITECTURE.
- * gdbarch.h, gdbarch.c: Fix typo's. Use struct's in preference to
- types.
- * gdbarch.h, gdbarch.c (gdbarch_debug): Add ``set archdebug'' to
- command set.
-
-Tue Dec 15 23:46:40 1998 Andrew Cagney <cagney@chook>
-
- * config/mips/tm-*.h: (TARGET_BYTE_ORDER_DEFAULT,
- TARGET_BYTE_ORDER_SELECTABLE_P): Replace TARGET_BYTE_ORDER and
- TARGET_BYTE_ORDER_SELECTABLE.
-
-1998-12-14 Anthony Thompson (athompso@cambridge.arm.com)
-
- * remote-rdp.c (rdp_init): Don't discard first character on reset.
- (translate_open_mode): Define table.
- (exec_swi): Handle SWI_Clock. SWI_Open now handles stdin/stdout.
- SWI_Write returns number of bytes not written. SWI_Read does the
- same. SWI_Seek should return success/failure flag. Fix SWI_Flen.
-
-1998-12-14 J.T. Conklin <jtc@redbacknetworks.com>
-
- * config/i386/nbsd.mh, config/m68k/nbsd.mh, config/ns32k/nbsd.mh
- (XDEPFILES): Add ser-tcp.o.
-
-Mon Dec 14 14:46:13 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * monitor.c (monitor_expect, monitor_printf_noecho,
- monitor_printf): Always compile EXTRA_RDEBUG code.
- (RDEBUG): Ditto.
-
- From Michael Meissner <meissner@cygnus.com>:
- * ppcbug-rom.c (init_ppc_cmds): Cleanup formatting.
-
-1998-12-08 Michael Meissner <meissner@cygnus.com>
-
- * monitor.c (monitor_printable_string): New function to convert a
- string into a printable representation.
- (monitor_error): Call error after converting string into printable
- format.
- (monitor_printf{,_noecho}): If EXTRA_RDEBUG is defined, convert
- string into printable form before printing.
- (monitor_expect): Ditto.
- (monitor_read_memory{,_single}): Call monitor_error, not error.
- (monitor_read_memory): Return immediately if length is 0.
-
- * ppcbug-rom.c (init_ppc_cmds): Fill in dump_registers field,
- which is now required.
-
-Mon Dec 14 11:01:39 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbarch.h, gdbarch.c: Consolidate the semi-dynamic target system
- dependant GDB parameters.
- (set_gdbarch_from_file): Combine set_architecture_from_file and
- set_byte_order_from_file.
- * top.c, defs.h, printcmd.c: Delete them from here.
- * Makefile.in: Add gdbarch.[ch].
- * exec.c (exec_file_command): Call set_gdbarch_from_file.
-
-Sun Dec 13 09:52:51 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * defs.h (TARGET_PRINT_INSN_INFO, TARGET_PRINT_INSN): Define.
- (TARGET_ARCHITECTURE, TARGET_ARCHITECTURE_AUTO): Define.
- (TARGET_BYTE_ORDER_AUTO): Define.
- (TARGET_BYTE_ORDER_SELECTABLE_P): Provide default. Replaces
- TARGET_BYTE_ORDER_SELECTABLE. Handle compat issues.
- (BITS_BIG_ENDIAN): Simplify.
- (TARGET_FLOAT_FORMAT): Ditto.
- (TARGET_DOUBLE_FORMAT):
-
- * remote-e7000.c, sh-tdep.c, printcmd.c, remote-sim.c,
- remote-rdi.c, sparc-tdep.c: Update.
-
- * config/powerpc/tm-ppcle-eabi.h, config/rs6000/tm-rs6000.h,
- config/powerpc/tm-ppc-eabi.h, config/mn10300/tm-mn10300.h:
- Convert.
-
-Sat Dec 12 09:28:13 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * frame.h (struct frame_info): Add CORE_ADDR *saved_regs and
- struct frame_extra_info *extra_info.
- (frame_obstack_alloc, frame_saved_regs_zalloc): Prototype.
- (SIZEOF_FRAME_SAVED_REGS): Provide default.
- (FRAME_INIT_SAVED_REGS): Provide default.
- (struct frame_saved_regs): Deprecate.
- (EXTRA_FRAME_INFO): Deprecate.
-
- * blockframe.c (frame_obstack_alloc, frame_saved_regs_zalloc): New
- function.
- (generic_get_saved_register): Use FRAME_INIT_SAVED_REGS and
- frame->saved_regs.
- (frame_cache_obstack): Make static.
- (get_frame_saved_regs): Deprecate. Copy the saved regs into the
- frame buffer.
-
- * stack.c (frame_info): Rewrite using frame->saved_regs and
- FRAME_INIT_SAVED_REGS.
- * findvar.c (find_saved_register): Ditto.
-
- * config/mn10300/tm-mn10300.h (EXTRA_FRAME_INFO): Delete.
- (FRAME_FIND_SAVED_REGS): Replace with FRAME_INIT_SAVED_REGS. No-op.
- * mn10300-tdep.c: Update.
- (analyze_dummy_frame): New function.
- (struct frame_extra_info): Define.
- (mn10300_init_extra_frame_info): Update.
-
- * config/rs6000/tm-rs6000.h: (EXTRA_FRAME_INFO): Delete.
- (FRAME_FIND_SAVED_REGS): Replace with FRAME_INIT_SAVED_REGS.
- (FRAME_ARGS_ADDRESS): Replace with function.
-
- * rs6000-tdep.c (frame_get_saved_regs): Rename from
- frame_get_cache_fsr.
- (rs6000_init_extra_frame_info): New function.
- (rs6000_frame_init_saved_regs): Call frame_get_saved_regs.
- (FUNCTION_START_OFFSET): Delete references, was ZERO.
- (rs6000_frame_args_address): New function.
- (frame_initial_stack_address): Update
-
- * config/mips/tm-mips.h (EXTRA_FRAME_INFO): Remove saved_regs.
- (FRAME_INIT_SAVED_REGS): Rename FRAME_FIND_SAVED_REGS, update.
- * mips-tdep.c (mips_find_saved_regs, read_next_frame_reg,
- init_extra_frame_info, mips_pop_frame): Update.
- * config/alpha/tm-alpha.h (FRAME_INIT_SAVED_REGS,
- EXTRA_FRAME_INFO), alpha-tdep.c (alpha_find_saved_regs,
- alpha_pop_frame, init_extra_frame_info): Ditto.
-
- * i960-tdep.c, m88k-tdep.c, h8300-tdep.c: Update.
- * config/sparc/tm-sparc.h, config/a29k/tm-a29k.h: Define
- FRAME_INIT_SAVED_REGS as no-op.
-
- * z8k-tdep.c (z8k_init_frame_saved_regs): Rename
- get_frame_saved_regs.
- (examine_frame, z8k_skip_prologue): Update.
- * config/z8k/tm-z8k.h (FRAME_INIT_SAVED_REGS): Define.
-
-1998-12-11 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- From J.T. Conklin <jtc@redbacknetworks.com>:
- * i386-stub.c (handle_exception): Add support for 'P' command.
- (NUMREGS): New macro.
-
-Fri Dec 11 09:07:05 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * i386b-nat.c: Include "expression.h".
-
- * symtab.h: Don't include "gnu-regex.h".
-
- * solib.c (solib_add_common_symbols): Cast parameters passed to
- make_cleanup to use the new make_cleanup_func typedef.
-
- * inftarg.c: Include "wait.h" after, rather than before, <wait.h>.
- "wait.h" was defining all WIF* macro's instead of filling in those
- that <wait.h> missed.
-
-Fri Dec 11 09:52:04 1998 Andrew Cagney <cagney@chook>
-
- * mipsm3-nat.c, hppah-nat.c, infptrace.c, i386gnu-nat.c,
- hppab-nat.c, core-aout.c, arm-xdep.c, alpha-nat.c, altos-xdep.c,
- pyr-xdep.c, remote-st.c, remote-os9k.c, tahoe-tdep.c, pyr-tdep.c,
- vax-tdep.c: Replace reg_name with REGISTER_NAME.
-
-Thu Dec 10 15:19:40 1998 David Taylor <taylor@texas.cygnus.com>
-
- The following changes were made by Jim Blandy <jimb@cygnus.com>,
- Edith Epstein <eepstein@cygnus.com>, Elena Zannoni
- <ezannoni@cygnus.com> Stan Shebs <shebs@cygnus.com>, and David
- Taylor <taylor@cygnus.com>, as part of the project to merge in
- changes originally made by HP; HP did not create ChangeLog
- entries.
-
- * annotate.c (annotate_catchpoint): New function.
-
- * annotate.h (annotate_catchpoint): declare it; add new includes
- (symtab.h and gdbtypes.h).
-
- * buildsym.h: add external var processing_hp_compilation.
-
- * coff-solib.h:
- (SOLIB_REMOVE_INFERIOR_HOOK): new macro. defined to 0.
- functionality not implemented for coff.
- (SOLIB_CREATE_CATCH_LOAD_HOOK): New macro; generate error msg for coff.
- (SOLIB_CREATE_CATCH_UNLOAD_HOOK): ditto.
- (SOLIB_HAVE_LOAD_EVENT): ditto.
- (SOLIB_LOADED_LIBRARY_PATHNAME): ditto.
- (SOLIB_HAVE_UNLOAD_EVENT): ditto.
- (SOLIB_UNLOADED_LIBRARY_PATHNAME): ditto.
- (SOLIB_IN_DYNAMIC_LINKER): ditto.
- (SOLIB_RESTART): ditto.
-
- * complaints.h: add ifdef...endif pair at beginning and end of file.
-
- * dstread.c (dst_symfile_read): the parameter to fileno
- must be of type FILE *. So cast abfd->iostream in the
- call to fileno must be cast as a FILE *, not a GDB_FILE *.
- This will work because abfd->iostream is declared and
- given a value in bdf and bfd will continue to use FILE
- rather than GDB_FILE.
-
- * dwarf2read.c (dwarf_bool_name): change parameter from bool
- to mybool. sigh.
-
- * expression.h: include symtab.h
-
- * frame.h (print_only_stack_frame, show_stack_frame,
- show_frame_info): add prototypes.
-
- * gdbcmd.h (togglelist, stoplist): declare.
-
- * gdbcore.h (read_memory_string): declare it.
- (exec_file_attach): add prototype.
-
- * inflow.c (terminal_is_ours): make non static.
-
- * minsyms.c: minor spacing change.
-
- * parser-defs.h (parse_nested_classes_for_hpacc): add prototype.
- (find_template_name_end): add prototype.
-
- * scm-lang.c (scm_unpack): cast svalue to (int).
-
- * top.h: declare it.
-
- * valprint.h (print_binary_chars): new prototype definition.
- (print_octal_chars): new prototype definition.
- (print_decimal_chars): new prototype definition.
-
-Thu Dec 10 07:14:56 1998 Andrew Cagney <cagney@chook>
-
- * config/arm/tm-arm.h, arm-tdep.c: Replace REGISTER_NAMES with
- REGISTER_NAME.
- * mn10300-tdep.c, config/mn10300/tm-mn10300.h: Ditto.
- * sh-tdep.c, config/sh/tm-sh.h: Ditto.
-
- * defs.h (REGISTER_NAME): Provide default for old targets.
- * defs.h, infcmd.c: Rename reg_names to gdb_register_names.
-
- * tracepoint.c, target.c, parse.c, infcmd.c, remote-udi.c,
- expprint.c, infcmd.c, printcmd.c, eval.c, stack.c, findvar.c,
- remote-udi.c, config/alpha/tm-alpha.h, remote-sim.c, d30v-tdep.c,
- config/mips/tm-mips.h, hppa-tdep.c: Use REGISTER_NAME.
-
-1998-12-08 James E Wilson <wilson@wilson-pc.cygnus.com>
-
- * config/i960/mon960.mt (SIM_OBJS, SIM): Define.
-
-Tue Dec 8 16:49:24 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- * NEWS: Add mentions of newly-added configurations.
-
-1998-12-08 Philippe De Muyter <phdm@macqel.be>
-
- * config/xm-aix4.h (SIGWINCH_HANDLER): Function `aix_resize_window'
- must accept a signal number as parameter.
- * config/rs6000/xm-rs6000.h (SIGWINCH_HANDLER): Ditto.
- * utils.c (initialize_utils): Give a parameter to `SIGWINCH_HANDLER'.
-
- * inferior.h (register_valid): Variable's type is `SIGNED char', not
- `char'.
- * findvar.c (register_valid): Ditto.
-
- * defs.h (make_cleanup_func): Protect parameter list by `PARAMS'.
- * gdbthread.h (unbind_target_thread_vector): Likewise.
-
-Tue Dec 8 15:09:44 1998 Edith Epstein <eepstein@sophia.cygnus.com>
-
- Merged in m68k-linux patch from Andreas Schwab
-
- 1998-12-01 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
-
- * Makefile.in, configure.host, configure.tgt: Add support for
- m68k-linux.
- * config/m68k/linux.mh: New file.
- * config/m68k/linux.mt: New file.
- * config/m68k/nm-linux.h: New file.
- * config/m68k/tm-linux.h: New file.
- * config/m68k/xm-linux.h: New file.
- * gdb/m68klinux-nat.c: New file.
- * gdbserver/low-linux.c: Add support for m68k-linux.
- * gdb/config/m68k/tm-m68k.h (NUM_FREGS): New macro.
-
-1998-12-07 Jason Molenda (jsm@bugshack.cygnus.com)
-
- * config/i386/xm-cygwin.h: Remove REQUEST_QUIT definition.
- * config/powerpc/xm-cygwin.h: Ditto.
-
-1998-12-07 Jim Blandy <jimb@zwingli.cygnus.com>
-
- * rs6000-tdep.c (pop_frame): Correctly find the registers saved in
- the stack frame. Their offset from the previous stack frame is in
- fdata.gpr_offset and fdata.fpr_offset, not fdata.offset.
- (gdb.base/return.exp)
- * config/rs6000/tm-rs6000.h: Doc fixes.
-
-1998-12-03 Jason Molenda (jsm@bugshack.cygnus.com)
-
- * monitor.c (monitor_read_memory): Zero out pattern buffers
- before calling re_search.
- (parse_register_dump): Ditto.
-
-Thu Dec 3 10:37:22 EST 1998 Zdenek Radouch (radouch@cygnus.com)
-
- FR30 updates - still very preliminary.
- * configure.tgt
- * fr30-tdep.c
- * config/fr30/tm-fr30.h
-
-Thu Dec 3 16:30:35 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * ax-gdb.c: Include target.h.
-
-Tue Dec 3 10:59:00 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * ax-gdb.c (_initialize_ax_gdb), i960-tdep.c (pop_frame),
- monitor.c (flush_monitor_dcache, longlongendswap), remote-array.c
- (hexword2ascii), w89k-rom.c (init_w89k_cmds), z8k-tdep.c
- (init_frame_pc, extract_return_value): Make return type void.
- * monitor.c (monitor_write_even_block): Make return type explicit.
- (monotor_read_memory_block): Delete function.
- * monitor.h: Update.
- * remote.c (remote_get_threadlist, remote_update_threads),
- remote-array.c (array_get_packet), remote-rdi.c (Fail): Always
- return a value.
- * m32r-tdep.c (m32r_fix_call_dummy): From Michael Snyder, void
- function.
- * jv-valprint.c (java_val_print): From Stu Grossman. Return 0 by
- default.
-
-Wed Dec 2 15:11:38 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * tracepoint.c: Move default definition of
- TARGET_VIRTUAL_FRAME_POINTER from here to target.h.
- * target.h: Add default definition of TARGET_VIRTUAL_FRAME_POINTER.
- * ax-gdb.c (gen_frame_args_address, gen_frame_locals_address):
- use TARGET_VIRTUAL_FRAME_POINTER to determine frame pointer.
- (gen_trace_for_expr): new argument, address of tracepoint,
- gets passed to new_agent_expr and added to struct agent_expr.
- (is_nontrivial_conversion): call to new_agent_expr now requires
- a dummy argument. (agent_command): use get_current_frame() to
- get current PC scope; pass it to gen_trace_for_expr.
- * ax-general.c (new_agent_expr): new argument, address of
- tracepoint; store it in new field of struct agent_expr.
- * ax.h (struct agent_expr): add new field for tracepoint address.
- * ax-gdb.h: change prototypes to match above changes.
-
- * m32r-tdep.c (decode_prologue): If no branch or push fp is found,
- but there's a stack adjust, then use that as the end of prologue.
- (m32r_skip_prologue): don't skip past the first line if there is
- line info. (m32r_virtual_frame_pointer): new function.
- (m32r_fix_call_dummy): no return value needed.
-
-Tue Dec 1 10:59:00 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * ocd.c (remote_timeout), (BDM_BREAKPOINT), monitor.c (readchar),
- remote.c: Cleanup closing of open comments.
-
-Mon Nov 30 16:04:03 1998 Doug Evans <devans@canuck.cygnus.com>
-
- * config/fr30/tm-fr30.h (INNER_THAN): Add parameters.
-
-Mon Nov 30 11:18:48 1998 Andrew Cagney <cagney@chook>
-
- * frame.h (FRAME_CHAIN_VALID): Default to
- default_frame_chain_valid.
- * blockframe.c (default_frame_chain_valid): New function.
-
- * frame.h (FRAME_CHAIN_VALID_ALTERNATIVE): Delete references
- * blockframe.c (alternate_frame_chain_valid): New function.
- * config/mips/tm-mipsv4.h, config/m88k/tm-delta88v4.h,
- config/m68k/tm-monitor.h, config/m68k/tm-m68kv4.h,
- config/i386/tm-i386v4.h, config/i386/tm-i386nw.h,
- config/h8300/tm-h8300.h: Update.
-
- * blockframe.c (nonnull_frame_chain_valid): New function.
- * config/m68k/tm-os68k.h, config/m68k/tm-vx68.h,
- config/m68k/tm-apollo68b.h, config/i960/tm-vx960.h,
- config/arc/tm-arc.h: Update FRAME_CHAIN_VALID.
-
- * hppa-tdep.c (frame_chain_valid, hppa_frame_chain_valid),
- remote-vx29k.c (get_fp_contents, vx29k_frame_chain_valid),
- arm-tdep.c (frame_chain_valid, arm_frame_chain_valid): Rename
- functions so that they are name space clean.
- * config/pa/tm-hppa.h, config/a29k/tm-vx29k.h,
- config/arm/tm-arm.h: Update FRAME_CHAIN_VALID.
-
- * gould-tdep.c (gould_frame_chain_valid), d30v-tdep.c
- (d30v_frame_chain_valid), d10v-tdep.c (d10v_frame_chain_valid):
- New functions.
- * config/gould/tm-np1.h, config/gould/tm-pn.h,
- config/d30v/tm-d30v.h, config/d10v/tm-d10v.h: Update
- FRAME_CHAIN_VALID.
-
-Sun Nov 29 11:18:37 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * z8k-tdep.c (z8k_addr_bits_remove), w65-tdep.c
- (w65_addr_bits_remove), h8500-tdep.c (h8500_addr_bits_remove),
- m88k-tdep.c (m88k_addr_bits_remove): Function to clean up an
- address.
- * config/z8k/tm-z8k.h, config/w65/tm-w65.h, config/m88k/tm-m88k.h,
- config/h8500/tm-h8500.h: Define ADDR_BITS_REMOVE to call targets
- corresponding function.
- * z8k-tdep.c (saved_pc_after_call): Update.
-
-Sat Nov 28 12:24:31 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * config/z8k/tm-z8k.h, config/w65/tm-w65.h, config/vax/tm-vax.h,
- config/v850/tm-v850.h, config/tahoe/tm-tahoe.h,
- config/sparc/tm-sparc.h, config/sh/tm-sh.h,
- config/rs6000/tm-rs6000.h, config/pyr/tm-pyr.h,
- config/pa/tm-hppa.h, config/ns32k/tm-umax.h,
- config/ns32k/tm-merlin.h, config/none/tm-none.h,
- config/mn10300/tm-mn10300.h, config/mn10200/tm-mn10200.h,
- config/mips/tm-mips.h, config/m88k/tm-m88k.h,
- config/m68k/tm-m68k.h, config/m32r/tm-m32r.h,
- config/i960/tm-i960.h, config/i386/tm-i386.h,
- config/h8500/tm-h8500.h, config/h8300/tm-h8300.h,
- config/gould/tm-pn.h, config/gould/tm-np1.h, config/arm/tm-arm.h,
- config/convex/tm-convex.h, config/d10v/tm-d10v.h,
- config/alpha/tm-alpha.h, config/a29k/tm-a29k.h: Add parameters to
- macro INNER_THAN.
-
- * valops.c (push_word, value_push, call_function_by_hand),
- breakpoint.c (bpstat_stop_status), blockframe.c
- (generic_push_dummy_frame, generic_frame_chain_valid), inferior.h
- (PC_IN_CALL_DUMMY), infrun.c (wait_for_inferior): Update use of
- INNER_THAN.
-
-Fri Nov 27 11:00:25 1998 Andrew Cagney <cagney@chook>
-
- * target.h (one_stepped): Move global from here.
- * infrun.c (singlestep_breakpoints_inserted_p): To here. Rename.
- Make static.
- (wait_for_inferior): Update.
- (resume): Update. Set variable after call to SOFTWARE_SINGLE_STEP.
-
- * target.h (NO_SINGLE_STEP): Replace with SOFTWARE_SINGLE_STEP_P
- and SOFTWARE_SINGLE_STEP.
- * config/sparc/tm-sparc.h, config/rs6000/tm-rs6000.h,
- config/arc/tm-arc.h: Update.
- * rs6000-tdep.c (rs6000_software_single_step), sparc-tdep.c
- (sparc_software_single_step), arc-tdep.c (arc_single_step): New
- functions. Replace function single_step.
-
- * config/mips/tm-mips.h (STEP_SKIPS_DELAY_P): Define.
- * infrun.c (proceed): Cleanup.
-
-Thu Nov 26 11:19:15 1998 Andrew Cagney <cagney@amy.cygnus.com>
-
- * config/alpha/tm-alpha.h (ABOUT_TO_RETURN): Replace macro.
- * alpha-tdep.c (alpha_about_to_return): With new function.
- (heuristic_proc_start): Update.
- * config/mips/tm-mips.h (ABOUT_TO_RETURN), mips-tdep.c
- (heuristic_proc_start, mips_about_to_return): Ditto.
- * config/ns32k/tm-merlin.h (ABOUT_TO_RETURN),
- config/ns32k/tm-umax.h (ABOUT_TO_RETURN), ns32k-tdep.c
- (ns32k_about_to_return, ns32k_get_enter_addr): Ditto.
-
- * config/z8k/tm-z8k.h, config/w65/tm-w65.h, config/vax/tm-vax.h,
- config/tahoe/tm-tahoe.h, config/sparc/tm-sparc.h,
- config/sh/tm-sh.h, config/rs6000/tm-rs6000.h, config/pyr/tm-pyr.h,
- config/pa/tm-hppa.h, config/m88k/tm-m88k.h, config/m68k/tm-m68k.h,
- config/i960/tm-i960.h, config/i386/tm-i386.h,
- config/h8500/tm-h8500.h, config/h8300/tm-h8300.h,
- config/gould/tm-pn.h, config/gould/tm-np1.h,
- config/convex/tm-convex.h, config/arm/tm-arm.h,
- config/arc/tm-arc.h, config/a29k/tm-a29k.h: Delete macro
- ABOUT_TO_RETURN.
- * config/w65/tm-w65.h (RTL, RTS): Delete macros.
- * h8500-tdep.c (about_to_return): Delete function.
-
-Thu Nov 26 11:19:15 1998 Andrew Cagney <cagney@chook.cygnus.com>
-
- * rs6000-tdep.c (rs6000_breakpoint_from_pc): Change big_breakpoint
- and little_breakpoint to char[] from char*.
- * remote-array.c (array_insert_breakpoint): Change bp_addr to
- CORE_ADDR type.
-
-Wed Nov 25 00:13:06 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * vx-share/xdr_ld.c (xdr_ldtabl): Cast second arg to char**
- instead of char*.
-
- * configure.tgt (v850): Only build v850ice when cygwin and gui.
- * configure.in: Add parameter to --enable-build-warnings.
- * configure: Re-build.
-
- * c-exp.y (parse_number): Rewrite shift to pacify GCC.
-
- * config/i960/tm-i960.h (BREAKPOINT): Delete definition - simply
- wrong.
-
- * monitor.c (compile_pattern): Make val const char*.
- (monitor_wait_cleanup): Make old_timeout void*, pointing at
- old_timeout.
- (monitor_wait): Update.
-
- * remote-udi.c, remote-sim.c, remote-e7000.c, hppa-tdep.c,
- remote-mips.c, sparcl-tdep.c, xcoffread.c: Cast parameters passed
- to make_cleanup to use the new make_cleanup_func typedef.
-
- * alpha-tdep.c (MASK): Use LONGEST to avoid arithmetic overflow.
-
- * config/a29k/tm-a29k.h (TRANSPARENT): Rename macro to
- TRANSPARENT_FRAME. Avoid name-space clash.
- * a29k-tdep.c (init_frame_info): Update.
-
-Wed Nov 25 20:37:00 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * rs6000-tdep.c (rs6000_breakpoint_from_pc): Change big_breakpoint
- and little_breakpoint to char[] from char*.
- * mem-break.c (memory_insert_breakpoint,
- memory_remove_breakpoint): Pass address of bplen.
- * remote-array.c (array_insert_breakpoint): Change bp_addr to
- CORE_ADDR type.
-
-Tue Nov 24 15:46:33 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * config/mn10300/tm-mn10300.h (TARGET_VIRTUAL_FRAME_POINTER):
- new target macro.
- * mn10300-tdep.c (mn10300_virtual_frame_pointer): new function.
- * tracepoint.c (encode_actions): Use the new target macro to
- determine the virtual frame pointer, for collecting locals/args.
- (add_local_symbols, collect_symbol): add a register/offset pair of
- arguments so that the virtual frame pointer can be passed in.
-
-1998-11-24 Felix Lee <flee@cygnus.com>
-
- * procfs.c (procfs_wait): handle syscall events first.
-
- * procfs.c (GDB_GREGSET_TYPE, GDB_FPREGSET_TYPE): new macros.
- * config/sparc/xm-sun4sol2.h: use them.
- * core-sol2.c: don't #undef gregset_t and fpregset_t.
- * sol-thread.c: ditto.
- * sparc-tdep.c: ditto.
-
-Tue Nov 24 14:13:10 1998 Andrew Cagney <cagney@chook>
-
- * breakpoint.c (memory_breakpoint_size): Delete global.
- (read_memory_nobpt): Determine real breakpoint address and size
- using BREAKPOINT_FROM_PC.
-
- * defs.h (breakpoint_from_pc_fn): BREAKPOINT_FROM_PC function
- template.
- * target.h, mem-break.c (memory_breakpoint_from_pc):
- Rewrite. Always define. Return NULL when memory breakpoints are
- not supported.
- (memory_insert_breakpoint, memory_remove_breakpoint): Call
- BREAKPOINT_FROM_PC.
- * target.h (BREAKPOINT_FROM_PC): Provide default.
- * gdbint.texinfo (BREAKPOINT_FROM_PC): Document.
-
- * config/rs6000/tm-rs6000.h (BREAKPOINT): Delete macro.
- (BREAKPOINT_FROM_PC): Define.
- ({BIG,LITTLE}_BREAKPOINT): Move macros from here.
- * rs6000-tdep.c: To here.
- (rs6000_breakpoint_from_pc): New function.
-
- * config/mn10300/tm-mn10300.h (BREAKPOINT): Delete macro.
- (BREAKPOINT_FROM_PC): Define, call.
- * mn10300-tdep.c (mn10300_breakpoint_from_pc): New function.
-
- * config/mips/tm-mips.h ({BIG,LITTLE}_BREAKPOINT,
- IDT_{BIG,LITTLE}_BREAKPOINT, PMON_{BIG,LITTLE}_BREAKPOINT,
- MIPS16_{BIG,LITTLE}_BREAKPOINT): Move macros from here.
- * mips-tdep.c: To here.
-
- * config/arm/tm-arm.h ({BIG,LITTLE}_BREAKPOINT): Delete macros.
- ({ARM,THUMB}_{BE,LE}_BREAKPOINT): Move macros from here.
- * arm-tdep.c: To here.
-
- * remote-array.c (memory_breakpoint_size): Delete variable.
- (array_insert_breakpoint): Obtain breakpoint size using
- BREAKPOINT_FROM_PC.
- * remote-st.c (memory_breakpoint_size, st2000_insert_breakpoint):
- Ditto.
- * remote-os9k.c (memory_breakpoint_size,
- rombug_insert_breakpoint): Ditto.
- * remote-e7000.c (memory_breakpoint_size): Ditto.
-
-Mon Nov 23 11:38:40 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * symfile.c (deduce_language_from_filename): rewrite so as to
- work from a table of filename extensions, modifiable by the user.
- (filename_language_table): new data structure.
- (set_ext_lang_command): new function for new command, "set
- extension-language". (info_extension_language_command): new
- function for new command "info extension-languages".
- (add_filename_language, init_filename_language_table): new
- support functions for the above.
- * language.c (language_enum): new function. Support for above.
-
-Mon Nov 23 10:47:54 1998 Andrew Cagney <cagney@chook.cygnus.com>
-
- * config/sh/tm-sh.h, config/mn10200/tm-mn10200.h,
- config/m32r/tm-m32r.h, config/arm/tm-arm.h, config/i960/tm-i960.h,
- config/gould/tm-np1.h, config/d10v/tm-d10v.h,
- config/v850/tm-v850.h, config/pa/tm-hppa.h, config/a29k/tm-a29k.h,
- config/mn10300/tm-mn10300.h, config/mips/tm-mips.h
- (USE_STRUCT_CONVENTION): Cleanup, define macro as function.
-
- * sh-tdep.c (sh_use_struct_convention), mn10200-tdep.c
- (mn10200_use_struct_convention), i960-tdep.c
- (i960_use_struct_convention), gould-tdep.c
- (gould_use_struct_convention), d10v-tdep.c
- (d10v_use_struct_convention), v850-tdep.c
- (v850_use_struct_convention), hppa-tdep.c
- (hpha_use_struct_convention), m32r-tdep.c
- (m32r_use_struct_convention), arm-tdep.c
- (arm_use_struct_convention), mn10300-tdep.c
- (mn10300_use_struct_convention), a29k-tdep.c
- (a29k_use_struct_convention), mips-tdep.c
- (mips_use_struct_convention): New functions
-
- * value.h, values.c (generic_use_struct_convention): New function,
- replace macro.
- * values.c (USE_STRUCT_CONVENTION): Macro defaults to function
- generic_use_struct_convention.
-
-Sat Nov 21 17:15:40 1998 Philippe De Muyter <phdm@macqel.be>
-
- * breakpoint.c (bpstat_stop_status): Do not increment hit_count
- of breakpoint if condition is not true.
-
- * coffread.c (coff_symtab_read): Discard C_LABEL's that are not
- function entry points, to avoid getting them in the stack dump
- instead of the actual function.
-
- * config/m68k/delta68.mh (NAT_FILE): Undo 1998-08-18 change;
- without NAT_FILE definition, configure will assume that GDB cannot
- run native.
- * config/m68k/nm-delta68.h (KERNEL_U_SIZE): New macro.
- * delta68-nat.c (kernel_u_size): New function.
-
-Fri Nov 20 10:13:03 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * buildsym.c (end_symtab): Cleanup PROCESS_LINENUMBER_HOOK.
-
-Thu Nov 19 15:21:04 1998 Geoffrey Noer <noer@cygnus.com>
-
- * rdi-share/host.h: if compiling under Cygwin, make sure new
- preprocessor define is defined. Define it if not.
- * rdi-share/hostchan.h: ditto
- * rdi-share/aclocal.m4: regenerate
- * rdi-share/configure: regenerate
-
-Thu Nov 19 14:43:44 1998 Geoffrey Noer <noer@cygnus.com>
-
- * configure.in: switch back to checking __CYGWIN32__
- * configure: regenerate
-
-Thu Nov 19 09:53:00 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * exec.c (exec_file_command): Cleanup. Replace #if
- NEED_TEXT_START_END with if().
- * config/pa/nm-hppah.h (NEED_TEXT_START_END): Redefine to be 1.
- * config/convex/tm-convex.h (NEED_TEXT_START_END): Ditto.
- * config/gould/tm-np1.h (NEED_TEXT_START_END): Ditto.
- * config/a29k/tm-a29k.h (NEED_TEXT_START_END): Ditto.
-
-Thu Nov 19 13:06:22 1998 Geoffrey Noer <noer@cygnus.com>
-
- * main.c: Wait until more time has passed before calling
- new cygwin_ funcs, revert back to the cygwin32_ ones for now.
- * win32-nat.c: Ditto.
-
-Wed Nov 18 15:03:17 1998 Andrew Cagney <cagney@chook.cygnus.com>
-
- * 29k-share/udi/udip2soc.c (UDIConnect): Replace sys_errlist with
- strerror.
-
-Mon Nov 16 14:17:05 1998 Geoffrey Noer <noer@cygnus.com>
-
- * defs.h: if compiling under Cygwin, define __CYGWIN__ if
- __CYGWIN32__ is defined and __CYGWIN__ isn't for backwards
- compatibility.
-
-Fri Nov 13 00:15:08 1998 Geoffrey Noer <noer@cygnus.com>
-
- Changes to account for name change from cygwin32 to cygwin and
- clean up Win32-related ifdefs.
-
- * configure.tgt: check for cygwin* instead of cygwin32.
- New cygwin gdb_target variable loses the "32".
- * configure.host: check for cygwin* instead of cygwin32.
- New cygwin gdb_host variable loses the "32".
- * configure.in: test __CYGWIN__ instead of __CYGWIN32__,
- rename gdb_cv_os_cygwin32 variable to drop the "32". Call
- AM_EXEEXT instead of AC_EXEEXT since that isn't in a released
- autoconf yet.
- * configure: regenerate.
-
- * main.c: drop "32" from cygwin_ funcs, include sys/cygwin.h where
- cygwin path conv protos live, instead of adding a proto here for
- them here.
- * {main.c, ser-tcp.c, ser-unix.c, top.c}: check __CYGWIN__
- instead of __CYGWIN32__.
- * source.c: thoughout, check _WIN32 instead of WIN32.
-
- * config/i386/cygwin32.mh: delete.
- * config/i386/cygwin.mh: new file, was cygwin32.mh.
- * config/i386/cygwin32.mt: delete.
- * config/i386/cygwin.mt: new file, was cygwin32.mt.
- * config/i386/tm-cygwin32.h: delete.
- * config/i386/tm-cygwin.h: new file, was tm-cygwin32.h.
- * config/i386/xm-cygwin32.h: delete.
- * config/i386/xm-cygwin.h: new file, was xm-cygwin32.h.
- * config/i386/xm-windows.h: #include xm-cygwin.h now.
- * config/powerpc/cygwin32.mh: delete.
- * config/powerpc/cygwin.mh: new file, was cygwin32.mh.
- * config/powerpc/cygwin32.mt: delete.
- * config/powerpc/cygwin.mt: new file, was cygwin32.mt.
- * config/powerpc/tm-cygwin32.h: delete.
- * config/powerpc/tm-cygwin.h: new file, was tm-cygwin32.h.
- * config/powerpc/xm-cygwin32.h: delete.
- * config/powerpc/xm-cygwin.h: new file, was xm-cygwin32.h.
-
- * rdi-share/aclocal.m4: regenerate with aclocal.
- * rdi-share/configure: regenerate with autoconf.
- * rdi-share/{host.h, hostchan.c, hostchan.h, serdrv.c, serpardr.c,
- unixcomm.c}: check __CYGWIN__ instead of __CYGWIN32__.
-
-Thu Nov 12 17:19:43 1998 John Metzler <jmetzler@cygnus.com>
-
- * remote.c (remote_get_threadinfo): Support for remote
- multithread debugging.
- (remote_get_threadlist): get a partial list of threads
- (remote_threadlist_iterator): Step through all the threads
- (init_remote_threadtests): Optional builtin unit test commands.
-
- * thread.c (bind_target_thread_vector): Implementa a more dynamic
- way of accessing target specific thread info functions than
- FIND_NEW_THREADS.
- (target_thread_info): Function to get extended thread information.
-
- * gdbthread.h: Export internal data structures corresponding to
- external detailed thread info response. This is more like a 'ps'
- command than what might be expected of host based threads. This
- is for embedded systems.
-
-Wed Nov 11 15:47:00 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * procfs.c (proc_set_exec_trap): don't set PR_ASYNC or PR_FORK
- in the child process for UnixWare (causes processes forked by
- the debuggee to hang).
-
-Mon Nov 9 12:00:36 1998 Dave Brolley <brolley@cygnus.com>
-
- * config/fr30/fr30.mt: New file.
- * config/fr30/tm-fr30.h: New file.
-
-1998-11-05 Jim Wilson <wilson@cygnus.com>
-
- * remote-vx.c (net_read_registers, net_write_registers,
- vx_xver_memory, vx_resume, vx_attach, vx_detach, vx_kill):
- Change errno to errno_num.
- * vx-share/xdr_ptrace.c (xdr_ptrace_return): Likewise.
- * vx-share/xdr_ptrace.h (struct ptrace_return): Likewise.
-
-Thu Nov 5 08:41:33 1998 Christopher Faylor <cgf@cygnus.com>
-
- * top.c (gdb_readline): Allow CRLF line termination on systems
- which define CRLF_SOURCE_FILES.
- * win32-nat.c: 1) Add thread support, 2) fix ability to attach to
- a running process, and 3) implement limited support for cygwin
- signals.
- (thread_rec): New function.
- (child_add_thread): Ditto.
- (child_init_thread_list): Ditto.
- (child_delete_thread): Ditto.
- (do_child_fetch_inferior_registers): Ditto.
- (do_child_store_inferior_registers): Ditto.
- (handle_output_debug_string): Ditto.
- (child_fetch_inferior_registers): Use do_* function to perform
- operation.
- (child_store_inferior_registers): Ditto.
- (child_continue): Ditto.
- (child_thread_alive): Ditto.
- (cygwin_pid_to_str): Ditto.
- (handle_load_dll): Reorganize, add first attempt at reading
- dll names from attached processes. Change info messages to provide
- more information when dll is already loaded.
- (handle_exception): Changes mandated by new thread-aware structures.
- (child_wait): Track thread creation/destruction. Handle cygwin
- signals.
- (child_create_inferior): Ditto.
- (child_resume): Ditto.
- (child_kill_inferior): Ditto. Close child process handle to avoid a
- handle leak.
- (child_ops): Fill out child_ops fields that deal with threads.
- * config/i386/tm-cygwin32.h: Declare function and macro needed
- for converting a cygwin "pid" to a string.
- * config/i386/xm-cygwin32.h: define HAVE_SIGSETMASK as 0 since
- sigsetmask is not defined in cygwin.
-
-Thu Nov 5 08:38:18 1998 Christopher Faylor <cgf@cygnus.com>
-
- * win32-nat.c: Remove obsolete PPC conditionals.
-
-Wed Nov 4 18:44:31 1998 Dave Brolley <brolley@cygnus.com>
-
- * configure.tgt: Add fr30-*-elf*.
-
-1998-11-03 Jim Wilson <wilson@cygnus.com>
-
- * c-exp.y (parse_number): Check TARGET_LONG_LONG_BIT when setting
- high_bit to avoid undefined negative shift.
-
-Mon Nov 2 15:26:33 1998 Geoffrey Noer <noer@cygnus.com>
-
- * configure.in: Check cygwin* instead of cygwin32*.
- * configure: regenerate
-
-Thu Oct 29 10:04:20 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- [Support for trace debugging: registers that were not collected.]
- * remote.c (remote_fetch_registers): accept 'xxxx' in the register
- packet, with the meaning "register value is not available".
- Set register_valid to -1, which will connote "no value available".
- * findvar.c (read_relative_register_raw_bytes): return failure if
- register_valid == -1. (value_of_register): return failure if
- register_valid == -1. (read_var_value): return error if
- value_of_register fails for a register variable.
- (value_from_register): return failure if register_valid == -1.
- * eval.c (evaluate_subexp_standard): return error if
- value_of_register fails for a register used in an expression.
- * infcmd.c (do_registers_info): display "value not available"
- for registers for which register_valid == -1.
-
- * tracepoint.c (set_raw_tracepoint): just save the filename as is
- from the symbol table, rather than trying to prepend the dir name.
- Also save the bfd section. (tracepoints_info): use the section
- when looking up the function name.
- * tracepoint.h: add section field to tracepoint struct.
-
-Wed Oct 28 08:01:38 1998 Mark Alexander <marka@cygnus.com>
-
- * sparcl-tdep.c (send_resp, sparclite_serial_start,
- sparclite_serial_write): Use remote_timeout instead of hardcoded
- two second timeout.
- (download): Fix adjustment of a.out load addresses.
-
-Wed Oct 28 12:32:58 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure.in (--enable-build-warnings): Finish rename from
- --enable-warnings.
- (enable-build-warnings): Add -Wpointer-arth, allow =* for
- sim/common compatibility.
- * configure: Re-generate.
-
-Wed Oct 21 08:44:30 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * 29k-share/udi/udip2soc.c: Replace sys_errlist with strerror().
-
-Thu Oct 22 09:56:55 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * config/rs6000/aix4.mh (NATDEPFILES): Move xcoffread.o from here.
- * config/rs6000/aix4.mt (TDEPFILES): To here.
-
-Wed Oct 21 10:02:31 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * rdi-share/unixcomm.c: Provide definitions of SERPORT and PARPORT
- on BSD hosts.
-
-1998-10-19 Jason Molenda (jsm@bugshack.cygnus.com)
-
- * configure.in (AM_EXEEXT): Use AC_EXEEXT instead.
- * configure: Regenerated.
-
-Sat Oct 17 17:39:23 1998 Felix Lee <flee@cygnus.com>
-
- * core-sol2.c: #include <sys/types.h>, for sol2.7 weirdness.
-
-Fri Oct 16 15:31:38 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * m32r-tdep.c (decode_prologue): Return failure if we reach
- the end of the function without finding the end of the prologue.
-
-1998-10-16 Jason Molenda (jsm@bugshack.cygnus.com)
-
- * command.c copying.c copying.awk core-aout.c core-regset.c
- corelow.c dcache.c i386-tdep.c i386v4-nat.c i387-tdep.c
- infcmd.c infptrace.c infrun.c remote.c solib.c symfile.c
- symmisc.c valarith.c: Add prototypes.
-
- * defs.h: Add prototype for utils.c::do_run_cleanups.
-
- * gdbtypes.c: Add prototypes.
- (make_pointer_type): Add braces to remove nested if-else ambiguity.
- (make_reference_type): Ditto.
-
- * printcmd.c (printf_command): Initialize 'f' and 'string' at
- function startup to suppress possibly-used-before-initialized warning.
-
- * remote-utils.c: Add prototypes.
- (sr_pollchar): Add braces to remove nested if-else ambiguity.
-
- * ser-tcp.c: Add prototypes.
- (wait_for): Add braces to remove nested if-else ambiguity.
- (tcp_readchar): Ditto.
-
- * ser-unix.c: Add prototypes.
- (get_tty_state): Don't define errno here.
- (hardwire_readchar): Only define 't' if we are compiling in a Cygwin
- environment.
-
- * symtab.c: Add prototypes.
- (find_methods): Add braces to remove nested if-else ambiguity.
- (search_symbols): Set 'i' to an initial value to suppress a
- possibly-used-before-initialized warning.
-
- * valops.c: Add prototypes.
- (value_cast): Set 'eltype2' to an initial value to suppress a
- possibly-used-before-initialized warning.
- (value_of_variable): Add braces to remove nested if-else ambiguity.
- (value_of_this): Ditto.
-
- * valprint.c: Add prototypes.
- (print_floating): Add braces to remove nested if-else ambiguity.
-
-Thu Oct 15 19:50:48 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- * tm-sp64.h (SETUP_ARBITRARY_FRAME, FRAME_SPECIFICATION_DYADIC):
- Remove, nevermore used.
-
-Thu Oct 15 16:55:00 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * command.c: Include "wait.h" after, rather than before, <wait.h>.
- "wait.h" was defining all WIF* macro's instead of filling in those
- that <wait.h> missed.
-
-1998-10-14 Jason Molenda (jsm@bugshack.cygnus.com)
-
- * defs.h: Move _initialize_printcmd, _initialize_stack,
- _initialize_blockframe out of here and in to their respective .c
- files.
- * blockframe.c: Move _initialize_blockframe prototype to here.
- * printcmd.c: Move _initialize_printcmd prototype to here.
- * stack.c: Move _initialize_stack prototype to here.
-
- * source.c, symtab.h: Move _initialize_source prototype to the .c
- file.
- * values.c, value.h: Move _initialize_values prototype to the .c file.
- * gdbthread.h, thread.c: Move _initialize_thread prototype to the .c
- file.
- * breakpoint.c, breakpoint.h: Move _initialize_breakpoint prototype
- to the .c file.
-
- * abug-rom.c alpha-nat.c alpha-tdep.c annotate.c ax-gdb.c bcache.c:
- Standardize comments for the prototype section of these files.
-
- * configure.in: Look in libc for wctype before looking for it in libc.
-
-Tue Oct 13 18:56:51 1998 Felix Lee <flee@cygnus.com>
-
- * sol-thread.c (ps_pstop, etc): simple test for proc_service.h
- version didn't work for sol2.6; pushed it to autoconf.
- * configure.in (gdb_cv_proc_service_is_old): new test.
- * acconfig.h (PROC_SERVICE_IS_OLD): new define.
- * configure, config.in: regenerate.
-
-1998-10-13 Jason Molenda (jsm@bugshack.cygnus.com)
-
- * blockframe.c (find_pc_sect_partial_function): Add braces to avoid
- possible nested-if confusion.
- * breakpoint.c (breakpoint_here_p): Ditto.
- (breakpoint_inserted_here_p): Ditto.
- (breakpoint_thread_match): Ditto.
-
- * gnu-regex.c: Define _REGEX_RE_COMP only if it isn't already defined.
- * gnu-regex.h: Define _REGEX_RE_COMP to pick up old compatability
- prototypes.
-
- * symtab.h: Add prototype for _initialize_source.
- * value.h: Add prototype for _initialize_value.
-
- * defs.h: Include sys/types.h or stddef.h to get size_t.
- (make_cleanup): Add make_cleanup_func typedef and switch to using
- a prototype for this function.
- (mfree): Add prototypes for mmalloc, mrealloc, mfree if we aren't
- using mmalloc.
-
- * ax-gdb.c breakpoint.c coffread.c corelow.c dbxread.c
- dwarf2read.c dwarfread.c elfread.c eval.c exec.c infcmd.c infrun.c
- mipsread.c nlmread.c os9kread.c parse.c printcmd.c symfile.c
- symmisc.c symtab.c thread.c top.c tracepoint.c typeprint.c
- valops.c: Cast parameters passed to make_cleanup to use the new
- make_cleanup_func typedef.
-
-Tue Oct 13 00:51:48 1998 Felix Lee <flee@cygnus.com>
-
- * sol-thread.c (ps_pstop, etc): different solaris versions have
- slightly different prototypes in proc_service.h; compensate.
-
-1998-10-12 Jason Molenda (jsm@bugshack.cygnus.com)
-
- * Makefile.in (AWK): Unused; remove.
- * configure.in: Remove unused autoconf checks for MINIX, memcpy,
- poll, select, strings.h.
- * config.in: Regenerated.
- * configure: Regenerated.
-
-1998-10-12 Jason Molenda (jsm@bugshack.cygnus.com)
-
- * configure.in: Check for sys/debugreg.h, asm/debugreg.h.
- * i386v-nat.c: Include asm/debugreg.h, sys/debugreg.h if it is not
- present.
-
-Sun Oct 11 12:08:07 1998 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
-
- * dwarf2read.c (dwarf2_build_psymtabs_hard): Do not adjust the
- address range of a compilation unit without children.
-
- * mdebugread.c (parse_partial_symbols): Fix handling of stabs
- continuations, use xmalloc and xrealloc.
-
-Fri Oct 9 18:14:43 1998 Mark Alexander <marka@cygnus.com>
-
- * rs6000-tdep.c: Don't include tm.h twice.
-
-1998-10-08 Keith Seitz <keiths@cygnus.com>
-
- * main.c (main): Remove calls to {pre,post}_add_symbol_hooks.
- There should be sufficient information/hooks now to eliminate
- this hack.
-
- * exec.c (file_command): Add a new hook here to inform ui's
- when the exec file has changed. Adding it here allows the
- ui to be informed after symbol reading.
-
- * gdbcore.h: Add declaration of file_changed_hook.
-
-Thu Oct 8 08:40:42 1998 Mark Alexander <marka@cygnus.com>
-
- * rs6000-tdep.c (get_saved_register): Define only if
- USE_GENERIC_DUMMY_FRAMES is defined.
-
-1998-10-06 Jason Molenda (jsm@bugshack.cygnus.com)
-
- Eliminate a few warnings from the compiler.
- * breakpoint.h: Add prototype.
- * breakpoint.c (do_enable_breakpoint): cast mem_cnt, i to (void).
- * configure.in: Check if strdup declaration is necessary.
- * configure: Regenerated.
- * defs.h: Add prototypes.
- * gdb_string.h: Only define strdup if necessary.
- * gdbthread.h: Add prototypes.
- * printcmd.c: Add prototyptes.
- (disassemble_command): Remove unused variable 'section'.
- * symtab.c: Add prototypes.
- * symtab.h: Include gnu-regex.h, add prototype.
- * thread.c: Add prototype.
-
-Mon Oct 5 19:44:39 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- From David Purves <purves@apogee.com>:
- * stabsread.c (rs6000_builtin_type): Create a complex float instead
- of an error.
- (read_sun_floating_type): Similarly.
- (read_range_type): Create a complex float if self_subrange is
- true.
-
-Fri Oct 2 19:42:31 1998 Stu Grossman <grossman@babylon-5.cygnus.com>
-
- * c-lang.c (emit_char c_printchar c_printstr), c-lang.h (c_printstr)
- ch-lang.c (chill_printstr chill_printchar) c-valprint.c (c_val_print)
- ch-valprint.c (chill_val_print) expprint.c (print_subexp) f-lang.c
- (f_printstr f_printchar emit_char) f-valprint.c (f_val_print)
- jv-lang.c (java_printchar java_emit_char) jv-valprint.c
- (java_value_print java_val_print) language.c (unk_lang_printchar
- unk_lang_printstr unk_lang_emit_char) language.h (struct
- language_defn LA_PRINT_STRING LA_EMIT_CHAR) m2-lang.c (m2_printstr
- m2_printchar emit_char) printcmd.c (print_formatted) scm-lang.c
- (scm_printstr) valprint.c (val_print_string) value.h
- (val_print_string): Add emit_char routines to language_desc struct
- to allow finer control over language specific character output issues.
- Add character width arg to printstr routines to allow handling of
- wchar_t/Unicode strings. Fix c_printstr to handle wide characters.
- Supply width argument to LA_PRINT_STRING and val_print_string.
-
- * jv-lang.c (java_object_type dynamics_objfile java_link_class_type
- get_dynamics_objfile get_java_object_type) jv-lang.h
- (get_java_object_type): Make lots of things static.
-
- * expprint.c (dump_prefix_expression dump_subexp): Move opcode name
- printing to common routine (op_name).
- * (dump_subexp): Add support for OP_SCOPE.
-
-Fri Oct 2 16:25:54 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- * configure.host (i[3456]86-*-windows): Remove, no longer used.
- * mswin: Remove directory, no longer used.
-
-Fri Oct 2 18:52:20 1998 Fernando Nasser <fnasser@cygnus.com>
-
- * sol-thread.c: Fixed prototypes and calls to supply_fpregset and
- fill_fpregset
-
-1998-10-02 Keith Seitz <keiths@cygnus.com>
-
- * remote.c (remote_interrupt): Rewrite to use remote_stop.
- (remote_interrupt_twice): Remove. remote_stop now handles it.
- (remote_stop): New function which handles interrupting the
- remote target so that CLUI and GUI use the same core functions
- to achieve the same goal.
- (remote_wait): Change to handle remote_stop properly.
- [interrupted_already]: New static global to help remote_stop.
- [remote_ops, extended_remote_ops]: Add remote_stop for to_stop member.
-
- * target.c: Rename static function "ignore" to "target_ignore" and
- export it so that gdb can determin if some target vector member is
- actually not defined. Replace all occurances of ignore.
-
- * target.h: Export target_ignore.
-
-Fri Oct 2 03:51:48 1998 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
-
- * target.c (target_xfer_memory): Handle requests with zero
- transfer length right away.
-
- * values.c (unpack_double): Set up code, length and signedness of
- type _after_ checking for typedef.
-
-Thu Oct 1 15:39:27 EDT 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * breakpoint.c (bpstat_stop_status): Do not consider an
- untripped watchpoint as a "hit".
-
-Thu Oct 1 20:52:39 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * exec.c (exec_file_command), convex-tdep.c (exec_file_command),
- arm-xdep.c (exec_file_command), remote-rdp.c
- (remote_rdp_create_inferior), remote-os9k.c
- (rombug_create_inferior), remote-mm.c (mm_create_inferior),
- remote-eb.c (eb_create_inferior), remote-es.c
- (es1800_create_inferior), remote-rdi.c (arm_rdi_create_inferior),
- remote-sim.c (gdbsim_create_inferior), remote-utils.c
- (gr_create_inferior), remote-st.c (st2000_create_inferior),
- remote-nindy.c (nindy_create_inferior), remote-hms.c
- (hms_create_inferior), remote-e7000.c (e7000_create_inferior),
- remote-array.c (array_create_inferior), remote-adapt.c
- (adapt_create_inferior): Replace "exec" with "executable" in
- messages.
-
-1998-09-25 Keith Seitz <keiths@cygnus.com>
-
- * rdi-share/unixcomm.c: If using cygwin32, also use the SERPORT and
- PARPORT defines for win32.
- (Unix_MatchValidSerialDevice): For cygwin32, valid serial port names
- start with "com", not "/dev/tty".
- (Unix_OpenSerial): Do not use O_NONBLOCK on cygwin32.
-
- * rdi-share/devsw.c (DevSW_Close): Free the device's state
- (SwitcherState) so that the device may be reopened.
-
- * remote-rdi.c (mywritec): Send all output through gdb's *_unfiltered
- functions, ignoring non-ASCII chars, so that non-tty UI's can snarf
- the output from fputs_hook.
- (mywrite): Ditto.
- (arm_rdi_open): Set inferior_pid.
- (arm_rdi_detach): Pop the target off the target stack so that
- users can attach and detach multiple times.
- (arm_rdi_close): Close the opened device and reset inferior_pid, too.
-
-1998-09-24 Jason Molenda (jsm@bugshack.cygnus.com)
-
- * configure.in: Change --enable-warnings to --enable-build-warnings.
- * configure: Updated.
-
-1998-09-24 Jason Molenda (jsm@bugshack.cygnus.com)
-
- * configure.in (WARN_CFLAGS): Add -Wmissing-prototypes.
- * configure: Regenerated.
-
-1998-09-24 Jason Molenda (jsm@bugshack.cygnus.com)
-
- * configure.in: Add --enable-warnings.
- Adjust whitespace of other --with and --enable options so that
- configure --help lines up correctly.
- * aclocal.m4: Ditto.
- * Makefile.in (WARN_CFLAGS): Add. Set by configure.
- * configure: Regenerated.
-
-Thu Sep 24 15:44:34 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- * remote-rdi.c: Fix formatting, remove some commented-out code.
- (init_rdi_ops): Omit needless initializations.
-
-Wed Sep 23 18:21:03 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote.c (remote_address_masked): New function - mask address
- according to REMOTE_ADDRESS_SIZE.
- (remote_address_size): New global.
- (hexnumstr): New function - convert arbitrary unsigned to hex.
- (remote_write_bytes, remote_read_bytes): Use hexnumstr to
- construct packet address. Mask address when necessary.
- (_initialize_remote): Add "set remoteaddresssize" command, set
- REMOTE_ADDRESS_SIZE variable.
-
- * NEWS: Update.
-
-Wed Sep 23 18:08:52 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote.c (_initialize_remote, packet_command, print_packet):
- Pretty print code.
-
-Wed Sep 23 12:32:54 1998 <cagney@amy.cygnus.com>
-
- * remote.c (packet_command): Test REMOTE_DESC to determine if
- remote connection is open.
-
-Tue Sep 22 22:27:24 1998 Mark Alexander <marka@cygnus.com>
-
- Patch from Dawn Perchik <dawn@cygnus.com>:
- * rs6000-tdep.c (pop_frame): Handle generic dummy frames.
- (push_arguments): Likewise.
- (frame_saved_pc): Likewise.
- (rs6000_frame_chain): Likewise.
- (ppc_push_return_address): New function.
- (get_saved_register): New function.
- * config/powerpc/tm-ppc-eabi.h: Add generic dummy frame macros.
-
-Mon Sep 21 19:29:32 1998 Stu Grossman <grossman@babylon-5.cygnus.com>
-
- * defs.h utils.c (fputc_filtered): New function. Does the obvious...
- * jv-lang.c (java_printchar): Fix output of chars > 0xff. Fold
- java_emit_char into java_printchar.
- * language.h (PRINT_LITERAL_FORM): Reformat for readability.
-
-Mon Sep 21 14:38:03 1998 Catherine Moore <clm@cygnus.com>
-
- * config/arm/tm-arm.h (*_BREAKPOINT): Define both little endian
- and big endian breakpoint patterns.
-
- * arm-tdep.c (arm_break_point_from_pc): Insert either big endian
- or little endian breakpoints depending upon target byte order.
-
-Fri Sep 18 07:53:08 1998 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
-
- * sol-thread.c (sol_thread_notice_signals): Use PIDGET when
- passing pid down to procfs_notice_signals.
-
-Wed Sep 16 14:57:14 1998 Stu Grossman <grossman@babylon-5.cygnus.com>
-
- * stabsread.c (resolve_symbol_reference): Return 1 on success, 0 on
- failure.
- * (define_symbol): Check return value from resolve_symbol_reference,
- and drop symbol if it fails.
-
-Tue Sep 15 15:24:16 1998 Stu Grossman <grossman@fencer.cygnus.com>
-
- * stabsread.c: Make all complaints static.
- * Fix formatting of live range splitting code.
- * (resolve_symbol_reference define_symbol resolve_live_range): Change
- errors to complaints so that bad live range symbols won't abort the
- entire symbol table. Handle errors by aborting just the current
- symbol.
- * (ref_init): Goes away. Folded into ref_add().
- * (REF_MAP_SIZE): Put parens around parameter so that args like
- `1 + 2' get handled correctly (yes, this was a real bug).
- * (ref_add): Remove check for allocation failures. Not necessary
- when using xrealloc(). Fix pointer arithmetic problem when clearing
- memory. This and the previous patch prevent random SEGV's when there
- are lots of live range symbols.
-
-Tue Sep 15 14:02:01 1998 Nick Clifton <nickc@cygnus.com>
-
- * remote-rdi.c: Prevent multiple attempts to close the remote
- connection.
-
-Tue Sep 15 10:24:17 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * printcmd.c (examine_i_type): New static - type for instructions.
- (do_examine): For "i" format, specify examine_i_type.
- (do_examine): Call value_at_lazy instead of value_at so that
- examine data is only fetched if it is used.
- (x_command): If examine data was not fetched, set convenience
- variable "__" to void.
- (_initialize_printcmd): Initialize examine_i_type.
-
-Sun Sep 13 01:34:59 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * blockframe.c (find_pc_sect_partial_function): use bfd section
- of msymbol for end of section comparison.
-
-Fri Sep 11 14:02:49 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * tracepoint.c: clean up several unused variables and such.
-
-Fri Sep 11 12:38:34 EDT 1998 Zdenek Radouch (radouch@cygnus.com)
-
- * arm-tdep.c (arm_push_arguments): fixed frame construction
-
-Thu Sep 10 20:51:23 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * mn10300-tdep.c (mn10300_analyze_prologue): guard against NULL.
-
-Wed Sep 9 19:37:36 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- * dbxread.c (IGNORE_SYMBOL): Remove definition, is never used.
- * os9kread.c: Remove comment mentioning IGNORE_SYMBOL.
-
-Wed Sep 9 11:39:05 1998 Ron Unrau <runrau@cygnus.com>
-
- * blockframe.c(find_pc_sect_partial_function): look for min syms in
- the same section when trying to guess the end of a function.
- * symfile.c(list_overlays_command): use print_address_numeric
- * remote-sim.c: export simulator_command
-
-1998-09-08 Jason Molenda (jsm@bugshack.cygnus.com)
-
- * breakpoint.c (bpstat_stop_status): Declare a bp match if the
- current fp matches the bp->fp OR if the current fp is less than
- the bp->fp if we're looking at a bp_step_resume breakpoint.
-
-Tue Sep 8 19:42:58 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- * symtab.h (struct symtab): Remove EXTRA_SYMTAB_INFO hook,
- not currently used.
- * symfile.c (allocate_symtab): Deprecate use of
- INIT_EXTRA_SYMTAB_INFO here.
-
-Fri Sep 4 15:33:25 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- * README: Update remote debugging and testsuite info.
-
-Thu Sep 3 13:50:20 1998 Mark Alexander <marka@cygnus.com>
-
- * config/mn10300/tm-mn10300.h (FP_REGNUM): Redefine to be a
- pseudo-register, not the same as a3.
- (D2_REGNUM, D3_REGNUM, A2_REGNUM, A3_REGNUM): Define.
- * mn10300-tdep.c (fix_frame_pointer): New function.
- (set_movm_offsets): Use register number macros instead of
- hard-coded constants.
- (mn10300_analyze_prologue): Fix to handle redefinition of FP_REGNUM.
- (mn10300_frame_chain): Fix to handle redefinition of FP_REGNUM;
- use register number macros instead of hard-coded constants;
- add missing parameter to call of mn10300_analyze_prologue.
- (mn10300_frame_saved_pc): Use register number macros instead of
- hard-coded constants.
-
-Tue Sep 1 12:04:57 EDT 1998 Zdenek Radouch (radouch@cygnus.com)
-
- Changes to support/fix ARM/ELF port. Use MAKE_MSYMBOL_SPECIAL for
- both ELF and COFF;
- * elfread.c (elf_symtab_read): use ELF specific macro
- * coffread.c (coff_symtab_read): use COFF_MAKE_MSYMBOL_SPECIAL()
- * arm-tdep.c: separate COFF and ELF thumb processing
- disable --mapcs-float processing
- * dwarf2read.c: Disabled building of minimal symbols
- * config/arm/tm-arm.h: new macros for distinguishing arm/thumb
- * config/mips/tm-mips.h: use ELF specific macro
-
-Mon Aug 31 15:42:10 1998 Tom Tromey <tromey@cygnus.com>
-
- * top.c (context_hook): Define.
-
-Tue Aug 25 13:21:58 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * ax-gdb.c (gen_var_ref): Allow for typedef types.
- (gen_cast, gen_bitfield_ref, gen_expr, gen_deref): ditto.
-
-Mon Aug 24 18:29:03 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * tracepoint.c (collect_symbol): Handle register doubles that
- are stored in two registers.
-
-Mon Aug 24 14:39:08 1998 Mark Alexander <marka@cygnus.com>
-
- * sh-stub.c (undoSStep): Improve comment.
- * sparc-tdep.c (sparc_extract_struct_value_address): Simplify to use
- same method on both 32-bit and 64-bit machines.
- * sparcl-tdep.c (sparclite_check_watch_resources): Simulator doesn't
- support hardware breakpoints.
- * config/sparc/tm-sparc.h (CALL_DUMMY): Improve comments.
-
-1998-08-20 Jason Molenda (jsm@bugshack.cygnus.com)
-
- * rdi-share/Makefile.am (INCLUDES): Fix typeo.
- * rdi-share/Makefile.in: Regenerated.
-
-1998-08-19 Jason Molenda (jsm@bugshack.cygnus.com)
-
- * rdi-share/Makefile.am: Use just `INCLUDES' not `libname_INCLUDES'.
- * rdi-share/Makefile.in: Regenerated.
-
-1998-08-19 Keith Seitz <keiths@cygnus.com>
-
- * v850ice.c (v850ice_stop): New function to stop the ICE.
- (v850ice_load) Pass filename to ICE DLL.
- (ice_stepi, ice_nexti, ice_cont): Do not directly call the gdb
- commands -- let the GUI do it so that it can retain control
- of the display.
-
-Wed Aug 19 15:53:52 1998 Anthony Green <green@hoser.cygnus.com>
-
- * i386v4-nat.c: Include sys/reg.h if present.
-
-Wed Aug 19 03:07:53 1998 Richard Henderson <rth@cygnus.com>
-
- * config/alpha/alpha-linux (XDEPFILES): Build ser-tcp.
-
-1998-08-18 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * symtab.c (decode_line_1): For minimal symbol, SKIP_PROLOG to
- make sure we stop after the frame pointer is locaded and backtrace
- prints an accurate stack. Complements changes made on Mon Jul 27
- 10:45:56 1998
- (decode_line_2): Replaced the whitespace after ">" in a prompt
- which has been taken away by changes made on Sun Jul 19 02:11:45
- 1998
-
-1998-08-18 Keith Seitz <keiths@cygnus.com>
-
- * stack.c: Define new hook, selected_frame_level_changed_hook, which
- will be called whenever the selected stack level changes.
- (select_frame): Call the selected_frame_level_changed_hook.
-
-Tue Aug 18 18:03:42 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- * remote-rdi.c (arm_rdi_open): Pass serial device name to
- Adp_OpenDevice, and include it in error reports.
-
-1998-08-18 Jason Molenda (jsm@bugshack.cygnus.com)
-
- * configure.in: Add more header files to AC_CHECK_HEADERS.
- * configure: Regenerated.
-
- * command.c: Include wait.h or sys/wait.h if present.
- * inftarg.c: Ditto.
- * core-aout.c: Include ptrace.h or sys/ptrace.h if present, based
- on autoconf test.
- * infptrace.c: Ditto.
-
- * expprint.c: Include ctype.h for isprint prototype.
- * i386aix-nat.c: Include sys/reg.h if autoconf says it is present.
- * i386v-nat.c: Include ptrace.h, sys/ptrace.h, and sys/reg.h if
- present, based on autoconf test.
-
- * utils.c: Include curses.h and term.h if present.
- (puts_debug): Change 'carriage_return' local variable to return_p
- to avoid name clash.
-
- * config/m68k/nm-apollo68b.h: Don't define PTRACE_IN_WRONG_PLACE,
- determine it with autoconf.
- * config/i386/nm-linux.h: Don't define NO_SYS_REG_H, determine it
- with autoconf.
- * config/i386/nm-i386sco.h: Don't define NO_PTRACE_H, determine it
- with autoconf.
- * config/i386/nm-i386v.h: Ditto.
- * config/i386/nm-symmetry.h: Ditto.
- * config/m88k/xm-cxux.h: Ditto.
- * config/m88k/xm-dgux.h: Ditto.
-
- * config/m68k/delta68.mh (NAT_FILE): nm-delta68.h no longer necessary.
- * config/m68k/nm-delta68.h: Removed.
-
-Fri Aug 14 11:14:03 1998 Jeffrey A Law (law@cygnus.com)
-
- * mn10300-tdep.c (set_movm_offsets): Change second argument to
- be the actual args to movm itself. All callers changed. Only set
- fi->fsr.regs[x] if reg X is saved by the movm instruction.
-
-Fri Aug 14 04:18:23 1998 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
-
- * sol-thread.c (lwp_to_thread): Fix error message for failing
- td_ta_map_lwp2thr call.
- (ps_lgetLDT): Mask off upper bits in GS register when comparing
- with selector.
-
-Wed Aug 12 16:30:01 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * remote-sim.c (simulator_command): Reset register cache after
- simulator command.
-
-Wed Aug 12 09:00:26 1998 Stu Grossman <grossman@babylon-5.cygnus.com>
-
- * expprint.c (dump_prefix/postfix_expression): Don't try to print
- type expressions.
-
-Tue Aug 11 11:33:25 1998 Stu Grossman <grossman@babylon-5.cygnus.com>
-
- * c-typeprint.c (c_print_type): Don't crash if varstring is null.
- * expprint.c expression.h (dump_expression): Rename to
- dump_prefix_expression.
- * Print out the expression in normal form. Call print_longest
- instead of trying to do it ourselves.
- * (dump_postfix_expression): New function, prints out the expression
- with indentation and better formatting and interpretation.
- * parse.c (parse_exp_1): Put calls to dump expressions under ifdef
- MAINTENANCE_CMDS and expressiondebug variable.
-
-Thu Aug 6 13:20:02 1998 Ron Unrau <runrau@cygnus.com>
-
- * infrun.c (wait_for_inferior): use stop_func_name instead of
- stop_func_start to decide that no debug info exists.
-
-Thu Jul 30 13:53:50 1998 Mark Alexander <marka@cygnus.com>
-
- * mips-tdep.c (mask_address_p): New variable.
- (mips_addr_bits_remove): Test mask_address_p to decide whether
- to mask off the upper 32 bits of addresses.
- (_initialize_mips_tdep): Add command to set mask_address_p.
- (mips_call_dummy_address): New function.
- * config/mips/tm-mips.h (CALL_DUMMY_ADDRESS): Redefine to
- call mips_call_dummy_address.
-
-1998-07-29 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * symfile.c (add_symbol_file_command): Test for the from_tty
- parameter and avoid query when not interactive.
-
-Mon Jul 27 16:11:42 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * tracepoint.c (remote_set_transparent_ranges): new function.
- Send the start and end addresses of all loadable read-only
- sections down to the trace target, so that it can treat them
- as "transparent" (ie. don't care if they were collected or not).
-
-Mon Jul 27 15:38:07 1998 Mark Alexander <marka@cygnus.com>
-
- * mn10300-tdep.c (mn10300_analyze_prologue): Undo previous fix
- for setting frame address in optimized code; made unnecessary
- by compiler fixes.
-
-Mon Jul 27 10:45:56 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * symtab.c (decode_line_1): For minimal symbol, call
- find_pc_sect_line() to make sure the line number gets set
- properly.
- (print_symbol_info): Redeclare function void.
-
-1998-07-27 Jason Molenda (jsm@bugshack.cygnus.com)
-
- * config/d10v/tm-d10v.h (REGISTER_NAMES): sp -> r15. The
- stack pointer et al are synthesized from the SP_REGNUM (etc)
- defines and should not be mentioned in REGISTER_NAMES.
-
-Fri Jul 24 14:41:19 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * tracepoint.c (encode_actions): Treat register names and simple
- variable names as special cases and don't convert them to byte-
- codes: these things can be collected far more efficiently
- without invoking the bytecode interpreter.
-
-Fri Jul 24 13:32:46 1998 Mark Alexander <marka@cygnus.com>
-
- * config/i386/tm-i386.h (STORE_STRUCT_RETURN): Make it
- work on hosts of any endianness.
- * config/i386/tm-i386v.h: Ditto.
-
-Fri Jul 24 07:41:12 1998 Mark Alexander <marka@cygnus.com>
-
- * mn10300-tdep.c (set_movm_offsets): New helper function
- for mn10300_analyze_prologue.
- (mn10300_analyze_prologue): Simplify by factoring out common code.
- Fix bugs in setting frame address for optimized code.
- Use read_memory_nobpt instead of target_read_memory.
-
-Thu Jul 23 17:01:17 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * tracepoint.c (collect_symbol): handle LOC_ARG case.
-
-Thu Jul 23 15:07:40 1998 Dawn Perchik <dawn@cygnus.com>
-
- * sparc-tdep.c (sparc_init_extra_frame_info): Recognize when we're
- in a function prologue before the SAVE instruction.
- (sparc_frame_saved_pc): Ditto.
- * config/sparc/tm-sparc.h (EXTRA_FRAME_INFO): Add in_prologue flag.
-
-Thu Jul 23 14:58:09 1998 Dawn Perchik <dawn@cygnus.com>
-
- * i386-tdep.c (i386_get_frame_setup): Recognize function
- prologues in code compiled with -fcheck-stack.
-
-Thu Jul 23 14:49:27 1998 Dawn Perchik <dawn@cygnus.com>
-
- * remote-mips.c (remote_mips_insert_hw_breakpoint,
- remote_mips_remove_hw_breakpoint): New functions for hardware
- breakpoints on LSI targets.
- * config/mips/tm-embed.h (target_remove_hw_breakpoint,
- target_insert_hw_breakpoint): Define to call
- remote_mips_insert_hw_breakpoint and remote_mips_remove_hw_breakpoint,
- respectively.
-
-1998-07-21 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * source.c (print_source_lines): Print "No such file or directory"
- just once.
- (directory_command): same as above; resets if user issues dir.
-
-Sun Jul 19 02:11:45 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * symtab.c (decode_line_2): Instead of printing a prompt
- and calling command_line_input() without a prompt, just
- call it with the proper args. This makes the GUI work too.
-
-Fri Jul 17 9:26:50 1998 Ron Unrau <runrau@cygnus.com>
-
- * blockframe.c (find_pc_sect_partial_function): allow for the possi-
- bility of multiple symbols at the same address when finding high.
- * breakpoint.c (resolve_sal_pc): if the function based section lookup
- fails, try getting the section from the minimal symbol table.
- * parse.c (write_exp_msymbol): use symbol_overlayed_address to get
- the LMA of a minimal symbol if unmapped.
- * symtab.c (find_line_symtab): change interface to return symtab
- containing the best linetable found.
- (decode_line_1): use find_line_symtab to set val.symtab. This should
- improve support for source files with multiple symtabs.
-
-Wed Jul 15 11:51:33 1998 Keith Seitz <keiths@cygnus.com>
-
- * main.c (main): Fix violations of GNU coding standard.
-
- * breakpoint.c: Export delete_command.
-
- * infcmd.c: Export continue_command, stepi_command, and nexti_command.
-
- * Makefile.in: Add target for v850ice.o.
-
- * configure.tgt: Add cygwin32 dependencies for v850 ice.
-
-Wed Jul 15 10:58:29 1998 Nick Clifton <nickc@cygnus.com>
-
- * tracepoint.c (set_raw_tracepoint): Cope with symbols that do not
- have an associated directory.
-
-Mon Jul 13 15:21:04 1998 Mark Alexander <marka@cygnus.com>
-
- * utils.c (puts_debug): Display non-printable characters in hex
- instead of octal.
-
-Thu Jul 9 16:16:47 1998 Jeffrey A Law (law@cygnus.com)
-
- * mn10300-tdep.c (mn10300_generic_register_names): New variable.
- (set_machine_hook): New function. Copy the appropriate register
- names into reg_names.
- (_initialize_mn10300_tdep): Set up to call set_machine_hook.
- * tm-mn10300 (NUM_REGS): Bump to 32.
- (REGISTER_NAMES): Updated accordingly.
-
-
-Tue Jul 7 7:40:13 1998 Ron Unrau <runrau@cygnus.com>
-
- * symtab.c (find_pc_sect_psymbol): allow case where textlow is 0
-
-Thu Jul 2 15:57:58 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * breakpoint.c (resolve_sal_pc): Accept absence of innermost
- Lexical block for breakpoint resolution.
-
-Thu Jul 2 10:22:00 1998 Dawn Perchik <dawn@cygnus.com>
-
- * mdebugread.c (parse_partial_symbols): Go ahead and read the .mdebug
- section, but just don't add a 2nd minimal symbol if this is an .mdebug
- section in an ELF file.
-
-1998-07-01 Jim Blandy <jimb@zwingli.cygnus.com>
-
- * Makefile.in (ax-general.o): Depend on $(defs_h) too.
- (ax_h): Bother to define this.
-
-Mon Jun 29 19:01:18 1998 Jim Wilson <wilson@cygnus.com>
-
- * gnu-regex.c (re_comp): Add cast to char * before gettext calls.
-
-Sun Jun 28 11:35:48 1998 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
-
- Improve support for SunPro F77.
- * dbxread.c (end_psymtab, process_one_symbol): Handle minimal
- symbols with trailing underscore names.
- * minsyms.c (find_stab_function_addr): Ditto.
- * dbxread.c (process_one_symbol): Ignore N_ALIAS for now.
- * partial-stab.h (case N_ALIAS): Ditto.
- * stabsread.c (read_sun_builtin_type): Handle boolean types.
-
-Fri Jun 26 14:03:01 1998 Keith Seitz <keiths@cygnus.com>
-
- * symtab.h (enum namespace): Add new namespaces FUNCTIONS_NAMESPACE,
- TYPES_NAMESPACE, METHODS_NAMESPACE, and VARIABLES_NAMESPACE used by
- new search_symbols.
- Add prototype for search_symbols and free_search_symbols.
-
- * symtab.c (list_symbols): Rewrite to use new search_symbols.
- (file_matches): New helper function for search_symbols.
- (free_search_symbols): New function which frees data returned from
- search_symbols.
- (print_symbol_info): New helper function which prints info about a
- matched symbol to stdout. Extracted from old list_symbols.
- (print_msymbol_info): New helper function which prints info about
- a matched msymbol to stdout. Extracted from old list_symbols.
- (symtab_symbol_info): Extracted from old list_symbols.
- (variables_info): Use symtab_symbol_info.
- (functions_info): Use symtab_symbol_info.
- (types_info): Use symtab_symbol_info.
- (rbreak_command): Rewrite to use new search_symbols.
-
-Thu Jun 25 22:38:32 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * mips-tdep.c (mips_push_arguments): Use 128-bit stack frame
- alignment for inferior calls.
-
-Wed Jun 24 23:17:12 1998 Mark Alexander <marka@cygnus.com>
-
- * mn10200-tdep.c (mn10200_analyze_prologue): Fix calculation
- of jsr target address.
-
-Tue Jun 23 19:37:46 1998 Mark Alexander <marka@cygnus.com>
-
- * config/mn10200/tm-mn10200.h (SAVED_PC_AFTER_CALL): Don't
- zero upper byte of address.
-
-Tue Jun 23 17:32:26 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * rs6000-tdep.c (pop_dummy_frame): use memcpy.
- (push_arguments): use memset.
- (various other places): fix up indentation and long lines.
-
-Tue Jun 23 11:58:35 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * configure.in: s/lXext/-lXext/ for Jillian's change.
-
-Tue Jun 23 11:14:04 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * source.c (find_source_lines): fix indentation.
-
- * config/mips/tm-irix5.h: Modify to work better on irix 6, by
- making FP registers 8 bytes instead of 4.
- REGISTER_BYTES: redefine. REGISTER_BYTE(): redefine.
- REGISTER_VIRTUAL_TYPE: redefine. MIPS_LAST_ARG_REGNUM: redefine.
- * irix5-nat.c (fetch_core_registers): read 8 bytes per FP register.
- * mips-tdep.c (FP_REGISTER_DOUBLE): new macro to distinguish
- targets with 8-byte FP registers (don't use TARGET_MIPS64).
- (STACK_ARGSIZE): new macro, how much space is taken up on the
- stack for each function argument (don't use TARGET_MIPS64).
- (mips_push_arguments): modify logic to work better on Irix 6
- (n32 ABI).
-
-Tue Jun 23 12:29:53 1998 Jillian Ye <jillian@cygnus.com>
-
- * configure.in: Add -lXext to mips_extra_libs
- * configure: Regenerated.
-
-Sun Jun 21 09:31:12 1998 Ron Unrau (runrau@cygnus.com)
-
- * symtab.c (find_line_pc): assumed that a PC of 0 is illegal.
- Changed to pass PC as arg and return 1 if valid (0 otherwise).
- * symtab.h: Change prototype to match.
- * symtab.c (find_line_pc_range): Use new interface.
- * breakpoint.c (resolve_sal_pc): Ditto.
-
-Wed Jun 17 15:50:00 1998 Ron Unrau (runrau@cygnus.com)
-
- * parse.c (target_map_name_to_register): Check target specific
- aliases *first* so that it can over-ride architectural names
-
-Wed Jun 17 17:13:38 1998 Said Ziouani (saidz@park-street.cygnus.com)
-
- * remote-sds.c (sds_start_remote): Fix printf call.
-
-Tue Jun 16 16:32:08 1998 Mark Alexander <marka@cygnus.com>
-
- * mn10200-tdep.c (mn10200_analyze_prologue): Fix null pointer
- crash when in "start".
-
-Tue Jun 16 14:38:40 1998 Ron Unrau (runrau@cygnus.com)
-
- * dbxread.c: reset function_start_offset after a finishing N_FUN
- is seen.
- * remote-sim.c: allow TARGET_REDEFINE_DEFAULT_OPS to override
- target vectors as needed.
-
-Sun Jun 14 08:46:25 1998 Ron Unrau (runrau@cygnus.com)
-
- * partial-stab.h: 'F' and 'f' type N_FUN psymbols should pass
- CUR_SYMBOL_VALUE as CORE_ADDR instead of long
- * buildsym.[ch]: export pending_blocks list
-
-Sat Jun 13 13:02:32 1998 Dawn Perchik (dawn@cygnus.com)
-
- * remote.c: Fix remote help string to match that of help.exp.
-
-Fri Jun 12 14:22:55 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * configure.in (LIBS): Add -lw to the list of libraries if needed.
-
-Thu Jun 11 15:05:10 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * btowc.c: Removed.
- * configure.in: Don't see if we need to replace btowc().
- * Makefile.in: Don't include LIBOBJS.
- * configure: Regenerated.
- * gnu-regex.c (regex_compile): Only support i18n [:foo:] if
- we have btowc().
-
-Wed Jun 10 15:39:14 1998 Stu Grossman <grossman@babylon-5.cygnus.com>
-
- * c-exp.y: Fix problems with parsing "'foo.bar'::func".
- Some languages allow symbols with dots.
-
- * gdbtypes.c (check_stub_method): Cosmetic. Use more descriptive
- names for parameters.
-
- * jv-exp.y: Parser now accepts primitive types.
- * (parse_number): Use correct ifdef for scanf long double support.
- * jv-lang.c (java_array_type): Initial cut at array support.
-
- * language.c language.h (set_language): Now returns previous language.
-
- * symtab.c (find_methods): Make static. Cosmetic changes, including
- indentation, and adding descriptive comments. Move local variable
- defs into the block they are used in.
- * Don't call check_stub_method any more. Use gdb_mangle_name to
- generate the full method name. find_method doesn't need all the other
- goobldegook that check_stub_method does.
- * (gdb_mangle_name): Use more descriptive names for parameters. Fix
- comment.
- * (lookup_partial_symbol lookup_block_symbol): Check for java to
- ensure we can find mangled names.
- * (decode_line_1): Move local variable defs into the block they are
- used in. (Improves code readability.)
-
-Wed Jun 10 18:04:35 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * gdbtypes.c (get_discrete_bounds): Assign unsigned type flag for
- all-positive enum.
- (create_set_type): Ditto for all-positive set values.
- * values.c (unpack_field_as_long): Check for typedef in struct
- field unpacking.
-
-Wed Jun 10 14:06:05 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * configure.in: Add some tests for gnu-regex.c's benefit.
- See if btowc() function is provided in C library.
- * configure, config.in: Regenerated.
- * Makefile.in (CLIBS, CDEPS): Add @LIBOBJS@ to build btowc.c
- if necessary.
- * btowc.c: New file.
-
- * gnu-regex.c: Reorder wchar.h and wctype.h includes for Solaris'
- benefit.
- Drop namespace preserving defines for now.
-
-Wed Jun 10 11:53:42 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * gnu-regex.c: Include "gnu-regex.h", not "regex.h".
-
-Wed Jun 10 11:34:07 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * gnu-regex.c, gnu-regex.h: Change LGPL license to GPL license
- to stay consistent with the rest of GDB.
-
-Wed Jun 10 11:27:39 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * gnu-regex.c, gnu-regex.h: Update to current FSF (glibc) versions.
-
-Wed Jun 10 10:58:18 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * printcmd.c (disassemble_command): move overlay mapping code
- "up" into find_pc_partial_function.
- * blockframe.c (find_pc_partial_function): adjust start address
- and end address for overlays (mapped vs. unmapped addresses),
- so that all callers of this function may benefit.
- * m32r-tdep.c (m32r_skip_prologue): adjust indentation.
-
-Mon Jun 8 16:08:10 1998 Ron Unrau <runrau@cygnus.com>
-
- * objfiles.c (add_to_objfile_sections): All targets to define
- TARGET_KEEP_SECTION to permit them to retain bfd sections that
- GDB would otherwise have discarded.
-
-Fri Jun 5 13:56:19 1998 Doug Evans <devans@canuck.cygnus.com>
-
- * dbxread.c (read_dbx_symtab): Don't lower texthigh for last psymtab.
-
-Thu Jun 4 18:35:04 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- * remote.c (init_extended_remote_ops): Make extended_remote_ops
- by copying from remote_ops, move it and init_remote_ops to
- usual place at end of file, remove "void" from arg lists.
-
-Thu Jun 4 17:51:06 1998 Mark Alexander <marka@cygnus.com>
-
- * sparc-tdep.c (sparc_fix_call_dummy): Byte-swap the call dummy
- on bi-endian machines.
- (sparc_extract_return_value): Handle values smaller than int on
- machines with little-endian data.
- (sparc_target_architecture_hook): Set bi_endian flag.
-
-Thu Jun 4 12:14:48 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * printcmd.c (disassemble_command): Fix off-by-one error for
- disassembling functions in unmapped overlay sections.
-
-Thu Jun 4 10:15:03 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * remote.c: merged.
-
- - Jim Blandy <jimb@zwingli.cygnus.com>
- (print_packet, remote_packet_command): New functions.
- (_initialize_remote): Register the remote-packet command.
- - David Taylor <taylor@texas.cygnus.com>
- (_initialize_remote): remote-compare is now
- compare-sections.
- - Elena Zannoni <ezannoni@kwikemart.cygnus.com>
- (remote_compare_command): added warning, issued in case
- of mismatch only.
-
-Thu Jun 4 08:25:38 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * remote.c (remote_compare_command): New function, new command.
- Compare object file binary image with corresponding memory on
- remote target. Report differences.
-
-Tue Jun 2 19:05:04 1998 Mark Alexander <marka@cygnus.com>
-
- * sparc-tdep.c (sparc_target_architecture_hook): Set target
- byte order only when it's selectable.
-
-Tue Jun 2 02:01:56 1998 Mark Alexander <marka@cygnus.com>
-
- * sparc-tdep.c (sparc_target_architecture_hook): New function to
- set endianness based on machine type.
- (_initialize_sparc_tdep): Initialize target_architecture_hook.
- (sparc_print_register_hook): Print PSR and FPSR in fancy format
- on 32-bit machines.
- * config/sparc/tm-sparc.h (PRINT_REGISTER_HOOK): Redefine to
- call sparc_print_register_hook instead of using inline code.
- * config/sparc/tm-sp64.h (PRINT_REGISTER_HOOK): Remove.
-
-Thu May 28 17:19:14 1998 Keith Seitz <keiths@cygnus.com>
-
- * main.c (main): Check for NULL from getenv on CYGWIN32.
-
-Thu May 28 09:41:44 1998 Nick Clifton <nickc@cygnus.com>
-
- * monitor.c (monitor_vsprintf): Handle %%. Patch courtesy of
- Felix Lee (flee@cygnus.com)
-
-Thu May 28 00:27:35 1998 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
-
- * mips-tdep.c (mips_push_dummy_frame): Fix calculation of
- PROC_REG_OFFSET and PROC_FREG_OFFSET.
-
-Mon Apr 27 14:37:49 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * config/v850/tm-v850.h (REGISTER_BYTE): FP_REGNUM and
- FP_RAW_REGNUM use the same register location.
-
- * v850-tdep.c (v850_scan_prologue): Use FP_RAW_REGNUM instead of
- FP_REGNUM.
- (v850_frame_chain): Ditto.
-
- * config/v850/tm-v850.h (REGISTER_NAMES): Add "fp".
- (NUM_REGS): Update.
- (FP_REGNUM): Update.
- (FP_RAW_REGNUM): Define.
-
-Wed May 27 14:22:31 1998 Keith Seitz <keiths@cygnus.com>
-
- * main.c (main): Convert the path returned from getenv to a posix
- path on cygwin32 hosts.
-
-Mon May 25 13:31:27 1998 Keith Seitz <keiths@cygnus.com>
-
- * remote.c (remote_open_1): If an error occurs starting the remote,
- pop the target AND return.
-
-Sat May 23 02:23:09 1998 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
-
- * dwarf2read.c (read_subroutine_type): Set TYPE_FLAG_PROTOTYPED
- on C++ functions.
- * valops.c (value_arg_coerce): Add new argument to indicate whether
- the function has a prototype, handle integer and float promotions
- accordingly.
- (call_function_by_hand): Always call value_arg_coerce, pass down
- prototype information.
-
-Fri May 22 10:56:36 1998 John Metzler <jmetzler@cygnus.com>
-
- * remote.c (_initialize_remote): Typo extended__remote
-
-Thu May 21 13:14:25 1998 John Metzler <jmetzler@cygnus.com>
-
- * gnu-nat.c (init_gnu_ops): Initialization of target ops by assignment.
- (_initialize_gnu_nat): Call new init
- * mac-nat.c (init_child_ops): Ditto.
- (_initialize_mac_nat): Ditto.
- * monitor.c (init_base_monitor_ops): Ditto.
- (_initialize_remote_monitors): Ditto.
- * ppc-bdm.c (init_bdm_ppc_ops): Ditto.
- (_initialize_bdm_ppc): Ditto.
- * remote-adapt.c (init_adapt_ops): Ditto.
- (_initialize_remote_adapt): Ditto.
- * remote-array.c (init_array_ops): Ditto.
- (_initialize_array): Ditto.
- * remote-bug (init_bug_ops): Ditto.
- (_initialize_remote_bug): Ditto.
- * remote-e7000.c (init_e7000_ops): Ditto.
- (_initialize_remote_e7000): Ditto.
- * remote-eb.c (init_eb_ops): Ditto.
- (_initialize_remote_eb): Ditto.
- * remote-es.c (init_es1800_ops): Ditto.
- (init_es1800_child_ops): Ditto.
- (_initialize_es1800): Ditto.
- * remote-hms.c (init_hms_ops): Ditto.
- (_initialize_remote_hms): Ditto.
- * remote-mm.c (init_mm_ops): Ditto.
- (_initialize_remote_mm): Ditto.
- * remote-nindy.c (init_nindy_ops): Ditto.
- (_initialize_nindy): Ditto.
- * remote_nrom.c (init_nrom_ops): Ditto.
- (_initialize_remote_nrom): Ditto.
- * remote-os9k (init_rombug_ops): Ditto.
- (_initialize_remote_os9k): Ditto.
- * remote-rdi.c (init_rdi_ops): Ditto.
- (_initialize_remote_rdi): Ditto.
- * remote-rdp.c (init_remote_rdp_ops): Ditto.
- (_initialize_remote_rdp): Ditto.
- * remote-sds.c (init_sds_ops): Ditto.
- (_initialize_remote_sds): Ditto.
- * remote-sim.c (init_gdbsim_ops): Ditto.
- (_initialize_remote_sim): Ditto.
- * remote-st.c (init_st2000_ops): Ditto.
- (_initialize_remote_st2000): Ditto.
- * remote-udi.c (init_udi_ops): Ditto.
- (_initialize_remote_udi): Ditto.
- * remote-vx.c (init_vx_ops): Ditto.
- (init_vx_run_ops): Ditto.
- (_initialize_vx): Ditto.
- * remote.c (init_remote_ops): Ditto.
- (init_extended_remote_ops): Ditto.
- (_initialize_remote): Ditto.
- * sparcl-tdep.c (init_sparclite_ops): Ditto.
- (_initialize_sparcl_tdep): Ditto.
- * v850ice.c (init_850ice_ops): Ditto.
- (_initialize_v850ice): Ditto.
- * win32-nat.c (init_child_ops): Ditto.
- (_initialize_inftarg): Ditto.
-
-1998-05-21 Jim Blandy <jimb@zwingli.cygnus.com>
-
- * ax-gdb.c (const_var_ref): Don't handle function names. I don't
- want to implement all the "usual unary conversion" rules for
- constants.
- (gen_usual_unary): Turn "function" values into "pointer to
- function" values, in accordance with ANSI.
- (gen_deref): Don't do the usual unary conversions here. Let the
- caller do it. Note that dereferencing a function pointer yields
- a function designator, which we call an rvalue, not an lvalue.
- (gen_address_of): Handle functions specially.
- (gen_struct_ref): Perform the usual unary conversions before
- calling gen_deref.
- (gen_expr): In case for the prefix '*' operator, call
- gen_usual_unary manually.
-
-Wed May 20 15:29:41 1998 Gavin Koch <gavin@cygnus.com>
-
- * mips/tm-tx39.h (MIPS_DEFAULT_FPU_TYPE): Defined as MIPS_FPU_NONE.
- * mips/tm-tx39l.h: Same.
-
-Wed May 20 10:12:11 1998 John Metzler <jmetzler@cygnus.com>
-
- * m32r-tdep.c (decode_prologue): Handle frames compiled with -Os.
- Split out as separate function called by skip prologue and scan
- prologue. new formula handles optimization in which the prologue
- is interleaved with the body of the function. Also recognizes new
- variations of prologue encoding. Use of frame pointer is
- essential to debugging, -fno-omit-frame-pointer
- (m32r_skip_prologue): Call decode prologue, ignore line info
- (m32r_scan_prologue): Call decode prologue, ignore line info.
-
-Tue May 19 17:23:54 1998 John Metzler <jmetzler@cygnus.com>
-
- * w89k-rom.c (_initialize_w89k): Call new init function
- (init_w89k_cmds): Convert to dynamic initialization of monitor_ops
- data structure for forward compatability with additions to the
- data structure.
- * dbug-rom.c (_initialize_dbug_rom): ditto
- (init_dbug_cmds): ditto
- * m32r-rom.c (_initialize_m32r_rom): ditto
- (init_m32r_cmds): ditto
-
-Tue May 19 14:54:11 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * tracepoint.c (memrange_cmp): use const void * args to avoid
- ANSI compiler warnings.
-
-1998-05-19 Jim Blandy <jimb@zwingli.cygnus.com>
-
- * ax-gdb.c (gen_fetch, gen_var_ref, gen_deref, find_field,
- gen_bitfield_ref, gen_expr): Call error, not abort.
- * ax-general.c (read_const, generic_ext, ax_trace_quick,
- ax_label, ax_const_d, ax_reg, ax_print): Same.
-
- * tracepoint.c: Remove the $(...) syntax for memranges.
- (validate_actionline, encode_actions, trace_dump_command): Remove
- clauses for the $(...) syntax.
- (parse_and_eval_memrange): Function deleted.
- (_initialize_tracepoint): Update function description.
-
- * ax-gdb.c (_initialize_ax_gdb): Make the "agent" command a
- subcommand of "maintenance", as it should have been from the
- beginning. #include "gdbcmd.h", to get the declaration for
- maintenancelist.
- * Makefile.in: Document that dependency.
-
-Tue May 19 12:00:58 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * tracepoint.c (get_tracepoint_by_number): new function, to access
- traceframe_number for use of the GUI.
-
- * tracepoint.h: added prototype for get_traceframe_number.
-
-Mon May 18 13:34:27 1998 Keith Seitz <keiths@cygnus.com>
-
- * dbxread.c (process_one_symbol): If block addresses are relative to
- function start addresses, reset function_start_address whenever a new
- source file is seen.
-
-Mon May 18 13:04:27 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * tracepoint.c (get_tracepoint_by_number): make sure to advance
- arg pointer even if we fail to parse a useful number. Otherwise,
- since this function is called in a loop, it may loop forever!
- Also change strtol call to allow arbitrary radix.
- (map_args_over_tracepoints (and other places)): add QUIT; call
- to loop, to allow breakout using control-C. Not all loops were
- analyzed to make sure they could terminate cleanly, but even
- terminating with a messed-up tracepoint list would be better
- than not terminating at all!
- (tdump_command): check to see if we're connected to a trace-
- capable target (currently only "remote") before doing anything
- else.
-
-Sat May 16 22:21:48 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * config/d30v/tm-d30v.h (INIT_FRAME_PC_FIRST): Fill in PC into
- frame struct before extracting saved register offsets.
-
-Fri May 15 22:47:45 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * tracepoint.c (encode_actions): fix typo in printf format string.
-
-1998-05-15 Jim Blandy <jimb@zwingli.cygnus.com>
-
- Implement a few more tracing operators: ^ | & ~ !
- * ax-gdb.c (gen_integral_promotions, gen_logical_not,
- gen_complement): New functions.
- (gen_binop): New argument MAY_CARRY, indicating whether we need to
- correct the upper bits of the value after performing the
- operation. Callers changed.
- (gen_expr): Handle BINOP_BITWISE_AND, BINOP_BITWISE_IOR, and
- BINOP_BITWISE_XOR here as well, by calling gen_binop. Handle
- UNOP_LOGICAL_NOT, UNOP_COMPLEMENT.
-
- * ax-gdb.c (gen_conversion): Reworked to avoid some unnecessary
- sign extension.
-
- * ax-gdb.c (gen_usual_arithmetic): Renamed from gen_usual_binary,
- to match the ANSI C standard better. Callers changed.
-
- * ax-gdb.c (gen_traced_pop): Add prototyped declaration.
-
-Fri May 15 18:18:38 1998 David Taylor <taylor@texas.cygnus.com>
-
- * tracepoint.c (stringify_collections_list): return a collection
- of strings rather than a single string.
- (free_actions_list): new function.
- (encode_actions): process collection of strings returned by
- stringify_collections_list.
-
-1998-05-15 Jim Blandy <jimb@zwingli.cygnus.com>
-
- * ax-gdb.c (gen_traced_pop): New function.
- (gen_expr): Call it for comma operator.
- (gen_trace_for_expr): Call it, instead of writing it out.
-
- Add facilities for sending arbitrary packets to the remote agent.
- There are a bunch of improvements to make (make it generic; handle
- 'O' replies properly), but I just want to get this onto the branch.
- * remote.c (print_packet, remote_packet_command): New functions.
- (_initialize_remote): Register the remote-packet command.
-
-Thu May 14 17:52:31 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * tracepoint.c: move actionline_type definition to tracepoint.h.
- (validate_actionline): make non static.
-
- * tracepoint.h: move actioline_type definition from tracepoint.c.
- (validate_actionline) moved prototype from tracepoint.c.
-
-Thu May 14 11:49:18 1998 David Taylor <taylor@texas.cygnus.com>
-
- * tracepoint.c (validate_actionline): add additional error
- checking, remove some dead code.
- (encode_actions): additional cleanups.
- (trace_find_command): remove some dead code.
- (trace_find_pc_command): ditto.
- (trace_find_tracepoint_command): ditto.
- (trace_find_line_command): ditto.
- (trace_find_range_command): ditto.
- (trace_find_outside_command): ditto.
-
-Thu May 14 5:51:00 1998 Ron Unrau <runrau@cygnus.com>
-
- * symtab.c (decode_line_1): set section for "break *<addr>"
-
-Wed May 13 20:58:02 1998 Mark Alexander <marka@cygnus.com>
-
- * corefile.c (reopen_exec_file): Reopen the exec file if
- it has changed.
-
-Wed May 13 15:22:02 1998 Mark Alexander <marka@cygnus.com>
-
- * sparc-tdep.c (fetch_instruction): New function.
- (single_step, sparc_init_extra_frame_info, examine_prologue):
- Use fetch_instruction instead of read_memory_integer
- to ensure that instructions are always read as big-endian.
-
-Wed May 13 14:42:21 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Add AC_FUNC_ALLOCA.
- * defs.h: Check HAVE_ALLOCA_H rather than sparc. Add _AIX pragma
- alloca.
- * configure: Rebuild.
- * Makefile.in (jv-lang.o, jv-typeprint.o, jv-valprint.o): New
- targets.
-
-Wed May 13 11:19:08 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * tracepoint.c (trace_command): Remove old diagnostic code that was
- preventing tracepoints from being defined with a full-path filename.
-
-Tue May 12 13:17:35 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * stabsread.c (read_one_struct_field): Check for typedef in type
- tree before clearing bitfield information.
-
-1998-05-11 Jim Blandy <jimb@zwingli.cygnus.com>
-
- * ax-gdb.c (gen_binop): New function, based on gen_mul, to replace
- gen_mul and gen_div, and handle `%' op as well. Correctly tests
- type of arguments.
- (gen_expr): Factor out common code in binary arithmetic operators.
- Add support for `%'.
- (gen_mul, gen_div): Removed.
-
-Thu May 7 14:49:38 1998 Bob Manson <manson@charmed.cygnus.com>
-
- * config/sparc/tm-sp64.h (CALL_DUMMY): Store and retrieve
- %o0-%o5 as 64-bit values; compensate for stack bias.
- (USE_STRUCT_CONVENTION): We only pass pointers to structs
- if they're larger than 32 bytes.
- (REG_STRUCT_HAS_ADDR): Ditto.
-
- * sparc-tdep.c (sparc_init_extra_frame_info): Use read_sp()
- instead of read_register. If the target is a sparc64 and the frame
- pointer is odd, compensate for the stack bias.
- (get_saved_register): Use read_sp().
- (DUMMY_STACK_REG_BUF_SIZE): Use FP_REGISTER_BYTES.
- (sparc_push_dummy_frame): Use read_sp()/write_sp(). On sparc64,
- save the PC, NPC, CCR, FSR, FPRS, Y and ASI registers.
- (sparc_frame_find_saved_regs): Use read_sp(). Read the PC, NPC,
- CCR, FSR, FPRS, Y and ASI registers from the frame, if it's a
- dummy frame.
- (sparc_pop_frame): Use write_sp(). If the target is a sparc64 and
- the FP is odd, compensate for stack bias.
- (sparc_store_return_value): Right-justify the return value before
- writing it to %o0.
- (sparc_fix_call_dummy): Don't NOP out part of the call dummy on
- sparc64.
- (sparc64_read_sp, sparc64_read_fp, sparc64_write_sp,
- sparc64_write_fp, sp64_push_arguments,
- sparc64_extract_return_value): New functions to support the
- sparc64 ABI.
-
- * dwarfread.c (handle_producer): Set processing_gcc_compilation to
- the right version number.
-
- * dwarf2read.c (read_file_scope): Assume we're processing
- GCC2 output.
-
-Wed May 6 16:34:03 1998 Jeffrey A Law (law@cygnus.com)
-
- * somsolib.c: Include gdb_stat.h.
-
-Mon May 4 18:34:01 1998 David Taylor <taylor@texas.cygnus.com>
-
- * ax-gdb.c (gen_mul): new function; (gen_div): new function;
- (gen_expr): add support for * and / operators, call gen_mul and
- gen_div as appropriate.
-
-Mon May 4 16:24:22 1998 Mark Alexander <marka@cygnus.com>
-
- * defs.h (make_run_cleanup): Declare.
- * solib.c (find_solib): Pass correct number of arguments to
- make_run_cleanup.
-
-Mon May 4 07:08:25 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * tracepoint.c (trace_actions_command): actions command must set
- step_count to zero (in case previous actions have set it but the
- new set does not).
-
-Sat May 2 09:35:07 1998 Stu Grossman <grossman@babylon-5.cygnus.com>
-
- * ocd.h: Add new flags, function codes, and processor types to
- support new Wiggler capabilities.
- * (ocd_write_bytes_size): New function to allow atomic writes of
- memory in sizes larger than a byte.
-
- * ser-unix.c (baudtab): Add 57600, 115200, 230400, and 460800 baud.
-
-Fri May 1 19:51:32 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * stabsread.c (read_one_struct_field): Do not override supplied
- bitfield size for a range type value.
-
- * gdbtypes.c (create_range_type): For a range with positive
- lower limit, declare range type as unsigned.
-
-Fri May 1 10:58:34 1998 John Metzler <jmetzler@cygnus.com>
-
- * monitor.c: Turn off debug
-
-Fri May 1 09:29:56 1998 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
-
- * breakpoint.c (delete_command): Skip internal breakpoints when
- all breakpoints are requested.
-
- * stabsread.c (define_symbol): Record parameter types from Sunpro
- function stabs in the TYPE_FIELDS of the function type.
-
-Thu Apr 30 15:59:54 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * Makefile.in (config-check-targets, config-check-hosts): Removed.
-
-1998-04-30 Paul Eggert <eggert@twinsun.com>
-
- * Makefile.in (maintainer-clean):
- Don't get ahead of yourself and delete Makefile
- before running `make'.
- (local-maintainer-clean, do-maintainer-clean): New rules.
-
-Wed Apr 29 14:02:59 1998 David Taylor <taylor@texas.cygnus.com>
-
- * ax-gdb.c (gen_add): when adding a pointer and an int, use
- the size of the pointer, not the int (typo) to decide how
- to extend the result.
-
-Wed Apr 29 10:20:40 1998 John Metzler <jmetzler@cygnus.com>
-
- * monitor.h: Defined additional hooks for dmpregs, configure_hooks
- and wait_filter. These additions require that all ROM monitor
- interfaces be recoded to initialize monitor ops using assignments
- rather than static structure initialization. Added new bits to
- flags MO_EXACT_DUMPADDR, MO_HAS_BLOCKWRITES.
-
- * monitor.c (RDEBUG): Conditional tracing throughout the file.
- (fromhex): Now recognized upper cse hex digits
- (monitor_printf_noecho):
- (monitor_readchar): Tracing interferes with input timing.
- (monitor_open): Register different memory write functions with
- dcache_init if MO_HAS_BLOCKWRITES.
- (flush_monior_dcache): Added as an additional utilty.
- (monitor-resume): Call continue hook if one has been supplied.
- (monitor_wait_filter): New function Factored out of monitor wait
- and used if alternate wait-filter has not been provided.
- (monitor_wait): call alternate wait filter if provided. Call
- monitor_dump_regs, a new function factored out from inline code.
- (monitor_dump_block): A new function used as a utility when
- monitors must dump several blocks of registers using different
- commands.
- (monitor_dump_regs): Call alternate function if provided. Uses new
- hook in monitor.h.
- (monitor_write_memory): Engage previouly added hook
- MO_FILL_USES_ADDR.
- (monitor_write_even_block): new function supports writing long
- blocks of 4byte words.
- (longlongendswap): new internal function
- (monitor_write_memory_longlongs): new function writes large blocks
- using command to enter a long long.
- (monitor_write-memory_block): new Function figures out which block
- mod to use.
- (monitor_read_memory): Can now handle dump formats in which the bytes
- preceeding the requested data is not printed.
-
-Tue Apr 28 19:41:33 1998 Tom Tromey <tromey@cygnus.com>
-
- * tracepoint.c (memrange_cmp): Another typo fix; `memrbnge' ->
- `memrange'.
-
- * tracepoint.c (memrange_cmp): Fixed typo in function intro.
-
-Tue Apr 28 17:41:20 1998 Philippe De Muyter <phdm@macqel.be>
-
- * symfile.c (overlay_auto_command): Add forgotten parameter
- definitions.
- (overlay_manual_command, overlay_off_command): Likewise.
- (overlay_load_command): Likewise.
- * tracepoint.c (memrange_cmp): Parameters have type void *, not
- struct memrange *.
-
-Tue Apr 28 11:08:25 1998 John Metzler <jmetzler@cygnus.com>
-
- * rom68k-rom.c (_initialize_rom68k): Fix unresolved init_rom_68kcmds.
-
-Mon Apr 27 14:32:21 1998 Mark Alexander <marka@cygnus.com>
-
- * config/sparc/tm-sparc.h (CALL_DUMMY): Shorten it drastically,
- make it work on the simulator.
- (FIX_CALL_DUMMY): Convert to function call instead of inline code.
- (sparc_fix_call_dummy): Declare.
- * sparc-tdep.c (sparc_fix_call_dummy): New function, taken from
- old FIX_CALL_DUMMY macro, with additional fixes for simulator.
- (sparc_push_dummy_frame): Set registers differently on simulator
- to prevent corrupted register window save areas.
-
-Mon Apr 27 13:46:40 1998 John Metzler <jmetzler@cygnus.com>
-
- * rom68k-rom.c (_initialize_rom68k, init_rom68k_cmds):
- Convert all static initializations of monitor ops structures to
- executable initializations in order that additions to the data
- structure definition can me made without repeating this editing
- exercise.
- * abug-rom.c (_initialize_abug_rom, init_abug-cmds): Ditto.
- * cpu32bug-rom.c (_initialize_cpu32bug_rom, init_cpu32bug_cmds): Ditto.
- * mon960-rom.c (initialize_mon960, init_mon960_cmds): Ditto.
- * op50-rom.c (initialize_op50n, init_op50n_cmds): Ditto.
- * ppcbug-rom.c (_initialize_ppcbug_rom, init_ppc_cmds): Ditto.
- * sh3-rom.c (_initialize_sh3_rom, init_sh3_cmds): Ditto.
- * sparclet-rom.c (_initialize_sparclet, init_sparclet_cmds): Ditto.
- * remote-est.c (_initialize_est, init_est_cmds): Ditto.
- * remote-hms.c ( _initialize_remote_hms, init_hms_cmds): Ditto.
-
-Mon Apr 27 10:43:04 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * gdb_string.h (strdup): Don't specify arguments in prototype.
-
-Sun Apr 26 07:57:21 1998 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
-
- * rs6000-nat.c (vmap_ldinfo): Issue warning instead of error if
- fstat on ldinfo_fd fails. Use objfile->obfd instead of vp->bfd
- to check for reference to the same file.
-
- * target.c (target_read_string): Handle string transfers at the
- end of a memory section gracefully.
-
-Fri Apr 24 17:18:56 1998 Geoffrey Noer <noer@cygnus.com>
-
- * Makefile.in: enable EXEEXT setting
-
-Fri Apr 24 11:53:49 1998 David Taylor <taylor@texas.cygnus.com>
-
- * tracepoint.c (add_local_symbols): change type of type from
- char to int so that type shows up as 'A' or 'L' not 0.
-
-Thu Apr 23 16:37:20 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * README: Minor changes for 4.17 release.
-
-Thu Apr 23 15:44:39 1998 Per Bothner <bothner@cygnus.com>
-
- * symfile.c (deduce_language_from_filename): .class implies java.
-
-Thu Apr 23 12:52:21 1998 Philippe De Muyter <phdm@macqel.be>
-
- * configure.in (strerror): Check if function must be declared.
- * acconfig.h (NEED_DECLARATION_STRERROR): New define slot.
- * gdb_string.h (strerror): Function declaration issued if
- NEED_DECLARATION_STRERROR.
- * configure, config.in: Files regenerated.
-
-Thu Apr 23 12:27:43 1998 Philippe De Muyter <phdm@macqel.be>
-
- * symfile.c (simple_overlay_update_1): Do not prefix array address
- by `&'.
- * bcache.h (BCACHE_DATA_ALIGNMENT): Ditto.
- * tracepoint.c (encode_actions): Ditto.
- * language.c, complaints.c, utils.c (varargs.h): Do not include that
- file here, it is already included indirectly by defs.h.
- * dbxread.c (dbx_symfile_init, process_one_symbol): Cast xmalloc return
- value to the appropriate pointer type.
- * utils.c (floatformat_from_doublest): Ditto.
- * tracepoint.c (read_actions, _initialize_tracepoint): Ditto.
- (add_memrange): Likewise with xrealloc return value.
- * stabsread.c (ref_add): Ditto.
- * coffread.c (coff_symfile_init): Likewise for xmmalloc return value.
- * elfread.c (elf_symfile_read): Ditto.
- * os9kread.c (os9k_symfile_init): Ditto.
-
-Thu Apr 23 00:32:08 1998 Tom Tromey <tromey@cygnus.com>
-
- * config.in: Rebuilt.
- * acconfig.h (ENABLE_NLS, HAVE_CATGETS, HAVE_STPCPY, HAVE_GETTEXT,
- HAVE_LC_MESSAGES): Define.
-
-Wed Apr 22 15:38:56 1998 Tom Tromey <tromey@cygnus.com>
-
- * configure: Rebuilt.
- * configure.in: Call CY_GNU_GETTEXT.
- * Makefile.in (top_builddir): New macro.
- (INTL): Define to @INTLLIBS@.
- (INTL_DEPS): New macro.
- (CDEPS): Reference INTL_DEPS, not INTL.
-
-Wed Apr 22 12:58:23 1998 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- Handle missing shared libraries during the examination of a core
- dump gracefully.
- * solib.c (find_solib): Use catch_errors around call to
- solib_map_sections. Use warning instead of error if reading of
- the shared library name fails.
- (solib_map_sections): Change return and argument types to make
- it callable from catch_errors.
- (symbol_add_stub): Avoid GDB core dump if solib->abfd is NULL.
- * irix5-nat.c, osfsolib.c (xfer_link_map_member, solib_map_sections,
- symbol_add_stub): Ditto.
-
-Wed Apr 22 14:34:49 1998 Michael Meissner <meissner@cygnus.com>
-
- * Makefile.in (INTL*): Add support to link in the intl library,
- and to add -I options to its source and object directories.
- (INTERNAL_CFLAGS): Ditto.
- (C{LIBS,DEPS}): Ditto.
-
-Tue Apr 21 11:20:54 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * mips-tdep.c (gdb_print_insn_mips): Disassemble MIPS instructions
- with subtarget-specific `mach', rather than fixed default.
- * config/mips/tm-mips.h (TM_PRINT_INSN_MACH): New macro, default
- disassembly `mach'.
-
-Mon Apr 20 15:35:03 1998 Philippe De Muyter <phdm@macqel.be>
-
- * coffread.c (decode_base_type): Treat a long field with size greater
- than TARGET_LONG_BIT as long long.
- * values.c (value_from_longest): Print code value in error message.
-
-Mon Apr 20 15:32:21 1998 Mark Kettenis <kettenis@phys.uva.nl>
-
- * gdb/gdb_string.h (strdup): Declare only if not defined as a
- macro.
-
-Mon Apr 20 14:18:45 1998 J. Kean Johnston <jkj@sco.com>
-
- * procfs.c: Added replacement macros for LWP stuff. Fixed support
- for UnixWare / SVR4.2MP targets and any targets which use
- multi-file /proc entries. Fixed support for hardware watchpoints.
- * solib.c: SCO needs some of the same code as SunOS. Change
- preprocessor conditionals.
-
- * config/i386/i386sco5.mt: New file.
- * config/i386/tm-i386sco5.h: New file.
- * config/i386/i386sco5.mh (NATDEPFILES): add i386v-nat.o.
- * config/i386/nm-i386v42mp.h
- (TARGET_HAS_HARDWARE_WATCHPOINTS): define.
- Add other macros for hardware assisted watchpoints.
- * config/i386/nm-i386sco5.h: Correct attributions.
- (TARGET_HAS_HARDWARE_WATCHPOINTS): define.
- * config/i386/nm-linux.h (target_remote_watchpoint): Pass
- 'type' through to i386_insert_watchpoint.
-
-Mon Apr 20 14:12:30 1998 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * infrun.c (wait_for_inferior): Don't add signalled processes
- as new threads.
- * procfs.c (wait_fd): Note if LWP has exited.
- (procfs_wait): use GETPID to get process ID.
-
-Sat Apr 18 15:21:04 1998 Stan Cox <scox@cygnus.com>
-
- * configure.tgt: Added sparc86x support.
-
-Thu Apr 16 13:13:24 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * rdi-share/etherdrv.c (EthernetWrite): Use strerror to get
- error string if in an ANSI C-ish environment.
-
-Wed Apr 15 18:59:48 1998 Mark Alexander <marka@cygnus.com>
-
- * sparc-tdep.c (SPARC_HAS_FPU): Define.
- (sparc_extract_return_value): New function, required to handle
- machines without floating point.
- (sparc_store_return_value): Ditto.
- * config/sparc/tm-sparc.h (EXTRACT_RETURN_VALUE): Call
- sparc_extract_return_value instead of using inline code.
- (sparc_extract_return_value): Declare.
- (STORE_RETURN_VALUE): Call sparc_store_return_value instead
- of using inline code.
- (sparc_store_return_value): Declare.
-
-Wed Apr 15 12:19:42 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * solib.c (enable_break): Only call warning once
- instead of three times.
-
-Tue Apr 14 16:52:59 1998 Mark Alexander <marka@cygnus.com>
-
- * sparc-tdep.c (sparc_extract_struct_value_address): Make it
- work correctly on little-endian hosts.
- (sparc_push_arguments): New function.
- (gdb_print_insn_sparc): New function.
- (_initialize_sparc_tdep): Make gdb_print_insn_sparc the default
- disassembler, so that SPARClite-specific instructions will
- be recognized.
- * sparcl-tdep.c (readchar): Print debugging information.
- (debug_serial_write): New function, a replacement for SERIAL_WRITE
- that prints debugging information.
- * config/sparc/tm-sparc.h (PUSH_ARGUMENTS): Define.
- (sparc_push_arguments): Declare.
-
-Tue Apr 14 15:43:49 1998 John Metzler <jmetzler@cygnus.com>
-
- * gdbcfgxref (xref_menu): Call new regex and wild card searches
- Now you can type in a specific triple like mips64-vr4300-elf or
- somthing like mips*.h
- (triple_search, wildcardsearch): The new functions
-
-Mon Apr 13 16:28:07 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * utils.c (warning): added call to warning_hook
-
- * source.c (find_source_lines): modified to call warning in case
- of source vs. executable time stamp mismatch. Simplified object
- file check. Initialized mtime to 0.
-
- * defs.h: added warning_hook prototype
-
- * top.c: added warning_hook prototype.
-
-Mon Apr 13 09:54:08 1998 Keith Seitz <keiths@andros.cygnus.com>
-
- * config/sparc/tm-sun4os4.h (IS_STATIC_TRANSFORM_NAME): Add missing
- definition.
-
-Fri Apr 10 22:36:28 1998 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- Update support for x86 Solaris 2.
- * config/i386/tm-i386sol2.h, nm-i386sol2.h: New configuration
- files for x86 Solaris 2.
- * config/i386/i386sol2.mt, i386sol2.mh: Use them.
- * config/sparc/tm-sun4sol2.h (PROCFS_GET_CARRY): New macro, extract
- carry flag from a given regset.
- (IS_STATIC_TRANSFORM_NAME): New macro, check if a symbol name
- is a SunPro transformed name.
- * i386-tdep.c (sunpro_static_transform_name): New function to
- extract the source name from a SunPro transformed name.
- * inferior.h (procfs_first_available, procfs_get_pid_fd):
- Add prototypes.
- * infrun.c (wait_for_inferior): Handle breakpoint hit in
- signal handler without intervening stop in sigtramp.
- * procfs.c (procfs_lwp_creation_handler): Use PROCFS_GET_CARRY
- instead of direct access to the status register.
- (procfs_get_pid_fd): New function, returns procfs fd for a given pid.
- * sol-thread.c (ps_lgetLDT): New function, returns LDT for a given
- lwpid.
- (sol_find_new_threads): Handle failed libthread_db initialization
- gracefully.
- * stabsread.c (define_symbol): Use IS_STATIC_TRANSFORM_NAME
- to check for a SunPro transformed symbol name.
-
-Fri Apr 10 10:35:35 1998 John Metzler <jmetzler@cygnus.com>
-
- * utils.c (fmthex): A formatting function for hexdumps
-
- * mips-tdep.c (unpack_mips16): Fixed instruction decoding, lots of
- bit pattern interpretations. mips_fetch_instruction does not work
- for 16 bit instructions. Some confusion remains about sign
- extension in backward branches.
- (mips32_relative_offset): Sign extension
- (mips32_next_pc): Major debugging, bit pattern interpretation
- (print_unpack): debugging printf
- (fetch_mips_16): new funtion, key on PC low bit, not symbol table
- (mips16_next_16): Initial major debugging of this function. Lots
- of bit pattern mistakes.
- (mips_next_pc): key on low bit of PC, not symbol table.
- * symfile.c (generic_load): Added a download verification which
- reads back the loaded code. Download chunk size is now a defined
- macro. Fixed a bug in which downloading slips into loading one
- byte at a time. Lower level functions in monitor.c can load long
- sequences of bytes and make use of these fixups. Referencing
- bfd-start_address directly was incorrectly getting zero for start.
-
-Thu Apr 9 19:20:32 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * mips-tdep.c (do_fp_register_row): Use alloca rather than arrays
- with dynamic size.
-
-Wed Apr 8 19:21:42 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * top.c (print_gdb_version): Print 1998 now.
-
-Wed Apr 8 16:57:22 1998 Philippe De Muyter <phdm@macqel.be>
-
- * source.c: Remove obsolete decl of strstr().
-
-Wed Apr 8 16:47:33 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * solib.c (solib_create_inferior_hook): Remove Ulrich Drepper's
- patch of March 23 1998.
- * breakpoint.c (breakpoint_re_set_one): Remove Ulrich Drepper's
- patch of March 23 1998.
-
-Sat Apr 4 10:05:00 1998 Dawn Perchik <dawn@cygnus.com>
-
- * mdebugread.c (parse_partial_symbols): If this is an .mdebug
- section in an ELF file, override a symbol's ECOFF section with its
- ELF section. Also, fix stabs continuation where a stabs string
- continues for more than one continuation.
-
-Mon Apr 6 09:17:48 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * mips-tdep.c (mips_push_arguments): Specify dimention of valbuf
- using MAX_REGISTER_RAW_SIZE.
-
-Sat Apr 4 10:05:00 1998 Dawn Perchik <dawn@cygnus.com>
-
- * infrun.c: Fix prototype of signals_info to match static funtion.
-
-Thu Apr 2 12:47:41 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * sol-thread.c (sol_thread_store_registers): Save & restore new
- value of single updated register to prevent accidental clobbering.
-
-Wed Apr 1 22:01:09 1998 Mark Alexander <marka@cygnus.com>
-
- * config/sparc/tm-sparclite.h (TARGET_BYTE_ORDER_SELECTABLE): Define.
- * config/sparc/sparclite.mt: Link in the erc32 simulator.
-
-Wed Apr 1 16:30:49 1998 Ian Dall <Ian.Dall@dsto.defence.gov.au>
-
- * ns32k-tdep.c (flip_bytes, ns32k_localcount,
- ns32k_get_enter_addr, sign_extend): Restore functions mysteriously
- deleted.
-
- * ns32knbsd-nat.c: New (?) file to support fetching and storing
- registers on NetBSD hosts.
-
- * nbsd.mh (NATDEPFILES): put ns32knbsd-nat.o instead of
- ns32k-nat.o
-
- * ns32km3-nat.c (reg_offset): Get order of floating point
- registers correct. Add extra 32382 register offsets.
- (REG_ADDRESS): define to point at correct part of thread
- state. Use calls to "warning" instead of "message".
-
- * tm-nbsd.h, tm-ns32km3.h (REGISTER_NAMES, NUM_REGS,
- REGISTER_BYTES, REGISTER_BYTE): redefine allowing for 32382
- fpu registers.
-
-Wed Apr 1 13:43:07 1998 Philippe De Muyter <phdm@macqel.be>
-
- * NEWS: m68k-motorola-sysv host support added.
- * coffread.c (coff_start_symtab): Accept the filename as an argument,
- set it here. Callers updated.
-
-Wed Apr 1 23:13:23 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * config/mips/tm-mips.h (REGISTER_VIRTUAL_TYPE): Handle 32 bit SR,
- FSR and FIR registers.
- (REGISTER_VIRTUAL_SIZE): Compute using REGISTER_VIRTUAL_TYPE.
- (REGISTER_RAW_SIZE): Define using REGISTER_VIRTUAL_SIZE.
-
- * config/mips/tm-mips64.h: Ditto.
-
-Tue Mar 31 21:30:39 1998 Nick Clifton <nickc@cygnus.com>
-
- * arm-tdep.c (gdb_print_insn_arm): Attach a fake Thumb symbol
- vector to the info structure when disassembling thumb
- instructions.
-
- * coffread.c (coff_symtab_read, read_one_sym,
- process_coff_symbol): Support Thumb symbol types.
-
- * dbxread.c (process_one_symbol): Call SMASH_TEXT_ADDRESS (if it
- is defined) for function symbols.
-
-Tue Mar 31 16:39:28 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * tracepoint.c (get_tracepoint_by_number): change warning to note.
- (delete_trace_command): suppress y/n query if no tracepoints, or
- if not from_tty. (trace_pass_command): reject junk at end of args.
- (read_actions): an action list consisting only of "end" is discarded.
- (validate_actionline (for collect command)): an argument beginning
- with a dollar_sign but not recognized as a special argument is
- parsed like any other expression -- if it isn't a register name,
- it's rejected. Also reject an empty argument to while-stepping.
- (trace_find_command): reject a negative frame number argument.
- (_initialize_tracepoint): set $traceframe initially to -1.
-
-Mon Mar 30 16:42:12 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * rdi-share/Makefile.am, rdi-share/aclocal.m4,
- rdi-share/configure: New files.
- * rdi-share/configure.in: Rewritten to be an autoconf input file.
- * rdi-share/Makefile.in, rdi-share/configure: Generated by
- automake/autoconf.
- * rdi-share/dbg_hif.h, etherdrv.c, hostchan.c: Use autoconf tests
- to check environment.
-
-Sun Mar 29 15:17:16 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * tracepoint.c (trace_start_command): Set trace_running_p.
- (trace_stop_command): Clear trace_running_p.
-
-Sat Mar 28 15:19:48 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- * NEWS: Update for 4.17 release.
-
-Fri Mar 27 10:15:50 1998 David Taylor <taylor@tito.cygnus.com>
-
- * tracepoint.c (parse_and_eval_memrange): Fix memory leaks.
- (encode_actions): Use the new gen_trace_for_expr function
- instead of expr_to_address_and_size; collect registers when
- using expressions. (clear_collection_list): Fix memory leak.
-
-1998-03-26 Jim Blandy <jimb@zwingli.cygnus.com>
-
- * ax-gdb.h (gen_trace_for_expr): Add prototype.
-
-Thu Mar 26 17:24:23 1998 David Taylor <taylor@texas.cygnus.com>
-
- * tracepoint.c (validate_actionline): Fix memory leak.
- (encode_actions): Fix memory leak.
-
-Thu Mar 26 16:16:55 1998 David Taylor <taylor@tito.cygnus.com>
-
- * tracepoint.c (trace_mention): New function.
- (trace_command): Call it.
-
-1998-03-26 Jim Blandy <jimb@zwingli.cygnus.com>
-
- * ax-general.c (ax_reqs): New function.
- * ax.h (enum agent_flaws, struct agent_reqs): New types.
- (agent_reqs): New extern prototype. Well, actually, this was
- there before, due to a premature checkin.
- (struct aop_map): Add new `data_size' member.
- * ax-general.c (aop_map): Supply its value.
- * ax-gdb.c (agent_command): Call ax_reqs, for testing.
-
- * ax-general.c (ax_print): If we encounter an invalid or
- incomplete opcode, don't abort; just print an error message.
-
- * ax-gdb.c: Generate trace bytecodes, as appropriate.
- (trace_kludge): New variable.
- (gen_fetch, gen_bitfield_ref): Emit trace bytecodes, if asked
- nicely.
- (expr_to_agent): Ask for no trace bytecodes.
- (gen_trace_for_expr): New function.
- (agent_command): Call it, and display the result appropriately ---
- no struct axs_value, so no type or kind information.
-
- * ax-gdb.c: Use TARGET_CHAR_BIT throughout, not HOST_CHAR_BIT.
-
-Thu Mar 26 22:29:28 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- * tracepoint.c (trace_status_command): Recognize a boolean return
- value from the stub to indicate whether trace experiment is
- running. Export this value as a global state variable.
- (trace_running_p) for use by the GUI. (from Michael Snyder)
- (trace_pass_command) added call to modify_tracepoint_hook.
-
- * tracepoint.h export trace_running_p.
-
-Thu Mar 26 13:08:01 1998 David Taylor <taylor@texas.cygnus.com>
-
- * tracepoint.c (validate_actionline): do not error out if
- exp->elts[0].opcode is not on short line -- let
- expr_to_address_and_size handle it.
-
-1998-03-26 Jim Blandy <jimb@zwingli.cygnus.com>
-
- * tracepoint.c: Include "ax.h", not "agentexpr.h".
-
- * tracepoint.c (encode_actions): Call expr_to_address_and_size,
- not simply expr_to_agent.
-
- * ax-general.c: Comment out code in progress, so everyone else can
- at least compile.
-
- * gdbtypes.c: Doc fix.
-
- * ax.h, ax-gdb.h, ax-general.c, ax-gdb.c: New files.
- * Makefile.in (REMOTE_OBJS): Add ax-general.o and ax-gdb.o.
- (SFILES): Add ax-general.c, ax-gdb.c.
- (ax_h): New variable.
- (ax-general.o, ax-gdb.o): New rules.
-
-
-Tue Mar 24 16:22:40 1998 Stu Grossman <grossman@bhuna.cygnus.co.uk>
-
- * Makefile.in: Derive SHELL from configure.
- * config/d10v/d10v.mt config/m32r/m32r.mt
- config/mn10200/mn10200.mt config/mn10300/mn10300.mt
- config/d30v/d30v.mt: Remove -lm from SIM. This prevents
- dependency checking of -lm (under NT native builds). (It is
- automatically added by configure if it exists.)
- * doc/configure mswin/configure nlm/configure
- testsuite/gdb.base/configure testsuite/gdb.c++/configure
- testsuite/gdb.chill/configure testsuite/gdb.disasm/configure
- testsuite/gdb.stabs/configure testsuite/gdb.threads/configure:
- Regenerate with autoconf 2.12.1 to fix shell issues for NT native
- builds.
-
-Mon Mar 23 18:10:57 1998 Ulrich Drepper (drepper@cygnus.com)
-
- * solib.c (solib_create_inferior_hook): Rewrite previous
- change to check the type of file via BFD.
-
-Mon Mar 23 13:52:28 1998 Ulrich Drepper (drepper@cygnus.com)
-
- * breakpoint.c (breakpoint_re_set_one): Treat bp_shlib_events
- like bp_breakpoints.
- * solib.c (solib_create_inferior_hook): Relocate section addresses
- if the alleged start address doesn't agree with the PC.
-
-Sat Mar 21 19:34:49 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
-
- merged changes from Foundry (list follows by file/author):
-
- - Tom Tromey <tromey@cygnus.com>
- * Makefile.in (gdbres.o): New target.
- (WINDRES): New define.
- * configure: Rebuilt.
- * configure.in (WINDRES): Define.
- (CONFIG_OBS): Include gdbres.o on Windows.
- * gdbtool.ico: New file.
- * gdb.rc: New file.
-
- * ser-unix.c
- - Keith Seitz <keiths@onions.cygnus.com>
- (wait_for): Don't reset the timeout_remaining for CYGWIN32,
- since we now effectively poll the serial port.
- Don't reset the current_timeout, either, since this member is used
- by hardwire_readchar to track the timeout and call the ui_loop_hook.
- (hardwire_readchar): Poll the serial port for Cygwin32. We timeout
- every second, update the UI, and loop around doing this until we
- have hit the real timeout or we get data or an error. This will
- allow the UI to stay active while gdb is "blocked" talking to the
- target.
- - Martin M. Hunt <hunt@cygnus.com>
- (wait_for): Do reset current_timeout because it is only used to
- keep track of what the current timeout for the scb is.
-
- * top.c
- - Martin M. Hunt <hunt@cygnus.com>
- (quit_confirm): Change exit message again
- for GUI.
- (pc_changed_hook): Add prototype.
- - Tom Tromey <tromey@cygnus.com>
- (quit_confirm): Added missing `else'.
- (quit_confirm): Special-case message if init_ui_hook is
- set.
-
- * symtab.c
- - Martin M. Hunt <hunt@cygnus.com>
- (find_pc_sect_line): If no symbol information
- is found, return correct pc anyway.
- (find_methods): Comment out an apparently
- bogus error message because it messes up Foundry.
-
- * serial.c
- - Martin M. Hunt <hunt@cygnus.com>
- (_initialize_serial): Add a description of
- "set remotelogbase".
-
- * findvar.c
- - Martin M. Hunt <hunt@cygnus.com>
- (write_register_gen): Add call to
- pc_changed_hook if the PC is being changed.
-
- * defs.h
- - Martin M. Hunt <hunt@cygnus.com>
- (pc_changed_hook): Define.
-
- * command.c
- - Martin M. Hunt <hunt@cygnus.com>
- (do_setshow_command): If no arguments are supplied,
- don't dump core, instead print out an error message.
-
- * breakpoint.c
- - Martin M. Hunt <hunt@cygnus.com>
- Make set_raw_breakpoint, set_breakpoint_count,
- and breakpoint_count non-static so they are accessible from
- elsewhere.
- (enable_breakpoint): Enable breakpoint
- with same disposition instead of changing all breakpoints
- to donttouch.
-
- * annotate.h
- - Keith Seitz <keiths@onions.cygnus.com>
- Add declarations for annotation hooks.
-
- * annotate.c
- - Keith Seitz <keiths@onions.cygnus.com>
- Add hooks: annotate_starting_hook, annotate_stopped_hook,
- annotate_signalled_hook, annotate_exited_hook.
- (annotate_starting): If hook exists, call it instead.
- (annotate_stopped): If hook exists, call it instead.
- (annotate_exited): If hook exists, call it instead.
- (annotate_signalled): If hook exists, call it instead.
-
-Fri Mar 20 14:45:36 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
-
- * gdbserver/Makefile.in: add dependency on XM_CLIBS.
- * gdbserver/low-sim.c (registers) force into alignment.
- (create_inferior): Fix typo on new_argv; add abfd arg to
- sim_open, sim_create_inferior. Add reg_size arg to
- sim_fetch_register, sim_store_register. Make simulator
- take a single-step to get into a known running state.
- * gdbserver/gdbreplay.c: include fcntl.h for def'n of F_SETFL.
- * gdbserver/server.c: Add remote_debug variable to control
- debug output.
- * gdbserver/server.h: Add prototypes for enable/disable_async_io.
- * gdbserver/remote-utils.c: add verbose debugging output controlled
- by "remote_debug" variable. Add call to "disable_async_io()"
- to avoid being killed by async SIGIO signals.
- * config/m32r/m32r.mt: define GDBSERVER_(LIBS and DEPFILES),
- so that gdbserver can be built with the m32r simulator.
-
-Fri Mar 20 09:04:06 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gdbtypes.h (builtin_type_{,u}int{8,16,32,64}): New gdb builtin
- types.
-
- * gdbtypes.c (_initialize_gdbtypes): Initialize new types.
-
- * mips-tdep.c (do_gp_register_row): Pad register value when GP
- register is smaller than MIPS_REGSIZE.
-
- * findvar.c (value_of_register): When raw and virtual register
- values identical, check that sizes are consistent.
-
-Thu Mar 19 11:32:15 1998 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * minsyms.c (compare_minimal_symbols): If addresses are identical,
- then compare on names. Sorted list should have symbols with
- identical addresses AND names adjacent, so dups can be discarded.
-
-Wed Mar 18 12:50:17 1998 Jeff Law (law@cygnus.com)
-
- * stabsread.c (define_symbol): Don't look for ',' as a LRS
- indicator.
-
-Wed Mar 18 10:34:51 1998 Nick Clifton <nickc@cygnus.com>
-
- * rdi-share/etherdrv.c: Set sys_errlist[] as char * not const char *.
-
-Fri Mar 13 15:43:53 1998 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * config/mips/xm-mips.h (CC_HAS_LONG_LONG): Undefine for Ultrix
- when compiling with native cc, the compiler has broken long long
- support.
-
-Fri Mar 13 15:37:02 1998 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * config/m68k/xm-sun3os4.h: Remove malloc declarations, they
- are handled via autoconf now.
- * remote.c (remote_ops, extended_remote_ops): Replace static
- forward declaration by moving the static definition to the top of
- the file, for old K&R compilers.
- * tracepoint.c (collect_symbol, trace_start_command):
- Replace ANSI string concatenation with K&R compatible simple string.
-
-1998-03-11 Fred Fish <fnf@ninemoons.com>
-
- * source.c (select_source_symtab): Don't reach error if we have
- a current_source_symtab from reading in partial symbol table.
-
-Fri Mar 6 13:10:27 1998 Fred Fish <fnf@cygnus.com>
-
- * utils.c (quit): Call SERIAL_DRAIN_OUTPUT rather than
- SERIAL_FLUSH_OUTPUT.
- * serial.h (struct serial_ops): Add drain_output, pointer to
- function that waits for output to drain.
- (SERIAL_DRAIN_OUTPUT): Macro to wait for output to drain.
- * ser-unix.c (hardwire_drain_output): New function and prototype.
-
- * ser-unix.c (hardwire_ops): Add entry for drain_output function.
- * ser-tcp.c (tcp_ops): Ditto.
- * ser-ocd.c (ocd_ops): Ditto.
- * ser-mac.c (mac_ops): Ditto.
- * ser-go32.c (dos_ops): Ditto.
- * ser-e7kpc.c (e7000pc_ops): Ditto.
-
-Thu Mar 5 16:07:41 1998 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * sparcl-tdep.c: fix #endif comments
-
-Thu Mar 5 15:10:35 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * Makefile.in (BISON): Configure substitutes in @YACC@, not @BISON@.
-
-Thu Mar 5 14:42:41 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * ocd.c (ocd_open): If we fail ocd_start_remote, make sure we
- error () so that we abort out of bdm_ppc_open.
-
-Wed Mar 4 16:53:52 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * serial.c (_initialize_serial): Add a description of
- "set remotelogbase".
-
- * command.c (do_setshow_command): If no arguments are supplied,
- don't dump core, instead print out an error message.
-
-Wed Mar 4 01:39:08 1998 Ron Unrau <runrau@cygnus.com>
-
- * elfread.c (elf_symtab_read): merge SYMBOL_IS_SPECIAL into
- MAKE_MSYMBOL_SPECIAL
- * config/mips/tm-mips.h: ditto
-
-Tue Mar 3 17:19:08 1998 John Metzler <jmetzler@cygnus.com>
-
- * dwarfread.c (read_tag_pointer_type): Pointer sizes now come from
- TARGET_PTR_BIT rather from sizeof(char *) on host.
-
-Tue Mar 3 14:37:02 1998 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
-
- * alpha-nat.c (fetch_osf_core_registers): Renamed from
- fetch_aout_core_registers.
- (alpha_osf_core_fns): Renamed from alpha_aout_core_fns, change
- flavour to bfd_target_unknown_flavour for OSF core files.
-
-Mon Mar 2 17:44:13 1998 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * breakpoint.c (_initialize_breakpoint): Make "en" an alias
- for "enable" (so that it doesn't conflict with "end").
-
-Mon Mar 2 17:04:25 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * Makefile (VERSION): Bump to 4.17.1.
-
-Mon Mar 2 16:59:15 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * rdi-share/etherdrv.c (sys_errlist): Add correct decl for Linux.
-
-Mon Mar 2 16:51:44 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * Makefile.in (YYFILES): Remove in maintainer-clean, not distclean.
-
-Mon Mar 2 16:47:11 1998 Philippe De Muyter <phdm@macqel.be>
-
- * Makefile.in (distclean): Add `rm $(YYFILES)'.
-
-Mon Mar 2 16:45:48 1998 Philippe De Muyter <phdm@macqel.be>
-
- * coffread.c (coff_read_enum_type): Set TYPE_FLAG_UNSIGNED if enum
- is unsigned.
-
-Sun Mar 2 15:16:13 1998 Richard Henderson <rth@cygnus.com>
-
- * configure.host, configure.tgt: Add sparc-linux.
- * sparc-nat.c: Include <asm/reg.h> not <machine/reg.h> for Linux.
- * config/sparc/*linux*: New files.
-
-Mon Mar 2 12:12:41 1998 Anthony Thompson (athompso@cambridge.arm.com)
-
- * arm-tdep.c (gdb_print_insn_arm): Call print_insn_big_arm
- if we're big endian; else call print_insn_little_arm.
-
-Mon Feb 24 11:24:57 1998 Richard Henderson <rth@cygnus.com>
-
- * Makefile.in (BISON): Don't even pretend to use yacc.
- (c-exp.tab.o): Use bison -o to use a unique intermediate file.
- (f-exp.tab.o, m2-exp.tab.o): Likewise.
- (jv-exp.tab.o): Likewise.
-
-Tue Feb 24 03:32:59 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-sim.c (gdbsim_fetch_register): Don't abort when the
- register size is wrong.
-
-Thu Feb 19 16:49:48 1998 John Metzler <jmetzler@cygnus.com>
-
- * target.c (debug_to_fetch_registers,debug_to_store_registers,
- debug-to_insert_breakpoint,debug_to_remove_breakpoint): tracing
- 64 bit targets crashed long long printfs.
-
-Tue Feb 17 16:36:22 1998 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * symfile.c (read_target_int_array): rename read_target_long_array
- and force the sizeof an ovly_table element to sizeof(long),
- instead of sizeof(int).
-
-Tue Feb 17 18:05:05 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * remote-mips.c (mips_request): Use unsigned long during parsing
- returned value from monitor, to prevent accidental sign extension.
-
-Tue Feb 17 14:28:33 1998 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
-
- * acconfig.h: FORCE_MMCHECK changed to MMCHECK_FORCE.
- * configure.in: Ditto.
- * configure: Regenerated.
-
-Tue Feb 17 14:07:34 1998 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
-
- * gdbtypes.c (check_typedef): Do not try to resolve the length of
- a type which has TYPE_FLAG_TARGET_STUB set, if the target type has
- set TYPE_FLAG_TARGET_STUB as well.
-
-Tue Feb 17 14:32:18 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-sim.c (gdbsim_fetch_register, gdbsim_store_register):
- Pass register size to sim_{fetch,store}_register. Check nr of
- register bytes transfered is correct.
-
-Mon Feb 16 14:05:54 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-d10v.c (remote_d10v_open): Call push_remote_target
- instead of open_remote_target.
-
- * remote.c (remote_xfer_memory): Use REMOTE_TRANSLATE_XFER_ADDRESS
- to translate addr/size when defined.
- (open_remote_target): Delete.
-
- * target.h (open_remote_target): Delete.
-
- * config/d10v/tm-d10v.h (REMOTE_TRANSLATE_XFER_ADDRESS): Define.
-
-Mon Feb 16 14:05:54 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * d10v-tdep.c (d10v_extract_return_value): Wierd. GCC wants to
- return odd sized register quantities with only half of the first
- register used!
-
- * config/d10v/tm-d10v.h (USE_STRUCT_CONVENTION): Use stack when
- size > 8.
-
-Mon Feb 16 14:05:54 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * config/d10v/tm-d10v.h (USE_STRUCT_CONVENTION): Define. True when
- sizeof type > 1.
-
-Sun Feb 15 16:10:50 1998 Ron Unrau <runrau@cygnus.com>
-
- * parse.c (write_dollar_variable): call new function
- target_map_name_to_register to allow targets to define their own
- register name aliases.
- * infcmd.c (registers_info): use target_map_name_to_register so that
- "print $reg" and "info reg $reg" use the same register name aliases.
-
-Fri Feb 13 16:40:30 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- * config/i386/i386mk.mt (OBJFORMATS): Delete, no longer used.
- * config/i386/xm-i386mk.h: Fix an include.
- * config/pyr/tm-pyr.h (PC_INNER_THAN): Remove, never used.
-
-Thu Feb 12 16:12:07 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * remote-mips.c (mips_enter_debug): Sleep before sending CR to
- monitor.
- (mips_exit_debug): Accept any whitespace / verbiage before monitor
- prompt reappears.
-
-Thu Feb 12 18:25:42 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * d10v-tdep.c (show_regs): Avoid use of %llx when printing 8 byte
- accumulators.
-
-Thu Feb 12 17:10:22 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * valops.c (value_at): For d10v, make read pointers with
- read_target_unsigned_integer, keep addresses unsigned.
- (value_fetch_lazy): Ditto.
-
-Thu Feb 12 12:14:02 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-d10v.c: New file. Layer the d10v GDB->remote memory map
- on top of the remote serial memory transfer functions.
-
- * config/d10v/d10v.mt (TDEPFILES): Add remote-d10v.o
-
- * Makefile.in (remote-d10v.o): Add dependencies.
-
- * remote.c (remote_open_1): Add arg extended_p, engage extended
- protocol when extended_p.
- (remote_open, extended_remote_open): Pass !extended_p /
- extended_p to remote_open_1.
-
- * remote.c (open_remote_target), target.h: New function.
-
-Wed Feb 11 08:41:15 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * config/i386/fbsd.mh (XDEPFILES): Add ser-tcp.o.
-
-Tue Feb 10 17:50:37 1998 Keith Seitz <keiths@onions.cygnus.com>
-
- * tracepoint.c (tracepoint_operation): Call the modify_tracepoint_hook
- if it exists.
- Remove static declaration of free_actions.
-
- * tracepoint.h: Add declaration of free_actions.
-
-Tue Feb 10 12:17:13 1998 Fred Fish <fnf@cygnus.com>
-
- * symtab.c (decode_line_1): Revert change that mistakenly
- removed assignment of sals[0].pc field.
-
-Mon Feb 10 12:37:47 1998 Philippe De Muyter <phdm@macqel.be>
-
- * m68k/tm-delta68.h (EXTRACT_RETURN_VALUE): Type argument for
- `REGISTER_CONVERT_TO_VIRTUAL is `TYPE', not
- `REGISTER_VIRTUAL_TYPE (FP0_REGNUM)';
- (STORE_RETURN_VALUE): Ditto, and offset for `write_register_bytes'
- is `REGISTER_BYTE (FP0_REGNUM)', not `FP0_REGNUM'.
- (FRAME_NUM_ARGS): New macro.
- * m68k/tm-news.h (EXTRACT_RETURN_VALUE, STORE_RETURN_VALUE): Ditto.
- * delta68-nat.c (clear_insn_cache): New function, forgotten in previous
- patch.
-
-Mon Feb 9 11:10:06 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * d10v-tdep.c: Replace references to IMEM_ADDR and DMEM_ADDR with
- D10V_MAKE_[DI]ADDR and D10V_CONVERT_[ID]ADDR_TO_RAW macros.
-
- * config/d10v/tm-d10v.h (IMEM_START): Move to 0x01......
- (DMEM_START): Move to 0x00......
- (STACK_START): Move to 0x00..7ffe.
- (D10V_MAKE_IADDR, D10V_MAKE_DADDR): Translate unconditionally.
-
- * d10v-tdep.c (d10v_xlate_addr): Delete function.
-
-Mon Feb 9 15:10:21 1998 Fred Fish <fnf@cygnus.com>
-
- * symtab.c (fixup_psymbol_section): Move forward declaration to
- top of file with other such decls. Make it a static function.
- * symtab.h: Minor formatting tweaks.
-
-Mon Feb 9 13:14:12 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- * config/a29k-udi.mt, config/i960/vxworks960.mt (REMOTE_OBS):
- Remove redefinition.
- * config/i960/tm-i960.h (BREAKPOINT): Define.
-
-Mon Feb 9 15:35:38 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (init.c): Ignore errors when making init.c. Seems
- necessary to work around bug in Solaris make.
-
-Sun Feb 6 02:44:28 1998 Philippe De Muyter <phdm@macqel.be>
-
- * m68k/tm-delta68.h (CPLUS_MARKER): Macro deleted.
- (EXTRACT_STRUCT_VALUE_ADDRESS): Macro defined.
- (EXTRACT_RETURN_VALUE, STORE_RETURN_VALUE): Macros modified
- because floating-point values return via %fp0.
- (CLEAR_INSN_CACHE): New macro.
- * m68k/tm-m68k.h (REGISTER_CONVERT_TO_VIRTUAL): Macro fixed
- to use DOUBLEST.
- (REGISTER_CONVERT_TO_RAW): Ditto.
- * infptrace.c (child_xfer_memory): If CLEAR_INSN_CACHE is defined,
- call it after having written in child process's memory.
- * inflow.c (PROCESS_GROUP_TYPE): Macro defined if HAVE_TERMIO.
- (gdb_has_a_terminal, terminal_ours_1): Functions fixed for HAVE_TERMIO.
-
-Fri Feb 6 16:17:30 1998 Jeffrey A Law (law@cygnus.com)
-
- * config/mips/tm-mips64.h (TARGET_LONG_BIT): Allow final target to
- override.
- (TARGET_LONG_LONG_BIT): Likewise.
- (TARGET_PTR_BIT): Likewise.
-
-Fri Feb 6 17:42:22 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * config/d10v/tm-d10v.h (D10V_CONVERT_IADDR_TO_RAW,
- D10V_CONVERT_DADDR_TO_RAW): Define.
-
- * d10v-tdep.c (d10v_push_arguments): Re-write. Pass arguments in
- registers, regardless of their size, when they fit.
-
-Thu Feb 5 13:16:36 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * d10v-tdep.c (d10v_extract_return_value): For function pointers
- translate address to IMAP area.
-
- * config/d10v/tm-d10v.h (EXTRA_FRAME_INFO): Delete dummy from
- struct.
- (POP_FRAME): Point at generic_pop_current_frame.
-
- * d10v-tdep.c (d10v_pop_frame): Delete code handling dummy frames,
- handled earlier.
- (d10v_push_return_address): New function.
- (d10v_pop_dummy_frame): Delete.
- (d10v_fix_call_dummy): Delete.
- (d10v_call_dummy_address): Delete.
-
- * d10v-tdep.c (d10v_init_extra_frame_info): Clear dummy and
- frameless.
-
- * d10v-tdep.c (d10v_push_arguments): Keep stack word aligned.
-
- * config/d10v/tm-d10v.h (EXTRACT_STRUCT_VALUE_ADDRESS): Extract
- address of structure from first ARG1_REGNUM.
-
- * d10v-tdep.c (d10v_push_arguments): Force 4 byte args into
- even-odd register pair. Store 1 and 2 byte args in registers.
-
- * valops.c (value_fetch_lazy): Ensure that a D10V function pointer
- is fetched in the correct byte order.
- (value_at): Ditto. Also ensure data pointers are mapped to data
- segment.
-
- * config/d10v/tm-d10v.h (D10V_DADDR_P, D10V_IADDR_P):
-
- * d10v-tdep.c: Replace 2 with REGISTER_RAW_SIZE.
- (d10v_pop_frame): Replace R13 with LR_REGNUM.
- (d10v_push_arguments): Replace R2 with ARG1_REGNUM.
- (d10v_push_arguments): Replace 6 with ARGN_REGNUM.
- (d10v_extract_return_value): Access return value with RET1_REGNUM.
-
- * config/d10v/tm-d10v.h (ARG1_REGNUM, ARGN_REGNUM, RET1_REGNUM):
- Define.
- (STORE_RETURN_VALUE): Specify return register using RET1_REGNUM.
- (STORE_STRUCT_RETURN): Specify ARG1_REGNUM as the struct ptr
- location.
-
-Thu Feb 5 13:16:36 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * blockframe.c (generic_pop_dummy_frame): Flush the frame, no
- longer valid.
-
- * blockframe.c (generic_pop_current_frame), frames.h: New
- function.
-
-Thu Feb 5 17:18:16 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * remote-sim.c (gdbsim_create_inferior): clear_proceed_status
- before /re/starting the simulator.
-
-Thu Feb 5 15:55:31 1998 C. M. Heard (heard@vvnet.com)
-
- * top.c (do_nothing): Remove signal handler after signal is caught.
-
-Thu Feb 5 11:57:06 1998 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * tracepoint.c (tracepoint_operation): call free_actions instead
- of free. (free_actions): eliminate some memory leaks for actions.
- (validate_actionline): pass string arg by reference, so we can
- change the pointer. Change all memrange collection arguments to
- canonical form (literal address and size), to enforce early
- evaluation. Accept UNOP_MEMVAL (assembly variables) for
- trace collection. (parse_and_eval_memrange): accept expressions
- for the address and size fields of a memrange (and evaluate
- them immediately). (several places): use -1 instead of zero
- to distinguish an absolute memrange from a register-relative one.
- (encode_actions): add handling for UNOP_MEMVAL (assembly variable).
-
-Wed Feb 4 17:40:21 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * Makefile.in (SFILES): add tracepoint.c.
- (LINTFILES): add @CONFIG_SRCS@.
- (SOURCES): Ditto.
- * configure.in (CONFIG_SRCS): Mirror use of CONFIG_OBS.
- * configure: Regenerated.
-
-Tue Feb 3 16:12:32 1998 Gordon W. Ross (gwr@mc.com)
-
- * infptrace.c (child_resume): Don't try to step if
- NO_SINGLE_STEP is defined.
-
-Mon Feb 2 19:06:13 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * Makefile.in (VERSION): Bump to 4.16.2.
-
-Mon Feb 2 17:18:25 1998 Richard Henderson <rth@cygnus.com>
-
- * alpha-nat.c (fetch_aout_core_registers): Rename from
- fetch_core_registers.
- (fetch_elf_core_registers): New function.
- (supply_gregset): Use ALPHA_REGSET_BASE.
- (supply_fpregset): Likewise.
- (fill_fpregset): Likewise.
- (alpha_aout_core_fns): Rename from alpha_core_fns.
- (alpha_elf_core_fns): New.
- * config/alpha/alpha-linux.mh (NATDEPFILES): solib.o not osfsolib.o.
- Disable MMALLOC.
- * config/alpha/nm-linux.h (SVR4_SHARED_LIBS): Define if ELF.
- (TARGET_ELF64): Likewise.
- (ALPHA_REGSET_BASE): New.
- * config/alpha/nm-osf.h (ALPHA_REGSET_BASE): New.
- * config/alpha/tm-alphalinux.h: Include tm-sysv4.h.
-
- * solib.c (elf_locate_base): Add TARGET_ELF64 support.
- (info_sharedlibary_command): Likewise.
-
- * configure.host: Match alpha*.
- * configure.tgt: Likewise.
-
-Fri Jan 30 15:11:38 1998 David Taylor <taylor@texas.cygnus.com>
-
- Changes by <Peter.Schauer@Regent.E-Technik.TU-Muenchen.DE>
- * infrun.c (IN_SOLIB_DYNSYM_RESOLVE_CODE): new macro for detecting
- whether we are in the dynamic symbol resolution code
- (wait_for_inferior): invoke it.
- * solib.c (in_svr4_dynsym_resolve_code): new function
- (enable_break): record start and end of the dynamic linker
- text and plt sections for use in in_svr4_dynsym_resolve_code.
- * solib.h (IN_SOLIB_DYNSYM_RESOLVE_CODE): add svr4 definition;
- (in_svr4_dynsym_resolve_code): declare it.
- * config/nm-gnu.h (solib.h): move inclusion to after definition
- of SVR4_SHARED_LIBS.
- * config/nm-sysv4.h (solib.h): ditto.
- * config/i386/nm-i386sco5.h (solib.h): ditto.
- * config/i386/nm-linux.h (solib.h): ditto.
- * config/mips/nm-irix5.h (IN_SOLIB_DYNSYM_RESOLVE_CODE): undefine.
-
-Thu Jan 29 19:39:31 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- * coffread.c (coff_symtab_read) [SEM]: Remove code, macro can
- never be defined.
- * dbxread.c (process_one_symbol) [BLOCK_ADDRESS_ABSOLUTE]:
- Remove, no longer needed.
- * hppa-tdep.c (N_SET_MAGIC): Remove, no longer used.
- * config/pa/xm-hppab.h (SEEK_SET, SEEK_CUR, SEEK_END): Ditto.
- * config/mips/tm-mipsm3.h (NUMERIC_REG_NAMES): Ditto.
- * config/mips/mipsm3.mt (TDEPFILES): Remove mipsread.o.
-
-Wed Jan 28 14:46:52 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- Suggested by Chris Walter <walter@budoe.bu.edu>:
- * dwarfread.c (set_cu_language): Recognize Fortran.
- * dwarf2read.c (set_cu_language): Ditto.
- (read_array_type): Fix language test.
-
-Wed Jan 28 12:51:08 1998 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * blockframe.c (generic_frame_chain_valid): A frame pointer may
- be valid if it is equal to the frame pointer of its caller (ie.
- not necessarily strictly INNER_THAN). Allows frameless functions.
-
-Wed Jan 28 11:23:25 1998 Mark Alexander <marka@cygnus.com>
-
- * monitor.c (monitor_vsprintf): New function to handle
- printing of large addresses using %A format specifier.
- (monitor_printf_noecho, monitor_printf): Use monitor_vsprintf
- instead of vsprintf.
- * dve3900-rom.c (_initialize_r3900_rom): Use %A instead of %Lx
- to print addresses.
-
-Tue Jan 27 16:14:23 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * configure.in (CONFIG_LDFLAGS): Only add -export-dynamic
- when using GNU ld.
-
-Mon Jan 26 19:07:46 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * config/alpha/tm-alphalinux.h (alpha_linux_sigtramp_offset):
- Add closing parenthesis. From HJ Lu.
-
-Mon Jan 26 17:54:45 1998 Mark Alexander <marka@cygnus.com>
-
- * dve3900-rom.c: Improve performance by using memory commands
- that print less fluff. Minor cosmetic changes.
- Eliminate compiler warnings.
-
-Sat Jan 24 23:44:43 1998 Martin M. Hunt <hunt@cygnus.com>
-
- * breakpoint.c (enable_breakpoint): Preserve breakpoint
- disposition when enabling a breakpoint.
-
- * symtab.c (find_pc_sect_line): If no symbol information
- is found, return correct pc anyway.
-
-Fri Jan 23 17:26:22 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- * configure.host (i[3456]86-*-osf1mk*, mips-*-mach3*,
- ns32k-*-mach3*): Fix file names.
- (i[3456]86-*-os9k, m88*-*-mach3*, w65-*-*): Remove config
- recognition, no source files for these.
- * configure.tgt (powerpc-*-aix4*): Remove config, now identical
- to powerpc-*-aix*.
- * config/powerpc/{aix4.mh,aix4.mt,tm-ppc-aix4.h}: Remove files,
- no longer needed.
-
-Fri Jan 23 16:49:41 1998 Mark Alexander <marka@cygnus.com>
-
- * monitor.c (monitor_write, monitor_readchar): New functions.
- * monitor.h (monitor_write, monitor_readchar): Declare.
- * dve3900-rom.c: Add support for fast loading on ethernet connections.
-
-Fri Jan 23 07:47:06 1998 Fred Fish <fnf@cygnus.com>
-
- * config/d10v/tm-d10v.h (CALL_DUMMY): Define as "{ 0 }".
- (TARGET_READ_FP): Define to d10v_read_fp rather than d10v_read_sp.
- (TARGET_WRITE_FP): Define to d10v_write_fp rather than d10v_write_sp.
- (d10v_write_fp, d10v_read_fp): Add prototypes.
- * symtab.c (decode_line_1): Remove assignment of sals[0].pc field.
- * symfile.c (simple_overlay_update, simple_overlay_update_1):
- Ignore the size of overlay sections. This check is redundant anyway.
- * printcmd.c (print_frame_args): Ditto.
- * valops.c (value_fetch_lazy): Ditto.
- * values.c (unpack_long): Ditto.
- * d10v-tdep.c (d10v_frame_chain, d10v_frame_find_saved_regs,
- d10v_init_extra_frame_info): Fix some minor bugs so the finish command
- works properly.
- (show_regs): Change num1 and num2 types from "long long" to "LONGEST".
- (d10v_read_fp, d10v_write_fp): New functions.
- (d10v_push_arguments): Remove unneeded assigns to "val" and "contents".
- (d10v_push_arguments): Fix for pointers and structs.
- (d10v_extract_return_value): Fix for pointers and chars.
-
-Tue Jan 20 18:53:18 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- * configure.tgt (i386-*-mach*, m88*-*-mach3*): Remove config
- recognition, no source files for these (note that the i386 Mach
- config is for pre-Mach 3).
- (mips*-*-mach3*, ns32k-*-mach3*): Fix file names.
- * config/mips/mipsel64.mt: Remove, never referenced.
-
-Mon Jan 19 14:01:28 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- * top.c (print_gdb_version): Restore to original message.
-
-Mon Jan 19 13:34:40 1998 Ian Lance Taylor <ian@cygnus.com>
-
- From cgf@bbc.com (Chris Faylor):
- * win32-nat.c (child_mourn_inferior): Call ContinueDebugEvent to
- let the child exit.
- (child_kill_inferior): Respond to all debug events as the child is
- terminating.
-
- * Makefile.in (all): Change gdb dependency to gdb$(EXEEXT).
- (uninstall): Add $(EXEEXT) to file name to remove.
- (gdb$(EXEEXT)): Rename target from plain gdb.
- (gdb1$(EXEEXT)): Rename target from plain gdb1.
- (clean, mostlyclean): Add $(EXEEXT) to binary names to remove.
-
-1998-01-16 Felix Lee <flee@cygnus.com>
-
- * top.c (print_gdb_version): delete stutter.
-
-Thu Jan 15 12:29:13 1998 Nick Clifton <nickc@cygnus.com>
-
- * remote-rdi.c (arm_rdi_open): Patch from Tony.Thompson@arm.com
- to prevent spurous error messages on non-ICE targets.
-
-Wed Jan 14 19:27:02 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- * config/mips/{r3900.mt,r3900l.mt,tm-r3900.h,tm-r3900l.h}:
- Remove, no longer used.
-
-Wed Jan 14 18:11:26 1998 Michael Meissner <meissner@cygnus.com>
-
- Patch from Jim Wilson.
- * d30v-tdep.c (d30v_frame_find_saved_regs_offsets): Properly
- declare void function before use.
-
- * config/d30v/tm-d30v.h (CALL_DUMMY): Initialize as { 0 }, not {}.
-
-Tue Jan 13 16:38:48 1998 Fred Fish <fnf@cygnus.com>
-
- * configure.in (--with-mmalloc): Add new configure arg to use the
- mmalloc package. Default is to not use it.
- (START_INFERIOR_TRAPS_EXPECTED): Define to the integer 2, not
- the string "2".
- * acconfig.h (USE_MMALLOC, FORCE_MMCHECK): Add #undef.
- * configure: Regenerated.
- * config.in: Regenerated.
- * Makefile.in (MMALLOC_DIR, MMALLOC_SRC): Remove.
- (MMALLOC): Set using configure.
- (MMALLOC_CFLAGS): Set using configure.
-
- * config/i386/tm-linux.h (sys_quotactl): Define to 1 rather
- than just defining it.
- * mpw-make.sed: Undefine USE_MMALLOC rather than defining NO_MMALLOC.
- * utils.c (NO_MMALLOC): Use USE_MMALLOC instead.
- * objfiles.c: ditto.
- * defs.h: ditto.
-
- * config/sparc/sun4os4.mh (MMALLOC_CFLAGS): Remove.
- * config/m68k/sun3os4.mh (MMALLOC_CFLAGS): Remove.
- * config/i386/cygwin32.mh (MMALLOC_CFLAGS): Remove.
- * config/alpha/alpha-osf3.mh (MMALLOC_CFLAGS): Remove.
- * config/alpha/alpha-osf2.mh (MMALLOC_CFLAGS): Remove.
- * gdbserver/Makefile.in (MMALLOC_*): Remove.
- * config/rs6000/rs6000.mh (MMALLOC, MMALLOC_CFLAGS): Remove.
- * config/rs6000/aix4.mh (MMALLOC, MMALLOC_CFLAGS): Remove.
- * config/powerpc/aix4.mh (MMALLOC, MMALLOC_CFLAGS): Remove.
- * config/powerpc/aix.mh (MMALLOC, MMALLOC_CFLAGS): Remove.
- * config/ns32k/ns32km3.mh (MMALLOC, MMALLOC_CFLAGS): Remove.
- * config/mips/mipsm3.mh (MMALLOC, MMALLOC_CFLAGS): Remove.
- * config/mips/decstation.mh (MMALLOC, MMALLOC_CFLAGS): Remove.
- * config/m88k/cxux.mh (MMALLOC, MMALLOC_CFLAGS): Remove.
- * config/i386/xm-windows.h (NO_MMALLOC, NO_MMCHECK): Remove.
- * config/i386/i386mk.mh (MMALLOC, MMALLOC_CFLAGS): Remove.
- * config/i386/i386m3.mh (MMALLOC, MMALLOC_CFLAGS): Remove.
- * config/i386/i386gnu.mh (MMALLOC, MMALLOC_CFLAGS): Remove.
- * config/alpha/alpha-osf1.mh (MMALLOC, MMALLOC_CFLAGS): Remove.
- * config/alpha/alpha-linux.mh (MMALLOC, MMALLOC_CFLAGS): Remove.
-
-Mon Jan 12 11:46:51 1998 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * config/m68k/tm-m68k.h (REGISTER_VIRTUAL_TYPE): make A0 thru A7
- default to void pointer type (so that their default radix is hex).
-
- * symtab.c: move rbreak_command from no_class to class_breakpoint
- so it will be listed under "help breakpoints".
-
-Sat Jan 10 14:58:04 1998 Stan Shebs <shebs@andros.cygnus.com>
-
- * rdi-share/hostchan.c: Remove gettimeofday declaration.
-
-Thu Jan 8 11:03:59 1998 Nick Clifton <nickc@cygnus.com>
-
- * remote-rdp.c: Applied patches submitted by Tony.Thompson@arm.com
- to implement the Angel remote debugging interface.
-
- * Makefile.in: Add build rules for remote-rdi.c and
- rdi-share/libangsd.a.
-
- * configure.tgt: Updated from source on branch.
- * config/arm/tm-arm.h: Updated from source on branch.
- * arm-tdep.c: Updated from source on branch.
-
- * rdi-share: New directory, RDI library contributed by ARM.
-
-Mon Jan 5 20:21:59 1998 Mark Alexander <marka@cygnus.com>
-
- * monitor.h (MO_PRINT_PROGRAM_OUTPUT): Define.
- * monitor.c (monitor_wait): Echo program output.
- * dve3900-rom.c (_initialize_r3900_rom): Remove MO_HANDLE_NL flag,
- add MO_PRINT_PROGRAM_OUTPUT flag.
-
-Mon Jan 5 18:21:11 1998 David Taylor <taylor@texas.cygnus.com>
-
- * top.h (HAVE_SIGSETJMP): define SIGJMP_BUF, SIGSETJMP, and
- SIGLONGJMP appropriately based on whether HAVE_SIGSETJMP is
- defined.
- * top.c (return_to_top_level, catch_errors): use the new macros
- * main.c (SET_TOP_LEVEL): ditto.
- * config/xm-sysv4.h (HAVE_SIGSETJMP): Define.
-
-Fri Jan 2 18:48:58 1998 Mark Alexander <marka@cygnus.com>
-
- * configure.in: Double up brackets in shell case pattern.
-
-Fri Jan 2 17:06:05 1998 Michael Snyder (msnyder@cleaver.cygnus.com)
-
- * tracepoint.c (finish_tfind_command): improved algorithm for
- deciding when we've "stepped" into a new stack frame.
- (map_args_over_tracepoints): loop over tracepoint list "safely",
- since list elements may be deleted during loop.
- (read_actions): add actions to history list.
-
-For older changes see ChangeLog-97
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/contrib/gdb/gdb/command.c b/contrib/gdb/gdb/command.c
deleted file mode 100644
index 58af567..0000000
--- a/contrib/gdb/gdb/command.c
+++ /dev/null
@@ -1,1564 +0,0 @@
-/* Handle lists of commands, their decoding and documentation, for GDB.
- Copyright 1986, 1989, 1990, 1991, 1998 Free Software Foundation, Inc.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#include "defs.h"
-#include "gdbcmd.h"
-#include "symtab.h"
-#include "value.h"
-#include <ctype.h>
-#include "gdb_string.h"
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef HAVE_WAIT_H
-# include <wait.h>
-#else
-# ifdef HAVE_SYS_WAIT_H
-# include <sys/wait.h>
-# endif
-#endif
-
-#include "wait.h"
-
-/* Prototypes for local functions */
-
-static void undef_cmd_error PARAMS ((char *, char *));
-
-static void show_user PARAMS ((char *, int));
-
-static void show_user_1 PARAMS ((struct cmd_list_element *, GDB_FILE *));
-
-static void make_command PARAMS ((char *, int));
-
-static void shell_escape PARAMS ((char *, int));
-
-static int parse_binary_operation PARAMS ((char *));
-
-static void print_doc_line PARAMS ((GDB_FILE *, char *));
-
-void _initialize_command PARAMS ((void));
-
-/* Add element named NAME.
- CLASS is the top level category into which commands are broken down
- for "help" purposes.
- FUN should be the function to execute the command;
- it will get a character string as argument, with leading
- and trailing blanks already eliminated.
-
- DOC is a documentation string for the command.
- Its first line should be a complete sentence.
- It should start with ? for a command that is an abbreviation
- or with * for a command that most users don't need to know about.
-
- Add this command to command list *LIST.
-
- Returns a pointer to the added command (not necessarily the head
- of *LIST). */
-
-struct cmd_list_element *
-add_cmd (name, class, fun, doc, list)
- char *name;
- enum command_class class;
- void (*fun) PARAMS ((char *, int));
- char *doc;
- struct cmd_list_element **list;
-{
- register struct cmd_list_element *c
- = (struct cmd_list_element *) xmalloc (sizeof (struct cmd_list_element));
- struct cmd_list_element *p;
-
- delete_cmd (name, list);
-
- if (*list == NULL || STRCMP ((*list)->name, name) >= 0)
- {
- c->next = *list;
- *list = c;
- }
- else
- {
- p = *list;
- while (p->next && STRCMP (p->next->name, name) <= 0)
- {
- p = p->next;
- }
- c->next = p->next;
- p->next = c;
- }
-
- c->name = name;
- c->class = class;
- c->function.cfunc = fun;
- c->doc = doc;
- c->hook = NULL;
- c->prefixlist = NULL;
- c->prefixname = NULL;
- c->allow_unknown = 0;
- c->abbrev_flag = 0;
- c->completer = make_symbol_completion_list;
- c->type = not_set_cmd;
- c->var = NULL;
- c->var_type = var_boolean;
- c->enums = NULL;
- c->user_commands = NULL;
- c->hookee = NULL;
- c->cmd_pointer = NULL;
-
- return c;
-}
-
-/* Same as above, except that the abbrev_flag is set. */
-
-#if 0 /* Currently unused */
-
-struct cmd_list_element *
-add_abbrev_cmd (name, class, fun, doc, list)
- char *name;
- enum command_class class;
- void (*fun) PARAMS ((char *, int));
- char *doc;
- struct cmd_list_element **list;
-{
- register struct cmd_list_element *c
- = add_cmd (name, class, fun, doc, list);
-
- c->abbrev_flag = 1;
- return c;
-}
-
-#endif
-
-struct cmd_list_element *
-add_alias_cmd (name, oldname, class, abbrev_flag, list)
- char *name;
- char *oldname;
- enum command_class class;
- int abbrev_flag;
- struct cmd_list_element **list;
-{
- /* Must do this since lookup_cmd tries to side-effect its first arg */
- char *copied_name;
- register struct cmd_list_element *old;
- register struct cmd_list_element *c;
- copied_name = (char *) alloca (strlen (oldname) + 1);
- strcpy (copied_name, oldname);
- old = lookup_cmd (&copied_name, *list, "", 1, 1);
-
- if (old == 0)
- {
- delete_cmd (name, list);
- return 0;
- }
-
- c = add_cmd (name, class, old->function.cfunc, old->doc, list);
- c->prefixlist = old->prefixlist;
- c->prefixname = old->prefixname;
- c->allow_unknown = old->allow_unknown;
- c->abbrev_flag = abbrev_flag;
- c->cmd_pointer = old;
- return c;
-}
-
-/* Like add_cmd but adds an element for a command prefix:
- a name that should be followed by a subcommand to be looked up
- in another command list. PREFIXLIST should be the address
- of the variable containing that list. */
-
-struct cmd_list_element *
-add_prefix_cmd (name, class, fun, doc, prefixlist, prefixname,
- allow_unknown, list)
- char *name;
- enum command_class class;
- void (*fun) PARAMS ((char *, int));
- char *doc;
- struct cmd_list_element **prefixlist;
- char *prefixname;
- int allow_unknown;
- struct cmd_list_element **list;
-{
- register struct cmd_list_element *c = add_cmd (name, class, fun, doc, list);
- c->prefixlist = prefixlist;
- c->prefixname = prefixname;
- c->allow_unknown = allow_unknown;
- return c;
-}
-
-/* Like add_prefix_cmd but sets the abbrev_flag on the new command. */
-
-struct cmd_list_element *
-add_abbrev_prefix_cmd (name, class, fun, doc, prefixlist, prefixname,
- allow_unknown, list)
- char *name;
- enum command_class class;
- void (*fun) PARAMS ((char *, int));
- char *doc;
- struct cmd_list_element **prefixlist;
- char *prefixname;
- int allow_unknown;
- struct cmd_list_element **list;
-{
- register struct cmd_list_element *c = add_cmd (name, class, fun, doc, list);
- c->prefixlist = prefixlist;
- c->prefixname = prefixname;
- c->allow_unknown = allow_unknown;
- c->abbrev_flag = 1;
- return c;
-}
-
-/* This is an empty "cfunc". */
-void
-not_just_help_class_command (args, from_tty)
- char *args;
- int from_tty;
-{
-}
-
-/* This is an empty "sfunc". */
-static void empty_sfunc PARAMS ((char *, int, struct cmd_list_element *));
-
-static void
-empty_sfunc (args, from_tty, c)
- char *args;
- int from_tty;
- struct cmd_list_element *c;
-{
-}
-
-/* Add element named NAME to command list LIST (the list for set
- or some sublist thereof).
- CLASS is as in add_cmd.
- VAR_TYPE is the kind of thing we are setting.
- VAR is address of the variable being controlled by this command.
- DOC is the documentation string. */
-
-struct cmd_list_element *
-add_set_cmd (name, class, var_type, var, doc, list)
- char *name;
- enum command_class class;
- var_types var_type;
- char *var;
- char *doc;
- struct cmd_list_element **list;
-{
- struct cmd_list_element *c
- = add_cmd (name, class, NO_FUNCTION, doc, list);
-
- c->type = set_cmd;
- c->var_type = var_type;
- c->var = var;
- /* This needs to be something besides NO_FUNCTION so that this isn't
- treated as a help class. */
- c->function.sfunc = empty_sfunc;
- return c;
-}
-
-/* Add element named NAME to command list LIST (the list for set
- or some sublist thereof).
- CLASS is as in add_cmd.
- ENUMLIST is a list of strings which may follow NAME.
- VAR is address of the variable which will contain the matching string
- (from ENUMLIST).
- DOC is the documentation string. */
-
-struct cmd_list_element *
-add_set_enum_cmd (name, class, enumlist, var, doc, list)
- char *name;
- enum command_class class;
- char *enumlist[];
- char *var;
- char *doc;
- struct cmd_list_element **list;
-{
- struct cmd_list_element *c
- = add_set_cmd (name, class, var_enum, var, doc, list);
- c->enums = enumlist;
-
- return c;
-}
-
-/* Where SETCMD has already been added, add the corresponding show
- command to LIST and return a pointer to the added command (not
- necessarily the head of LIST). */
-struct cmd_list_element *
-add_show_from_set (setcmd, list)
- struct cmd_list_element *setcmd;
- struct cmd_list_element **list;
-{
- struct cmd_list_element *showcmd =
- (struct cmd_list_element *) xmalloc (sizeof (struct cmd_list_element));
- struct cmd_list_element *p;
-
- memcpy (showcmd, setcmd, sizeof (struct cmd_list_element));
- delete_cmd (showcmd->name, list);
- showcmd->type = show_cmd;
-
- /* Replace "set " at start of docstring with "show ". */
- if (setcmd->doc[0] == 'S' && setcmd->doc[1] == 'e'
- && setcmd->doc[2] == 't' && setcmd->doc[3] == ' ')
- showcmd->doc = concat ("Show ", setcmd->doc + 4, NULL);
- else
- fprintf_unfiltered (gdb_stderr, "GDB internal error: Bad docstring for set command\n");
-
- if (*list == NULL || STRCMP ((*list)->name, showcmd->name) >= 0)
- {
- showcmd->next = *list;
- *list = showcmd;
- }
- else
- {
- p = *list;
- while (p->next && STRCMP (p->next->name, showcmd->name) <= 0)
- {
- p = p->next;
- }
- showcmd->next = p->next;
- p->next = showcmd;
- }
-
- return showcmd;
-}
-
-/* Remove the command named NAME from the command list. */
-
-void
-delete_cmd (name, list)
- char *name;
- struct cmd_list_element **list;
-{
- register struct cmd_list_element *c;
- struct cmd_list_element *p;
-
- while (*list && STREQ ((*list)->name, name))
- {
- if ((*list)->hookee)
- (*list)->hookee->hook = 0; /* Hook slips out of its mouth */
- p = (*list)->next;
- free ((PTR)*list);
- *list = p;
- }
-
- if (*list)
- for (c = *list; c->next;)
- {
- if (STREQ (c->next->name, name))
- {
- if (c->next->hookee)
- c->next->hookee->hook = 0; /* hooked cmd gets away. */
- p = c->next->next;
- free ((PTR)c->next);
- c->next = p;
- }
- else
- c = c->next;
- }
-}
-
-/* This command really has to deal with two things:
- * 1) I want documentation on *this string* (usually called by
- * "help commandname").
- * 2) I want documentation on *this list* (usually called by
- * giving a command that requires subcommands. Also called by saying
- * just "help".)
- *
- * I am going to split this into two seperate comamnds, help_cmd and
- * help_list.
- */
-
-void
-help_cmd (command, stream)
- char *command;
- GDB_FILE *stream;
-{
- struct cmd_list_element *c;
- extern struct cmd_list_element *cmdlist;
-
- if (!command)
- {
- help_list (cmdlist, "", all_classes, stream);
- return;
- }
-
- c = lookup_cmd (&command, cmdlist, "", 0, 0);
-
- if (c == 0)
- return;
-
- /* There are three cases here.
- If c->prefixlist is nonzero, we have a prefix command.
- Print its documentation, then list its subcommands.
-
- If c->function is nonzero, we really have a command.
- Print its documentation and return.
-
- If c->function is zero, we have a class name.
- Print its documentation (as if it were a command)
- and then set class to the number of this class
- so that the commands in the class will be listed. */
-
- fputs_filtered (c->doc, stream);
- fputs_filtered ("\n", stream);
-
- if (c->prefixlist == 0 && c->function.cfunc != NULL)
- return;
- fprintf_filtered (stream, "\n");
-
- /* If this is a prefix command, print it's subcommands */
- if (c->prefixlist)
- help_list (*c->prefixlist, c->prefixname, all_commands, stream);
-
- /* If this is a class name, print all of the commands in the class */
- if (c->function.cfunc == NULL)
- help_list (cmdlist, "", c->class, stream);
-
- if (c->hook)
- fprintf_filtered (stream, "\nThis command has a hook defined: %s\n",
- c->hook->name);
-}
-
-/*
- * Get a specific kind of help on a command list.
- *
- * LIST is the list.
- * CMDTYPE is the prefix to use in the title string.
- * CLASS is the class with which to list the nodes of this list (see
- * documentation for help_cmd_list below), As usual, ALL_COMMANDS for
- * everything, ALL_CLASSES for just classes, and non-negative for only things
- * in a specific class.
- * and STREAM is the output stream on which to print things.
- * If you call this routine with a class >= 0, it recurses.
- */
-void
-help_list (list, cmdtype, class, stream)
- struct cmd_list_element *list;
- char *cmdtype;
- enum command_class class;
- GDB_FILE *stream;
-{
- int len;
- char *cmdtype1, *cmdtype2;
-
- /* If CMDTYPE is "foo ", CMDTYPE1 gets " foo" and CMDTYPE2 gets "foo sub" */
- len = strlen (cmdtype);
- cmdtype1 = (char *) alloca (len + 1);
- cmdtype1[0] = 0;
- cmdtype2 = (char *) alloca (len + 4);
- cmdtype2[0] = 0;
- if (len)
- {
- cmdtype1[0] = ' ';
- strncpy (cmdtype1 + 1, cmdtype, len - 1);
- cmdtype1[len] = 0;
- strncpy (cmdtype2, cmdtype, len - 1);
- strcpy (cmdtype2 + len - 1, " sub");
- }
-
- if (class == all_classes)
- fprintf_filtered (stream, "List of classes of %scommands:\n\n", cmdtype2);
- else
- fprintf_filtered (stream, "List of %scommands:\n\n", cmdtype2);
-
- help_cmd_list (list, class, cmdtype, (int)class >= 0, stream);
-
- if (class == all_classes)
- fprintf_filtered (stream, "\n\
-Type \"help%s\" followed by a class name for a list of commands in that class.",
- cmdtype1);
-
- fprintf_filtered (stream, "\n\
-Type \"help%s\" followed by %scommand name for full documentation.\n\
-Command name abbreviations are allowed if unambiguous.\n",
- cmdtype1, cmdtype2);
-}
-
-/* Print only the first line of STR on STREAM. */
-static void
-print_doc_line (stream, str)
- GDB_FILE *stream;
- char *str;
-{
- static char *line_buffer = 0;
- static int line_size;
- register char *p;
-
- if (!line_buffer)
- {
- line_size = 80;
- line_buffer = (char *) xmalloc (line_size);
- }
-
- p = str;
- while (*p && *p != '\n' && *p != '.' && *p != ',')
- p++;
- if (p - str > line_size - 1)
- {
- line_size = p - str + 1;
- free ((PTR)line_buffer);
- line_buffer = (char *) xmalloc (line_size);
- }
- strncpy (line_buffer, str, p - str);
- line_buffer[p - str] = '\0';
- if (islower (line_buffer[0]))
- line_buffer[0] = toupper (line_buffer[0]);
- fputs_filtered (line_buffer, stream);
-}
-
-/*
- * Implement a help command on command list LIST.
- * RECURSE should be non-zero if this should be done recursively on
- * all sublists of LIST.
- * PREFIX is the prefix to print before each command name.
- * STREAM is the stream upon which the output should be written.
- * CLASS should be:
- * A non-negative class number to list only commands in that
- * class.
- * ALL_COMMANDS to list all commands in list.
- * ALL_CLASSES to list all classes in list.
- *
- * Note that RECURSE will be active on *all* sublists, not just the
- * ones selected by the criteria above (ie. the selection mechanism
- * is at the low level, not the high-level).
- */
-void
-help_cmd_list (list, class, prefix, recurse, stream)
- struct cmd_list_element *list;
- enum command_class class;
- char *prefix;
- int recurse;
- GDB_FILE *stream;
-{
- register struct cmd_list_element *c;
-
- for (c = list; c; c = c->next)
- {
- if (c->abbrev_flag == 0 &&
- (class == all_commands
- || (class == all_classes && c->function.cfunc == NULL)
- || (class == c->class && c->function.cfunc != NULL)))
- {
- fprintf_filtered (stream, "%s%s -- ", prefix, c->name);
- print_doc_line (stream, c->doc);
- fputs_filtered ("\n", stream);
- }
- if (recurse
- && c->prefixlist != 0
- && c->abbrev_flag == 0)
- help_cmd_list (*c->prefixlist, class, c->prefixname, 1, stream);
- }
-}
-
-
-/* Search the input clist for 'command'. Return the command if
- found (or NULL if not), and return the number of commands
- found in nfound */
-
-static struct cmd_list_element *
-find_cmd(command, len, clist, ignore_help_classes, nfound)
- char *command;
- struct cmd_list_element *clist;
- int ignore_help_classes;
- int *nfound;
-{
- struct cmd_list_element *found, *c;
-
- found = (struct cmd_list_element *)NULL;
- *nfound = 0;
- for (c = clist; c; c = c->next)
- if (!strncmp (command, c->name, len)
- && (!ignore_help_classes || c->function.cfunc))
- {
- found = c;
- (*nfound)++;
- if (c->name[len] == '\0')
- {
- *nfound = 1;
- break;
- }
- }
- return found;
-}
-
-/* This routine takes a line of TEXT and a CLIST in which to start the
- lookup. When it returns it will have incremented the text pointer past
- the section of text it matched, set *RESULT_LIST to point to the list in
- which the last word was matched, and will return a pointer to the cmd
- list element which the text matches. It will return NULL if no match at
- all was possible. It will return -1 (cast appropriately, ick) if ambigous
- matches are possible; in this case *RESULT_LIST will be set to point to
- the list in which there are ambiguous choices (and *TEXT will be set to
- the ambiguous text string).
-
- If the located command was an abbreviation, this routine returns the base
- command of the abbreviation.
-
- It does no error reporting whatsoever; control will always return
- to the superior routine.
-
- In the case of an ambiguous return (-1), *RESULT_LIST will be set to point
- at the prefix_command (ie. the best match) *or* (special case) will be NULL
- if no prefix command was ever found. For example, in the case of "info a",
- "info" matches without ambiguity, but "a" could be "args" or "address", so
- *RESULT_LIST is set to the cmd_list_element for "info". So in this case
- RESULT_LIST should not be interpeted as a pointer to the beginning of a
- list; it simply points to a specific command. In the case of an ambiguous
- return *TEXT is advanced past the last non-ambiguous prefix (e.g.
- "info t" can be "info types" or "info target"; upon return *TEXT has been
- advanced past "info ").
-
- If RESULT_LIST is NULL, don't set *RESULT_LIST (but don't otherwise
- affect the operation).
-
- This routine does *not* modify the text pointed to by TEXT.
-
- If IGNORE_HELP_CLASSES is nonzero, ignore any command list elements which
- are actually help classes rather than commands (i.e. the function field of
- the struct cmd_list_element is NULL). */
-
-struct cmd_list_element *
-lookup_cmd_1 (text, clist, result_list, ignore_help_classes)
- char **text;
- struct cmd_list_element *clist, **result_list;
- int ignore_help_classes;
-{
- char *p, *command;
- int len, tmp, nfound;
- struct cmd_list_element *found, *c;
-
- while (**text == ' ' || **text == '\t')
- (*text)++;
-
- /* Treating underscores as part of command words is important
- so that "set args_foo()" doesn't get interpreted as
- "set args _foo()". */
- for (p = *text;
- *p && (isalnum(*p) || *p == '-' || *p == '_' ||
- (tui_version &&
- (*p == '+' || *p == '<' || *p == '>' || *p == '$')) ||
- (xdb_commands && (*p == '!' || *p == '/' || *p == '?')));
- p++)
- ;
-
- /* If nothing but whitespace, return 0. */
- if (p == *text)
- return 0;
-
- len = p - *text;
-
- /* *text and p now bracket the first command word to lookup (and
- it's length is len). We copy this into a local temporary */
-
-
- command = (char *) alloca (len + 1);
- for (tmp = 0; tmp < len; tmp++)
- {
- char x = (*text)[tmp];
- command[tmp] = x;
- }
- command[len] = '\0';
-
- /* Look it up. */
- found = 0;
- nfound = 0;
- found = find_cmd(command, len, clist, ignore_help_classes, &nfound);
-
- /*
- ** We didn't find the command in the entered case, so lower case it
- ** and search again.
- */
- if (!found || nfound == 0)
- {
- for (tmp = 0; tmp < len; tmp++)
- {
- char x = command[tmp];
- command[tmp] = isupper(x) ? tolower(x) : x;
- }
- found = find_cmd(command, len, clist, ignore_help_classes, &nfound);
- }
-
- /* If nothing matches, we have a simple failure. */
- if (nfound == 0)
- return 0;
-
- if (nfound > 1)
- {
- if (result_list != NULL)
- /* Will be modified in calling routine
- if we know what the prefix command is. */
- *result_list = 0;
- return (struct cmd_list_element *) -1; /* Ambiguous. */
- }
-
- /* We've matched something on this list. Move text pointer forward. */
-
- *text = p;
-
- /* If this was an abbreviation, use the base command instead. */
-
- if (found->cmd_pointer)
- found = found->cmd_pointer;
-
- /* If we found a prefix command, keep looking. */
-
- if (found->prefixlist)
- {
- c = lookup_cmd_1 (text, *found->prefixlist, result_list,
- ignore_help_classes);
- if (!c)
- {
- /* Didn't find anything; this is as far as we got. */
- if (result_list != NULL)
- *result_list = clist;
- return found;
- }
- else if (c == (struct cmd_list_element *) -1)
- {
- /* We've gotten this far properly, but the next step
- is ambiguous. We need to set the result list to the best
- we've found (if an inferior hasn't already set it). */
- if (result_list != NULL)
- if (!*result_list)
- /* This used to say *result_list = *found->prefixlist
- If that was correct, need to modify the documentation
- at the top of this function to clarify what is supposed
- to be going on. */
- *result_list = found;
- return c;
- }
- else
- {
- /* We matched! */
- return c;
- }
- }
- else
- {
- if (result_list != NULL)
- *result_list = clist;
- return found;
- }
-}
-
-/* All this hair to move the space to the front of cmdtype */
-
-static void
-undef_cmd_error (cmdtype, q)
- char *cmdtype, *q;
-{
- error ("Undefined %scommand: \"%s\". Try \"help%s%.*s\".",
- cmdtype,
- q,
- *cmdtype? " ": "",
- strlen(cmdtype)-1,
- cmdtype);
-}
-
-/* Look up the contents of *LINE as a command in the command list LIST.
- LIST is a chain of struct cmd_list_element's.
- If it is found, return the struct cmd_list_element for that command
- and update *LINE to point after the command name, at the first argument.
- If not found, call error if ALLOW_UNKNOWN is zero
- otherwise (or if error returns) return zero.
- Call error if specified command is ambiguous,
- unless ALLOW_UNKNOWN is negative.
- CMDTYPE precedes the word "command" in the error message.
-
- If INGNORE_HELP_CLASSES is nonzero, ignore any command list
- elements which are actually help classes rather than commands (i.e.
- the function field of the struct cmd_list_element is 0). */
-
-struct cmd_list_element *
-lookup_cmd (line, list, cmdtype, allow_unknown, ignore_help_classes)
- char **line;
- struct cmd_list_element *list;
- char *cmdtype;
- int allow_unknown;
- int ignore_help_classes;
-{
- struct cmd_list_element *last_list = 0;
- struct cmd_list_element *c =
- lookup_cmd_1 (line, list, &last_list, ignore_help_classes);
-#if 0
- /* This is wrong for complete_command. */
- char *ptr = (*line) + strlen (*line) - 1;
-
- /* Clear off trailing whitespace. */
- while (ptr >= *line && (*ptr == ' ' || *ptr == '\t'))
- ptr--;
- *(ptr + 1) = '\0';
-#endif
-
- if (!c)
- {
- if (!allow_unknown)
- {
- if (!*line)
- error ("Lack of needed %scommand", cmdtype);
- else
- {
- char *p = *line, *q;
-
- while (isalnum(*p) || *p == '-')
- p++;
-
- q = (char *) alloca (p - *line + 1);
- strncpy (q, *line, p - *line);
- q[p - *line] = '\0';
- undef_cmd_error (cmdtype, q);
- }
- }
- else
- return 0;
- }
- else if (c == (struct cmd_list_element *) -1)
- {
- /* Ambigous. Local values should be off prefixlist or called
- values. */
- int local_allow_unknown = (last_list ? last_list->allow_unknown :
- allow_unknown);
- char *local_cmdtype = last_list ? last_list->prefixname : cmdtype;
- struct cmd_list_element *local_list =
- (last_list ? *(last_list->prefixlist) : list);
-
- if (local_allow_unknown < 0)
- {
- if (last_list)
- return last_list; /* Found something. */
- else
- return 0; /* Found nothing. */
- }
- else
- {
- /* Report as error. */
- int amb_len;
- char ambbuf[100];
-
- for (amb_len = 0;
- ((*line)[amb_len] && (*line)[amb_len] != ' '
- && (*line)[amb_len] != '\t');
- amb_len++)
- ;
-
- ambbuf[0] = 0;
- for (c = local_list; c; c = c->next)
- if (!strncmp (*line, c->name, amb_len))
- {
- if (strlen (ambbuf) + strlen (c->name) + 6 < (int)sizeof ambbuf)
- {
- if (strlen (ambbuf))
- strcat (ambbuf, ", ");
- strcat (ambbuf, c->name);
- }
- else
- {
- strcat (ambbuf, "..");
- break;
- }
- }
- error ("Ambiguous %scommand \"%s\": %s.", local_cmdtype,
- *line, ambbuf);
- return 0; /* lint */
- }
- }
- else
- {
- /* We've got something. It may still not be what the caller
- wants (if this command *needs* a subcommand). */
- while (**line == ' ' || **line == '\t')
- (*line)++;
-
- if (c->prefixlist && **line && !c->allow_unknown)
- undef_cmd_error (c->prefixname, *line);
-
- /* Seems to be what he wants. Return it. */
- return c;
- }
- return 0;
-}
-
-#if 0
-/* Look up the contents of *LINE as a command in the command list LIST.
- LIST is a chain of struct cmd_list_element's.
- If it is found, return the struct cmd_list_element for that command
- and update *LINE to point after the command name, at the first argument.
- If not found, call error if ALLOW_UNKNOWN is zero
- otherwise (or if error returns) return zero.
- Call error if specified command is ambiguous,
- unless ALLOW_UNKNOWN is negative.
- CMDTYPE precedes the word "command" in the error message. */
-
-struct cmd_list_element *
-lookup_cmd (line, list, cmdtype, allow_unknown)
- char **line;
- struct cmd_list_element *list;
- char *cmdtype;
- int allow_unknown;
-{
- register char *p;
- register struct cmd_list_element *c, *found;
- int nfound;
- char ambbuf[100];
- char *processed_cmd;
- int i, cmd_len;
-
- /* Skip leading whitespace. */
-
- while (**line == ' ' || **line == '\t')
- (*line)++;
-
- /* Clear out trailing whitespace. */
-
- p = *line + strlen (*line);
- while (p != *line && (p[-1] == ' ' || p[-1] == '\t'))
- p--;
- *p = 0;
-
- /* Find end of command name. */
-
- p = *line;
- while (*p == '-' || isalnum(*p))
- p++;
-
- /* Look up the command name.
- If exact match, keep that.
- Otherwise, take command abbreviated, if unique. Note that (in my
- opinion) a null string does *not* indicate ambiguity; simply the
- end of the argument. */
-
- if (p == *line)
- {
- if (!allow_unknown)
- error ("Lack of needed %scommand", cmdtype);
- return 0;
- }
-
- /* Copy over to a local buffer, converting to lowercase on the way.
- This is in case the command being parsed is a subcommand which
- doesn't match anything, and that's ok. We want the original
- untouched for the routine of the original command. */
-
- processed_cmd = (char *) alloca (p - *line + 1);
- for (cmd_len = 0; cmd_len < p - *line; cmd_len++)
- {
- char x = (*line)[cmd_len];
- if (isupper(x))
- processed_cmd[cmd_len] = tolower(x);
- else
- processed_cmd[cmd_len] = x;
- }
- processed_cmd[cmd_len] = '\0';
-
- /* Check all possibilities in the current command list. */
- found = 0;
- nfound = 0;
- for (c = list; c; c = c->next)
- {
- if (!strncmp (processed_cmd, c->name, cmd_len))
- {
- found = c;
- nfound++;
- if (c->name[cmd_len] == 0)
- {
- nfound = 1;
- break;
- }
- }
- }
-
- /* Report error for undefined command name. */
-
- if (nfound != 1)
- {
- if (nfound > 1 && allow_unknown >= 0)
- {
- ambbuf[0] = 0;
- for (c = list; c; c = c->next)
- if (!strncmp (processed_cmd, c->name, cmd_len))
- {
- if (strlen (ambbuf) + strlen (c->name) + 6 < sizeof ambbuf)
- {
- if (strlen (ambbuf))
- strcat (ambbuf, ", ");
- strcat (ambbuf, c->name);
- }
- else
- {
- strcat (ambbuf, "..");
- break;
- }
- }
- error ("Ambiguous %scommand \"%s\": %s.", cmdtype,
- processed_cmd, ambbuf);
- }
- else if (!allow_unknown)
- error ("Undefined %scommand: \"%s\".", cmdtype, processed_cmd);
- return 0;
- }
-
- /* Skip whitespace before the argument. */
-
- while (*p == ' ' || *p == '\t') p++;
- *line = p;
-
- if (found->prefixlist && *p)
- {
- c = lookup_cmd (line, *found->prefixlist, found->prefixname,
- found->allow_unknown);
- if (c)
- return c;
- }
-
- return found;
-}
-#endif
-
-/* Helper function for SYMBOL_COMPLETION_FUNCTION. */
-
-/* Return a vector of char pointers which point to the different
- possible completions in LIST of TEXT.
-
- WORD points in the same buffer as TEXT, and completions should be
- returned relative to this position. For example, suppose TEXT is "foo"
- and we want to complete to "foobar". If WORD is "oo", return
- "oobar"; if WORD is "baz/foo", return "baz/foobar". */
-
-char **
-complete_on_cmdlist (list, text, word)
- struct cmd_list_element *list;
- char *text;
- char *word;
-{
- struct cmd_list_element *ptr;
- char **matchlist;
- int sizeof_matchlist;
- int matches;
- int textlen = strlen (text);
-
- sizeof_matchlist = 10;
- matchlist = (char **) xmalloc (sizeof_matchlist * sizeof (char *));
- matches = 0;
-
- for (ptr = list; ptr; ptr = ptr->next)
- if (!strncmp (ptr->name, text, textlen)
- && !ptr->abbrev_flag
- && (ptr->function.cfunc
- || ptr->prefixlist))
- {
- if (matches == sizeof_matchlist)
- {
- sizeof_matchlist *= 2;
- matchlist = (char **) xrealloc ((char *)matchlist,
- (sizeof_matchlist
- * sizeof (char *)));
- }
-
- matchlist[matches] = (char *)
- xmalloc (strlen (word) + strlen (ptr->name) + 1);
- if (word == text)
- strcpy (matchlist[matches], ptr->name);
- else if (word > text)
- {
- /* Return some portion of ptr->name. */
- strcpy (matchlist[matches], ptr->name + (word - text));
- }
- else
- {
- /* Return some of text plus ptr->name. */
- strncpy (matchlist[matches], word, text - word);
- matchlist[matches][text - word] = '\0';
- strcat (matchlist[matches], ptr->name);
- }
- ++matches;
- }
-
- if (matches == 0)
- {
- free ((PTR)matchlist);
- matchlist = 0;
- }
- else
- {
- matchlist = (char **) xrealloc ((char *)matchlist, ((matches + 1)
- * sizeof (char *)));
- matchlist[matches] = (char *) 0;
- }
-
- return matchlist;
-}
-
-/* Helper function for SYMBOL_COMPLETION_FUNCTION. */
-
-/* Return a vector of char pointers which point to the different
- possible completions in CMD of TEXT.
-
- WORD points in the same buffer as TEXT, and completions should be
- returned relative to this position. For example, suppose TEXT is "foo"
- and we want to complete to "foobar". If WORD is "oo", return
- "oobar"; if WORD is "baz/foo", return "baz/foobar". */
-
-char **
-complete_on_enum (enumlist, text, word)
- char **enumlist;
- char *text;
- char *word;
-{
- char **matchlist;
- int sizeof_matchlist;
- int matches;
- int textlen = strlen (text);
- int i;
- char *name;
-
- sizeof_matchlist = 10;
- matchlist = (char **) xmalloc (sizeof_matchlist * sizeof (char *));
- matches = 0;
-
- for (i = 0; (name = enumlist[i]) != NULL; i++)
- if (strncmp (name, text, textlen) == 0)
- {
- if (matches == sizeof_matchlist)
- {
- sizeof_matchlist *= 2;
- matchlist = (char **) xrealloc ((char *)matchlist,
- (sizeof_matchlist
- * sizeof (char *)));
- }
-
- matchlist[matches] = (char *)
- xmalloc (strlen (word) + strlen (name) + 1);
- if (word == text)
- strcpy (matchlist[matches], name);
- else if (word > text)
- {
- /* Return some portion of name. */
- strcpy (matchlist[matches], name + (word - text));
- }
- else
- {
- /* Return some of text plus name. */
- strncpy (matchlist[matches], word, text - word);
- matchlist[matches][text - word] = '\0';
- strcat (matchlist[matches], name);
- }
- ++matches;
- }
-
- if (matches == 0)
- {
- free ((PTR)matchlist);
- matchlist = 0;
- }
- else
- {
- matchlist = (char **) xrealloc ((char *)matchlist, ((matches + 1)
- * sizeof (char *)));
- matchlist[matches] = (char *) 0;
- }
-
- return matchlist;
-}
-
-static int
-parse_binary_operation (arg)
- char *arg;
-{
- int length;
-
- if (!arg || !*arg)
- return 1;
-
- length = strlen (arg);
-
- while (arg[length - 1] == ' ' || arg[length - 1] == '\t')
- length--;
-
- if (!strncmp (arg, "on", length)
- || !strncmp (arg, "1", length)
- || !strncmp (arg, "yes", length))
- return 1;
- else
- if (!strncmp (arg, "off", length)
- || !strncmp (arg, "0", length)
- || !strncmp (arg, "no", length))
- return 0;
- else
- {
- error ("\"on\" or \"off\" expected.");
- return 0;
- }
-}
-
-/* Do a "set" or "show" command. ARG is NULL if no argument, or the text
- of the argument, and FROM_TTY is nonzero if this command is being entered
- directly by the user (i.e. these are just like any other
- command). C is the command list element for the command. */
-void
-do_setshow_command (arg, from_tty, c)
- char *arg;
- int from_tty;
- struct cmd_list_element *c;
-{
- if (c->type == set_cmd)
- {
- switch (c->var_type)
- {
- case var_string:
- {
- char *new;
- char *p;
- char *q;
- int ch;
-
- if (arg == NULL)
- arg = "";
- new = (char *) xmalloc (strlen (arg) + 2);
- p = arg; q = new;
- while ((ch = *p++) != '\000')
- {
- if (ch == '\\')
- {
- /* \ at end of argument is used after spaces
- so they won't be lost. */
- /* This is obsolete now that we no longer strip
- trailing whitespace and actually, the backslash
- didn't get here in my test, readline or
- something did something funky with a backslash
- right before a newline. */
- if (*p == 0)
- break;
- ch = parse_escape (&p);
- if (ch == 0)
- break; /* C loses */
- else if (ch > 0)
- *q++ = ch;
- }
- else
- *q++ = ch;
- }
-#if 0
- if (*(p - 1) != '\\')
- *q++ = ' ';
-#endif
- *q++ = '\0';
- new = (char *) xrealloc (new, q - new);
- if (*(char **)c->var != NULL)
- free (*(char **)c->var);
- *(char **) c->var = new;
- }
- break;
- case var_string_noescape:
- if (arg == NULL)
- arg = "";
- if (*(char **)c->var != NULL)
- free (*(char **)c->var);
- *(char **) c->var = savestring (arg, strlen (arg));
- break;
- case var_filename:
- if (arg == NULL)
- error_no_arg ("filename to set it to.");
- if (*(char **)c->var != NULL)
- free (*(char **)c->var);
- *(char **)c->var = tilde_expand (arg);
- break;
- case var_boolean:
- *(int *) c->var = parse_binary_operation (arg);
- break;
- case var_uinteger:
- if (arg == NULL)
- error_no_arg ("integer to set it to.");
- *(unsigned int *) c->var = parse_and_eval_address (arg);
- if (*(unsigned int *) c->var == 0)
- *(unsigned int *) c->var = UINT_MAX;
- break;
- case var_integer:
- {
- unsigned int val;
- if (arg == NULL)
- error_no_arg ("integer to set it to.");
- val = parse_and_eval_address (arg);
- if (val == 0)
- *(int *) c->var = INT_MAX;
- else if (val >= INT_MAX)
- error ("integer %u out of range", val);
- else
- *(int *) c->var = val;
- break;
- }
- case var_zinteger:
- if (arg == NULL)
- error_no_arg ("integer to set it to.");
- *(int *) c->var = parse_and_eval_address (arg);
- break;
- case var_enum:
- {
- int i;
- int len;
- int nmatches;
- char *match = NULL;
- char *p;
-
- /* if no argument was supplied, print an informative error message */
- if (arg == NULL)
- {
- char msg[1024];
- strcpy (msg, "Requires an argument. Valid arguments are ");
- for (i = 0; c->enums[i]; i++)
- {
- if (i != 0)
- strcat (msg, ", ");
- strcat (msg, c->enums[i]);
- }
- strcat (msg, ".");
- error (msg);
- }
-
- p = strchr (arg, ' ');
-
- if (p)
- len = p - arg;
- else
- len = strlen (arg);
-
- nmatches = 0;
- for (i = 0; c->enums[i]; i++)
- if (strncmp (arg, c->enums[i], len) == 0)
- {
- match = c->enums[i];
- nmatches++;
- }
-
- if (nmatches <= 0)
- error ("Undefined item: \"%s\".", arg);
-
- if (nmatches > 1)
- error ("Ambiguous item \"%s\".", arg);
-
- *(char **)c->var = match;
- }
- break;
- default:
- error ("gdb internal error: bad var_type in do_setshow_command");
- }
- }
- else if (c->type == show_cmd)
- {
- /* Print doc minus "show" at start. */
- print_doc_line (gdb_stdout, c->doc + 5);
-
- fputs_filtered (" is ", gdb_stdout);
- wrap_here (" ");
- switch (c->var_type)
- {
- case var_string:
- {
- unsigned char *p;
-
- fputs_filtered ("\"", gdb_stdout);
- if (*(unsigned char **)c->var)
- for (p = *(unsigned char **) c->var; *p != '\0'; p++)
- gdb_printchar (*p, gdb_stdout, '"');
- fputs_filtered ("\"", gdb_stdout);
- }
- break;
- case var_string_noescape:
- case var_filename:
- case var_enum:
- fputs_filtered ("\"", gdb_stdout);
- if (*(char **)c->var)
- fputs_filtered (*(char **) c->var, gdb_stdout);
- fputs_filtered ("\"", gdb_stdout);
- break;
- case var_boolean:
- fputs_filtered (*(int *) c->var ? "on" : "off", gdb_stdout);
- break;
- case var_uinteger:
- if (*(unsigned int *) c->var == UINT_MAX) {
- fputs_filtered ("unlimited", gdb_stdout);
- break;
- }
- /* else fall through */
- case var_zinteger:
- fprintf_filtered (gdb_stdout, "%u", *(unsigned int *) c->var);
- break;
- case var_integer:
- if (*(int *) c->var == INT_MAX)
- {
- fputs_filtered ("unlimited", gdb_stdout);
- }
- else
- fprintf_filtered (gdb_stdout, "%d", *(int *) c->var);
- break;
-
- default:
- error ("gdb internal error: bad var_type in do_setshow_command");
- }
- fputs_filtered (".\n", gdb_stdout);
- }
- else
- error ("gdb internal error: bad cmd_type in do_setshow_command");
- (*c->function.sfunc) (NULL, from_tty, c);
-}
-
-/* Show all the settings in a list of show commands. */
-
-void
-cmd_show_list (list, from_tty, prefix)
- struct cmd_list_element *list;
- int from_tty;
- char *prefix;
-{
- for (; list != NULL; list = list->next) {
- /* If we find a prefix, run its list, prefixing our output by its
- prefix (with "show " skipped). */
- if (list->prefixlist && !list->abbrev_flag)
- cmd_show_list (*list->prefixlist, from_tty, list->prefixname + 5);
- if (list->type == show_cmd)
- {
- fputs_filtered (prefix, gdb_stdout);
- fputs_filtered (list->name, gdb_stdout);
- fputs_filtered (": ", gdb_stdout);
- do_setshow_command ((char *)NULL, from_tty, list);
- }
- }
-}
-
-/* ARGSUSED */
-static void
-shell_escape (arg, from_tty)
- char *arg;
- int from_tty;
-{
-#ifdef CANT_FORK
- /* FIXME: what about errors (I don't know how GO32 system() handles
- them)? */
- system (arg);
-#else /* Can fork. */
- int rc, status, pid;
- char *p, *user_shell;
-
- if ((user_shell = (char *) getenv ("SHELL")) == NULL)
- user_shell = "/bin/sh";
-
- /* Get the name of the shell for arg0 */
- if ((p = strrchr (user_shell, '/')) == NULL)
- p = user_shell;
- else
- p++; /* Get past '/' */
-
- if ((pid = fork()) == 0)
- {
- if (!arg)
- execl (user_shell, p, 0);
- else
- execl (user_shell, p, "-c", arg, 0);
-
- fprintf_unfiltered (gdb_stderr, "Cannot execute %s: %s\n", user_shell,
- safe_strerror (errno));
- gdb_flush (gdb_stderr);
- _exit (0177);
- }
-
- if (pid != -1)
- while ((rc = wait (&status)) != pid && rc != -1)
- ;
- else
- error ("Fork failed");
-#endif /* Can fork. */
-}
-
-static void
-make_command (arg, from_tty)
- char *arg;
- int from_tty;
-{
- char *p;
-
- if (arg == 0)
- p = "make";
- else
- {
- p = xmalloc (sizeof("make ") + strlen(arg));
- strcpy (p, "make ");
- strcpy (p + sizeof("make ")-1, arg);
- }
-
- shell_escape (p, from_tty);
-}
-
-static void
-show_user_1 (c, stream)
- struct cmd_list_element *c;
- GDB_FILE *stream;
-{
- register struct command_line *cmdlines;
-
- cmdlines = c->user_commands;
- if (!cmdlines)
- return;
- fputs_filtered ("User command ", stream);
- fputs_filtered (c->name, stream);
- fputs_filtered (":\n", stream);
-
- while (cmdlines)
- {
- print_command_line (cmdlines, 4);
- cmdlines = cmdlines->next;
- }
- fputs_filtered ("\n", stream);
-}
-
-/* ARGSUSED */
-static void
-show_user (args, from_tty)
- char *args;
- int from_tty;
-{
- struct cmd_list_element *c;
- extern struct cmd_list_element *cmdlist;
-
- if (args)
- {
- c = lookup_cmd (&args, cmdlist, "", 0, 1);
- if (c->class != class_user)
- error ("Not a user command.");
- show_user_1 (c, gdb_stdout);
- }
- else
- {
- for (c = cmdlist; c; c = c->next)
- {
- if (c->class == class_user)
- show_user_1 (c, gdb_stdout);
- }
- }
-}
-
-void
-_initialize_command ()
-{
- add_com ("shell", class_support, shell_escape,
- "Execute the rest of the line as a shell command. \n\
-With no arguments, run an inferior shell.");
-
- if (xdb_commands)
- add_com_alias("!", "shell", class_support, 0);
-
- add_com ("make", class_support, make_command,
- "Run the ``make'' program using the rest of the line as arguments.");
- add_cmd ("user", no_class, show_user,
- "Show definitions of user defined commands.\n\
-Argument is the name of the user defined command.\n\
-With no argument, show definitions of all user defined commands.", &showlist);
-}
diff --git a/contrib/gdb/gdb/config/i386/nm-sun386.h b/contrib/gdb/gdb/config/i386/nm-sun386.h
deleted file mode 100644
index f7a904b..0000000
--- a/contrib/gdb/gdb/config/i386/nm-sun386.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Native support for Sun 386i, for GDB, the GNU debugger.
- Copyright (C) 1986, 1987, 1989, 1992 Free Software Foundation, Inc.
-
-This file is part of GDB.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-/* Do implement the attach and detach commands. */
-
-#define ATTACH_DETACH
-
-/* Override copies of {fetch,store}_inferior_registers in infptrace.c. */
-#define FETCH_INFERIOR_REGISTERS
-
-#define CHILD_PREPARE_TO_STORE() read_register_bytes (0, NULL, REGISTER_BYTES)
diff --git a/contrib/gdb/gdb/config/i386/sun386.mh b/contrib/gdb/gdb/config/i386/sun386.mh
deleted file mode 100644
index d249661..0000000
--- a/contrib/gdb/gdb/config/i386/sun386.mh
+++ /dev/null
@@ -1,5 +0,0 @@
-# Host: Sun 386i
-XDEPFILES=
-XM_FILE= xm-sun386.h
-NAT_FILE= nm-sun386.h
-NATDEPFILES= infptrace.o inftarg.o fork-child.o sun386-nat.o
diff --git a/contrib/gdb/gdb/config/i386/sun386.mt b/contrib/gdb/gdb/config/i386/sun386.mt
deleted file mode 100644
index 665ca64..0000000
--- a/contrib/gdb/gdb/config/i386/sun386.mt
+++ /dev/null
@@ -1,3 +0,0 @@
-# Target: Sun 386i target configuration file.
-TDEPFILES= i386-tdep.o solib.o
-TM_FILE= tm-sun386.h
diff --git a/contrib/gdb/gdb/config/i386/tm-sun386.h b/contrib/gdb/gdb/config/i386/tm-sun386.h
deleted file mode 100644
index 259fd51..0000000
--- a/contrib/gdb/gdb/config/i386/tm-sun386.h
+++ /dev/null
@@ -1,205 +0,0 @@
-/* Parameters for a Sun 386i target machine, for GDB, the GNU debugger.
- Copyright 1986, 1987, 1991, 1992, 1993 Free Software Foundation, Inc.
-
-This file is part of GDB.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#if !defined (TM_SUN386_H)
-#define TM_SUN386_H 1
-
-#include "i386/tm-i386.h"
-
-#ifndef sun386
-#define sun386
-#endif
-#define GDB_TARGET_IS_SUN386 1
-#define SUNOS4
-#define USE_MACHINE_REG_H
-
-/* Perhaps some day this will work even without the following #define */
-#define COFF_ENCAPSULATE
-
-#ifdef COFF_ENCAPSULATE
-/* Avoid conflicts between our include files and <sys/exec.h>
- (maybe not needed anymore). */
-#define _EXEC_
-#endif
-
-/* sun386 ptrace seems unable to change the frame pointer */
-#define PTRACE_FP_BUG
-
-/* Address of end of stack space. */
-
-#define STACK_END_ADDR 0xfc000000
-
-/* Number of machine registers */
-
-#undef NUM_REGS
-#define NUM_REGS 35
-
-/* Initializer for an array of names of registers. There should be NUM_REGS
- strings in this initializer. The order of the first 8 registers must match
- the compiler's numbering scheme (which is the same as the 386 scheme) also,
- this table must match regmap in i386-pinsn.c. */
-
-#undef REGISTER_NAMES
-#define REGISTER_NAMES { "gs", "fs", "es", "ds", \
- "edi", "esi", "ebp", "esp", \
- "ebx", "edx", "ecx", "eax", \
- "retaddr", "trapnum", "errcode", "ip", \
- "cs", "ps", "sp", "ss", \
- "fst0", "fst1", "fst2", "fst3", \
- "fst4", "fst5", "fst6", "fst7", \
- "fctrl", "fstat", "ftag", "fip", \
- "fcs", "fopoff", "fopsel" \
- }
-
-/* Register numbers of various important registers.
- Note that some of these values are "real" register numbers,
- and correspond to the general registers of the machine,
- and some are "phony" register numbers which are too large
- to be actual register numbers as far as the user is concerned
- but do serve to get the desired values when passed to read_register. */
-
-#undef FP_REGNUM
-#define FP_REGNUM 6 /* (ebp) Contains address of executing stack frame */
-#undef SP_REGNUM
-#define SP_REGNUM 18 /* (usp) Contains address of top of stack */
-#undef PS_REGNUM
-#define PS_REGNUM 17 /* (ps) Contains processor status */
-#undef PC_REGNUM
-#define PC_REGNUM 15 /* (eip) Contains program counter */
-#undef FP0_REGNUM
-#define FP0_REGNUM 20 /* Floating point register 0 */
-#undef FPC_REGNUM
-#define FPC_REGNUM 28 /* 80387 control register */
-
-/* Total amount of space needed to store our copies of the machine's
- register state, the array `registers'. */
-
-#undef REGISTER_BYTES
-#define REGISTER_BYTES (20*4+8*10+7*4)
-
-/* Index within `registers' of the first byte of the space for
- register N. */
-
-#undef REGISTER_BYTE
-#define REGISTER_BYTE(N) \
- ((N) >= FPC_REGNUM ? (((N) - FPC_REGNUM) * 4) + 160 \
- : (N) >= FP0_REGNUM ? (((N) - FP0_REGNUM) * 10) + 80 \
- : (N) * 4)
-
-/* Number of bytes of storage in the actual machine representation
- for register N. */
-
-#undef REGISTER_RAW_SIZE
-#define REGISTER_RAW_SIZE(N) (((unsigned)((N) - FP0_REGNUM)) < 8 ? 10 : 4)
-
-/* Number of bytes of storage in the program's representation
- for register N. */
-
-#undef REGISTER_VIRTUAL_SIZE
-#define REGISTER_VIRTUAL_SIZE(N) (((unsigned)((N) - FP0_REGNUM)) < 8 ? 8 : 4)
-
-/* Nonzero if register N requires conversion
- from raw format to virtual format. */
-
-#undef REGISTER_CONVERTIBLE
-#define REGISTER_CONVERTIBLE(N) (((unsigned)((N) - FP0_REGNUM)) < 8)
-
-/* Convert data from raw format for register REGNUM in buffer FROM
- to virtual format with type TYPE in buffer TO. */
-
-#undef REGISTER_CONVERT_TO_VIRTUAL
-#define REGISTER_CONVERT_TO_VIRTUAL(REGNUM,TYPE,FROM,TO) \
-{ \
- double val; \
- i387_to_double ((FROM), (char *)&val); \
- store_floating ((TO), TYPE_LENGTH (TYPE), val); \
-}
-extern void
-i387_to_double PARAMS ((char *, char *));
-
-/* Convert data from virtual format with type TYPE in buffer FROM
- to raw format for register REGNUM in buffer TO. */
-
-#undef REGISTER_CONVERT_TO_RAW
-#define REGISTER_CONVERT_TO_RAW(TYPE,REGNUM,FROM,TO) \
-{ \
- double val = extract_floating ((FROM), TYPE_LENGTH (TYPE)); \
- double_to_i387((char *)&val, (TO)); \
-}
-extern void
-double_to_i387 PARAMS ((char *, char *));
-
-/* Return the GDB type object for the "standard" data type
- of data in register N. */
-
-#undef REGISTER_VIRTUAL_TYPE
-#define REGISTER_VIRTUAL_TYPE(N) \
- (((unsigned)((N) - FP0_REGNUM)) < 8 ? builtin_type_double : builtin_type_int)
-
-/* Extract from an array REGBUF containing the (raw) register state
- a function return value of type TYPE, and copy that, in virtual format,
- into VALBUF. */
-
-#undef EXTRACT_RETURN_VALUE
-#define EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \
- memcpy (VALBUF, REGBUF + REGISTER_BYTE (TYPE_CODE (TYPE) == TYPE_CODE_FLT ? FP0_REGNUM : 11), TYPE_LENGTH (TYPE))
-
-/* Write into appropriate registers a function return value
- of type TYPE, given in virtual format. */
-
-#undef STORE_RETURN_VALUE
-#define STORE_RETURN_VALUE(TYPE,VALBUF) \
- write_register_bytes (REGISTER_BYTE (TYPE_CODE (TYPE) == TYPE_CODE_FLT ? FP0_REGNUM : 11), VALBUF, TYPE_LENGTH (TYPE))
-
-/* Describe the pointer in each stack frame to the previous stack frame
- (its caller). */
-
-/* FRAME_CHAIN takes a frame's nominal address
- and produces the frame's chain-pointer. */
-
-#undef FRAME_CHAIN
-#define FRAME_CHAIN(thisframe) \
- (!inside_entry_file ((thisframe)->pc) ? \
- read_memory_integer ((thisframe)->frame, 4) :\
- 0)
-
-/* Define other aspects of the stack frame. */
-
-/* A macro that tells us whether the function invocation represented
- by FI does not have a frame on the stack associated with it. If it
- does not, FRAMELESS is set to 1, else 0. */
-
-#undef FRAMELESS_FUNCTION_INVOCATION
-#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \
-{ (FRAMELESS) = frameless_look_for_prologue (FI); }
-
-#undef FRAME_SAVED_PC
-#define FRAME_SAVED_PC(FRAME) (read_memory_integer ((FRAME)->frame + 4, 4))
-
-/* Insert the specified number of args and function address
- into a call sequence of the above form stored at DUMMYNAME. */
-
-#undef FIX_CALL_DUMMY
-#define FIX_CALL_DUMMY(dummyname, pc, fun, nargs, args, type, gcc_p) \
-{ \
- *(int *)((char *)(dummyname) + 1) = (int)(fun) - (pc) - 5; \
-}
-
-#endif /* !defined (TM_SUN386_H) */
-
diff --git a/contrib/gdb/gdb/config/i386/xm-i386lynx.h b/contrib/gdb/gdb/config/i386/xm-i386lynx.h
deleted file mode 100644
index 6078cb6..0000000
--- a/contrib/gdb/gdb/config/i386/xm-i386lynx.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Host-dependent definitions for Intel 386 running LynxOS.
- Copyright 1993 Free Software Foundation, Inc.
-
-This file is part of GDB.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#define HOST_BYTE_ORDER LITTLE_ENDIAN
-
-/* Get generic LynxOS host definitions. */
-
-#include "xm-lynx.h"
diff --git a/contrib/gdb/gdb/config/i386/xm-linux.h b/contrib/gdb/gdb/config/i386/xm-linux.h
deleted file mode 100644
index 217c6d4..0000000
--- a/contrib/gdb/gdb/config/i386/xm-linux.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Native support for GNU/Linux, for GDB, the GNU debugger.
- Copyright (C) 1986, 1987, 1989, 1992 Free Software Foundation, Inc.
-
-This file is part of GDB.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef XM_LINUX_H
-#define XM_LINUX_H
-
-#define HOST_BYTE_ORDER LITTLE_ENDIAN
-
-#define HAVE_TERMIOS
-
-/* This is the amount to subtract from u.u_ar0
- to get the offset in the core file of the register values. */
-#define KERNEL_U_ADDR 0x0
-
-#define NEED_POSIX_SETPGID
-
-/* Need R_OK etc, but USG isn't defined. */
-#include <unistd.h>
-
-#endif /* #ifndef XM_LINUX_H */
diff --git a/contrib/gdb/gdb/config/i386/xm-sun386.h b/contrib/gdb/gdb/config/i386/xm-sun386.h
deleted file mode 100644
index 51c3b58..0000000
--- a/contrib/gdb/gdb/config/i386/xm-sun386.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Host support for Sun 386i, for GDB, the GNU debugger.
- Copyright (C) 1986, 1987, 1989, 1992, 1996 Free Software Foundation, Inc.
-
-This file is part of GDB.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#define HOST_BYTE_ORDER LITTLE_ENDIAN
diff --git a/contrib/gdb/gdb/config/i386/xm-windows.h b/contrib/gdb/gdb/config/i386/xm-windows.h
deleted file mode 100644
index e083010..0000000
--- a/contrib/gdb/gdb/config/i386/xm-windows.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Definitions for hosting on WIN32, built with Microsoft Visual C/C++, for GDB.
- Copyright 1996, 1998 Free Software Foundation, Inc.
-
-This file is part of GDB.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#include "i386/xm-cygwin.h"
-
-#undef PRINTF_HAS_LONG_LONG
-#undef HAVE_UNISTD_H
-#undef HAVE_TERMIO_H
-#undef HAVE_TERMIOS_H
-#undef HAVE_SGTTY_H
-#undef HAVE_SBRK
-#define CANT_FORK
-
-#define MALLOC_INCOMPATIBLE
-
-#include <malloc.h>
-
-#define SIGQUIT 3
-#define SIGTRAP 5
diff --git a/contrib/gdb/gdb/doc/libgdb.texinfo b/contrib/gdb/gdb/doc/libgdb.texinfo
deleted file mode 100644
index 4fadcb2..0000000
--- a/contrib/gdb/gdb/doc/libgdb.texinfo
+++ /dev/null
@@ -1,878 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-@c %**start of header
-@setfilename libgdb.info
-@settitle Libgdb
-@setchapternewpage off
-@c %**end of header
-
-@ifinfo
-This file documents libgdb, the GNU symbolic debugger in a library.
-
-This is Edition 0.3, Oct 1993, of @cite{Libgdb}.
-Copyright 1993 Cygnus Support
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-@ignore
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-
-@end ignore
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that the
-entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions.
-@end ifinfo
-
-@c This title page illustrates only one of the
-@c two methods of forming a title page.
-
-@titlepage
-@title Libgdb
-@subtitle Version 0.3
-@subtitle Oct 1993
-@author Thomas Lord
-
-@c The following two commands
-@c start the copyright page.
-@page
-@vskip 0pt plus 1filll
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-Copyright @copyright{} 1993 Cygnus Support
-@end titlepage
-
-@ifinfo
-@node Top, Overview, (dir), (dir)
-
-This info file documents libgdb: an API for GDB, the GNU symbolic debugger.
-
-@menu
-* Overview:: The basics of libgdb and this document.
-* Interpreter:: Libgdb is an Interpreter-Based Server.
-* Top Level:: You Provide the Top Level for the Libgdb
- Command Interpreter .
-* I/O:: How the Server's I/O Can be Used.
-* Invoking:: Invoking the Interpreter, Executing
- Commands.
-* Defining Commands:: How New Commands are Created.
-* Variables:: How Builtin Variables are Defined.
-* Asynchronous:: Scheduling Asynchronous Computations.
-* Commands:: Debugger Commands for Libgdb Applications
-@end menu
-
-@end ifinfo
-@node Overview, Interpreter, top, top
-@comment node-name, next, previous, up
-@chapter Overview
-@cindex overview
-@cindex definitions
-
-@heading Function and Purpose
-
-Libgdb is a package which provides an API to the functionality of GDB,
-the GNU symbolic debugger. It is specifically intended to support the
-development of a symbolic debugger with a graphic interface.
-
-
-@heading This Document
-
-This document is a specification of the libgdb API. It is written in
-the form of a programmer's manual. So the goal of this document is to
-explain what functions make up the API, and how they can be used in a
-running application.
-
-
-@heading Terminology
-
-In this document, @dfn{libgdb} refers to a library containing the
-functions defined herein, @dfn{application} refers to any program built
-with that library.
-
-
-@heading Dependencies
-
-Programs which are linked with libgdb must be linked with libbfd,
-libopcodes, libiberty, and libmmalloc.
-
-@heading Acknowledgments
-
-Essential contributions to this design were made by Stu Grossman, Jim
-Kingdon, and Rich Pixley.
-
-@node Interpreter, Top Level, Overview, Top
-@comment node-name, next, previous, up
-@chapter Libgdb is an Interpreter Based Server
-@cindex interpreter
-@cindex server
-
-To understand libgdb, it is necessary to understand how the library is
-structured. Historically, GDB is written as a small interpreter for a
-simple command language. The commands of the language perform useful
-debugging functions.
-
-Libgdb is built from GDB by turning the interpreter into a debugging
-server. The server reads debugging commands from any source and
-interprets them, directing the output arbitrarily.
-
-In addition to changing GDB from a tty-based program to a server, a
-number of new GDB commands have been added to make the server more
-useful for a program with a graphic interface.
-
-Finally, libgdb includes provisions for asynchronous processing within
-the application.
-
-Most operations that can be carried out with libgdb involve the GDB
-command interpreter. The usual mode of operation is that the operation
-is expressed as a string of GDB commands, which the interpreter is then
-invoked to carry out. The output from commands executed in this manner
-can be redirected in a variety of useful ways for further processing by
-the application.
-
-The command interpreter provides an extensive system of hooks so an
-application can monitor any aspect of the debugging library's state. An
-application can set its own breakpoints and attach commands and
-conditions to those. It is possible to attach hooks to any debugger
-command; the hooks are invoked whenever that command is about to be
-invoked. By means of these, the displays of a graphical interface can
-be kept fully up to date at all times.
-
-We show you how to define new primitives in the command language. By
-defining new primitives and using them in breakpoint scripts and command
-hooks, an application can schedule the execution of arbitrary C-code at
-almost any point of interest in the operation of libgdb.
-
-We show you how to define new GDB convenience variables for which your
-code computes a value on demand. Referring to such variables in a
-breakpoint condition is a convenient way to conditionalize breakpoints
-in novel ways.
-
-To summarize: in libgdb, the gdb command language is turned into a
-debugging server. The server takes commands as input, and the server's
-output is redirectable. An application uses libgdb by formatting
-debugging commands and invoking the interpreter. The application might
-maintain breakpoints, watchpoints and many kinds of hooks. An application
-can define new primitives for the interpreter.
-
-@node Top Level, I/O, Interpreter, Top
-@chapter You Provide the Top Level for the Libgdb Command Interpreter
-@cindex {top level}
-
-When you use libgdb, your code is providing a @dfn{top level} for the
-command language interpreter. The top level is significant because it
-provides commands for the the interpreter to execute. In addition, the
-top level is responsible for handling some kinds of errors, and
-performing certain cleanup operations on behalf of the interpreter.
-
-@heading Initialization
-
-Before calling any other libgdb functions, call this:
-
-@deftypefun void gdb_init (void)
-Perform one-time initialization for libgdb.
-@end deftypefun
-
-An application may wish to evaluate specific gdb commands as part of its
-own initialization. The details of how this can be accomplished are
-explained below.
-
-@heading The Top-Level Loop
-
-There is a strong presumption in libgdb that the application has
-the form of a loop. Here is what such a loop might look like:
-
-@example
-while (gdb_still_going ())
- @{
- if (!GDB_TOP_LEVEL ())
- @{
- char * command;
- gdb_start_top_loop ();
- command = process_events ();
- gdb_execute_command (command);
- gdb_finish_top_loop ();
- @}
- @}
-@end example
-
-The function @code{gdb_still_going} returns 1 until the gdb command
-`quit' is run.
-
-The macro @code{GDB_TOP_LEVEL} invokes setjmp to set the top level error
-handler. When a command results in an error, the interpreter exits with
-a longjmp. There is nothing special libgdb requires of the top level
-error handler other than it be present and that it restart the top level
-loop. Errors are explained in detail in a later chapter.
-
-Each time through the top level loop two important things happen: a
-debugger command is constructed on the basis of user input, and the
-interpreter is invoked to execute that command. In the sample code, the
-call to the imaginary function @code{process_events} represents the
-point at which a graphical interface should read input events until
-ready to execute a debugger command. The call to
-@code{gdb_execute_command} invokes the command interpreter (what happens
-to the output from the command will be explained later).
-
-Libgdb manages some resources using the top-level loop. The primary
-reason for this is error-handling: even if a command terminates with an
-error, it may already have allocated resources which need to be freed.
-The freeing of such resources takes place at the top-level, regardless
-of how the the command exits. The calls to @code{gdb_start_top_loop}
-and @code{gdb_finish_top_loop} let libgdb know when it is safe to
-perform operations associated with these resources.
-
-@heading Breakpoint Commands
-
-Breakpoint commands are scripts of GDB operations associated with
-particular breakpoints. When a breakpoint is reached, its associated
-commands are executed.
-
-Breakpoint commands are invoked by the libgdb function
-@code{gdb_finish_top_loop}.
-
-Notice that if control returns to the top-level error handler, the
-execution of breakpoint commands is bypassed. This can happen as a
-result of errors during either @code{gdb_execute_command} or
-@code{gdb_finish_top_loop}.
-
-@heading Application Initialization
-
-Sometimes it is inconvenient to execute commands via a command loop for
-example, the commands an application uses to initialize itself. An
-alternative to @code{execute_command} is @code{execute_catching_errors}.
-When @code{execute_catching_errors} is used, no top level error handler
-need be in effect, and it is not necessary to call
-@code{gdb_start_top_loop} or @code{gdb_finish_top_loop}.
-
-
-@heading Cleanup
-
-The debugger command ``quit'' performs all necessary cleanup for libgdb.
-After it has done so, it changes the return value of
-@code{gdb_still_going} to 0 and returns to the top level error handler.
-
-
-@node I/O, Invoking, Top Level, Top
-@comment node-name, next, previous, up
-@chapter How the Server's I/O Can be Used
-@cindex I/O
-
-In the last chapter it was pointed out that a libgdb application is
-responsible for providing commands for the interpreter to execute.
-However some commands require further input (for example, the ``quit''
-command might ask for confirmation). Almost all commands produce output
-of some kind. The purpose of this section is to explain how libgdb
-performs its I/O, and how an application can take advantage of
-this.
-
-
-@heading I/O Vectors
-
-Libgdb has no fixed strategy for I/O. Instead, all operations are
-performed by functions called via structures of function pointers.
-Applications supply theses structures and can change them at any
-time.
-
-@deftp Type {struct gdb_input_vector}
-@deftpx Type {struct gdb_output_vector}
-These structures contain a set of function pointers. Each function
-determines how a particular type of i/o is performed. The details of
-these strucutres are explained below.
-
-The application allocates these structures, initializes them to all bits
-zero, fills in the function pointers, and then registers names for them
-them with libgdb.
-@end deftp
-
-@deftypefun void gdb_name_input_vector (@var{name}, @var{vec})
-@deftypefunx void gdb_remove_input_vector (@var{name}, @var{vec})
-@deftypefunx void gdb_name_output_vector (@var{name}, @var{vec})
-@deftypefunx void gdb_remove_input_vector (@var{name}, @var{vec})
-@example
- char * @var{name};
- struct gdb_output_vector * @var{vec};
-@end example
-These functions are used to give and remove names to i/o vectors. Note
-that if a name is used twice, the most recent definition applies.
-@end deftypefun
-
-
-
-@subheading Output
-
-An output vector is a structure with at least these fields:
-
-@example
-struct gdb_output_vector
-@{
- /* output */
- void (*put_string) (struct gdb_output_vector *, char * str);
-@}
-@end example
-
-Use the function @code{memset} or something equivalent to initialize an
-output vector to all bits zero. Then fill in the function pointer with
-your function.
-
-A debugger command can produce three kinds of output: error messages
-(such as when trying to delete a non-existent breakpoint), informational
-messages (such as the notification printed when a breakpoint is hit),
-and the output specifically requested by a command (for example, the
-value printed by the ``print'' command). At any given time, then,
-libgdb has three output vectors. These are called the @dfn{error},
-@dfn{info}, @dfn{value} vector respectively.
-
-@subheading Input
-
-@example
-struct gdb_input_vector
-@{
- int (*query) (struct gdb_input_vector *,
- char * prompt,
- int quit_allowed);
- int * (*selection) (struct gdb_input_vector *,
- char * prompt,
- char ** choices);
- char * (*read_string) (struct gdb_input_vector *,
- char * prompt);
- char ** (*read_strings) (struct gdb_input_vector *,
- char * prompt);
-@}
-@end example
-
-Use the function @code{memset} or something equivalent to initialize an
-input vector to all bits zero. Then fill in the function pointers with
-your functions.
-
-There are four kinds of input requests explicitly made by libgdb.
-
-A @dfn{query} is a yes or no question. The user can respond to a query
-with an affirmative or negative answer, or by telling gdb to abort the
-command (in some cases an abort is not permitted). Query should return
-'y' or 'n' or 0 to abort.
-
-A @dfn{selection} is a list of options from which the user selects a subset.
-Selections should return a NULL terminated array of integers, which are
-indexes into the array of choices. It can return NULL instead to abort
-the command. The array returned by this function will be passed to
-@code{free} by libgdb.
-
-A @dfn{read_string} asks the user to supply an arbitrary string. It may
-return NULL to abort the command. The string returned by @code{read_string}
-should be allocated by @code{malloc}; it will be freed by libgdb.
-
-A @dfn{read_strings} asks the user to supply multiple lines of input
-(for example, the body of a command created using `define'). It, too,
-may return NULL to abort. The array and the strings returned by this
-function will be freed by libgdb.
-
-@heading I/O Redirection from the Application Top-Level
-
-@deftypefun struct gdb_io_vecs gdb_set_io (struct gdb_io_vecs *)
-@example
-
-struct gdb_io_vecs
-@{
- struct gdb_input_vector * input;
- struct gdb_output_vector * error;
- struct gdb_output_vector * info;
- struct gdb_output_vector * value;
-@}
-@end example
-
-This establishes a new set of i/o vectors, and returns the old setting.
-Any of the pointers in this structure may be NULL, indicating that the
-current value should be used.
-
-This function is useful for setting up i/o vectors before any libgdb
-commands have been invoked (hence before any input or output has taken
-place).
-@end deftypefun
-
-It is explained in a later chapter how to redirect output temporarily.
-(@xref{Invoking}.)
-
-@heading I/O Redirection in Debugger Commands
-
-A libgdb application creates input and output vectors and assigns them names.
-Which input and output vectors are used by libgdb is established by
-executing these debugger commands:
-
-@defun {set input-vector} name
-@defunx {set error-output-vector} name
-@defunx {set info-output-vector} name
-@defunx {set value-output-vector} name
-Choose an I/O vector by name.
-@end defun
-
-
-A few debugger commands are for use only within commands defined using
-the debugger command `define' (they have no effect at other times).
-These commands exist so that an application can maintain hooks which
-redirect output without affecting the global I/O vectors.
-
-@defun with-input-vector name
-@defunx with-error-output-vector name
-@defunx with-info-output-vector name
-@defunx with-value-output-vector name
-Set an I/O vector, but only temporarily. The setting has effect only
-within the command definition in which it occurs.
-@end defun
-
-
-@heading Initial Conditions
-
-When libgdb is initialized, a set of default I/O vectors is put in
-place. The default vectors are called @code{default-input-vector},
-@code{default-output-vector}, &c.
-
-The default query function always returns `y'. Other input functions
-always abort. The default output functions discard output silently.
-
-
-@node Invoking, Defining Commands, I/O, Top
-@chapter Invoking the Interpreter, Executing Commands
-@cindex {executing commands}
-@cindex {invoking the interpreter}
-
-This section introduces the libgdb functions which invoke the command
-interpreter.
-
-@deftypefun void gdb_execute_command (@var{command})
-@example
-char * @var{command};
-@end example
-Interpret the argument debugger command. An error handler must be set
-when this function is called. (@xref{Top Level}.)
-@end deftypefun
-
-It is possible to override the current I/O vectors for the duration of a
-single command:
-
-@deftypefun void gdb_execute_with_io (@var{command}, @var{vecs})
-@example
-char * @var{command};
-struct gdb_io_vecs * @var{vecs};
-
-struct gdb_io_vecs
-@{
- struct gdb_input_vector * input;
- struct gdb_output_vector * error;
- struct gdb_output_vector * info;
- struct gdb_output_vector * value;
-@}
-@end example
-
-Execute @var{command}, temporarily using the i/o vectors in @var{vecs}.
-
-Any of the vectors may be NULL, indicating that the current value should
-be used. An error handler must be in place when this function is used.
-@end deftypefun
-
-@deftypefun {struct gdb_str_output} gdb_execute_for_strings (@var{cmd})
-@example
-char * cmd;
-@end example
-@deftypefunx {struct gdb_str_output} gdb_execute_for_strings2 (@var{cmd}, @var{input})
-@example
-char * cmd;
-struct gdb_input_vector * input;
-@end example
-@page
-@example
-struct gdb_str_output
-@{
- char * error;
- char * info;
- char * value;
-@};
-@end example
-
-Execute @var{cmd}, collecting its output as strings. If no error
-occurs, all three strings will be present in the structure, the
-empty-string rather than NULL standing for no output of a particular
-kind.
-
-If the command aborts with an error, then the @code{value} field will be
-NULL, though the other two strings will be present.
-
-In all cases, the strings returned are allocated by malloc and should be
-freed by the caller.
-
-The first form listed uses the current input vector, but overrides the
-current output vector. The second form additionally allows the input
-vector to be overridden.
-
-This function does not require that an error handler be installed.
-@end deftypefun
-
-@deftypefun void execute_catching_errors (@var{command})
-@example
-char * @var{command};
-@end example
-Like @code{execute_command} except that no error handler is required.
-@end deftypefun
-
-@deftypefun void execute_with_text (@var{command}, @var{text})
-@example
-char * @var{command};
-char ** @var{text};
-@end example
-Like @code{execute_catching_errors}, except that the input vector is
-overridden. The new input vector handles only calls to @code{query} (by
-returning 'y') and calls to @code{read_strings} by returning a copy of
-@var{text} and the strings it points to.
-
-This form of execute_command is useful for commands like @code{define},
-@code{document}, and @code{commands}.
-@end deftypefun
-
-
-
-@node Defining Commands, Variables, Invoking, Top
-@comment node-name, next, previous, up
-@chapter How New Commands are Created
-@cindex {commands, defining}
-
-Applications are, of course, free to take advantage of the existing GDB
-macro definition capability (the @code{define} and @code{document}
-functions).
-
-In addition, an application can add new primitives to the GDB command
-language.
-
-@deftypefun void gdb_define_app_command (@var{name}, @var{fn}, @var{doc})
-@example
-char * @var{name};
-gdb_cmd_fn @var{fn};
-char * @var{doc};
-
-typedef void (*gdb_cmd_fn) (char * args);
-@end example
-
-Create a new command call @var{name}. The new command is in the
-@code{application} help class. When invoked, the command-line arguments
-to the command are passed as a single string.
-
-Calling this function twice with the same name replaces an earlier
-definition, but application commands can not replace builtin commands of
-the same name.
-
-The documentation string of the command is set to a copy the string
-@var{doc}.
-@end deftypefun
-
-@node Variables, Asynchronous, Defining Commands, Top
-@comment node-name, next, previous, up
-@chapter How Builtin Variables are Defined
-@cindex {variables, defining}
-
-Convenience variables provide a way for values maintained by libgdb to
-be referenced in expressions (e.g. @code{$bpnum}). Libgdb includes a
-means by which the application can define new, integer valued
-convenience variables:
-@page
-@deftypefun void gdb_define_int_var (@var{name}, @var{fn}, @var{fn_arg})
-@example
-char * @var{name};
-int (*@var{fn}) (void *);
-void * @var{fn_arg};
-@end example
-This function defines (or undefines) a convenience variable called @var{name}.
-If @var{fn} is NULL, the variable becomes undefined. Otherwise,
-@var{fn} is a function which, when passed @var{fn_arg} returns the value
-of the newly defined variable.
-
-No libgdb functions should be called by @var{fn}.
-@end deftypefun
-
-One use for this function is to create breakpoint conditions computed in
-novel ways. This is done by defining a convenience variable and
-referring to that variable in a breakpoint condition expression.
-
-
-@node Asynchronous, Commands, Variables, Top
-@chapter Scheduling Asynchronous Computations
-@cindex asynchronous
-
-
-A running libgdb function can take a long time. Libgdb includes a hook
-so that an application can run intermittently during long debugger
-operations.
-
-@deftypefun void gdb_set_poll_fn (@var{fn}, @var{fn_arg})
-@example
-void (*@var{fn})(void * fn_arg, int (*gdb_poll)());
-void * @var{fn_arg};
-@end example
-Arrange to call @var{fn} periodically during lengthy debugger operations.
-If @var{fn} is NULL, polling is turned off. @var{fn} should take two
-arguments: an opaque pointer passed as @var{fn_arg} to
-@code{gdb_set_poll_fn}, and a function pointer. The function pointer
-passed to @var{fn} is provided by libgdb and points to a function that
-returns 0 when the poll function should return. That is, when
-@code{(*gdb_poll)()} returns 0, libgdb is ready to continue @var{fn}
-should return quickly.
-
-It is possible that @code{(*gdb_poll)()} will return 0 the first time it
-is called, so it is reasonable for an application to do minimal processing
-before checking whether to return.
-
-No libgdb functions should be called from an application's poll function,
-with one exception: @code{gdb_request_quit}.
-@end deftypefun
-
-
-@deftypefun void gdb_request_quit (void)
-This function, if called from a poll function, requests that the
-currently executing libgdb command be interrupted as soon as possible,
-and that control be returned to the top-level via an error.
-
-The quit is not immediate. It will not occur until at least after the
-application's poll function returns.
-@end deftypefun
-
-@node Commands, Top, Asynchronous, Top
-@comment node-name, next, previous, up
-@chapter Debugger Commands for Libgdb Applications
-
-The debugger commands available to libgdb applications are the same commands
-available interactively via GDB. This section is an overview of the
-commands newly created as part of libgdb.
-
-This section is not by any means a complete reference to the GDB command
-language. See the GDB manual for such a reference.
-
-@menu
-* Command Hooks:: Setting Hooks to Execute With Debugger Commands.
-* View Commands:: View Commands Mirror Show Commands
-* Breakpoints:: The Application Can Have Its Own Breakpoints
-@end menu
-
-@node Command Hooks, View Commands, Commands, Commands
-@comment node-name, next, previous, up
-@section Setting Hooks to Execute With Debugger Commands.
-
-Debugger commands support hooks. A command hook is executed just before
-the interpreter invokes the hooked command.
-
-There are two hooks allowed for every command. By convention, one hook
-is for use by users, the other is for use by the application.
-
-A user hook is created for a command XYZZY by using
-@code{define-command} to create a command called @code{hook-XYZZY}.
-
-An application hook is created for a command XYZZY by using
-@code{define-command} to create a command called @code{apphook-XYZZY}.
-
-Application hooks are useful for interfaces which wish to continuously
-monitor certain aspects of debugger state. The application can set a
-hook on all commands that might modify the watched state. When the hook
-is executed, it can use i/o redirection to notify parts of the
-application that previous data may be out of date. After the top-level loop
-resumes, the application can recompute any values that may have changed.
-(@xref{I/O}.)
-
-@node View Commands, Breakpoints, Command Hooks, Commands
-@comment node-name, next, previous, up
-@section View Commands Mirror Show Commands
-
-The GDB command language contains many @code{set} and @code{show}
-commands. These commands are used to modify or examine parameters to
-the debugger.
-
-It is difficult to get the current state of a parameter from the
-@code{show} command because @code{show} is very verbose.
-
-@example
-(gdb) show check type
-Type checking is "auto; currently off".
-(gdb) show width
-Number of characters gdb thinks are in a line is 80.
-@end example
-
-For every @code{show} command, libgdb includes a @code{view} command.
-@code{view} is like @code{show} without the verbose commentary:
-
-@example
-(gdb) view check type
-auto; currently off
-(gdb) view width
-80
-@end example
-
-(The precise format of the ouput from @code{view} is subject to change.
-In particular, @code{view} may one-day print values which can be used as
-arguments to the corresponding @code{set} command.)
-
-@node Breakpoints, Structured Output, View Commands, Commands
-@comment node-name, next, previous, up
-@section The Application Can Have Its Own Breakpoints
-
-The GDB breakpoint commands were written with a strong presumption that
-all breakpoints are managed by a human user. Therefore, the command
-language contains commands like `delete' which affect all breakpoints
-without discrimination.
-
-In libgdb, there is added support for breakpoints and watchpoints which
-are set by the application and which should not be affected by ordinary,
-indiscriminate commands. These are called @dfn{protected} breakpoints.
-
-@deffn {Debugger Command} break-protected ...
-@deffnx {Debugger Command} watch-protected ...
-These work like @code{break} and @code{watch} except that the resulting
-breakpoint is given a negative number. Negative numbered breakpoints do
-not appear in the output of @code{info breakpoints} but do in that of
-@code{info all-breakpoints}. Negative numbered breakpoints are not
-affected by commands which ordinarily affect `all' breakpoints (e.g.
-@code{delete} with no arguments).
-
-Note that libgdb itself creates protected breakpoints, so programs
-should not rely on being able to allocate particular protected
-breakpoint numbers for themselves.
-@end deffn
-
-More than one breakpoint may be set at a given location. Libgdb adds
-the concept of @dfn{priority} to breakpoints. A priority is an integer,
-assigned to each breakpoint. When a breakpoint is reached, the
-conditions of all breakpoints at the same location are evaluated in
-order of ascending priority. When breakpoint commands are executed,
-they are also executed in ascending priority (until all have been
-executed, an error occurs, or one set of commands continues the
-target).
-
-@deffn {Debugger Command} priority n bplist
-Set the priority for breakpoints @var{bplist} to @var{n}.
-By default, breakpoints are assigned a priority of zero.
-@end deffn
-
-@node Structured Output, Commands, Breakpoints, Commands
-@comment node-name, next, previous, up
-@section Structured Output, The @code{Explain} Command
-
-(This section may be subject to considerable revision.)
-
-When GDB prints a the value of an expression, the printed representation
-contains information that can be usefully fed back into future commands
-and expressions. For example,
-
-@example
-(gdb) print foo
-$16 = @{v = 0x38ae0, v_length = 40@}
-@end example
-
-On the basis of this output, a user knows, for example, that
-@code{$16.v} refers to a pointer valued @code{0x38ae0}
-
-A new output command helps to make information like this available to
-the application.
-
-@deffn {Debugger Command} explain expression
-@deffnx {Debugger Command} explain /format expression
-Print the value of @var{expression} in the manner of the @code{print}
-command, but embed that output in a list syntax containing information
-about the structure of the output.
-@end deffn
-
-As an example, @code{explain argv} might produce this output:
-
-@example
-(exp-attribute
- ((expression "$19")
- (type "char **")
- (address "48560")
- (deref-expression "*$19"))
- "$19 = 0x3800\n")
-@end example
-
-The syntax of output from @code{explain} is:
-
-@example
-<explanation> := <quoted-string>
- | (exp-concat <explanation> <explanation>*)
- | (exp-attribute <property-list> <explanation>)
-
-<property-list> := ( <property-pair>* )
-
-<property-pair> := ( <property-name> <quoted-string> )
-@end example
-
-The string-concatenation of all of the @code{<quoted-string>} (except
-those in property lists) yields the output generated by the equivalent
-@code{print} command. Quoted strings may contain quotes and backslashes
-if they are escaped by backslash. "\n" in a quoted string stands for
-newline; unescaped newlines do not occur within the strings output by
-@code{explain}.
-
-Property names are made up of alphabetic characters, dashes, and
-underscores.
-
-The set of properties is open-ended. As GDB acquires support for new
-source languages and other new capabilities, new property types may be
-added to the output of this command. Future commands may offer
-applications some selectivity concerning which properties are reported.
-
-The initial set of properties defined includes:
-
-@itemize @bullet
-@item @code{expression}
-
-This is an expression, such as @code{$42} or @code{$42.x}. The
-expression can be used to refer to the value printed in the attributed
-part of the string.
-
-@item @code{type}
-
-This is a user-readable name for the type of the attributed value.
-
-@item @code{address}
-
-If the value is stored in a target register, this is a register number.
-If the value is stored in a GDB convenience variable, this is an integer
-that is unique among all the convenience variables. Otherwise, this is
-the address in the target where the value is stored.
-
-@item @code{deref-expression}
-
-If the attributed value is a pointer type, this is an expression that
-refers to the dereferenced value.
-@end itemize
-
-Here is a larger example, using the same object passed to @code{print}
-in an earlier example of this section.
-
-@example
-(gdb) explain foo
-(exp-attribute
- ( (expression "$16")
- (type "struct bytecode_vector")
- (address 14336) )
- (exp-concat
- "$16 = @{"
- (exp-attribute
- ( (expression "$16.v")
- (type "char *")
- (address 14336)
- (deref-expression "*$16.v") )
- "v = 0x38ae0")
- (exp-attribute
- ( (expression "$16.v_length")
- (type "int")
- (address 14340) )
- ", v_length = 40")
- "@}\n"))
-@end example
-
-It is undefined how libgdb will indent these lines of output or
-where newlines will be included.
-
-@bye
diff --git a/contrib/gdb/gdb/gdba.el b/contrib/gdb/gdb/gdba.el
deleted file mode 100644
index 0f71586..0000000
--- a/contrib/gdb/gdb/gdba.el
+++ /dev/null
@@ -1,2607 +0,0 @@
-(defmacro gud (form)
- (` (save-excursion (set-buffer "*gud-a.out*") (, form))))
-
-(defun dbug (foo &optional fun)
- (save-excursion
- (set-buffer (get-buffer-create "*trace*"))
- (goto-char (point-max))
- (insert "***" (symbol-name foo) "\n")
- (if fun
- (funcall fun))))
-
-
-;;; gud.el --- Grand Unified Debugger mode for gdb, sdb, dbx, or xdb
-;;; under Emacs
-
-;; Author: Eric S. Raymond <esr@snark.thyrsus.com>
-;; Maintainer: FSF
-;; Version: 1.3
-;; Keywords: unix, tools
-
-;; Copyright (C) 1992, 1993 Free Software Foundation, Inc.
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; if not, write to the Free Software
-;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-;;; Commentary:
-
-;; The ancestral gdb.el was by W. Schelter <wfs@rascal.ics.utexas.edu>
-;; It was later rewritten by rms. Some ideas were due to Masanobu.
-;; Grand Unification (sdb/dbx support) by Eric S. Raymond <esr@thyrsus.com>
-;; The overloading code was then rewritten by Barry Warsaw <bwarsaw@cen.com>,
-;; who also hacked the mode to use comint.el. Shane Hartman <shane@spr.com>
-;; added support for xdb (HPUX debugger).
-
-;; Cygnus Support added support for gdb's --annotate=2.
-
-;;; Code:
-
-(require 'comint)
-(require 'etags)
-
-;; ======================================================================
-;; GUD commands must be visible in C buffers visited by GUD
-
-(defvar gud-key-prefix "\C-x\C-a"
- "Prefix of all GUD commands valid in C buffers.")
-
-(global-set-key (concat gud-key-prefix "\C-l") 'gud-refresh)
-(global-set-key "\C-x " 'gud-break) ;; backward compatibility hack
-
-;; ======================================================================
-;; the overloading mechanism
-
-(defun gud-overload-functions (gud-overload-alist)
- "Overload functions defined in GUD-OVERLOAD-ALIST.
-This association list has elements of the form
- (ORIGINAL-FUNCTION-NAME OVERLOAD-FUNCTION)"
- (mapcar
- (function (lambda (p) (fset (car p) (symbol-function (cdr p)))))
- gud-overload-alist))
-
-(defun gud-massage-args (file args)
- (error "GUD not properly entered."))
-
-(defun gud-marker-filter (str)
- (error "GUD not properly entered."))
-
-(defun gud-find-file (f)
- (error "GUD not properly entered."))
-
-;; ======================================================================
-;; command definition
-
-;; This macro is used below to define some basic debugger interface commands.
-;; Of course you may use `gud-def' with any other debugger command, including
-;; user defined ones.
-
-;; A macro call like (gud-def FUNC NAME KEY DOC) expands to a form
-;; which defines FUNC to send the command NAME to the debugger, gives
-;; it the docstring DOC, and binds that function to KEY in the GUD
-;; major mode. The function is also bound in the global keymap with the
-;; GUD prefix.
-
-(defmacro gud-def (func cmd key &optional doc)
- "Define FUNC to be a command sending STR and bound to KEY, with
-optional doc string DOC. Certain %-escapes in the string arguments
-are interpreted specially if present. These are:
-
- %f name (without directory) of current source file.
- %d directory of current source file.
- %l number of current source line
- %e text of the C lvalue or function-call expression surrounding point.
- %a text of the hexadecimal address surrounding point
- %p prefix argument to the command (if any) as a number
-
- The `current' source file is the file of the current buffer (if
-we're in a C file) or the source file current at the last break or
-step (if we're in the GUD buffer).
- The `current' line is that of the current buffer (if we're in a
-source file) or the source line number at the last break or step (if
-we're in the GUD buffer)."
- (list 'progn
- (list 'defun func '(arg)
- (or doc "")
- '(interactive "p")
- (list 'gud-call cmd 'arg))
- (if key
- (list 'define-key
- '(current-local-map)
- (concat "\C-c" key)
- (list 'quote func)))
- (if key
- (list 'global-set-key
- (list 'concat 'gud-key-prefix key)
- (list 'quote func)))))
-
-;; Where gud-display-frame should put the debugging arrow. This is
-;; set by the marker-filter, which scans the debugger's output for
-;; indications of the current program counter.
-(defvar gud-last-frame nil)
-
-;; Used by gud-refresh, which should cause gud-display-frame to redisplay
-;; the last frame, even if it's been called before and gud-last-frame has
-;; been set to nil.
-(defvar gud-last-last-frame nil)
-
-;; All debugger-specific information is collected here.
-;; Here's how it works, in case you ever need to add a debugger to the mode.
-;;
-;; Each entry must define the following at startup:
-;;
-;;<name>
-;; comint-prompt-regexp
-;; gud-<name>-massage-args
-;; gud-<name>-marker-filter
-;; gud-<name>-find-file
-;;
-;; The job of the massage-args method is to modify the given list of
-;; debugger arguments before running the debugger.
-;;
-;; The job of the marker-filter method is to detect file/line markers in
-;; strings and set the global gud-last-frame to indicate what display
-;; action (if any) should be triggered by the marker. Note that only
-;; whatever the method *returns* is displayed in the buffer; thus, you
-;; can filter the debugger's output, interpreting some and passing on
-;; the rest.
-;;
-;; The job of the find-file method is to visit and return the buffer indicated
-;; by the car of gud-tag-frame. This may be a file name, a tag name, or
-;; something else.
-
-;; ======================================================================
-;; gdb functions
-
-;;; History of argument lists passed to gdb.
-(defvar gud-gdb-history nil)
-
-(defun gud-gdb-massage-args (file args)
- (cons "--annotate=2" (cons file args)))
-
-
-;;
-;; In this world, there are gdb instance objects (of unspecified
-;; representation) and buffers associated with those objects.
-;;
-
-;;
-;; gdb-instance objects
-;;
-
-(defun make-gdb-instance (proc)
- "Create a gdb instance object from a gdb process."
- (setq last-proc proc)
- (let ((instance (cons 'gdb-instance proc)))
- (save-excursion
- (set-buffer (process-buffer proc))
- (setq gdb-buffer-instance instance)
- (progn
- (mapcar 'make-variable-buffer-local gdb-instance-variables)
- (setq gdb-buffer-type 'gud)
- ;; If we're taking over the buffer of another process,
- ;; take over it's ancillery buffers as well.
- ;;
- (let ((dead (or old-gdb-buffer-instance)))
- (mapcar
- (function
- (lambda (b)
- (progn
- (set-buffer b)
- (if (eq dead gdb-buffer-instance)
- (setq gdb-buffer-instance instance)))))
- (buffer-list)))))
- instance))
-
-(defun gdb-instance-process (inst) (cdr inst))
-
-;;; The list of instance variables is built up by the expansions of
-;;; DEF-GDB-VARIABLE
-;;;
-(defvar gdb-instance-variables '()
- "A list of variables that are local to the gud buffer associated
-with a gdb instance.")
-
-(defmacro def-gdb-variable
- (name accessor setter &optional default doc)
- (`
- (progn
- (defvar (, name) (, default) (, (or doc "undocumented")))
- (if (not (memq '(, name) gdb-instance-variables))
- (setq gdb-instance-variables
- (cons '(, name) gdb-instance-variables)))
- (, (and accessor
- (`
- (defun (, accessor) (instance)
- (let
- ((buffer (gdb-get-instance-buffer instance 'gud)))
- (and buffer
- (save-excursion
- (set-buffer buffer)
- (, name))))))))
- (, (and setter
- (`
- (defun (, setter) (instance val)
- (let
- ((buffer (gdb-get-instance-buffer instance 'gud)))
- (and buffer
- (save-excursion
- (set-buffer buffer)
- (setq (, name) val)))))))))))
-
-(defmacro def-gdb-var (root-symbol &optional default doc)
- (let* ((root (symbol-name root-symbol))
- (accessor (intern (concat "gdb-instance-" root)))
- (setter (intern (concat "set-gdb-instance-" root)))
- (var-name (intern (concat "gdb-" root))))
- (` (def-gdb-variable
- (, var-name) (, accessor) (, setter)
- (, default) (, doc)))))
-
-(def-gdb-var buffer-instance nil
- "In an instance buffer, the buffer's instance.")
-
-(def-gdb-var buffer-type nil
- "One of the symbols bound in gdb-instance-buffer-rules")
-
-(def-gdb-var burst ""
- "A string of characters from gdb that have not yet been processed.")
-
-(def-gdb-var input-queue ()
- "A list of high priority gdb command objects.")
-
-(def-gdb-var idle-input-queue ()
- "A list of low priority gdb command objects.")
-
-(def-gdb-var prompting nil
- "True when gdb is idle with no pending input.")
-
-(def-gdb-var output-sink 'user
- "The disposition of the output of the current gdb command.
-Possible values are these symbols:
-
- user -- gdb output should be copied to the gud buffer
- for the user to see.
-
- inferior -- gdb output should be copied to the inferior-io buffer
-
- pre-emacs -- output should be ignored util the post-prompt
- annotation is received. Then the output-sink
- becomes:...
- emacs -- output should be collected in the partial-output-buffer
- for subsequent processing by a command. This is the
- disposition of output generated by commands that
- gud mode sends to gdb on its own behalf.
- post-emacs -- ignore input until the prompt annotation is
- received, then go to USER disposition.
-")
-
-(def-gdb-var current-item nil
- "The most recent command item sent to gdb.")
-
-(def-gdb-var pending-triggers '()
- "A list of trigger functions that have run later than their output
-handlers.")
-
-(defun in-gdb-instance-context (instance form)
- "Funcall `form' in the gud buffer of `instance'"
- (save-excursion
- (set-buffer (gdb-get-instance-buffer instance 'gud))
- (funcall form)))
-
-;; end of instance vars
-
-;;
-;; finding instances
-;;
-
-(defun gdb-proc->instance (proc)
- (save-excursion
- (set-buffer (process-buffer proc))
- gdb-buffer-instance))
-
-(defun gdb-mru-instance-buffer ()
- "Return the most recently used (non-auxiliary) gdb gud buffer."
- (save-excursion
- (gdb-goto-first-gdb-instance (buffer-list))))
-
-(defun gdb-goto-first-gdb-instance (blist)
- "Use gdb-mru-instance-buffer -- not this."
- (and blist
- (progn
- (set-buffer (car blist))
- (or (and gdb-buffer-instance
- (eq gdb-buffer-type 'gud)
- (car blist))
- (gdb-goto-first-gdb-instance (cdr blist))))))
-
-(defun buffer-gdb-instance (buf)
- (save-excursion
- (set-buffer buf)
- gdb-buffer-instance))
-
-(defun gdb-needed-default-instance ()
- "Return the most recently used gdb instance or signal an error."
- (let ((buffer (gdb-mru-instance-buffer)))
- (or (and buffer (buffer-gdb-instance buffer))
- (error "No instance of gdb found."))))
-
-(defun gdb-instance-target-string (instance)
- "The apparent name of the program being debugged by a gdb instance.
-For sure this the root string used in smashing together the gud
-buffer's name, even if that doesn't happen to be the name of a
-program."
- (in-gdb-instance-context
- instance
- (function (lambda () gud-target-name))))
-
-
-
-;;
-;; Instance Buffers.
-;;
-
-;; More than one buffer can be associated with a gdb instance.
-;;
-;; Each buffer has a TYPE -- a symbol that identifies the function
-;; of that particular buffer.
-;;
-;; The usual gud interaction buffer is given the type `gud' and
-;; is constructed specially.
-;;
-;; Others are constructed by gdb-get-create-instance-buffer and
-;; named according to the rules set forth in the gdb-instance-buffer-rules-assoc
-
-(defun gdb-get-instance-buffer (instance key)
- "Return the instance buffer for `instance' tagged with type `key'.
-The key should be one of the cars in `gdb-instance-buffer-rules-assoc'."
- (save-excursion
- (gdb-look-for-tagged-buffer instance key (buffer-list))))
-
-(defun gdb-get-create-instance-buffer (instance key)
- "Create a new gdb instance buffer of the type specified by `key'.
-The key should be one of the cars in `gdb-instance-buffer-rules-assoc'."
- (or (gdb-get-instance-buffer instance key)
- (let* ((rules (assoc key gdb-instance-buffer-rules-assoc))
- (name (funcall (gdb-rules-name-maker rules) instance))
- (new (get-buffer-create name)))
- (save-excursion
- (set-buffer new)
- (make-variable-buffer-local 'gdb-buffer-type)
- (setq gdb-buffer-type key)
- (make-variable-buffer-local 'gdb-buffer-instance)
- (setq gdb-buffer-instance instance)
- (if (cdr (cdr rules))
- (funcall (car (cdr (cdr rules)))))
- new))))
-
-(defun gdb-rules-name-maker (rules) (car (cdr rules)))
-
-(defun gdb-look-for-tagged-buffer (instance key bufs)
- (let ((retval nil))
- (while (and (not retval) bufs)
- (set-buffer (car bufs))
- (if (and (eq gdb-buffer-instance instance)
- (eq gdb-buffer-type key))
- (setq retval (car bufs)))
- (setq bufs (cdr bufs))
- )
- retval))
-
-(defun gdb-instance-buffer-p (buf)
- (save-excursion
- (set-buffer buf)
- (and gdb-buffer-type
- (not (eq gdb-buffer-type 'gud)))))
-
-;;
-;; This assoc maps buffer type symbols to rules. Each rule is a list of
-;; at least one and possible more functions. The functions have these
-;; roles in defining a buffer type:
-;;
-;; NAME - take an instance, return a name for this type buffer for that
-;; instance.
-;; The remaining function(s) are optional:
-;;
-;; MODE - called in new new buffer with no arguments, should establish
-;; the proper mode for the buffer.
-;;
-
-(defvar gdb-instance-buffer-rules-assoc '())
-
-(defun gdb-set-instance-buffer-rules (buffer-type &rest rules)
- (let ((binding (assoc buffer-type gdb-instance-buffer-rules-assoc)))
- (if binding
- (setcdr binding rules)
- (setq gdb-instance-buffer-rules-assoc
- (cons (cons buffer-type rules)
- gdb-instance-buffer-rules-assoc)))))
-
-(gdb-set-instance-buffer-rules 'gud 'error) ; gud buffers are an exception to the rules
-
-;;
-;; partial-output buffers
-;;
-;; These accumulate output from a command executed on
-;; behalf of emacs (rather than the user).
-;;
-
-(gdb-set-instance-buffer-rules 'gdb-partial-output-buffer
- 'gdb-partial-output-name)
-
-(defun gdb-partial-output-name (instance)
- (concat "*partial-output-"
- (gdb-instance-target-string instance)
- "*"))
-
-
-(gdb-set-instance-buffer-rules 'gdb-inferior-io
- 'gdb-inferior-io-name
- 'gud-inferior-io-mode)
-
-(defun gdb-inferior-io-name (instance)
- (concat "*input/output of "
- (gdb-instance-target-string instance)
- "*"))
-
-(defvar gdb-inferior-io-mode-map (copy-keymap comint-mode-map))
-(define-key comint-mode-map "\C-c\C-c" 'gdb-inferior-io-interrupt)
-(define-key comint-mode-map "\C-c\C-z" 'gdb-inferior-io-stop)
-(define-key comint-mode-map "\C-c\C-\\" 'gdb-inferior-io-quit)
-(define-key comint-mode-map "\C-c\C-d" 'gdb-inferior-io-eof)
-
-(defun gud-inferior-io-mode ()
- "Major mode for gud inferior-io.
-
-\\{comint-mode-map}"
- ;; We want to use comint because it has various nifty and familiar
- ;; features. We don't need a process, but comint wants one, so create
- ;; a dummy one.
- (make-comint (substring (buffer-name) 1 (- (length (buffer-name)) 1))
- "/bin/cat")
- (setq major-mode 'gud-inferior-io-mode)
- (setq mode-name "Debuggee I/O")
- (setq comint-input-sender 'gud-inferior-io-sender)
-)
-
-(defun gud-inferior-io-sender (proc string)
- (save-excursion
- (set-buffer (process-buffer proc))
- (let ((instance gdb-buffer-instance))
- (set-buffer (gdb-get-instance-buffer instance 'gud))
- (let ((gud-proc (get-buffer-process (current-buffer))))
- (process-send-string gud-proc string)
- (process-send-string gud-proc "\n")
- ))
- ))
-
-(defun gdb-inferior-io-interrupt (instance)
- "Interrupt the program being debugged."
- (interactive (list (gdb-needed-default-instance)))
- (interrupt-process
- (get-buffer-process (gdb-get-instance-buffer instance 'gud)) comint-ptyp))
-
-(defun gdb-inferior-io-quit (instance)
- "Send quit signal to the program being debugged."
- (interactive (list (gdb-needed-default-instance)))
- (quit-process
- (get-buffer-process (gdb-get-instance-buffer instance 'gud)) comint-ptyp))
-
-(defun gdb-inferior-io-stop (instance)
- "Stop the program being debugged."
- (interactive (list (gdb-needed-default-instance)))
- (stop-process
- (get-buffer-process (gdb-get-instance-buffer instance 'gud)) comint-ptyp))
-
-(defun gdb-inferior-io-eof (instance)
- "Send end-of-file to the program being debugged."
- (interactive (list (gdb-needed-default-instance)))
- (process-send-eof
- (get-buffer-process (gdb-get-instance-buffer instance 'gud))))
-
-
-;;
-;; gdb communications
-;;
-
-;; INPUT: things sent to gdb
-;;
-;; Each instance has a high and low priority
-;; input queue. Low priority input is sent only
-;; when the high priority queue is idle.
-;;
-;; The queues are lists. Each element is either
-;; a string (indicating user or user-like input)
-;; or a list of the form:
-;;
-;; (INPUT-STRING HANDLER-FN)
-;;
-;;
-;; The handler function will be called from the
-;; partial-output buffer when the command completes.
-;; This is the way to write commands which
-;; invoke gdb commands autonomously.
-;;
-;; These lists are consumed tail first.
-;;
-
-(defun gdb-send (proc string)
- "A comint send filter for gdb.
-This filter may simply queue output for a later time."
- (let ((instance (gdb-proc->instance proc)))
- (gdb-instance-enqueue-input instance (concat string "\n"))))
-
-;; Note: Stuff enqueued here will be sent to the next prompt, even if it
-;; is a query, or other non-top-level prompt. To guarantee stuff will get
-;; sent to the top-level prompt, currently it must be put in the idle queue.
-;; ^^^^^^^^^
-;; [This should encourage gud extentions that invoke gdb commands to let
-;; the user go first; it is not a bug. -t]
-;;
-
-(defun gdb-instance-enqueue-input (instance item)
- (if (gdb-instance-prompting instance)
- (progn
- (gdb-send-item instance item)
- (set-gdb-instance-prompting instance nil))
- (set-gdb-instance-input-queue
- instance
- (cons item (gdb-instance-input-queue instance)))))
-
-(defun gdb-instance-dequeue-input (instance)
- (let ((queue (gdb-instance-input-queue instance)))
- (and queue
- (if (not (cdr queue))
- (let ((answer (car queue)))
- (set-gdb-instance-input-queue instance '())
- answer)
- (gdb-take-last-elt queue)))))
-
-(defun gdb-instance-enqueue-idle-input (instance item)
- (if (and (gdb-instance-prompting instance)
- (not (gdb-instance-input-queue instance)))
- (progn
- (gdb-send-item instance item)
- (set-gdb-instance-prompting instance nil))
- (set-gdb-instance-idle-input-queue
- instance
- (cons item (gdb-instance-idle-input-queue instance)))))
-
-(defun gdb-instance-dequeue-idle-input (instance)
- (let ((queue (gdb-instance-idle-input-queue instance)))
- (and queue
- (if (not (cdr queue))
- (let ((answer (car queue)))
- (set-gdb-instance-idle-input-queue instance '())
- answer)
- (gdb-take-last-elt queue)))))
-
-; Don't use this in general.
-(defun gdb-take-last-elt (l)
- (if (cdr (cdr l))
- (gdb-take-last-elt (cdr l))
- (let ((answer (car (cdr l))))
- (setcdr l '())
- answer)))
-
-
-;;
-;; output -- things gdb prints to emacs
-;;
-;; GDB output is a stream interrupted by annotations.
-;; Annotations can be recognized by their beginning
-;; with \C-j\C-z\C-z<tag><opt>\C-j
-;;
-;; The tag is a string obeying symbol syntax.
-;;
-;; The optional part `<opt>' can be either the empty string
-;; or a space followed by more data relating to the annotation.
-;; For example, the SOURCE annotation is followed by a filename,
-;; line number and various useless goo. This data must not include
-;; any newlines.
-;;
-
-
-(defun gud-gdb-marker-filter (string)
- "A gud marker filter for gdb."
- ;; Bogons don't tell us the process except through scoping crud.
- (let ((instance (gdb-proc->instance proc)))
- (gdb-output-burst instance string)))
-
-(defvar gdb-annotation-rules
- '(("frames-invalid" gdb-invalidate-frames)
- ("breakpoints-invalid" gdb-invalidate-breakpoints)
- ("pre-prompt" gdb-pre-prompt)
- ("prompt" gdb-prompt)
- ("commands" gdb-subprompt)
- ("overload-choice" gdb-subprompt)
- ("query" gdb-subprompt)
- ("prompt-for-continue" gdb-subprompt)
- ("post-prompt" gdb-post-prompt)
- ("source" gdb-source)
- ("starting" gdb-starting)
- ("exited" gdb-stopping)
- ("signalled" gdb-stopping)
- ("signal" gdb-stopping)
- ("breakpoint" gdb-stopping)
- ("watchpoint" gdb-stopping)
- ("stopped" gdb-stopped)
- )
- "An assoc mapping annotation tags to functions which process them.")
-
-
-(defun gdb-ignore-annotation (instance args)
- nil)
-
-(defconst gdb-source-spec-regexp
- "\\(.*\\):\\([0-9]*\\):[0-9]*:[a-z]*:0x[a-f0-9]*")
-
-;; Do not use this except as an annotation handler."
-(defun gdb-source (instance args)
- (string-match gdb-source-spec-regexp args)
- ;; Extract the frame position from the marker.
- (setq gud-last-frame
- (cons
- (substring args (match-beginning 1) (match-end 1))
- (string-to-int (substring args
- (match-beginning 2)
- (match-end 2))))))
-
-;; An annotation handler for `prompt'.
-;; This sends the next command (if any) to gdb.
-(defun gdb-prompt (instance ignored)
- (let ((sink (gdb-instance-output-sink instance)))
- (cond
- ((eq sink 'user) t)
- ((eq sink 'post-emacs)
- (set-gdb-instance-output-sink instance 'user))
- (t
- (set-gdb-instance-output-sink instance 'user)
- (error "Phase error in gdb-prompt (got %s)" sink))))
- (let ((highest (gdb-instance-dequeue-input instance)))
- (if highest
- (gdb-send-item instance highest)
- (let ((lowest (gdb-instance-dequeue-idle-input instance)))
- (if lowest
- (gdb-send-item instance lowest)
- (progn
- (set-gdb-instance-prompting instance t)
- (gud-display-frame)))))))
-
-;; An annotation handler for non-top-level prompts.
-(defun gdb-subprompt (instance ignored)
- (let ((highest (gdb-instance-dequeue-input instance)))
- (if highest
- (gdb-send-item instance highest)
- (set-gdb-instance-prompting instance t))))
-
-(defun gdb-send-item (instance item)
- (set-gdb-instance-current-item instance item)
- (if (stringp item)
- (progn
- (set-gdb-instance-output-sink instance 'user)
- (process-send-string (gdb-instance-process instance)
- item))
- (progn
- (gdb-clear-partial-output instance)
- (set-gdb-instance-output-sink instance 'pre-emacs)
- (process-send-string (gdb-instance-process instance)
- (car item)))))
-
-;; An annotation handler for `pre-prompt'.
-;; This terminates the collection of output from a previous
-;; command if that happens to be in effect.
-(defun gdb-pre-prompt (instance ignored)
- (let ((sink (gdb-instance-output-sink instance)))
- (cond
- ((eq sink 'user) t)
- ((eq sink 'emacs)
- (set-gdb-instance-output-sink instance 'post-emacs)
- (let ((handler
- (car (cdr (gdb-instance-current-item instance)))))
- (save-excursion
- (set-buffer (gdb-get-create-instance-buffer
- instance 'gdb-partial-output-buffer))
- (funcall handler))))
- (t
- (set-gdb-instance-output-sink instance 'user)
- (error "Output sink phase error 1.")))))
-
-;; An annotation handler for `starting'. This says that I/O for the subprocess
-;; is now the program being debugged, not GDB.
-(defun gdb-starting (instance ignored)
- (let ((sink (gdb-instance-output-sink instance)))
- (cond
- ((eq sink 'user)
- (set-gdb-instance-output-sink instance 'inferior)
- ;; FIXME: need to send queued input
- )
- (t (error "Unexpected `starting' annotation")))))
-
-;; An annotation handler for `exited' and other annotations which say that
-;; I/O for the subprocess is now GDB, not the program being debugged.
-(defun gdb-stopping (instance ignored)
- (let ((sink (gdb-instance-output-sink instance)))
- (cond
- ((eq sink 'inferior)
- (set-gdb-instance-output-sink instance 'user)
- )
- (t (error "Unexpected stopping annotation")))))
-
-;; An annotation handler for `stopped'. It is just like gdb-stopping, except
-;; that if we already set the output sink to 'user in gdb-stopping, that is
-;; fine.
-(defun gdb-stopped (instance ignored)
- (let ((sink (gdb-instance-output-sink instance)))
- (cond
- ((eq sink 'inferior)
- (set-gdb-instance-output-sink instance 'user)
- )
- ((eq sink 'user)
- t)
- (t (error "Unexpected stopping annotation")))))
-
-;; An annotation handler for `post-prompt'.
-;; This begins the collection of output from the current
-;; command if that happens to be appropriate."
-(defun gdb-post-prompt (instance ignored)
- (gdb-invalidate-registers instance ignored)
- (let ((sink (gdb-instance-output-sink instance)))
- (cond
- ((eq sink 'user) t)
- ((eq sink 'pre-emacs)
- (set-gdb-instance-output-sink instance 'emacs))
-
- (t
- (set-gdb-instance-output-sink instance 'user)
- (error "Output sink phase error 3.")))))
-
-;; Handle a burst of output from a gdb instance.
-;; This function is (indirectly) used as a gud-marker-filter.
-;; It must return output (if any) to be insterted in the gud
-;; buffer.
-
-(defun gdb-output-burst (instance string)
- "Handle a burst of output from a gdb instance.
-This function is (indirectly) used as a gud-marker-filter.
-It must return output (if any) to be insterted in the gud
-buffer."
-
- (save-match-data
- (let (
- ;; Recall the left over burst from last time
- (burst (concat (gdb-instance-burst instance) string))
- ;; Start accumulating output for the gud buffer
- (output ""))
-
- ;; Process all the complete markers in this chunk.
-
- (while (string-match "\n\032\032\\(.*\\)\n" burst)
- (let ((annotation (substring burst
- (match-beginning 1)
- (match-end 1))))
-
- ;; Stuff prior to the match is just ordinary output.
- ;; It is either concatenated to OUTPUT or directed
- ;; elsewhere.
- (setq output
- (gdb-concat-output
- instance
- output
- (substring burst 0 (match-beginning 0))))
-
- ;; Take that stuff off the burst.
- (setq burst (substring burst (match-end 0)))
-
- ;; Parse the tag from the annotation, and maybe its arguments.
- (string-match "\\(\\S-*\\) ?\\(.*\\)" annotation)
- (let* ((annotation-type (substring annotation
- (match-beginning 1)
- (match-end 1)))
- (annotation-arguments (substring annotation
- (match-beginning 2)
- (match-end 2)))
- (annotation-rule (assoc annotation-type
- gdb-annotation-rules)))
- ;; Call the handler for this annotation.
- (if annotation-rule
- (funcall (car (cdr annotation-rule))
- instance
- annotation-arguments)
- ;; Else the annotation is not recognized. Ignore it silently,
- ;; so that GDB can add new annotations without causing
- ;; us to blow up.
- ))))
-
-
- ;; Does the remaining text end in a partial line?
- ;; If it does, then keep part of the burst until we get more.
- (if (string-match "\n\\'\\|\n\032\\'\\|\n\032\032.*\\'"
- burst)
- (progn
- ;; Everything before the potential marker start can be output.
- (setq output
- (gdb-concat-output
- instance
- output
- (substring burst 0 (match-beginning 0))))
-
- ;; Everything after, we save, to combine with later input.
- (setq burst (substring burst (match-beginning 0))))
-
- ;; In case we know the burst contains no partial annotations:
- (progn
- (setq output (gdb-concat-output instance output burst))
- (setq burst "")))
-
- ;; Save the remaining burst for the next call to this function.
- (set-gdb-instance-burst instance burst)
- output)))
-
-(defun gdb-concat-output (instance so-far new)
- (let ((sink (gdb-instance-output-sink instance)))
- (cond
- ((eq sink 'user) (concat so-far new))
- ((or (eq sink 'pre-emacs) (eq sink 'post-emacs)) so-far)
- ((eq sink 'emacs)
- (gdb-append-to-partial-output instance new)
- so-far)
- ((eq sink 'inferior)
- (gdb-append-to-inferior-io instance new)
- so-far)
- (t (error "Bogon output sink %S" sink)))))
-
-(defun gdb-append-to-partial-output (instance string)
- (save-excursion
- (set-buffer
- (gdb-get-create-instance-buffer
- instance 'gdb-partial-output-buffer))
- (goto-char (point-max))
- (insert string)))
-
-(defun gdb-clear-partial-output (instance)
- (save-excursion
- (set-buffer
- (gdb-get-create-instance-buffer
- instance 'gdb-partial-output-buffer))
- (delete-region (point-min) (point-max))))
-
-(defun gdb-append-to-inferior-io (instance string)
- (save-excursion
- (set-buffer
- (gdb-get-create-instance-buffer
- instance 'gdb-inferior-io))
- (goto-char (point-max))
- (insert-before-markers string))
- (gud-display-buffer
- (gdb-get-create-instance-buffer instance
- 'gdb-inferior-io)))
-
-(defun gdb-clear-inferior-io (instance)
- (save-excursion
- (set-buffer
- (gdb-get-create-instance-buffer
- instance 'gdb-inferior-io))
- (delete-region (point-min) (point-max))))
-
-
-
-;; One trick is to have a command who's output is always available in
-;; a buffer of it's own, and is always up to date. We build several
-;; buffers of this type.
-;;
-;; There are two aspects to this: gdb has to tell us when the output
-;; for that command might have changed, and we have to be able to run
-;; the command behind the user's back.
-;;
-;; The idle input queue and the output phasing associated with
-;; the instance variable `(gdb-instance-output-sink instance)' help
-;; us to run commands behind the user's back.
-;;
-;; Below is the code for specificly managing buffers of output from one
-;; command.
-;;
-
-
-;; The trigger function is suitable for use in the assoc GDB-ANNOTATION-RULES
-;; It adds an idle input for the command we are tracking. It should be the
-;; annotation rule binding of whatever gdb sends to tell us this command
-;; might have changed it's output.
-;;
-;; NAME is the fucntion name. DEMAND-PREDICATE tests if output is really needed.
-;; GDB-COMMAND is a string of such. OUTPUT-HANDLER is the function bound to the
-;; input in the input queue (see comment about ``gdb communications'' above).
-(defmacro def-gdb-auto-update-trigger (name demand-predicate gdb-command output-handler)
- (`
- (defun (, name) (instance &optional ignored)
- (if (and ((, demand-predicate) instance)
- (not (member '(, name)
- (gdb-instance-pending-triggers instance))))
- (progn
- (gdb-instance-enqueue-idle-input
- instance
- (list (, gdb-command) '(, output-handler)))
- (set-gdb-instance-pending-triggers
- instance
- (cons '(, name)
- (gdb-instance-pending-triggers instance))))))))
-
-(defmacro def-gdb-auto-update-handler (name trigger buf-key)
- (`
- (defun (, name) ()
- (set-gdb-instance-pending-triggers
- instance
- (delq '(, trigger)
- (gdb-instance-pending-triggers instance)))
- (let ((buf (gdb-get-instance-buffer instance
- '(, buf-key))))
- (and buf
- (save-excursion
- (set-buffer buf)
- (let ((p (point))
- (buffer-read-only nil))
- (delete-region (point-min) (point-max))
- (insert-buffer (gdb-get-create-instance-buffer
- instance
- 'gdb-partial-output-buffer))
- (goto-char p))))))))
-
-(defmacro def-gdb-auto-updated-buffer
- (buffer-key trigger-name gdb-command output-handler-name)
- (`
- (progn
- (def-gdb-auto-update-trigger (, trigger-name)
- ;; The demand predicate:
- (lambda (instance)
- (gdb-get-instance-buffer instance '(, buffer-key)))
- (, gdb-command)
- (, output-handler-name))
- (def-gdb-auto-update-handler (, output-handler-name)
- (, trigger-name) (, buffer-key)))))
-
-
-
-;;
-;; Breakpoint buffers
-;;
-;; These display the output of `info breakpoints'.
-;;
-
-
-(gdb-set-instance-buffer-rules 'gdb-breakpoints-buffer
- 'gdb-breakpoints-buffer-name
- 'gud-breakpoints-mode)
-
-(def-gdb-auto-updated-buffer gdb-breakpoints-buffer
- ;; This defines the auto update rule for buffers of type
- ;; `gdb-breakpoints-buffer'.
- ;;
- ;; It defines a function to serve as the annotation handler that
- ;; handles the `foo-invalidated' message. That function is called:
- gdb-invalidate-breakpoints
-
- ;; To update the buffer, this command is sent to gdb.
- "server info breakpoints\n"
-
- ;; This also defines a function to be the handler for the output
- ;; from the command above. That function will copy the output into
- ;; the appropriately typed buffer. That function will be called:
- gdb-info-breakpoints-handler)
-
-(defun gdb-breakpoints-buffer-name (instance)
- (save-excursion
- (set-buffer (process-buffer (gdb-instance-process instance)))
- (concat "*breakpoints of " (gdb-instance-target-string instance) "*")))
-
-(defun gud-display-breakpoints-buffer (instance)
- (interactive (list (gdb-needed-default-instance)))
- (gud-display-buffer
- (gdb-get-create-instance-buffer instance
- 'gdb-breakpoints-buffer)))
-
-(defun gud-frame-breakpoints-buffer (instance)
- (interactive (list (gdb-needed-default-instance)))
- (gud-frame-buffer
- (gdb-get-create-instance-buffer instance
- 'gdb-breakpoints-buffer)))
-
-(defvar gud-breakpoints-mode-map nil)
-(setq gud-breakpoints-mode-map (make-keymap))
-(suppress-keymap gud-breakpoints-mode-map)
-(define-key gud-breakpoints-mode-map " " 'gud-toggle-bp-this-line)
-(define-key gud-breakpoints-mode-map "d" 'gud-delete-bp-this-line)
-
-(defun gud-breakpoints-mode ()
- "Major mode for gud breakpoints.
-
-\\{gud-breakpoints-mode-map}"
- (setq major-mode 'gud-breakpoints-mode)
- (setq mode-name "Breakpoints")
- (use-local-map gud-breakpoints-mode-map)
- (setq buffer-read-only t)
- (gdb-invalidate-breakpoints gdb-buffer-instance))
-
-(defun gud-toggle-bp-this-line ()
- (interactive)
- (save-excursion
- (beginning-of-line 1)
- (if (not (looking-at "\\([0-9]*\\)\\s-*\\S-*\\s-*\\S-*\\s-*\\(.\\)"))
- (error "Not recognized as breakpoint line (demo foo).")
- (gdb-instance-enqueue-idle-input
- gdb-buffer-instance
- (list
- (concat
- (if (eq ?y (char-after (match-beginning 2)))
- "server disable "
- "server enable ")
- (buffer-substring (match-beginning 0)
- (match-end 1))
- "\n")
- '(lambda () nil)))
- )))
-
-(defun gud-delete-bp-this-line ()
- (interactive)
- (save-excursion
- (beginning-of-line 1)
- (if (not (looking-at "\\([0-9]*\\)\\s-*\\S-*\\s-*\\S-*\\s-*\\(.\\)"))
- (error "Not recognized as breakpoint line (demo foo).")
- (gdb-instance-enqueue-idle-input
- gdb-buffer-instance
- (list
- (concat
- "server delete "
- (buffer-substring (match-beginning 0)
- (match-end 1))
- "\n")
- '(lambda () nil)))
- )))
-
-
-
-
-;;
-;; Frames buffers. These display a perpetually correct bactracktrace
-;; (from the command `where').
-;;
-;; Alas, if your stack is deep, they are costly.
-;;
-
-(gdb-set-instance-buffer-rules 'gdb-stack-buffer
- 'gdb-stack-buffer-name
- 'gud-frames-mode)
-
-(def-gdb-auto-updated-buffer gdb-stack-buffer
- gdb-invalidate-frames
- "server where\n"
- gdb-info-frames-handler)
-
-(defun gdb-stack-buffer-name (instance)
- (save-excursion
- (set-buffer (process-buffer (gdb-instance-process instance)))
- (concat "*stack frames of "
- (gdb-instance-target-string instance) "*")))
-
-(defun gud-display-stack-buffer (instance)
- (interactive (list (gdb-needed-default-instance)))
- (gud-display-buffer
- (gdb-get-create-instance-buffer instance
- 'gdb-stack-buffer)))
-
-(defun gud-frame-stack-buffer (instance)
- (interactive (list (gdb-needed-default-instance)))
- (gud-frame-buffer
- (gdb-get-create-instance-buffer instance
- 'gdb-stack-buffer)))
-
-(defvar gud-frames-mode-map nil)
-(setq gud-frames-mode-map (make-keymap))
-(suppress-keymap gud-frames-mode-map)
-(define-key gud-frames-mode-map [mouse-2]
- 'gud-frames-select-by-mouse)
-
-(defun gud-frames-mode ()
- "Major mode for gud frames.
-
-\\{gud-frames-mode-map}"
- (setq major-mode 'gud-frames-mode)
- (setq mode-name "Frames")
- (setq buffer-read-only t)
- (use-local-map gud-frames-mode-map)
- (gdb-invalidate-frames gdb-buffer-instance))
-
-(defun gud-get-frame-number ()
- (save-excursion
- (let* ((pos (re-search-backward "^#\\([0-9]*\\)" nil t))
- (n (or (and pos
- (string-to-int
- (buffer-substring (match-beginning 1)
- (match-end 1))))
- 0)))
- n)))
-
-(defun gud-frames-select-by-mouse (e)
- (interactive "e")
- (let (selection)
- (save-excursion
- (set-buffer (window-buffer (posn-window (event-end e))))
- (save-excursion
- (goto-char (posn-point (event-end e)))
- (setq selection (gud-get-frame-number))))
- (select-window (posn-window (event-end e)))
- (save-excursion
- (set-buffer (gdb-get-instance-buffer (gdb-needed-default-instance) 'gud))
- (gud-call "fr %p" selection)
- (gud-display-frame))))
-
-
-;;
-;; Registers buffers
-;;
-
-(def-gdb-auto-updated-buffer gdb-registers-buffer
- gdb-invalidate-registers
- "server info registers\n"
- gdb-info-registers-handler)
-
-(gdb-set-instance-buffer-rules 'gdb-registers-buffer
- 'gdb-registers-buffer-name
- 'gud-registers-mode)
-
-(defvar gud-registers-mode-map nil)
-(setq gud-registers-mode-map (make-keymap))
-(suppress-keymap gud-registers-mode-map)
-
-(defun gud-registers-mode ()
- "Major mode for gud registers.
-
-\\{gud-registers-mode-map}"
- (setq major-mode 'gud-registers-mode)
- (setq mode-name "Registers")
- (setq buffer-read-only t)
- (use-local-map gud-registers-mode-map)
- (gdb-invalidate-registers gdb-buffer-instance))
-
-(defun gdb-registers-buffer-name (instance)
- (save-excursion
- (set-buffer (process-buffer (gdb-instance-process instance)))
- (concat "*registers of " (gdb-instance-target-string instance) "*")))
-
-(defun gud-display-registers-buffer (instance)
- (interactive (list (gdb-needed-default-instance)))
- (gud-display-buffer
- (gdb-get-create-instance-buffer instance
- 'gdb-registers-buffer)))
-
-(defun gud-frame-registers-buffer (instance)
- (interactive (list (gdb-needed-default-instance)))
- (gud-frame-buffer
- (gdb-get-create-instance-buffer instance
- 'gdb-registers-buffer)))
-
-
-
-;;;; Menu windows:
-
-
-;; MENU-LIST is ((option option option...) (option option ...)...)
-;;
-(defun gud-display-menu (menu-list)
- (setq fill-column (min 120 (- (window-width)
- (min 8 (window-width)))))
- (while menu-list
- (mapcar (function (lambda (x) (insert (symbol-name x) " "))) (car menu-list))
- (fill-paragraph nil)
- (insert "\n\n")
- (setq menu-list (cdr menu-list)))
- (goto-char (point-min))
- (while (re-search-forward "\\([^ \n]+\\)\\(\n\\| \\)" nil t)
- (put-text-property (match-beginning 1) (match-end 1)
- 'mouse-face 'highlight))
- (goto-char (point-min)))
-
-(defun gud-goto-menu (menu)
- (setq gud-menu-position menu)
- (let ((buffer-read-only nil))
- (delete-region (point-min) (point-max))
- (gud-display-menu menu)))
-
-(defun gud-menu-pick (event)
- "Choose an item from a gdb command menu."
- (interactive "e")
- (let (choice)
- (save-excursion
- (set-buffer (window-buffer (posn-window (event-start event))))
- (goto-char (posn-point (event-start event)))
- (let (beg end)
- (skip-chars-forward "^ \t\n")
- (setq end (point))
- (skip-chars-backward "^ \t\n")
- (setq beg (point))
- (setq choice (buffer-substring beg end))
- (message choice)
- (gud-invoke-menu (intern choice))))))
-
-(defun gud-invoke-menu (symbol)
- (let ((meaning (assoc symbol gud-menu-rules)))
- (cond
- ((and (consp meaning)
- (consp (car (cdr meaning))))
- (gud-goto-menu (car (cdr meaning))))
- (meaning (call-interactively (car (cdr meaning)))))))
-
-
-
-(gdb-set-instance-buffer-rules 'gdb-command-buffer
- 'gdb-command-buffer-name
- 'gud-command-mode)
-
-(defvar gud-command-mode-map nil)
-(setq gud-command-mode-map (make-keymap))
-(suppress-keymap gud-command-mode-map)
-(define-key gud-command-mode-map [mouse-2] 'gud-menu-pick)
-
-(defun gud-command-mode ()
- "Major mode for gud menu.
-
-\\{gud-command-mode-map}" (interactive) (setq major-mode 'gud-command-mode)
- (setq mode-name "Menu") (setq buffer-read-only t) (use-local-map
- gud-command-mode-map) (make-variable-buffer-local 'gud-menu-position)
- (if (not gud-menu-position) (gud-goto-menu gud-running-menu)))
-
-(defun gdb-command-buffer-name (instance)
- (save-excursion
- (set-buffer (process-buffer (gdb-instance-process instance)))
- (concat "*menu of " (gdb-instance-target-string instance) "*")))
-
-(defun gud-display-command-buffer (instance)
- (interactive (list (gdb-needed-default-instance)))
- (gud-display-buffer
- (gdb-get-create-instance-buffer instance
- 'gdb-command-buffer)
- 6))
-
-(defun gud-frame-command-buffer (instance)
- (interactive (list (gdb-needed-default-instance)))
- (gud-frame-buffer
- (gdb-get-create-instance-buffer instance
- 'gdb-command-buffer)))
-
-(defvar gud-selected-menu-titles ())
-(setq gud-selected-menu-titles
- '(RUNNING STACK DATA BREAKPOINTS FILES))
-
-(setq gud-running-menu
- (list
- '(RUNNING stack breakpoints files)
- '(target run next step continue finish stepi kill help-running)))
-
-(setq gud-stack-menu
- (list
- '(running STACK breakpoints files)
- '(up down frame backtrace return help-stack)))
-
-(setq gud-data-menu
- (list
- '(running stack DATA breakpoints files)
- '(whatis ptype print set display undisplay disassemble help-data)))
-
-(setq gud-breakpoints-menu
- (list
- '(running stack BREAKPOINTS files)
- '(awatch rwatch watch break delete enable disable condition ignore help-breakpoints)))
-
-(setq gud-files-menu
- (list
- '(running stack breakpoints FILES)
- '(file core-file help-files)
- '(exec-file load symbol-file add-symbol-file sharedlibrary)))
-
-(setq gud-menu-rules
- (list
- (list 'running gud-running-menu)
- (list 'RUNNING gud-running-menu)
- (list 'stack gud-stack-menu)
- (list 'STACK gud-stack-menu)
- (list 'data gud-data-menu)
- (list 'DATA gud-data-menu)
- (list 'breakpoints gud-breakpoints-menu)
- (list 'BREAKPOINTS gud-breakpoints-menu)
- (list 'files gud-files-menu)
- (list 'FILES gud-files-menu)
-
- (list 'target 'gud-target)
- (list 'kill 'gud-kill)
- (list 'stepi 'gud-stepi)
- (list 'step 'gud-step)
- (list 'next 'gud-next)
- (list 'finish 'gud-finish)
- (list 'continue 'gud-cont)
- (list 'run 'gud-run)
-
- (list 'backtrace 'gud-backtrace)
- (list 'frame 'gud-frame)
- (list 'down 'gud-down)
- (list 'up 'gud-up)
- (list 'return 'gud-return)
-
- (list 'file 'gud-file)
- (list 'core-file 'gud-core-file)
- (list 'cd 'gud-cd)
-
- (list 'exec-file 'gud-exec-file)
- (list 'load 'gud-load)
- (list 'symbol-file 'gud-symbol-file)
- (list 'add-symbol-file 'gud-add-symbol-file)
- (list 'sharedlibrary 'gud-sharedlibrary)
- ))
-
-
-
-
-(defun gdb-call-showing-gud (instance command)
- (gud-display-gud-buffer instance)
- (comint-input-sender (gdb-instance-process instance) command))
-
-(defvar gud-target-history ())
-
-(defun gud-temp-buffer-show (buf)
- (let ((ow (selected-window)))
- (unwind-protect
- (progn
- (pop-to-buffer buf)
-
- ;; This insertion works around a bug in emacs.
- ;; The bug is that all the empty space after a
- ;; highlighted word that terminates a buffer
- ;; gets highlighted. That's really ugly, so
- ;; make sure a highlighted word can't ever
- ;; terminate the buffer.
- (goto-char (point-max))
- (insert "\n")
- (goto-char (point-min))
-
- (if (< (window-height) 10)
- (enlarge-window (- 10 (window-height)))))
- (select-window ow))))
-
-(defun gud-target (instance command)
- (interactive
- (let* ((instance (gdb-needed-default-instance))
- (temp-buffer-show-function (function gud-temp-buffer-show))
- (target-name (completing-read (format "Target type: ")
- '(("remote")
- ("core")
- ("child")
- ("exec"))
- nil
- t
- nil
- 'gud-target-history)))
- (list instance
- (cond
- ((equal target-name "child") "run")
-
- ((equal target-name "core")
- (concat "target core "
- (read-file-name "core file: "
- nil
- "core"
- t)))
-
- ((equal target-name "exec")
- (concat "target exec "
- (read-file-name "exec file: "
- nil
- "a.out"
- t)))
-
- ((equal target-name "remote")
- (concat "target remote "
- (read-file-name "serial line for remote: "
- "/dev/"
- "ttya"
- t)))
-
- (t "echo No such target command!")))))
-
- (gud-display-gud-buffer instance)
- (apply comint-input-sender
- (list (gdb-instance-process instance) command)))
-
-(defun gud-backtrace ()
- (interactive)
- (let ((instance (gdb-needed-default-instance)))
- (gud-display-gud-buffer instance)
- (apply comint-input-sender
- (list (gdb-instance-process instance)
- "backtrace"))))
-
-(defun gud-frame ()
- (interactive)
- (let ((instance (gdb-needed-default-instance)))
- (apply comint-input-sender
- (list (gdb-instance-process instance)
- "frame"))))
-
-(defun gud-return (instance command)
- (interactive
- (let ((temp-buffer-show-function (function gud-temp-buffer-show)))
- (list (gdb-needed-default-instance)
- (concat "return " (read-string "Expression to return: ")))))
- (gud-display-gud-buffer instance)
- (apply comint-input-sender
- (list (gdb-instance-process instance) command)))
-
-
-(defun gud-file (instance command)
- (interactive
- (let ((temp-buffer-show-function (function gud-temp-buffer-show)))
- (list (gdb-needed-default-instance)
- (concat "file " (read-file-name "Executable to debug: "
- nil
- "a.out"
- t)))))
- (gud-display-gud-buffer instance)
- (apply comint-input-sender
- (list (gdb-instance-process instance) command)))
-
-(defun gud-core-file (instance command)
- (interactive
- (let ((temp-buffer-show-function (function gud-temp-buffer-show)))
- (list (gdb-needed-default-instance)
- (concat "core " (read-file-name "Core file to debug: "
- nil
- "core-file"
- t)))))
- (gud-display-gud-buffer instance)
- (apply comint-input-sender
- (list (gdb-instance-process instance) command)))
-
-(defun gud-cd (dir)
- (interactive "FChange GDB's default directory: ")
- (let ((instance (gdb-needed-default-instance)))
- (save-excursion
- (set-buffer (gdb-get-instance-buffer instance 'gud))
- (cd dir))
- (gud-display-gud-buffer instance)
- (apply comint-input-sender
- (list (gdb-instance-process instance)
- (concat "cd " dir)))))
-
-
-(defun gud-exec-file (instance command)
- (interactive
- (let ((temp-buffer-show-function (function gud-temp-buffer-show)))
- (list (gdb-needed-default-instance)
- (concat "exec-file " (read-file-name "Init memory from executable: "
- nil
- "a.out"
- t)))))
- (gud-display-gud-buffer instance)
- (apply comint-input-sender
- (list (gdb-instance-process instance) command)))
-
-(defun gud-load (instance command)
- (interactive
- (let ((temp-buffer-show-function (function gud-temp-buffer-show)))
- (list (gdb-needed-default-instance)
- (concat "load " (read-file-name "Dynamicly load from file: "
- nil
- "a.out"
- t)))))
- (gud-display-gud-buffer instance)
- (apply comint-input-sender
- (list (gdb-instance-process instance) command)))
-
-(defun gud-symbol-file (instance command)
- (interactive
- (let ((temp-buffer-show-function (function gud-temp-buffer-show)))
- (list (gdb-needed-default-instance)
- (concat "symbol-file " (read-file-name "Read symbol table from file: "
- nil
- "a.out"
- t)))))
- (gud-display-gud-buffer instance)
- (apply comint-input-sender
- (list (gdb-instance-process instance) command)))
-
-
-(defun gud-add-symbol-file (instance command)
- (interactive
- (let ((temp-buffer-show-function (function gud-temp-buffer-show)))
- (list (gdb-needed-default-instance)
- (concat "add-symbol-file "
- (read-file-name "Add symbols from file: "
- nil
- "a.out"
- t)))))
- (gud-display-gud-buffer instance)
- (apply comint-input-sender
- (list (gdb-instance-process instance) command)))
-
-
-(defun gud-sharedlibrary (instance command)
- (interactive
- (let ((temp-buffer-show-function (function gud-temp-buffer-show)))
- (list (gdb-needed-default-instance)
- (concat "sharedlibrary "
- (read-string "Load symbols for files matching regexp: ")))))
- (gud-display-gud-buffer instance)
- (apply comint-input-sender
- (list (gdb-instance-process instance) command)))
-
-
-
-
-
-;;;; Window management
-
-
-;;; FIXME: This should only return true for buffers in the current instance
-(defun gud-protected-buffer-p (buffer)
- "Is BUFFER a buffer which we want to leave displayed?"
- (save-excursion
- (set-buffer buffer)
- (or gdb-buffer-type
- overlay-arrow-position)))
-
-;;; The way we abuse the dedicated-p flag is pretty gross, but seems
-;;; to do the right thing. Seeing as there is no way for Lisp code to
-;;; get at the use_time field of a window, I'm not sure there exists a
-;;; more elegant solution without writing C code.
-
-(defun gud-display-buffer (buf &optional size)
- (let ((must-split nil)
- (answer nil))
- (unwind-protect
- (progn
- (walk-windows
- '(lambda (win)
- (if (gud-protected-buffer-p (window-buffer win))
- (set-window-dedicated-p win t))))
- (setq answer (get-buffer-window buf))
- (if (not answer)
- (let ((window (get-lru-window)))
- (if window
- (progn
- (set-window-buffer window buf)
- (setq answer window))
- (setq must-split t)))))
- (walk-windows
- '(lambda (win)
- (if (gud-protected-buffer-p (window-buffer win))
- (set-window-dedicated-p win nil)))))
- (if must-split
- (let* ((largest (get-largest-window))
- (cur-size (window-height largest))
- (new-size (and size (< size cur-size) (- cur-size size))))
- (setq answer (split-window largest new-size))
- (set-window-buffer answer buf)))
- answer))
-
-(defun existing-source-window (buffer)
- (catch 'found
- (save-excursion
- (walk-windows
- (function
- (lambda (win)
- (if (and overlay-arrow-position
- (eq (window-buffer win)
- (marker-buffer overlay-arrow-position)))
- (progn
- (set-window-buffer win buffer)
- (throw 'found win))))))
- nil)))
-
-(defun gud-display-source-buffer (buffer)
- (or (existing-source-window buffer)
- (gud-display-buffer buffer)))
-
-(defun gud-frame-buffer (buf)
- (save-excursion
- (set-buffer buf)
- (make-frame)))
-
-
-
-;;; Shared keymap initialization:
-
-(defun make-windows-menu (map)
- (define-key map [menu-bar displays]
- (cons "GDB-Windows" (make-sparse-keymap "GDB-Windows")))
- (define-key map [menu-bar displays gdb]
- '("Gdb" . gud-display-gud-buffer))
- (define-key map [menu-bar displays registers]
- '("Registers" . gud-display-registers-buffer))
- (define-key map [menu-bar displays frames]
- '("Stack" . gud-display-stack-buffer))
- (define-key map [menu-bar displays breakpoints]
- '("Breakpoints" . gud-display-breakpoints-buffer))
- (define-key map [menu-bar displays commands]
- '("Commands" . gud-display-command-buffer)))
-
-(defun gud-display-gud-buffer (instance)
- (interactive (list (gdb-needed-default-instance)))
- (gud-display-buffer
- (gdb-get-create-instance-buffer instance 'gud)))
-
-(make-windows-menu gud-breakpoints-mode-map)
-(make-windows-menu gud-frames-mode-map)
-(make-windows-menu gud-registers-mode-map)
-
-
-
-(defun make-frames-menu (map)
- (define-key map [menu-bar frames]
- (cons "GDB-Frames" (make-sparse-keymap "GDB-Frames")))
- (define-key map [menu-bar frames gdb]
- '("Gdb" . gud-frame-gud-buffer))
- (define-key map [menu-bar frames registers]
- '("Registers" . gud-frame-registers-buffer))
- (define-key map [menu-bar frames frames]
- '("Stack" . gud-frame-stack-buffer))
- (define-key map [menu-bar frames breakpoints]
- '("Breakpoints" . gud-frame-breakpoints-buffer))
- (define-key map [menu-bar displays commands]
- '("Commands" . gud-display-command-buffer)))
-
-(defun gud-frame-gud-buffer (instance)
- (interactive (list (gdb-needed-default-instance)))
- (gud-frame-buffer
- (gdb-get-create-instance-buffer instance 'gud)))
-
-(make-frames-menu gud-breakpoints-mode-map)
-(make-frames-menu gud-frames-mode-map)
-(make-frames-menu gud-registers-mode-map)
-
-
-(defun gud-gdb-find-file (f)
- (find-file-noselect f))
-
-;;;###autoload
-(defun gdb (command-line)
- "Run gdb on program FILE in buffer *gud-FILE*.
-The directory containing FILE becomes the initial working directory
-and source-file directory for your debugger."
- (interactive
- (list (read-from-minibuffer "Run gdb (like this): "
- (if (consp gud-gdb-history)
- (car gud-gdb-history)
- "gdb ")
- nil nil
- '(gud-gdb-history . 1))))
- (gud-overload-functions
- '((gud-massage-args . gud-gdb-massage-args)
- (gud-marker-filter . gud-gdb-marker-filter)
- (gud-find-file . gud-gdb-find-file)
- ))
-
- (let* ((words (gud-chop-words command-line))
- (program (car words))
- (file-word (let ((w (cdr words)))
- (while (and w (= ?- (aref (car w) 0)))
- (setq w (cdr w)))
- (car w)))
- (args (delq file-word (cdr words)))
- (file (expand-file-name file-word))
- (filepart (file-name-nondirectory file))
- (buffer-name (concat "*gud-" filepart "*")))
- (setq gdb-first-time (not (get-buffer-process buffer-name))))
-
- (gud-common-init command-line)
-
- (gud-def gud-break "break %f:%l" "\C-b" "Set breakpoint at current line.")
- (gud-def gud-tbreak "tbreak %f:%l" "\C-t" "Set breakpoint at current line.")
- (gud-def gud-remove "clear %l" "\C-d" "Remove breakpoint at current line")
- (gud-def gud-kill "kill" nil "Kill the program.")
- (gud-def gud-run "run" nil "Run the program.")
- (gud-def gud-stepi "stepi %p" "\C-i" "Step one instruction with display.")
- (gud-def gud-step "step %p" "\C-s" "Step one source line with display.")
- (gud-def gud-next "next %p" "\C-n" "Step one line (skip functions).")
- (gud-def gud-finish "finish" "\C-f" "Finish executing current function.")
- (gud-def gud-cont "cont" "\C-r" "Continue with display.")
- (gud-def gud-up "up %p" "<" "Up N stack frames (numeric arg).")
- (gud-def gud-down "down %p" ">" "Down N stack frames (numeric arg).")
- (gud-def gud-print "print %e" "\C-p" "Evaluate C expression at point.")
-
- (setq comint-prompt-regexp "^(.*gdb[+]?) *")
- (setq comint-input-sender 'gdb-send)
- (run-hooks 'gdb-mode-hook)
- (let ((instance
- (make-gdb-instance (get-buffer-process (current-buffer)))
- ))
- (if gdb-first-time (gdb-clear-inferior-io instance)))
- )
-
-
-;; ======================================================================
-;; sdb functions
-
-;;; History of argument lists passed to sdb.
-(defvar gud-sdb-history nil)
-
-(defvar gud-sdb-needs-tags (not (file-exists-p "/var"))
- "If nil, we're on a System V Release 4 and don't need the tags hack.")
-
-(defvar gud-sdb-lastfile nil)
-
-(defun gud-sdb-massage-args (file args)
- (cons file args))
-
-(defun gud-sdb-marker-filter (string)
- (cond
- ;; System V Release 3.2 uses this format
- ((string-match "\\(^0x\\w* in \\|^\\|\n\\)\\([^:\n]*\\):\\([0-9]*\\):.*\n"
- string)
- (setq gud-last-frame
- (cons
- (substring string (match-beginning 2) (match-end 2))
- (string-to-int
- (substring string (match-beginning 3) (match-end 3))))))
- ;; System V Release 4.0
- ((string-match "^\\(BREAKPOINT\\|STEPPED\\) process [0-9]+ function [^ ]+ in \\(.+\\)\n"
- string)
- (setq gud-sdb-lastfile
- (substring string (match-beginning 2) (match-end 2))))
- ((and gud-sdb-lastfile (string-match "^\\([0-9]+\\):" string))
- (setq gud-last-frame
- (cons
- gud-sdb-lastfile
- (string-to-int
- (substring string (match-beginning 1) (match-end 1))))))
- (t
- (setq gud-sdb-lastfile nil)))
- string)
-
-(defun gud-sdb-find-file (f)
- (if gud-sdb-needs-tags
- (find-tag-noselect f)
- (find-file-noselect f)))
-
-;;;###autoload
-(defun sdb (command-line)
- "Run sdb on program FILE in buffer *gud-FILE*.
-The directory containing FILE becomes the initial working directory
-and source-file directory for your debugger."
- (interactive
- (list (read-from-minibuffer "Run sdb (like this): "
- (if (consp gud-sdb-history)
- (car gud-sdb-history)
- "sdb ")
- nil nil
- '(gud-sdb-history . 1))))
- (if (and gud-sdb-needs-tags
- (not (and (boundp 'tags-file-name) (file-exists-p tags-file-name))))
- (error "The sdb support requires a valid tags table to work."))
- (gud-overload-functions '((gud-massage-args . gud-sdb-massage-args)
- (gud-marker-filter . gud-sdb-marker-filter)
- (gud-find-file . gud-sdb-find-file)
- ))
-
- (gud-common-init command-line)
-
- (gud-def gud-break "%l b" "\C-b" "Set breakpoint at current line.")
- (gud-def gud-tbreak "%l c" "\C-t" "Set temporary breakpoint at current line.")
- (gud-def gud-remove "%l d" "\C-d" "Remove breakpoint at current line")
- (gud-def gud-step "s %p" "\C-s" "Step one source line with display.")
- (gud-def gud-stepi "i %p" "\C-i" "Step one instruction with display.")
- (gud-def gud-next "S %p" "\C-n" "Step one line (skip functions).")
- (gud-def gud-cont "c" "\C-r" "Continue with display.")
- (gud-def gud-print "%e/" "\C-p" "Evaluate C expression at point.")
-
- (setq comint-prompt-regexp "\\(^\\|\n\\)\\*")
- (run-hooks 'sdb-mode-hook)
- )
-
-;; ======================================================================
-;; dbx functions
-
-;;; History of argument lists passed to dbx.
-(defvar gud-dbx-history nil)
-
-(defun gud-dbx-massage-args (file args)
- (cons file args))
-
-(defun gud-dbx-marker-filter (string)
- (if (or (string-match
- "stopped in .* at line \\([0-9]*\\) in file \"\\([^\"]*\\)\""
- string)
- (string-match
- "signal .* in .* at line \\([0-9]*\\) in file \"\\([^\"]*\\)\""
- string))
- (setq gud-last-frame
- (cons
- (substring string (match-beginning 2) (match-end 2))
- (string-to-int
- (substring string (match-beginning 1) (match-end 1))))))
- string)
-
-(defun gud-dbx-find-file (f)
- (find-file-noselect f))
-
-;;;###autoload
-(defun dbx (command-line)
- "Run dbx on program FILE in buffer *gud-FILE*.
-The directory containing FILE becomes the initial working directory
-and source-file directory for your debugger."
- (interactive
- (list (read-from-minibuffer "Run dbx (like this): "
- (if (consp gud-dbx-history)
- (car gud-dbx-history)
- "dbx ")
- nil nil
- '(gud-dbx-history . 1))))
- (gud-overload-functions '((gud-massage-args . gud-dbx-massage-args)
- (gud-marker-filter . gud-dbx-marker-filter)
- (gud-find-file . gud-dbx-find-file)
- ))
-
- (gud-common-init command-line)
-
- (gud-def gud-break "file \"%d%f\"\nstop at %l"
- "\C-b" "Set breakpoint at current line.")
-;; (gud-def gud-break "stop at \"%f\":%l"
-;; "\C-b" "Set breakpoint at current line.")
- (gud-def gud-remove "clear %l" "\C-d" "Remove breakpoint at current line")
- (gud-def gud-step "step %p" "\C-s" "Step one line with display.")
- (gud-def gud-stepi "stepi %p" "\C-i" "Step one instruction with display.")
- (gud-def gud-next "next %p" "\C-n" "Step one line (skip functions).")
- (gud-def gud-cont "cont" "\C-r" "Continue with display.")
- (gud-def gud-up "up %p" "<" "Up (numeric arg) stack frames.")
- (gud-def gud-down "down %p" ">" "Down (numeric arg) stack frames.")
- (gud-def gud-print "print %e" "\C-p" "Evaluate C expression at point.")
-
- (setq comint-prompt-regexp "^[^)]*dbx) *")
- (run-hooks 'dbx-mode-hook)
- )
-
-;; ======================================================================
-;; xdb (HP PARISC debugger) functions
-
-;;; History of argument lists passed to xdb.
-(defvar gud-xdb-history nil)
-
-(defvar gud-xdb-directories nil
- "*A list of directories that xdb should search for source code.
-If nil, only source files in the program directory
-will be known to xdb.
-
-The file names should be absolute, or relative to the directory
-containing the executable being debugged.")
-
-(defun gud-xdb-massage-args (file args)
- (nconc (let ((directories gud-xdb-directories)
- (result nil))
- (while directories
- (setq result (cons (car directories) (cons "-d" result)))
- (setq directories (cdr directories)))
- (nreverse (cons file result)))
- args))
-
-(defun gud-xdb-file-name (f)
- "Transform a relative pathname to a full pathname in xdb mode"
- (let ((result nil))
- (if (file-exists-p f)
- (setq result (expand-file-name f))
- (let ((directories gud-xdb-directories))
- (while directories
- (let ((path (concat (car directories) "/" f)))
- (if (file-exists-p path)
- (setq result (expand-file-name path)
- directories nil)))
- (setq directories (cdr directories)))))
- result))
-
-;; xdb does not print the lines all at once, so we have to accumulate them
-(defvar gud-xdb-accumulation "")
-
-(defun gud-xdb-marker-filter (string)
- (let (result)
- (if (or (string-match comint-prompt-regexp string)
- (string-match ".*\012" string))
- (setq result (concat gud-xdb-accumulation string)
- gud-xdb-accumulation "")
- (setq gud-xdb-accumulation (concat gud-xdb-accumulation string)))
- (if result
- (if (or (string-match "\\([^\n \t:]+\\): [^:]+: \\([0-9]+\\):" result)
- (string-match "[^: \t]+:[ \t]+\\([^:]+\\): [^:]+: \\([0-9]+\\):"
- result))
- (let ((line (string-to-int
- (substring result (match-beginning 2) (match-end 2))))
- (file (gud-xdb-file-name
- (substring result (match-beginning 1) (match-end 1)))))
- (if file
- (setq gud-last-frame (cons file line))))))
- (or result "")))
-
-(defun gud-xdb-find-file (f)
- (let ((realf (gud-xdb-file-name f)))
- (if realf (find-file-noselect realf))))
-
-;;;###autoload
-(defun xdb (command-line)
- "Run xdb on program FILE in buffer *gud-FILE*.
-The directory containing FILE becomes the initial working directory
-and source-file directory for your debugger.
-
-You can set the variable 'gud-xdb-directories' to a list of program source
-directories if your program contains sources from more than one directory."
- (interactive
- (list (read-from-minibuffer "Run xdb (like this): "
- (if (consp gud-xdb-history)
- (car gud-xdb-history)
- "xdb ")
- nil nil
- '(gud-xdb-history . 1))))
- (gud-overload-functions '((gud-massage-args . gud-xdb-massage-args)
- (gud-marker-filter . gud-xdb-marker-filter)
- (gud-find-file . gud-xdb-find-file)))
-
- (gud-common-init command-line)
-
- (gud-def gud-break "b %f:%l" "\C-b" "Set breakpoint at current line.")
- (gud-def gud-tbreak "b %f:%l\\t" "\C-t"
- "Set temporary breakpoint at current line.")
- (gud-def gud-remove "db" "\C-d" "Remove breakpoint at current line")
- (gud-def gud-step "s %p" "\C-s" "Step one line with display.")
- (gud-def gud-next "S %p" "\C-n" "Step one line (skip functions).")
- (gud-def gud-cont "c" "\C-r" "Continue with display.")
- (gud-def gud-up "up %p" "<" "Up (numeric arg) stack frames.")
- (gud-def gud-down "down %p" ">" "Down (numeric arg) stack frames.")
- (gud-def gud-finish "bu\\t" "\C-f" "Finish executing current function.")
- (gud-def gud-print "p %e" "\C-p" "Evaluate C expression at point.")
-
- (setq comint-prompt-regexp "^>")
- (make-local-variable 'gud-xdb-accumulation)
- (setq gud-xdb-accumulation "")
- (run-hooks 'xdb-mode-hook))
-
-;; ======================================================================
-;; perldb functions
-
-;;; History of argument lists passed to perldb.
-(defvar gud-perldb-history nil)
-
-(defun gud-perldb-massage-args (file args)
- (cons "-d" (cons file (cons "-emacs" args))))
-
-;; There's no guarantee that Emacs will hand the filter the entire
-;; marker at once; it could be broken up across several strings. We
-;; might even receive a big chunk with several markers in it. If we
-;; receive a chunk of text which looks like it might contain the
-;; beginning of a marker, we save it here between calls to the
-;; filter.
-(defvar gud-perldb-marker-acc "")
-
-(defun gud-perldb-marker-filter (string)
- (save-match-data
- (setq gud-perldb-marker-acc (concat gud-perldb-marker-acc string))
- (let ((output ""))
-
- ;; Process all the complete markers in this chunk.
- (while (string-match "^\032\032\\([^:\n]*\\):\\([0-9]*\\):.*\n"
- gud-perldb-marker-acc)
- (setq
-
- ;; Extract the frame position from the marker.
- gud-last-frame
- (cons (substring gud-perldb-marker-acc (match-beginning 1) (match-end 1))
- (string-to-int (substring gud-perldb-marker-acc
- (match-beginning 2)
- (match-end 2))))
-
- ;; Append any text before the marker to the output we're going
- ;; to return - we don't include the marker in this text.
- output (concat output
- (substring gud-perldb-marker-acc 0 (match-beginning 0)))
-
- ;; Set the accumulator to the remaining text.
- gud-perldb-marker-acc (substring gud-perldb-marker-acc (match-end 0))))
-
- ;; Does the remaining text look like it might end with the
- ;; beginning of another marker? If it does, then keep it in
- ;; gud-perldb-marker-acc until we receive the rest of it. Since we
- ;; know the full marker regexp above failed, it's pretty simple to
- ;; test for marker starts.
- (if (string-match "^\032.*\\'" gud-perldb-marker-acc)
- (progn
- ;; Everything before the potential marker start can be output.
- (setq output (concat output (substring gud-perldb-marker-acc
- 0 (match-beginning 0))))
-
- ;; Everything after, we save, to combine with later input.
- (setq gud-perldb-marker-acc
- (substring gud-perldb-marker-acc (match-beginning 0))))
-
- (setq output (concat output gud-perldb-marker-acc)
- gud-perldb-marker-acc ""))
-
- output)))
-
-(defun gud-perldb-find-file (f)
- (find-file-noselect f))
-
-;;;###autoload
-(defun perldb (command-line)
- "Run perldb on program FILE in buffer *gud-FILE*.
-The directory containing FILE becomes the initial working directory
-and source-file directory for your debugger."
- (interactive
- (list (read-from-minibuffer "Run perldb (like this): "
- (if (consp gud-perldb-history)
- (car gud-perldb-history)
- "perl ")
- nil nil
- '(gud-perldb-history . 1))))
- (gud-overload-functions '((gud-massage-args . gud-perldb-massage-args)
- (gud-marker-filter . gud-perldb-marker-filter)
- (gud-find-file . gud-perldb-find-file)
- ))
-
- (gud-common-init command-line)
-
- (gud-def gud-break "b %l" "\C-b" "Set breakpoint at current line.")
- (gud-def gud-remove "d %l" "\C-d" "Remove breakpoint at current line")
- (gud-def gud-step "s" "\C-s" "Step one source line with display.")
- (gud-def gud-next "n" "\C-n" "Step one line (skip functions).")
- (gud-def gud-cont "c" "\C-r" "Continue with display.")
-; (gud-def gud-finish "finish" "\C-f" "Finish executing current function.")
-; (gud-def gud-up "up %p" "<" "Up N stack frames (numeric arg).")
-; (gud-def gud-down "down %p" ">" "Down N stack frames (numeric arg).")
- (gud-def gud-print "%e" "\C-p" "Evaluate perl expression at point.")
-
- (setq comint-prompt-regexp "^ DB<[0-9]+> ")
- (run-hooks 'perldb-mode-hook)
- )
-
-;;
-;; End of debugger-specific information
-;;
-
-
-;;; When we send a command to the debugger via gud-call, it's annoying
-;;; to see the command and the new prompt inserted into the debugger's
-;;; buffer; we have other ways of knowing the command has completed.
-;;;
-;;; If the buffer looks like this:
-;;; --------------------
-;;; (gdb) set args foo bar
-;;; (gdb) -!-
-;;; --------------------
-;;; (the -!- marks the location of point), and we type `C-x SPC' in a
-;;; source file to set a breakpoint, we want the buffer to end up like
-;;; this:
-;;; --------------------
-;;; (gdb) set args foo bar
-;;; Breakpoint 1 at 0x92: file make-docfile.c, line 49.
-;;; (gdb) -!-
-;;; --------------------
-;;; Essentially, the old prompt is deleted, and the command's output
-;;; and the new prompt take its place.
-;;;
-;;; Not echoing the command is easy enough; you send it directly using
-;;; comint-input-sender, and it never enters the buffer. However,
-;;; getting rid of the old prompt is trickier; you don't want to do it
-;;; when you send the command, since that will result in an annoying
-;;; flicker as the prompt is deleted, redisplay occurs while Emacs
-;;; waits for a response from the debugger, and the new prompt is
-;;; inserted. Instead, we'll wait until we actually get some output
-;;; from the subprocess before we delete the prompt. If the command
-;;; produced no output other than a new prompt, that prompt will most
-;;; likely be in the first chunk of output received, so we will delete
-;;; the prompt and then replace it with an identical one. If the
-;;; command produces output, the prompt is moving anyway, so the
-;;; flicker won't be annoying.
-;;;
-;;; So - when we want to delete the prompt upon receipt of the next
-;;; chunk of debugger output, we position gud-delete-prompt-marker at
-;;; the start of the prompt; the process filter will notice this, and
-;;; delete all text between it and the process output marker. If
-;;; gud-delete-prompt-marker points nowhere, we leave the current
-;;; prompt alone.
-(defvar gud-delete-prompt-marker nil)
-
-
-(defvar gdbish-comint-mode-map (copy-keymap comint-mode-map))
-(define-key gdbish-comint-mode-map "\C-c\M-\C-r" 'gud-display-registers-buffer)
-(define-key gdbish-comint-mode-map "\C-c\M-\C-f" 'gud-display-stack-buffer)
-(define-key gdbish-comint-mode-map "\C-c\M-\C-b" 'gud-display-breakpoints-buffer)
-
-(make-windows-menu gdbish-comint-mode-map)
-(make-frames-menu gdbish-comint-mode-map)
-
-(defun gud-mode ()
- "Major mode for interacting with an inferior debugger process.
-
- You start it up with one of the commands M-x gdb, M-x sdb, M-x dbx,
-or M-x xdb. Each entry point finishes by executing a hook; `gdb-mode-hook',
-`sdb-mode-hook', `dbx-mode-hook' or `xdb-mode-hook' respectively.
-
-After startup, the following commands are available in both the GUD
-interaction buffer and any source buffer GUD visits due to a breakpoint stop
-or step operation:
-
-\\[gud-break] sets a breakpoint at the current file and line. In the
-GUD buffer, the current file and line are those of the last breakpoint or
-step. In a source buffer, they are the buffer's file and current line.
-
-\\[gud-remove] removes breakpoints on the current file and line.
-
-\\[gud-refresh] displays in the source window the last line referred to
-in the gud buffer.
-
-\\[gud-step], \\[gud-next], and \\[gud-stepi] do a step-one-line,
-step-one-line (not entering function calls), and step-one-instruction
-and then update the source window with the current file and position.
-\\[gud-cont] continues execution.
-
-\\[gud-print] tries to find the largest C lvalue or function-call expression
-around point, and sends it to the debugger for value display.
-
-The above commands are common to all supported debuggers except xdb which
-does not support stepping instructions.
-
-Under gdb, sdb and xdb, \\[gud-tbreak] behaves exactly like \\[gud-break],
-except that the breakpoint is temporary; that is, it is removed when
-execution stops on it.
-
-Under gdb, dbx, and xdb, \\[gud-up] pops up through an enclosing stack
-frame. \\[gud-down] drops back down through one.
-
-If you are using gdb or xdb, \\[gud-finish] runs execution to the return from
-the current function and stops.
-
-All the keystrokes above are accessible in the GUD buffer
-with the prefix C-c, and in all buffers through the prefix C-x C-a.
-
-All pre-defined functions for which the concept make sense repeat
-themselves the appropriate number of times if you give a prefix
-argument.
-
-You may use the `gud-def' macro in the initialization hook to define other
-commands.
-
-Other commands for interacting with the debugger process are inherited from
-comint mode, which see."
- (interactive)
- (comint-mode)
- (setq major-mode 'gud-mode)
- (setq mode-name "Debugger")
- (setq mode-line-process '(": %s"))
- (use-local-map (copy-keymap gdbish-comint-mode-map))
- (setq gud-last-frame nil)
- (make-local-variable 'comint-prompt-regexp)
- (make-local-variable 'gud-delete-prompt-marker)
- (setq gud-delete-prompt-marker (make-marker))
- (run-hooks 'gud-mode-hook)
-)
-
-(defvar gud-comint-buffer nil)
-
-;; Chop STRING into words separated by SPC or TAB and return a list of them.
-(defun gud-chop-words (string)
- (let ((i 0) (beg 0)
- (len (length string))
- (words nil))
- (while (< i len)
- (if (memq (aref string i) '(?\t ? ))
- (progn
- (setq words (cons (substring string beg i) words)
- beg (1+ i))
- (while (and (< beg len) (memq (aref string beg) '(?\t ? )))
- (setq beg (1+ beg)))
- (setq i (1+ beg)))
- (setq i (1+ i))))
- (if (< beg len)
- (setq words (cons (substring string beg) words)))
- (nreverse words)))
-
-(defvar gud-target-name "--unknown--"
- "The apparent name of the program being debugged in a gud buffer.
-For sure this the root string used in smashing together the gud
-buffer's name, even if that doesn't happen to be the name of a
-program.")
-
-;; Perform initializations common to all debuggers.
-(defun gud-common-init (command-line)
- (let* ((words (gud-chop-words command-line))
- (program (car words))
- (file-word (let ((w (cdr words)))
- (while (and w (= ?- (aref (car w) 0)))
- (setq w (cdr w)))
- (car w)))
- (args (delq file-word (cdr words)))
- (file (expand-file-name file-word))
- (filepart (file-name-nondirectory file))
- (buffer-name (concat "*gud-" filepart "*")))
- (switch-to-buffer buffer-name)
- (setq default-directory (file-name-directory file))
- (or (bolp) (newline))
- (insert "Current directory is " default-directory "\n")
- (let ((old-instance gdb-buffer-instance))
- (apply 'make-comint (concat "gud-" filepart) program nil
- (gud-massage-args file args))
- (gud-mode)
- (make-variable-buffer-local 'old-gdb-buffer-instance)
- (setq old-gdb-buffer-instance old-instance))
- (make-variable-buffer-local 'gud-target-name)
- (setq gud-target-name filepart))
- (set-process-filter (get-buffer-process (current-buffer)) 'gud-filter)
- (set-process-sentinel (get-buffer-process (current-buffer)) 'gud-sentinel)
- (gud-set-buffer)
- )
-
-(defun gud-set-buffer ()
- (cond ((eq major-mode 'gud-mode)
- (setq gud-comint-buffer (current-buffer)))))
-
-;; These functions are responsible for inserting output from your debugger
-;; into the buffer. The hard work is done by the method that is
-;; the value of gud-marker-filter.
-
-(defun gud-filter (proc string)
- ;; Here's where the actual buffer insertion is done
- (let ((inhibit-quit t))
- (save-excursion
- (set-buffer (process-buffer proc))
- (let (moving output-after-point)
- (save-excursion
- (goto-char (process-mark proc))
- ;; If we have been so requested, delete the debugger prompt.
- (if (marker-buffer gud-delete-prompt-marker)
- (progn
- (delete-region (point) gud-delete-prompt-marker)
- (set-marker gud-delete-prompt-marker nil)))
- (insert-before-markers (gud-marker-filter string))
- (setq moving (= (point) (process-mark proc)))
- (setq output-after-point (< (point) (process-mark proc)))
- ;; Check for a filename-and-line number.
- ;; Don't display the specified file
- ;; unless (1) point is at or after the position where output appears
- ;; and (2) this buffer is on the screen.
- (if (and gud-last-frame
- (not output-after-point)
- (get-buffer-window (current-buffer)))
- (gud-display-frame)))
- (if moving (goto-char (process-mark proc)))))))
-
-(defun gud-proc-died (proc)
- ;; Stop displaying an arrow in a source file.
- (setq overlay-arrow-position nil)
-
- ;; Kill the dummy process, so that C-x C-c won't worry about it.
- (save-excursion
- (set-buffer (process-buffer proc))
- (kill-process
- (get-buffer-process
- (gdb-get-instance-buffer gdb-buffer-instance 'gdb-inferior-io))))
- )
-
-(defun gud-sentinel (proc msg)
- (cond ((null (buffer-name (process-buffer proc)))
- ;; buffer killed
- (gud-proc-died proc)
- (set-process-buffer proc nil))
- ((memq (process-status proc) '(signal exit))
- (gud-proc-died proc)
-
- ;; Fix the mode line.
- (setq mode-line-process
- (concat ": "
- (symbol-name (process-status proc))))
- (let* ((obuf (current-buffer)))
- ;; save-excursion isn't the right thing if
- ;; process-buffer is current-buffer
- (unwind-protect
- (progn
- ;; Write something in *compilation* and hack its mode line,
- (set-buffer (process-buffer proc))
- ;; Force mode line redisplay soon
- (set-buffer-modified-p (buffer-modified-p))
- (if (eobp)
- (insert ?\n mode-name " " msg)
- (save-excursion
- (goto-char (point-max))
- (insert ?\n mode-name " " msg)))
- ;; If buffer and mode line will show that the process
- ;; is dead, we can delete it now. Otherwise it
- ;; will stay around until M-x list-processes.
- (delete-process proc))
- ;; Restore old buffer, but don't restore old point
- ;; if obuf is the gud buffer.
- (set-buffer obuf))))))
-
-(defun gud-display-frame ()
- "Find and obey the last filename-and-line marker from the debugger.
-Obeying it means displaying in another window the specified file and line."
- (interactive)
- (if gud-last-frame
- (progn
-; (gud-set-buffer)
- (gud-display-line (car gud-last-frame) (cdr gud-last-frame))
- (setq gud-last-last-frame gud-last-frame
- gud-last-frame nil))))
-
-;; Make sure the file named TRUE-FILE is in a buffer that appears on the screen
-;; and that its line LINE is visible.
-;; Put the overlay-arrow on the line LINE in that buffer.
-;; Most of the trickiness in here comes from wanting to preserve the current
-;; region-restriction if that's possible. We use an explicit display-buffer
-;; to get around the fact that this is called inside a save-excursion.
-
-(defun gud-display-line (true-file line)
- (let* ((buffer (gud-find-file true-file))
- (window (gud-display-source-buffer buffer))
- (pos))
- (if (not window)
- (error "foo bar baz"))
-;;; (if (equal buffer (current-buffer))
-;;; nil
-;;; (setq buffer-read-only nil))
- (save-excursion
-;;; (setq buffer-read-only t)
- (set-buffer buffer)
- (save-restriction
- (widen)
- (goto-line line)
- (setq pos (point))
- (setq overlay-arrow-string "=>")
- (or overlay-arrow-position
- (setq overlay-arrow-position (make-marker)))
- (set-marker overlay-arrow-position (point) (current-buffer)))
- (cond ((or (< pos (point-min)) (> pos (point-max)))
- (widen)
- (goto-char pos))))
- (set-window-point window overlay-arrow-position)))
-
-;;; The gud-call function must do the right thing whether its invoking
-;;; keystroke is from the GUD buffer itself (via major-mode binding)
-;;; or a C buffer. In the former case, we want to supply data from
-;;; gud-last-frame. Here's how we do it:
-
-(defun gud-format-command (str arg)
- (let ((insource (not (eq (current-buffer) gud-comint-buffer))))
- (if (string-match "\\(.*\\)%f\\(.*\\)" str)
- (setq str (concat
- (substring str (match-beginning 1) (match-end 1))
- (file-name-nondirectory (if insource
- (buffer-file-name)
- (car gud-last-frame)))
- (substring str (match-beginning 2) (match-end 2)))))
- (if (string-match "\\(.*\\)%d\\(.*\\)" str)
- (setq str (concat
- (substring str (match-beginning 1) (match-end 1))
- (file-name-directory (if insource
- (buffer-file-name)
- (car gud-last-frame)))
- (substring str (match-beginning 2) (match-end 2)))))
- (if (string-match "\\(.*\\)%l\\(.*\\)" str)
- (setq str (concat
- (substring str (match-beginning 1) (match-end 1))
- (if insource
- (save-excursion
- (beginning-of-line)
- (save-restriction (widen)
- (1+ (count-lines 1 (point)))))
- (cdr gud-last-frame))
- (substring str (match-beginning 2) (match-end 2)))))
- (if (string-match "\\(.*\\)%e\\(.*\\)" str)
- (setq str (concat
- (substring str (match-beginning 1) (match-end 1))
- (find-c-expr)
- (substring str (match-beginning 2) (match-end 2)))))
- (if (string-match "\\(.*\\)%a\\(.*\\)" str)
- (setq str (concat
- (substring str (match-beginning 1) (match-end 1))
- (gud-read-address)
- (substring str (match-beginning 2) (match-end 2)))))
- (if (string-match "\\(.*\\)%p\\(.*\\)" str)
- (setq str (concat
- (substring str (match-beginning 1) (match-end 1))
- (if arg (int-to-string arg) "")
- (substring str (match-beginning 2) (match-end 2)))))
- )
- str
- )
-
-(defun gud-read-address ()
- "Return a string containing the core-address found in the buffer at point."
- (save-excursion
- (let ((pt (point)) found begin)
- (setq found (if (search-backward "0x" (- pt 7) t) (point)))
- (cond
- (found (forward-char 2)
- (buffer-substring found
- (progn (re-search-forward "[^0-9a-f]")
- (forward-char -1)
- (point))))
- (t (setq begin (progn (re-search-backward "[^0-9]")
- (forward-char 1)
- (point)))
- (forward-char 1)
- (re-search-forward "[^0-9]")
- (forward-char -1)
- (buffer-substring begin (point)))))))
-
-(defun gud-call (fmt &optional arg)
- (let ((msg (gud-format-command fmt arg)))
- (message "Command: %s" msg)
- (sit-for 0)
- (gud-basic-call msg)))
-
-(defun gud-basic-call (command)
- "Invoke the debugger COMMAND displaying source in other window."
- (interactive)
- (gud-set-buffer)
- (let ((proc (get-buffer-process gud-comint-buffer)))
-
- ;; Arrange for the current prompt to get deleted.
- (save-excursion
- (set-buffer gud-comint-buffer)
- (goto-char (process-mark proc))
- (beginning-of-line)
- (if (looking-at comint-prompt-regexp)
- (set-marker gud-delete-prompt-marker (point)))
- (apply comint-input-sender (list proc command)))))
-
-(defun gud-refresh (&optional arg)
- "Fix up a possibly garbled display, and redraw the arrow."
- (interactive "P")
- (recenter arg)
- (or gud-last-frame (setq gud-last-frame gud-last-last-frame))
- (gud-display-frame))
-
-;;; Code for parsing expressions out of C code. The single entry point is
-;;; find-c-expr, which tries to return an lvalue expression from around point.
-;;;
-;;; The rest of this file is a hacked version of gdbsrc.el by
-;;; Debby Ayers <ayers@asc.slb.com>,
-;;; Rich Schaefer <schaefer@asc.slb.com> Schlumberger, Austin, Tx.
-
-(defun find-c-expr ()
- "Returns the C expr that surrounds point."
- (interactive)
- (save-excursion
- (let ((p) (expr) (test-expr))
- (setq p (point))
- (setq expr (expr-cur))
- (setq test-expr (expr-prev))
- (while (expr-compound test-expr expr)
- (setq expr (cons (car test-expr) (cdr expr)))
- (goto-char (car expr))
- (setq test-expr (expr-prev)))
- (goto-char p)
- (setq test-expr (expr-next))
- (while (expr-compound expr test-expr)
- (setq expr (cons (car expr) (cdr test-expr)))
- (setq test-expr (expr-next))
- )
- (buffer-substring (car expr) (cdr expr)))))
-
-(defun expr-cur ()
- "Returns the expr that point is in; point is set to beginning of expr.
-The expr is represented as a cons cell, where the car specifies the point in
-the current buffer that marks the beginning of the expr and the cdr specifies
-the character after the end of the expr."
- (let ((p (point)) (begin) (end))
- (expr-backward-sexp)
- (setq begin (point))
- (expr-forward-sexp)
- (setq end (point))
- (if (>= p end)
- (progn
- (setq begin p)
- (goto-char p)
- (expr-forward-sexp)
- (setq end (point))
- )
- )
- (goto-char begin)
- (cons begin end)))
-
-(defun expr-backward-sexp ()
- "Version of `backward-sexp' that catches errors."
- (condition-case nil
- (backward-sexp)
- (error t)))
-
-(defun expr-forward-sexp ()
- "Version of `forward-sexp' that catches errors."
- (condition-case nil
- (forward-sexp)
- (error t)))
-
-(defun expr-prev ()
- "Returns the previous expr, point is set to beginning of that expr.
-The expr is represented as a cons cell, where the car specifies the point in
-the current buffer that marks the beginning of the expr and the cdr specifies
-the character after the end of the expr"
- (let ((begin) (end))
- (expr-backward-sexp)
- (setq begin (point))
- (expr-forward-sexp)
- (setq end (point))
- (goto-char begin)
- (cons begin end)))
-
-(defun expr-next ()
- "Returns the following expr, point is set to beginning of that expr.
-The expr is represented as a cons cell, where the car specifies the point in
-the current buffer that marks the beginning of the expr and the cdr specifies
-the character after the end of the expr."
- (let ((begin) (end))
- (expr-forward-sexp)
- (expr-forward-sexp)
- (setq end (point))
- (expr-backward-sexp)
- (setq begin (point))
- (cons begin end)))
-
-(defun expr-compound-sep (span-start span-end)
- "Returns '.' for '->' & '.', returns ' ' for white space,
-returns '?' for other punctuation."
- (let ((result ? )
- (syntax))
- (while (< span-start span-end)
- (setq syntax (char-syntax (char-after span-start)))
- (cond
- ((= syntax ? ) t)
- ((= syntax ?.) (setq syntax (char-after span-start))
- (cond
- ((= syntax ?.) (setq result ?.))
- ((and (= syntax ?-) (= (char-after (+ span-start 1)) ?>))
- (setq result ?.)
- (setq span-start (+ span-start 1)))
- (t (setq span-start span-end)
- (setq result ??)))))
- (setq span-start (+ span-start 1)))
- result))
-
-(defun expr-compound (first second)
- "Non-nil if concatenating FIRST and SECOND makes a single C token.
-The two exprs are represented as a cons cells, where the car
-specifies the point in the current buffer that marks the beginning of the
-expr and the cdr specifies the character after the end of the expr.
-Link exprs of the form:
- Expr -> Expr
- Expr . Expr
- Expr (Expr)
- Expr [Expr]
- (Expr) Expr
- [Expr] Expr"
- (let ((span-start (cdr first))
- (span-end (car second))
- (syntax))
- (setq syntax (expr-compound-sep span-start span-end))
- (cond
- ((= (car first) (car second)) nil)
- ((= (cdr first) (cdr second)) nil)
- ((= syntax ?.) t)
- ((= syntax ? )
- (setq span-start (char-after (- span-start 1)))
- (setq span-end (char-after span-end))
- (cond
- ((= span-start ?) ) t )
- ((= span-start ?] ) t )
- ((= span-end ?( ) t )
- ((= span-end ?[ ) t )
- (t nil))
- )
- (t nil))))
-
-(provide 'gud)
-
-;;; gud.el ends here
diff --git a/contrib/gdb/gdb/gdbserver/low-linux.c b/contrib/gdb/gdb/gdbserver/low-linux.c
deleted file mode 100644
index 1060210..0000000
--- a/contrib/gdb/gdb/gdbserver/low-linux.c
+++ /dev/null
@@ -1,451 +0,0 @@
-/* Low level interface to ptrace, for the remote server for GDB.
- Copyright (C) 1995, 1996 Free Software Foundation, Inc.
-
-This file is part of GDB.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#include "defs.h"
-#include <sys/wait.h>
-#include "frame.h"
-#include "inferior.h"
-
-#include <stdio.h>
-#include <sys/param.h>
-#include <sys/dir.h>
-#include <sys/user.h>
-#include <signal.h>
-#include <sys/ioctl.h>
-#if 0
-#include <sgtty.h>
-#endif
-#include <fcntl.h>
-
-/***************Begin MY defs*********************/
-int quit_flag = 0;
-char registers[REGISTER_BYTES];
-
-/* Index within `registers' of the first byte of the space for
- register N. */
-
-
-char buf2[MAX_REGISTER_RAW_SIZE];
-/***************End MY defs*********************/
-
-#include <sys/ptrace.h>
-
-#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1)
-#include <sys/reg.h>
-#endif
-
-extern char **environ;
-extern int errno;
-extern int inferior_pid;
-void quit (), perror_with_name ();
-int query ();
-
-/* Start an inferior process and returns its pid.
- ALLARGS is a vector of program-name and args.
- ENV is the environment vector to pass. */
-
-int
-create_inferior (program, allargs)
- char *program;
- char **allargs;
-{
- int pid;
-
- pid = fork ();
- if (pid < 0)
- perror_with_name ("fork");
-
- if (pid == 0)
- {
- ptrace (PTRACE_TRACEME, 0, 0, 0);
-
- execv (program, allargs);
-
- fprintf (stderr, "Cannot exec %s: %s.\n", program,
- errno < sys_nerr ? sys_errlist[errno] : "unknown error");
- fflush (stderr);
- _exit (0177);
- }
-
- return pid;
-}
-
-/* Kill the inferior process. Make us have no inferior. */
-
-void
-kill_inferior ()
-{
- if (inferior_pid == 0)
- return;
- ptrace (PTRACE_KILL, inferior_pid, 0, 0);
- wait (0);
- /*************inferior_died ();****VK**************/
-}
-
-/* Return nonzero if the given thread is still alive. */
-int
-mythread_alive (pid)
- int pid;
-{
- return 1;
-}
-
-/* Wait for process, returns status */
-
-unsigned char
-mywait (status)
- char *status;
-{
- int pid;
- union wait w;
-
- pid = wait (&w);
- if (pid != inferior_pid)
- perror_with_name ("wait");
-
- if (WIFEXITED (w))
- {
- fprintf (stderr, "\nChild exited with retcode = %x \n", WEXITSTATUS (w));
- *status = 'W';
- return ((unsigned char) WEXITSTATUS (w));
- }
- else if (!WIFSTOPPED (w))
- {
- fprintf (stderr, "\nChild terminated with signal = %x \n", WTERMSIG (w));
- *status = 'X';
- return ((unsigned char) WTERMSIG (w));
- }
-
- fetch_inferior_registers (0);
-
- *status = 'T';
- return ((unsigned char) WSTOPSIG (w));
-}
-
-/* Resume execution of the inferior process.
- If STEP is nonzero, single-step it.
- If SIGNAL is nonzero, give it that signal. */
-
-void
-myresume (step, signal)
- int step;
- int signal;
-{
- errno = 0;
- ptrace (step ? PTRACE_SINGLESTEP : PTRACE_CONT, inferior_pid, 1, signal);
- if (errno)
- perror_with_name ("ptrace");
-}
-
-
-#if !defined (offsetof)
-#define offsetof(TYPE, MEMBER) ((unsigned long) &((TYPE *)0)->MEMBER)
-#endif
-
-/* U_REGS_OFFSET is the offset of the registers within the u area. */
-#if !defined (U_REGS_OFFSET)
-#define U_REGS_OFFSET \
- ptrace (PT_READ_U, inferior_pid, \
- (PTRACE_ARG3_TYPE) (offsetof (struct user, u_ar0)), 0) \
- - KERNEL_U_ADDR
-#endif
-
-#ifndef TARGET_M68K
-/* this table must line up with REGISTER_NAMES in tm-i386v.h */
-/* symbols like 'EAX' come from <sys/reg.h> */
-static int regmap[] =
-{
- EAX, ECX, EDX, EBX,
- UESP, EBP, ESI, EDI,
- EIP, EFL, CS, SS,
- DS, ES, FS, GS,
-};
-
-int
-i386_register_u_addr (blockend, regnum)
- int blockend;
- int regnum;
-{
-#if 0
- /* this will be needed if fp registers are reinstated */
- /* for now, you can look at them with 'info float'
- * sys5 wont let you change them with ptrace anyway
- */
- if (regnum >= FP0_REGNUM && regnum <= FP7_REGNUM)
- {
- int ubase, fpstate;
- struct user u;
- ubase = blockend + 4 * (SS + 1) - KSTKSZ;
- fpstate = ubase + ((char *)&u.u_fpstate - (char *)&u);
- return (fpstate + 0x1c + 10 * (regnum - FP0_REGNUM));
- }
- else
-#endif
- return (blockend + 4 * regmap[regnum]);
-
-}
-#else /* TARGET_M68K */
-/* This table must line up with REGISTER_NAMES in tm-m68k.h */
-static int regmap[] =
-{
-#ifdef PT_D0
- PT_D0, PT_D1, PT_D2, PT_D3, PT_D4, PT_D5, PT_D6, PT_D7,
- PT_A0, PT_A1, PT_A2, PT_A3, PT_A4, PT_A5, PT_A6, PT_USP,
- PT_SR, PT_PC,
-#else
- 14, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15,
- 17, 18,
-#endif
-#ifdef PT_FP0
- PT_FP0, PT_FP1, PT_FP2, PT_FP3, PT_FP4, PT_FP5, PT_FP6, PT_FP7,
- PT_FPCR, PT_FPSR, PT_FPIAR
-#else
- 21, 24, 27, 30, 33, 36, 39, 42, 45, 46, 47
-#endif
-};
-
-/* BLOCKEND is the value of u.u_ar0, and points to the place where GS
- is stored. */
-
-int
-m68k_linux_register_u_addr (blockend, regnum)
- int blockend;
- int regnum;
-{
- return (blockend + 4 * regmap[regnum]);
-}
-#endif
-
-CORE_ADDR
-register_addr (regno, blockend)
- int regno;
- CORE_ADDR blockend;
-{
- CORE_ADDR addr;
-
- if (regno < 0 || regno >= ARCH_NUM_REGS)
- error ("Invalid register number %d.", regno);
-
- REGISTER_U_ADDR (addr, blockend, regno);
-
- return addr;
-}
-
-/* Fetch one register. */
-
-static void
-fetch_register (regno)
- int regno;
-{
- register unsigned int regaddr;
- register int i;
-
- /* Offset of registers within the u area. */
- unsigned int offset;
-
- offset = U_REGS_OFFSET;
-
- regaddr = register_addr (regno, offset);
- for (i = 0; i < REGISTER_RAW_SIZE (regno); i += sizeof (int))
- {
- errno = 0;
- *(int *) &registers[ regno * 4 + i] = ptrace (PTRACE_PEEKUSR, inferior_pid,
- (PTRACE_ARG3_TYPE) regaddr, 0);
- regaddr += sizeof (int);
- if (errno != 0)
- {
- /* Warning, not error, in case we are attached; sometimes the
- kernel doesn't let us at the registers. */
- char *err = strerror (errno);
- char *msg = alloca (strlen (err) + 128);
- sprintf (msg, "reading register %d: %s", regno, err);
- error (msg);
- goto error_exit;
- }
- }
- error_exit:;
-}
-
-/* Fetch all registers, or just one, from the child process. */
-
-void
-fetch_inferior_registers (regno)
- int regno;
-{
- if (regno == -1 || regno == 0)
- for (regno = 0; regno < NUM_REGS-NUM_FREGS; regno++)
- fetch_register (regno);
- else
- fetch_register (regno);
-}
-
-/* Store our register values back into the inferior.
- If REGNO is -1, do this for all registers.
- Otherwise, REGNO specifies which register (so we can save time). */
-
-void
-store_inferior_registers (regno)
- int regno;
-{
- register unsigned int regaddr;
- register int i;
- unsigned int offset = U_REGS_OFFSET;
-
- if (regno >= 0)
- {
-#if 0
- if (CANNOT_STORE_REGISTER (regno))
- return;
-#endif
- regaddr = register_addr (regno, offset);
- errno = 0;
-#if 0
- if (regno == PCOQ_HEAD_REGNUM || regno == PCOQ_TAIL_REGNUM)
- {
- scratch = *(int *) &registers[REGISTER_BYTE (regno)] | 0x3;
- ptrace (PT_WUREGS, inferior_pid, (PTRACE_ARG3_TYPE) regaddr,
- scratch, 0);
- if (errno != 0)
- {
- /* Error, even if attached. Failing to write these two
- registers is pretty serious. */
- sprintf (buf, "writing register number %d", regno);
- perror_with_name (buf);
- }
- }
- else
-#endif
- for (i = 0; i < REGISTER_RAW_SIZE (regno); i += sizeof(int))
- {
- errno = 0;
- ptrace (PTRACE_POKEUSR, inferior_pid, (PTRACE_ARG3_TYPE) regaddr,
- *(int *) &registers[REGISTER_BYTE (regno) + i]);
- if (errno != 0)
- {
- /* Warning, not error, in case we are attached; sometimes the
- kernel doesn't let us at the registers. */
- char *err = strerror (errno);
- char *msg = alloca (strlen (err) + 128);
- sprintf (msg, "writing register %d: %s",
- regno, err);
- error (msg);
- return;
- }
- regaddr += sizeof(int);
- }
- }
- else
- for (regno = 0; regno < NUM_REGS-NUM_FREGS; regno++)
- store_inferior_registers (regno);
-}
-
-/* NOTE! I tried using PTRACE_READDATA, etc., to read and write memory
- in the NEW_SUN_PTRACE case.
- It ought to be straightforward. But it appears that writing did
- not write the data that I specified. I cannot understand where
- it got the data that it actually did write. */
-
-/* Copy LEN bytes from inferior's memory starting at MEMADDR
- to debugger memory starting at MYADDR. */
-
-void
-read_inferior_memory (memaddr, myaddr, len)
- CORE_ADDR memaddr;
- char *myaddr;
- int len;
-{
- register int i;
- /* Round starting address down to longword boundary. */
- register CORE_ADDR addr = memaddr & -sizeof (int);
- /* Round ending address up; get number of longwords that makes. */
- register int count
- = (((memaddr + len) - addr) + sizeof (int) - 1) / sizeof (int);
- /* Allocate buffer of that many longwords. */
- register int *buffer = (int *) alloca (count * sizeof (int));
-
- /* Read all the longwords */
- for (i = 0; i < count; i++, addr += sizeof (int))
- {
- buffer[i] = ptrace (PTRACE_PEEKTEXT, inferior_pid, addr, 0);
- }
-
- /* Copy appropriate bytes out of the buffer. */
- memcpy (myaddr, (char *) buffer + (memaddr & (sizeof (int) - 1)), len);
-}
-
-/* Copy LEN bytes of data from debugger memory at MYADDR
- to inferior's memory at MEMADDR.
- On failure (cannot write the inferior)
- returns the value of errno. */
-
-int
-write_inferior_memory (memaddr, myaddr, len)
- CORE_ADDR memaddr;
- char *myaddr;
- int len;
-{
- register int i;
- /* Round starting address down to longword boundary. */
- register CORE_ADDR addr = memaddr & -sizeof (int);
- /* Round ending address up; get number of longwords that makes. */
- register int count
- = (((memaddr + len) - addr) + sizeof (int) - 1) / sizeof (int);
- /* Allocate buffer of that many longwords. */
- register int *buffer = (int *) alloca (count * sizeof (int));
- extern int errno;
-
- /* Fill start and end extra bytes of buffer with existing memory data. */
-
- buffer[0] = ptrace (PTRACE_PEEKTEXT, inferior_pid, addr, 0);
-
- if (count > 1)
- {
- buffer[count - 1]
- = ptrace (PTRACE_PEEKTEXT, inferior_pid,
- addr + (count - 1) * sizeof (int), 0);
- }
-
- /* Copy data to be written over corresponding part of buffer */
-
- memcpy ((char *) buffer + (memaddr & (sizeof (int) - 1)), myaddr, len);
-
- /* Write the entire buffer. */
-
- for (i = 0; i < count; i++, addr += sizeof (int))
- {
- errno = 0;
- ptrace (PTRACE_POKETEXT, inferior_pid, addr, buffer[i]);
- if (errno)
- return errno;
- }
-
- return 0;
-}
-
-void
-initialize ()
-{
- inferior_pid = 0;
-}
-
-int
-have_inferior_p ()
-{
- return inferior_pid != 0;
-}
diff --git a/contrib/gdb/gdb/gnu-regex.c b/contrib/gdb/gdb/gnu-regex.c
deleted file mode 100644
index 84db70f..0000000
--- a/contrib/gdb/gdb/gnu-regex.c
+++ /dev/null
@@ -1,5797 +0,0 @@
-/* Extended regular expression matching and search library,
- version 0.12.
- (Implements POSIX draft P1003.2/D11.2, except for some of the
- internationalization features.)
- Copyright (C) 1993, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
-
- NOTE: The canonical source of this file is maintained with the
- GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu.
-
- This program is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the
- Free Software Foundation; either version 2, or (at your option) any
- later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-/* AIX requires this to be the first thing in the file. */
-#if defined _AIX && !defined REGEX_MALLOC
- #pragma alloca
-#endif
-
-#undef _GNU_SOURCE
-#define _GNU_SOURCE
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#ifndef PARAMS
-# if defined __GNUC__ || (defined __STDC__ && __STDC__)
-# define PARAMS(args) args
-# else
-# define PARAMS(args) ()
-# endif /* GCC. */
-#endif /* Not PARAMS. */
-
-#if defined STDC_HEADERS && !defined emacs
-# include <stddef.h>
-#else
-/* We need this for `gnu-regex.h', and perhaps for the Emacs include files. */
-# include <sys/types.h>
-#endif
-
-/* For platform which support the ISO C amendement 1 functionality we
- support user defined character classes. */
-#if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H)
- /* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. */
-# include <wchar.h>
-# include <wctype.h>
-#endif
-
-/* This is for other GNU distributions with internationalized messages. */
-/* CYGNUS LOCAL: ../intl will handle this for us */
-#ifdef ENABLE_NLS
-# include <libintl.h>
-#else
-# define gettext(msgid) (msgid)
-#endif
-
-#ifndef gettext_noop
-/* This define is so xgettext can find the internationalizable
- strings. */
-# define gettext_noop(String) String
-#endif
-
-/* The `emacs' switch turns on certain matching commands
- that make sense only in Emacs. */
-#ifdef emacs
-
-# include "lisp.h"
-# include "buffer.h"
-# include "syntax.h"
-
-#else /* not emacs */
-
-/* If we are not linking with Emacs proper,
- we can't use the relocating allocator
- even if config.h says that we can. */
-# undef REL_ALLOC
-
-# if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-# else
-char *malloc ();
-char *realloc ();
-# endif
-
-/* When used in Emacs's lib-src, we need to get bzero and bcopy somehow.
- If nothing else has been done, use the method below. */
-# ifdef INHIBIT_STRING_HEADER
-# if !(defined HAVE_BZERO && defined HAVE_BCOPY)
-# if !defined bzero && !defined bcopy
-# undef INHIBIT_STRING_HEADER
-# endif
-# endif
-# endif
-
-/* This is the normal way of making sure we have a bcopy and a bzero.
- This is used in most programs--a few other programs avoid this
- by defining INHIBIT_STRING_HEADER. */
-# ifndef INHIBIT_STRING_HEADER
-# if defined HAVE_STRING_H || defined STDC_HEADERS || defined _LIBC
-# include <string.h>
-# ifndef bzero
-# ifndef _LIBC
-# define bzero(s, n) (memset (s, '\0', n), (s))
-# else
-# define bzero(s, n) __bzero (s, n)
-# endif
-# endif
-# else
-# include <strings.h>
-# ifndef memcmp
-# define memcmp(s1, s2, n) bcmp (s1, s2, n)
-# endif
-# ifndef memcpy
-# define memcpy(d, s, n) (bcopy (s, d, n), (d))
-# endif
-# endif
-# endif
-
-/* Define the syntax stuff for \<, \>, etc. */
-
-/* This must be nonzero for the wordchar and notwordchar pattern
- commands in re_match_2. */
-# ifndef Sword
-# define Sword 1
-# endif
-
-# ifdef SWITCH_ENUM_BUG
-# define SWITCH_ENUM_CAST(x) ((int)(x))
-# else
-# define SWITCH_ENUM_CAST(x) (x)
-# endif
-
-/* How many characters in the character set. */
-# define CHAR_SET_SIZE 256
-
-/* GDB LOCAL: define _REGEX_RE_COMP to get BSD style re_comp and re_exec */
-#ifndef _REGEX_RE_COMP
-#define _REGEX_RE_COMP
-#endif
-
-# ifdef SYNTAX_TABLE
-
-extern char *re_syntax_table;
-
-# else /* not SYNTAX_TABLE */
-
-static char re_syntax_table[CHAR_SET_SIZE];
-
-static void
-init_syntax_once ()
-{
- register int c;
- static int done = 0;
-
- if (done)
- return;
-
- bzero (re_syntax_table, sizeof re_syntax_table);
-
- for (c = 'a'; c <= 'z'; c++)
- re_syntax_table[c] = Sword;
-
- for (c = 'A'; c <= 'Z'; c++)
- re_syntax_table[c] = Sword;
-
- for (c = '0'; c <= '9'; c++)
- re_syntax_table[c] = Sword;
-
- re_syntax_table['_'] = Sword;
-
- done = 1;
-}
-
-# endif /* not SYNTAX_TABLE */
-
-# define SYNTAX(c) re_syntax_table[c]
-
-#endif /* not emacs */
-
-/* Get the interface, including the syntax bits. */
-/* CYGNUS LOCAL: call it gnu-regex.h, not regex.h, to avoid name conflicts */
-#include "gnu-regex.h"
-
-/* isalpha etc. are used for the character classes. */
-#include <ctype.h>
-
-/* Jim Meyering writes:
-
- "... Some ctype macros are valid only for character codes that
- isascii says are ASCII (SGI's IRIX-4.0.5 is one such system --when
- using /bin/cc or gcc but without giving an ansi option). So, all
- ctype uses should be through macros like ISPRINT... If
- STDC_HEADERS is defined, then autoconf has verified that the ctype
- macros don't need to be guarded with references to isascii. ...
- Defining isascii to 1 should let any compiler worth its salt
- eliminate the && through constant folding."
- Solaris defines some of these symbols so we must undefine them first. */
-
-#undef ISASCII
-#if defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII)
-# define ISASCII(c) 1
-#else
-# define ISASCII(c) isascii(c)
-#endif
-
-#ifdef isblank
-# define ISBLANK(c) (ISASCII (c) && isblank (c))
-#else
-# define ISBLANK(c) ((c) == ' ' || (c) == '\t')
-#endif
-#ifdef isgraph
-# define ISGRAPH(c) (ISASCII (c) && isgraph (c))
-#else
-# define ISGRAPH(c) (ISASCII (c) && isprint (c) && !isspace (c))
-#endif
-
-#undef ISPRINT
-#define ISPRINT(c) (ISASCII (c) && isprint (c))
-#define ISDIGIT(c) (ISASCII (c) && isdigit (c))
-#define ISALNUM(c) (ISASCII (c) && isalnum (c))
-#define ISALPHA(c) (ISASCII (c) && isalpha (c))
-#define ISCNTRL(c) (ISASCII (c) && iscntrl (c))
-#define ISLOWER(c) (ISASCII (c) && islower (c))
-#define ISPUNCT(c) (ISASCII (c) && ispunct (c))
-#define ISSPACE(c) (ISASCII (c) && isspace (c))
-#define ISUPPER(c) (ISASCII (c) && isupper (c))
-#define ISXDIGIT(c) (ISASCII (c) && isxdigit (c))
-
-#ifndef NULL
-# define NULL (void *)0
-#endif
-
-/* We remove any previous definition of `SIGN_EXTEND_CHAR',
- since ours (we hope) works properly with all combinations of
- machines, compilers, `char' and `unsigned char' argument types.
- (Per Bothner suggested the basic approach.) */
-#undef SIGN_EXTEND_CHAR
-#if __STDC__
-# define SIGN_EXTEND_CHAR(c) ((signed char) (c))
-#else /* not __STDC__ */
-/* As in Harbison and Steele. */
-# define SIGN_EXTEND_CHAR(c) ((((unsigned char) (c)) ^ 128) - 128)
-#endif
-
-/* Should we use malloc or alloca? If REGEX_MALLOC is not defined, we
- use `alloca' instead of `malloc'. This is because using malloc in
- re_search* or re_match* could cause memory leaks when C-g is used in
- Emacs; also, malloc is slower and causes storage fragmentation. On
- the other hand, malloc is more portable, and easier to debug.
-
- Because we sometimes use alloca, some routines have to be macros,
- not functions -- `alloca'-allocated space disappears at the end of the
- function it is called in. */
-
-#ifdef REGEX_MALLOC
-
-# define REGEX_ALLOCATE malloc
-# define REGEX_REALLOCATE(source, osize, nsize) realloc (source, nsize)
-# define REGEX_FREE free
-
-#else /* not REGEX_MALLOC */
-
-/* Emacs already defines alloca, sometimes. */
-# ifndef alloca
-
-/* Make alloca work the best possible way. */
-# ifdef __GNUC__
-# define alloca __builtin_alloca
-# else /* not __GNUC__ */
-# if HAVE_ALLOCA_H
-# include <alloca.h>
-# endif /* HAVE_ALLOCA_H */
-# endif /* not __GNUC__ */
-
-# endif /* not alloca */
-
-# define REGEX_ALLOCATE alloca
-
-/* Assumes a `char *destination' variable. */
-# define REGEX_REALLOCATE(source, osize, nsize) \
- (destination = (char *) alloca (nsize), \
- memcpy (destination, source, osize))
-
-/* No need to do anything to free, after alloca. */
-# define REGEX_FREE(arg) ((void)0) /* Do nothing! But inhibit gcc warning. */
-
-#endif /* not REGEX_MALLOC */
-
-/* Define how to allocate the failure stack. */
-
-#if defined REL_ALLOC && defined REGEX_MALLOC
-
-# define REGEX_ALLOCATE_STACK(size) \
- r_alloc (&failure_stack_ptr, (size))
-# define REGEX_REALLOCATE_STACK(source, osize, nsize) \
- r_re_alloc (&failure_stack_ptr, (nsize))
-# define REGEX_FREE_STACK(ptr) \
- r_alloc_free (&failure_stack_ptr)
-
-#else /* not using relocating allocator */
-
-# ifdef REGEX_MALLOC
-
-# define REGEX_ALLOCATE_STACK malloc
-# define REGEX_REALLOCATE_STACK(source, osize, nsize) realloc (source, nsize)
-# define REGEX_FREE_STACK free
-
-# else /* not REGEX_MALLOC */
-
-# define REGEX_ALLOCATE_STACK alloca
-
-# define REGEX_REALLOCATE_STACK(source, osize, nsize) \
- REGEX_REALLOCATE (source, osize, nsize)
-/* No need to explicitly free anything. */
-# define REGEX_FREE_STACK(arg)
-
-# endif /* not REGEX_MALLOC */
-#endif /* not using relocating allocator */
-
-
-/* True if `size1' is non-NULL and PTR is pointing anywhere inside
- `string1' or just past its end. This works if PTR is NULL, which is
- a good thing. */
-#define FIRST_STRING_P(ptr) \
- (size1 && string1 <= (ptr) && (ptr) <= string1 + size1)
-
-/* (Re)Allocate N items of type T using malloc, or fail. */
-#define TALLOC(n, t) ((t *) malloc ((n) * sizeof (t)))
-#define RETALLOC(addr, n, t) ((addr) = (t *) realloc (addr, (n) * sizeof (t)))
-#define RETALLOC_IF(addr, n, t) \
- if (addr) RETALLOC((addr), (n), t); else (addr) = TALLOC ((n), t)
-#define REGEX_TALLOC(n, t) ((t *) REGEX_ALLOCATE ((n) * sizeof (t)))
-
-#define BYTEWIDTH 8 /* In bits. */
-
-#define STREQ(s1, s2) ((strcmp (s1, s2) == 0))
-
-#undef MAX
-#undef MIN
-#define MAX(a, b) ((a) > (b) ? (a) : (b))
-#define MIN(a, b) ((a) < (b) ? (a) : (b))
-
-typedef char boolean;
-#define false 0
-#define true 1
-
-static int re_match_2_internal PARAMS ((struct re_pattern_buffer *bufp,
- const char *string1, int size1,
- const char *string2, int size2,
- int pos,
- struct re_registers *regs,
- int stop));
-
-/* These are the command codes that appear in compiled regular
- expressions. Some opcodes are followed by argument bytes. A
- command code can specify any interpretation whatsoever for its
- arguments. Zero bytes may appear in the compiled regular expression. */
-
-typedef enum
-{
- no_op = 0,
-
- /* Succeed right away--no more backtracking. */
- succeed,
-
- /* Followed by one byte giving n, then by n literal bytes. */
- exactn,
-
- /* Matches any (more or less) character. */
- anychar,
-
- /* Matches any one char belonging to specified set. First
- following byte is number of bitmap bytes. Then come bytes
- for a bitmap saying which chars are in. Bits in each byte
- are ordered low-bit-first. A character is in the set if its
- bit is 1. A character too large to have a bit in the map is
- automatically not in the set. */
- charset,
-
- /* Same parameters as charset, but match any character that is
- not one of those specified. */
- charset_not,
-
- /* Start remembering the text that is matched, for storing in a
- register. Followed by one byte with the register number, in
- the range 0 to one less than the pattern buffer's re_nsub
- field. Then followed by one byte with the number of groups
- inner to this one. (This last has to be part of the
- start_memory only because we need it in the on_failure_jump
- of re_match_2.) */
- start_memory,
-
- /* Stop remembering the text that is matched and store it in a
- memory register. Followed by one byte with the register
- number, in the range 0 to one less than `re_nsub' in the
- pattern buffer, and one byte with the number of inner groups,
- just like `start_memory'. (We need the number of inner
- groups here because we don't have any easy way of finding the
- corresponding start_memory when we're at a stop_memory.) */
- stop_memory,
-
- /* Match a duplicate of something remembered. Followed by one
- byte containing the register number. */
- duplicate,
-
- /* Fail unless at beginning of line. */
- begline,
-
- /* Fail unless at end of line. */
- endline,
-
- /* Succeeds if at beginning of buffer (if emacs) or at beginning
- of string to be matched (if not). */
- begbuf,
-
- /* Analogously, for end of buffer/string. */
- endbuf,
-
- /* Followed by two byte relative address to which to jump. */
- jump,
-
- /* Same as jump, but marks the end of an alternative. */
- jump_past_alt,
-
- /* Followed by two-byte relative address of place to resume at
- in case of failure. */
- on_failure_jump,
-
- /* Like on_failure_jump, but pushes a placeholder instead of the
- current string position when executed. */
- on_failure_keep_string_jump,
-
- /* Throw away latest failure point and then jump to following
- two-byte relative address. */
- pop_failure_jump,
-
- /* Change to pop_failure_jump if know won't have to backtrack to
- match; otherwise change to jump. This is used to jump
- back to the beginning of a repeat. If what follows this jump
- clearly won't match what the repeat does, such that we can be
- sure that there is no use backtracking out of repetitions
- already matched, then we change it to a pop_failure_jump.
- Followed by two-byte address. */
- maybe_pop_jump,
-
- /* Jump to following two-byte address, and push a dummy failure
- point. This failure point will be thrown away if an attempt
- is made to use it for a failure. A `+' construct makes this
- before the first repeat. Also used as an intermediary kind
- of jump when compiling an alternative. */
- dummy_failure_jump,
-
- /* Push a dummy failure point and continue. Used at the end of
- alternatives. */
- push_dummy_failure,
-
- /* Followed by two-byte relative address and two-byte number n.
- After matching N times, jump to the address upon failure. */
- succeed_n,
-
- /* Followed by two-byte relative address, and two-byte number n.
- Jump to the address N times, then fail. */
- jump_n,
-
- /* Set the following two-byte relative address to the
- subsequent two-byte number. The address *includes* the two
- bytes of number. */
- set_number_at,
-
- wordchar, /* Matches any word-constituent character. */
- notwordchar, /* Matches any char that is not a word-constituent. */
-
- wordbeg, /* Succeeds if at word beginning. */
- wordend, /* Succeeds if at word end. */
-
- wordbound, /* Succeeds if at a word boundary. */
- notwordbound /* Succeeds if not at a word boundary. */
-
-#ifdef emacs
- ,before_dot, /* Succeeds if before point. */
- at_dot, /* Succeeds if at point. */
- after_dot, /* Succeeds if after point. */
-
- /* Matches any character whose syntax is specified. Followed by
- a byte which contains a syntax code, e.g., Sword. */
- syntaxspec,
-
- /* Matches any character whose syntax is not that specified. */
- notsyntaxspec
-#endif /* emacs */
-} re_opcode_t;
-
-/* Common operations on the compiled pattern. */
-
-/* Store NUMBER in two contiguous bytes starting at DESTINATION. */
-
-#define STORE_NUMBER(destination, number) \
- do { \
- (destination)[0] = (number) & 0377; \
- (destination)[1] = (number) >> 8; \
- } while (0)
-
-/* Same as STORE_NUMBER, except increment DESTINATION to
- the byte after where the number is stored. Therefore, DESTINATION
- must be an lvalue. */
-
-#define STORE_NUMBER_AND_INCR(destination, number) \
- do { \
- STORE_NUMBER (destination, number); \
- (destination) += 2; \
- } while (0)
-
-/* Put into DESTINATION a number stored in two contiguous bytes starting
- at SOURCE. */
-
-#define EXTRACT_NUMBER(destination, source) \
- do { \
- (destination) = *(source) & 0377; \
- (destination) += SIGN_EXTEND_CHAR (*((source) + 1)) << 8; \
- } while (0)
-
-#ifdef DEBUG
-static void extract_number _RE_ARGS ((int *dest, unsigned char *source));
-static void
-extract_number (dest, source)
- int *dest;
- unsigned char *source;
-{
- int temp = SIGN_EXTEND_CHAR (*(source + 1));
- *dest = *source & 0377;
- *dest += temp << 8;
-}
-
-# ifndef EXTRACT_MACROS /* To debug the macros. */
-# undef EXTRACT_NUMBER
-# define EXTRACT_NUMBER(dest, src) extract_number (&dest, src)
-# endif /* not EXTRACT_MACROS */
-
-#endif /* DEBUG */
-
-/* Same as EXTRACT_NUMBER, except increment SOURCE to after the number.
- SOURCE must be an lvalue. */
-
-#define EXTRACT_NUMBER_AND_INCR(destination, source) \
- do { \
- EXTRACT_NUMBER (destination, source); \
- (source) += 2; \
- } while (0)
-
-#ifdef DEBUG
-static void extract_number_and_incr _RE_ARGS ((int *destination,
- unsigned char **source));
-static void
-extract_number_and_incr (destination, source)
- int *destination;
- unsigned char **source;
-{
- extract_number (destination, *source);
- *source += 2;
-}
-
-# ifndef EXTRACT_MACROS
-# undef EXTRACT_NUMBER_AND_INCR
-# define EXTRACT_NUMBER_AND_INCR(dest, src) \
- extract_number_and_incr (&dest, &src)
-# endif /* not EXTRACT_MACROS */
-
-#endif /* DEBUG */
-
-/* If DEBUG is defined, Regex prints many voluminous messages about what
- it is doing (if the variable `debug' is nonzero). If linked with the
- main program in `iregex.c', you can enter patterns and strings
- interactively. And if linked with the main program in `main.c' and
- the other test files, you can run the already-written tests. */
-
-#ifdef DEBUG
-
-/* We use standard I/O for debugging. */
-# include <stdio.h>
-
-/* It is useful to test things that ``must'' be true when debugging. */
-# include <assert.h>
-
-static int debug = 0;
-
-# define DEBUG_STATEMENT(e) e
-# define DEBUG_PRINT1(x) if (debug) printf (x)
-# define DEBUG_PRINT2(x1, x2) if (debug) printf (x1, x2)
-# define DEBUG_PRINT3(x1, x2, x3) if (debug) printf (x1, x2, x3)
-# define DEBUG_PRINT4(x1, x2, x3, x4) if (debug) printf (x1, x2, x3, x4)
-# define DEBUG_PRINT_COMPILED_PATTERN(p, s, e) \
- if (debug) print_partial_compiled_pattern (s, e)
-# define DEBUG_PRINT_DOUBLE_STRING(w, s1, sz1, s2, sz2) \
- if (debug) print_double_string (w, s1, sz1, s2, sz2)
-
-
-/* Print the fastmap in human-readable form. */
-
-void
-print_fastmap (fastmap)
- char *fastmap;
-{
- unsigned was_a_range = 0;
- unsigned i = 0;
-
- while (i < (1 << BYTEWIDTH))
- {
- if (fastmap[i++])
- {
- was_a_range = 0;
- putchar (i - 1);
- while (i < (1 << BYTEWIDTH) && fastmap[i])
- {
- was_a_range = 1;
- i++;
- }
- if (was_a_range)
- {
- printf ("-");
- putchar (i - 1);
- }
- }
- }
- putchar ('\n');
-}
-
-
-/* Print a compiled pattern string in human-readable form, starting at
- the START pointer into it and ending just before the pointer END. */
-
-void
-print_partial_compiled_pattern (start, end)
- unsigned char *start;
- unsigned char *end;
-{
- int mcnt, mcnt2;
- unsigned char *p1;
- unsigned char *p = start;
- unsigned char *pend = end;
-
- if (start == NULL)
- {
- printf ("(null)\n");
- return;
- }
-
- /* Loop over pattern commands. */
- while (p < pend)
- {
- printf ("%d:\t", p - start);
-
- switch ((re_opcode_t) *p++)
- {
- case no_op:
- printf ("/no_op");
- break;
-
- case exactn:
- mcnt = *p++;
- printf ("/exactn/%d", mcnt);
- do
- {
- putchar ('/');
- putchar (*p++);
- }
- while (--mcnt);
- break;
-
- case start_memory:
- mcnt = *p++;
- printf ("/start_memory/%d/%d", mcnt, *p++);
- break;
-
- case stop_memory:
- mcnt = *p++;
- printf ("/stop_memory/%d/%d", mcnt, *p++);
- break;
-
- case duplicate:
- printf ("/duplicate/%d", *p++);
- break;
-
- case anychar:
- printf ("/anychar");
- break;
-
- case charset:
- case charset_not:
- {
- register int c, last = -100;
- register int in_range = 0;
-
- printf ("/charset [%s",
- (re_opcode_t) *(p - 1) == charset_not ? "^" : "");
-
- assert (p + *p < pend);
-
- for (c = 0; c < 256; c++)
- if (c / 8 < *p
- && (p[1 + (c/8)] & (1 << (c % 8))))
- {
- /* Are we starting a range? */
- if (last + 1 == c && ! in_range)
- {
- putchar ('-');
- in_range = 1;
- }
- /* Have we broken a range? */
- else if (last + 1 != c && in_range)
- {
- putchar (last);
- in_range = 0;
- }
-
- if (! in_range)
- putchar (c);
-
- last = c;
- }
-
- if (in_range)
- putchar (last);
-
- putchar (']');
-
- p += 1 + *p;
- }
- break;
-
- case begline:
- printf ("/begline");
- break;
-
- case endline:
- printf ("/endline");
- break;
-
- case on_failure_jump:
- extract_number_and_incr (&mcnt, &p);
- printf ("/on_failure_jump to %d", p + mcnt - start);
- break;
-
- case on_failure_keep_string_jump:
- extract_number_and_incr (&mcnt, &p);
- printf ("/on_failure_keep_string_jump to %d", p + mcnt - start);
- break;
-
- case dummy_failure_jump:
- extract_number_and_incr (&mcnt, &p);
- printf ("/dummy_failure_jump to %d", p + mcnt - start);
- break;
-
- case push_dummy_failure:
- printf ("/push_dummy_failure");
- break;
-
- case maybe_pop_jump:
- extract_number_and_incr (&mcnt, &p);
- printf ("/maybe_pop_jump to %d", p + mcnt - start);
- break;
-
- case pop_failure_jump:
- extract_number_and_incr (&mcnt, &p);
- printf ("/pop_failure_jump to %d", p + mcnt - start);
- break;
-
- case jump_past_alt:
- extract_number_and_incr (&mcnt, &p);
- printf ("/jump_past_alt to %d", p + mcnt - start);
- break;
-
- case jump:
- extract_number_and_incr (&mcnt, &p);
- printf ("/jump to %d", p + mcnt - start);
- break;
-
- case succeed_n:
- extract_number_and_incr (&mcnt, &p);
- p1 = p + mcnt;
- extract_number_and_incr (&mcnt2, &p);
- printf ("/succeed_n to %d, %d times", p1 - start, mcnt2);
- break;
-
- case jump_n:
- extract_number_and_incr (&mcnt, &p);
- p1 = p + mcnt;
- extract_number_and_incr (&mcnt2, &p);
- printf ("/jump_n to %d, %d times", p1 - start, mcnt2);
- break;
-
- case set_number_at:
- extract_number_and_incr (&mcnt, &p);
- p1 = p + mcnt;
- extract_number_and_incr (&mcnt2, &p);
- printf ("/set_number_at location %d to %d", p1 - start, mcnt2);
- break;
-
- case wordbound:
- printf ("/wordbound");
- break;
-
- case notwordbound:
- printf ("/notwordbound");
- break;
-
- case wordbeg:
- printf ("/wordbeg");
- break;
-
- case wordend:
- printf ("/wordend");
-
-# ifdef emacs
- case before_dot:
- printf ("/before_dot");
- break;
-
- case at_dot:
- printf ("/at_dot");
- break;
-
- case after_dot:
- printf ("/after_dot");
- break;
-
- case syntaxspec:
- printf ("/syntaxspec");
- mcnt = *p++;
- printf ("/%d", mcnt);
- break;
-
- case notsyntaxspec:
- printf ("/notsyntaxspec");
- mcnt = *p++;
- printf ("/%d", mcnt);
- break;
-# endif /* emacs */
-
- case wordchar:
- printf ("/wordchar");
- break;
-
- case notwordchar:
- printf ("/notwordchar");
- break;
-
- case begbuf:
- printf ("/begbuf");
- break;
-
- case endbuf:
- printf ("/endbuf");
- break;
-
- default:
- printf ("?%d", *(p-1));
- }
-
- putchar ('\n');
- }
-
- printf ("%d:\tend of pattern.\n", p - start);
-}
-
-
-void
-print_compiled_pattern (bufp)
- struct re_pattern_buffer *bufp;
-{
- unsigned char *buffer = bufp->buffer;
-
- print_partial_compiled_pattern (buffer, buffer + bufp->used);
- printf ("%ld bytes used/%ld bytes allocated.\n",
- bufp->used, bufp->allocated);
-
- if (bufp->fastmap_accurate && bufp->fastmap)
- {
- printf ("fastmap: ");
- print_fastmap (bufp->fastmap);
- }
-
- printf ("re_nsub: %d\t", bufp->re_nsub);
- printf ("regs_alloc: %d\t", bufp->regs_allocated);
- printf ("can_be_null: %d\t", bufp->can_be_null);
- printf ("newline_anchor: %d\n", bufp->newline_anchor);
- printf ("no_sub: %d\t", bufp->no_sub);
- printf ("not_bol: %d\t", bufp->not_bol);
- printf ("not_eol: %d\t", bufp->not_eol);
- printf ("syntax: %lx\n", bufp->syntax);
- /* Perhaps we should print the translate table? */
-}
-
-
-void
-print_double_string (where, string1, size1, string2, size2)
- const char *where;
- const char *string1;
- const char *string2;
- int size1;
- int size2;
-{
- int this_char;
-
- if (where == NULL)
- printf ("(null)");
- else
- {
- if (FIRST_STRING_P (where))
- {
- for (this_char = where - string1; this_char < size1; this_char++)
- putchar (string1[this_char]);
-
- where = string2;
- }
-
- for (this_char = where - string2; this_char < size2; this_char++)
- putchar (string2[this_char]);
- }
-}
-
-void
-printchar (c)
- int c;
-{
- putc (c, stderr);
-}
-
-#else /* not DEBUG */
-
-# undef assert
-# define assert(e)
-
-# define DEBUG_STATEMENT(e)
-# define DEBUG_PRINT1(x)
-# define DEBUG_PRINT2(x1, x2)
-# define DEBUG_PRINT3(x1, x2, x3)
-# define DEBUG_PRINT4(x1, x2, x3, x4)
-# define DEBUG_PRINT_COMPILED_PATTERN(p, s, e)
-# define DEBUG_PRINT_DOUBLE_STRING(w, s1, sz1, s2, sz2)
-
-#endif /* not DEBUG */
-
-/* Set by `re_set_syntax' to the current regexp syntax to recognize. Can
- also be assigned to arbitrarily: each pattern buffer stores its own
- syntax, so it can be changed between regex compilations. */
-/* This has no initializer because initialized variables in Emacs
- become read-only after dumping. */
-reg_syntax_t re_syntax_options;
-
-
-/* Specify the precise syntax of regexps for compilation. This provides
- for compatibility for various utilities which historically have
- different, incompatible syntaxes.
-
- The argument SYNTAX is a bit mask comprised of the various bits
- defined in gnu-regex.h. We return the old syntax. */
-
-reg_syntax_t
-re_set_syntax (syntax)
- reg_syntax_t syntax;
-{
- reg_syntax_t ret = re_syntax_options;
-
- re_syntax_options = syntax;
-#ifdef DEBUG
- if (syntax & RE_DEBUG)
- debug = 1;
- else if (debug) /* was on but now is not */
- debug = 0;
-#endif /* DEBUG */
- return ret;
-}
-#ifdef _LIBC
-weak_alias (__re_set_syntax, re_set_syntax)
-#endif
-
-/* This table gives an error message for each of the error codes listed
- in gnu-regex.h. Obviously the order here has to be same as there.
- POSIX doesn't require that we do anything for REG_NOERROR,
- but why not be nice? */
-
-static const char *re_error_msgid[] =
- {
- gettext_noop ("Success"), /* REG_NOERROR */
- gettext_noop ("No match"), /* REG_NOMATCH */
- gettext_noop ("Invalid regular expression"), /* REG_BADPAT */
- gettext_noop ("Invalid collation character"), /* REG_ECOLLATE */
- gettext_noop ("Invalid character class name"), /* REG_ECTYPE */
- gettext_noop ("Trailing backslash"), /* REG_EESCAPE */
- gettext_noop ("Invalid back reference"), /* REG_ESUBREG */
- gettext_noop ("Unmatched [ or [^"), /* REG_EBRACK */
- gettext_noop ("Unmatched ( or \\("), /* REG_EPAREN */
- gettext_noop ("Unmatched \\{"), /* REG_EBRACE */
- gettext_noop ("Invalid content of \\{\\}"), /* REG_BADBR */
- gettext_noop ("Invalid range end"), /* REG_ERANGE */
- gettext_noop ("Memory exhausted"), /* REG_ESPACE */
- gettext_noop ("Invalid preceding regular expression"), /* REG_BADRPT */
- gettext_noop ("Premature end of regular expression"), /* REG_EEND */
- gettext_noop ("Regular expression too big"), /* REG_ESIZE */
- gettext_noop ("Unmatched ) or \\)"), /* REG_ERPAREN */
- };
-
-/* Avoiding alloca during matching, to placate r_alloc. */
-
-/* Define MATCH_MAY_ALLOCATE unless we need to make sure that the
- searching and matching functions should not call alloca. On some
- systems, alloca is implemented in terms of malloc, and if we're
- using the relocating allocator routines, then malloc could cause a
- relocation, which might (if the strings being searched are in the
- ralloc heap) shift the data out from underneath the regexp
- routines.
-
- Here's another reason to avoid allocation: Emacs
- processes input from X in a signal handler; processing X input may
- call malloc; if input arrives while a matching routine is calling
- malloc, then we're scrod. But Emacs can't just block input while
- calling matching routines; then we don't notice interrupts when
- they come in. So, Emacs blocks input around all regexp calls
- except the matching calls, which it leaves unprotected, in the
- faith that they will not malloc. */
-
-/* Normally, this is fine. */
-#define MATCH_MAY_ALLOCATE
-
-/* When using GNU C, we are not REALLY using the C alloca, no matter
- what config.h may say. So don't take precautions for it. */
-#ifdef __GNUC__
-# undef C_ALLOCA
-#endif
-
-/* The match routines may not allocate if (1) they would do it with malloc
- and (2) it's not safe for them to use malloc.
- Note that if REL_ALLOC is defined, matching would not use malloc for the
- failure stack, but we would still use it for the register vectors;
- so REL_ALLOC should not affect this. */
-#if (defined C_ALLOCA || defined REGEX_MALLOC) && defined emacs
-# undef MATCH_MAY_ALLOCATE
-#endif
-
-
-/* Failure stack declarations and macros; both re_compile_fastmap and
- re_match_2 use a failure stack. These have to be macros because of
- REGEX_ALLOCATE_STACK. */
-
-
-/* Number of failure points for which to initially allocate space
- when matching. If this number is exceeded, we allocate more
- space, so it is not a hard limit. */
-#ifndef INIT_FAILURE_ALLOC
-# define INIT_FAILURE_ALLOC 5
-#endif
-
-/* Roughly the maximum number of failure points on the stack. Would be
- exactly that if always used MAX_FAILURE_ITEMS items each time we failed.
- This is a variable only so users of regex can assign to it; we never
- change it ourselves. */
-
-#ifdef INT_IS_16BIT
-
-# if defined MATCH_MAY_ALLOCATE
-/* 4400 was enough to cause a crash on Alpha OSF/1,
- whose default stack limit is 2mb. */
-long int re_max_failures = 4000;
-# else
-long int re_max_failures = 2000;
-# endif
-
-union fail_stack_elt
-{
- unsigned char *pointer;
- long int integer;
-};
-
-typedef union fail_stack_elt fail_stack_elt_t;
-
-typedef struct
-{
- fail_stack_elt_t *stack;
- unsigned long int size;
- unsigned long int avail; /* Offset of next open position. */
-} fail_stack_type;
-
-#else /* not INT_IS_16BIT */
-
-# if defined MATCH_MAY_ALLOCATE
-/* 4400 was enough to cause a crash on Alpha OSF/1,
- whose default stack limit is 2mb. */
-int re_max_failures = 20000;
-# else
-int re_max_failures = 2000;
-# endif
-
-union fail_stack_elt
-{
- unsigned char *pointer;
- int integer;
-};
-
-typedef union fail_stack_elt fail_stack_elt_t;
-
-typedef struct
-{
- fail_stack_elt_t *stack;
- unsigned size;
- unsigned avail; /* Offset of next open position. */
-} fail_stack_type;
-
-#endif /* INT_IS_16BIT */
-
-#define FAIL_STACK_EMPTY() (fail_stack.avail == 0)
-#define FAIL_STACK_PTR_EMPTY() (fail_stack_ptr->avail == 0)
-#define FAIL_STACK_FULL() (fail_stack.avail == fail_stack.size)
-
-
-/* Define macros to initialize and free the failure stack.
- Do `return -2' if the alloc fails. */
-
-#ifdef MATCH_MAY_ALLOCATE
-# define INIT_FAIL_STACK() \
- do { \
- fail_stack.stack = (fail_stack_elt_t *) \
- REGEX_ALLOCATE_STACK (INIT_FAILURE_ALLOC * sizeof (fail_stack_elt_t)); \
- \
- if (fail_stack.stack == NULL) \
- return -2; \
- \
- fail_stack.size = INIT_FAILURE_ALLOC; \
- fail_stack.avail = 0; \
- } while (0)
-
-# define RESET_FAIL_STACK() REGEX_FREE_STACK (fail_stack.stack)
-#else
-# define INIT_FAIL_STACK() \
- do { \
- fail_stack.avail = 0; \
- } while (0)
-
-# define RESET_FAIL_STACK()
-#endif
-
-
-/* Double the size of FAIL_STACK, up to approximately `re_max_failures' items.
-
- Return 1 if succeeds, and 0 if either ran out of memory
- allocating space for it or it was already too large.
-
- REGEX_REALLOCATE_STACK requires `destination' be declared. */
-
-#define DOUBLE_FAIL_STACK(fail_stack) \
- ((fail_stack).size > (unsigned) (re_max_failures * MAX_FAILURE_ITEMS) \
- ? 0 \
- : ((fail_stack).stack = (fail_stack_elt_t *) \
- REGEX_REALLOCATE_STACK ((fail_stack).stack, \
- (fail_stack).size * sizeof (fail_stack_elt_t), \
- ((fail_stack).size << 1) * sizeof (fail_stack_elt_t)), \
- \
- (fail_stack).stack == NULL \
- ? 0 \
- : ((fail_stack).size <<= 1, \
- 1)))
-
-
-/* Push pointer POINTER on FAIL_STACK.
- Return 1 if was able to do so and 0 if ran out of memory allocating
- space to do so. */
-#define PUSH_PATTERN_OP(POINTER, FAIL_STACK) \
- ((FAIL_STACK_FULL () \
- && !DOUBLE_FAIL_STACK (FAIL_STACK)) \
- ? 0 \
- : ((FAIL_STACK).stack[(FAIL_STACK).avail++].pointer = POINTER, \
- 1))
-
-/* Push a pointer value onto the failure stack.
- Assumes the variable `fail_stack'. Probably should only
- be called from within `PUSH_FAILURE_POINT'. */
-#define PUSH_FAILURE_POINTER(item) \
- fail_stack.stack[fail_stack.avail++].pointer = (unsigned char *) (item)
-
-/* This pushes an integer-valued item onto the failure stack.
- Assumes the variable `fail_stack'. Probably should only
- be called from within `PUSH_FAILURE_POINT'. */
-#define PUSH_FAILURE_INT(item) \
- fail_stack.stack[fail_stack.avail++].integer = (item)
-
-/* Push a fail_stack_elt_t value onto the failure stack.
- Assumes the variable `fail_stack'. Probably should only
- be called from within `PUSH_FAILURE_POINT'. */
-#define PUSH_FAILURE_ELT(item) \
- fail_stack.stack[fail_stack.avail++] = (item)
-
-/* These three POP... operations complement the three PUSH... operations.
- All assume that `fail_stack' is nonempty. */
-#define POP_FAILURE_POINTER() fail_stack.stack[--fail_stack.avail].pointer
-#define POP_FAILURE_INT() fail_stack.stack[--fail_stack.avail].integer
-#define POP_FAILURE_ELT() fail_stack.stack[--fail_stack.avail]
-
-/* Used to omit pushing failure point id's when we're not debugging. */
-#ifdef DEBUG
-# define DEBUG_PUSH PUSH_FAILURE_INT
-# define DEBUG_POP(item_addr) *(item_addr) = POP_FAILURE_INT ()
-#else
-# define DEBUG_PUSH(item)
-# define DEBUG_POP(item_addr)
-#endif
-
-
-/* Push the information about the state we will need
- if we ever fail back to it.
-
- Requires variables fail_stack, regstart, regend, reg_info, and
- num_regs_pushed be declared. DOUBLE_FAIL_STACK requires `destination'
- be declared.
-
- Does `return FAILURE_CODE' if runs out of memory. */
-
-#define PUSH_FAILURE_POINT(pattern_place, string_place, failure_code) \
- do { \
- char *destination; \
- /* Must be int, so when we don't save any registers, the arithmetic \
- of 0 + -1 isn't done as unsigned. */ \
- /* Can't be int, since there is not a shred of a guarantee that int \
- is wide enough to hold a value of something to which pointer can \
- be assigned */ \
- active_reg_t this_reg; \
- \
- DEBUG_STATEMENT (failure_id++); \
- DEBUG_STATEMENT (nfailure_points_pushed++); \
- DEBUG_PRINT2 ("\nPUSH_FAILURE_POINT #%u:\n", failure_id); \
- DEBUG_PRINT2 (" Before push, next avail: %d\n", (fail_stack).avail);\
- DEBUG_PRINT2 (" size: %d\n", (fail_stack).size);\
- \
- DEBUG_PRINT2 (" slots needed: %ld\n", NUM_FAILURE_ITEMS); \
- DEBUG_PRINT2 (" available: %d\n", REMAINING_AVAIL_SLOTS); \
- \
- /* Ensure we have enough space allocated for what we will push. */ \
- while (REMAINING_AVAIL_SLOTS < NUM_FAILURE_ITEMS) \
- { \
- if (!DOUBLE_FAIL_STACK (fail_stack)) \
- return failure_code; \
- \
- DEBUG_PRINT2 ("\n Doubled stack; size now: %d\n", \
- (fail_stack).size); \
- DEBUG_PRINT2 (" slots available: %d\n", REMAINING_AVAIL_SLOTS);\
- } \
- \
- /* Push the info, starting with the registers. */ \
- DEBUG_PRINT1 ("\n"); \
- \
- if (1) \
- for (this_reg = lowest_active_reg; this_reg <= highest_active_reg; \
- this_reg++) \
- { \
- DEBUG_PRINT2 (" Pushing reg: %lu\n", this_reg); \
- DEBUG_STATEMENT (num_regs_pushed++); \
- \
- DEBUG_PRINT2 (" start: %p\n", regstart[this_reg]); \
- PUSH_FAILURE_POINTER (regstart[this_reg]); \
- \
- DEBUG_PRINT2 (" end: %p\n", regend[this_reg]); \
- PUSH_FAILURE_POINTER (regend[this_reg]); \
- \
- DEBUG_PRINT2 (" info: %p\n ", \
- reg_info[this_reg].word.pointer); \
- DEBUG_PRINT2 (" match_null=%d", \
- REG_MATCH_NULL_STRING_P (reg_info[this_reg])); \
- DEBUG_PRINT2 (" active=%d", IS_ACTIVE (reg_info[this_reg])); \
- DEBUG_PRINT2 (" matched_something=%d", \
- MATCHED_SOMETHING (reg_info[this_reg])); \
- DEBUG_PRINT2 (" ever_matched=%d", \
- EVER_MATCHED_SOMETHING (reg_info[this_reg])); \
- DEBUG_PRINT1 ("\n"); \
- PUSH_FAILURE_ELT (reg_info[this_reg].word); \
- } \
- \
- DEBUG_PRINT2 (" Pushing low active reg: %ld\n", lowest_active_reg);\
- PUSH_FAILURE_INT (lowest_active_reg); \
- \
- DEBUG_PRINT2 (" Pushing high active reg: %ld\n", highest_active_reg);\
- PUSH_FAILURE_INT (highest_active_reg); \
- \
- DEBUG_PRINT2 (" Pushing pattern %p:\n", pattern_place); \
- DEBUG_PRINT_COMPILED_PATTERN (bufp, pattern_place, pend); \
- PUSH_FAILURE_POINTER (pattern_place); \
- \
- DEBUG_PRINT2 (" Pushing string %p: `", string_place); \
- DEBUG_PRINT_DOUBLE_STRING (string_place, string1, size1, string2, \
- size2); \
- DEBUG_PRINT1 ("'\n"); \
- PUSH_FAILURE_POINTER (string_place); \
- \
- DEBUG_PRINT2 (" Pushing failure id: %u\n", failure_id); \
- DEBUG_PUSH (failure_id); \
- } while (0)
-
-/* This is the number of items that are pushed and popped on the stack
- for each register. */
-#define NUM_REG_ITEMS 3
-
-/* Individual items aside from the registers. */
-#ifdef DEBUG
-# define NUM_NONREG_ITEMS 5 /* Includes failure point id. */
-#else
-# define NUM_NONREG_ITEMS 4
-#endif
-
-/* We push at most this many items on the stack. */
-/* We used to use (num_regs - 1), which is the number of registers
- this regexp will save; but that was changed to 5
- to avoid stack overflow for a regexp with lots of parens. */
-#define MAX_FAILURE_ITEMS (5 * NUM_REG_ITEMS + NUM_NONREG_ITEMS)
-
-/* We actually push this many items. */
-#define NUM_FAILURE_ITEMS \
- (((0 \
- ? 0 : highest_active_reg - lowest_active_reg + 1) \
- * NUM_REG_ITEMS) \
- + NUM_NONREG_ITEMS)
-
-/* How many items can still be added to the stack without overflowing it. */
-#define REMAINING_AVAIL_SLOTS ((fail_stack).size - (fail_stack).avail)
-
-
-/* Pops what PUSH_FAIL_STACK pushes.
-
- We restore into the parameters, all of which should be lvalues:
- STR -- the saved data position.
- PAT -- the saved pattern position.
- LOW_REG, HIGH_REG -- the highest and lowest active registers.
- REGSTART, REGEND -- arrays of string positions.
- REG_INFO -- array of information about each subexpression.
-
- Also assumes the variables `fail_stack' and (if debugging), `bufp',
- `pend', `string1', `size1', `string2', and `size2'. */
-
-#define POP_FAILURE_POINT(str, pat, low_reg, high_reg, regstart, regend, reg_info)\
-{ \
- DEBUG_STATEMENT (unsigned failure_id;) \
- active_reg_t this_reg; \
- const unsigned char *string_temp; \
- \
- assert (!FAIL_STACK_EMPTY ()); \
- \
- /* Remove failure points and point to how many regs pushed. */ \
- DEBUG_PRINT1 ("POP_FAILURE_POINT:\n"); \
- DEBUG_PRINT2 (" Before pop, next avail: %d\n", fail_stack.avail); \
- DEBUG_PRINT2 (" size: %d\n", fail_stack.size); \
- \
- assert (fail_stack.avail >= NUM_NONREG_ITEMS); \
- \
- DEBUG_POP (&failure_id); \
- DEBUG_PRINT2 (" Popping failure id: %u\n", failure_id); \
- \
- /* If the saved string location is NULL, it came from an \
- on_failure_keep_string_jump opcode, and we want to throw away the \
- saved NULL, thus retaining our current position in the string. */ \
- string_temp = POP_FAILURE_POINTER (); \
- if (string_temp != NULL) \
- str = (const char *) string_temp; \
- \
- DEBUG_PRINT2 (" Popping string %p: `", str); \
- DEBUG_PRINT_DOUBLE_STRING (str, string1, size1, string2, size2); \
- DEBUG_PRINT1 ("'\n"); \
- \
- pat = (unsigned char *) POP_FAILURE_POINTER (); \
- DEBUG_PRINT2 (" Popping pattern %p:\n", pat); \
- DEBUG_PRINT_COMPILED_PATTERN (bufp, pat, pend); \
- \
- /* Restore register info. */ \
- high_reg = (active_reg_t) POP_FAILURE_INT (); \
- DEBUG_PRINT2 (" Popping high active reg: %ld\n", high_reg); \
- \
- low_reg = (active_reg_t) POP_FAILURE_INT (); \
- DEBUG_PRINT2 (" Popping low active reg: %ld\n", low_reg); \
- \
- if (1) \
- for (this_reg = high_reg; this_reg >= low_reg; this_reg--) \
- { \
- DEBUG_PRINT2 (" Popping reg: %ld\n", this_reg); \
- \
- reg_info[this_reg].word = POP_FAILURE_ELT (); \
- DEBUG_PRINT2 (" info: %p\n", \
- reg_info[this_reg].word.pointer); \
- \
- regend[this_reg] = (const char *) POP_FAILURE_POINTER (); \
- DEBUG_PRINT2 (" end: %p\n", regend[this_reg]); \
- \
- regstart[this_reg] = (const char *) POP_FAILURE_POINTER (); \
- DEBUG_PRINT2 (" start: %p\n", regstart[this_reg]); \
- } \
- else \
- { \
- for (this_reg = highest_active_reg; this_reg > high_reg; this_reg--) \
- { \
- reg_info[this_reg].word.integer = 0; \
- regend[this_reg] = 0; \
- regstart[this_reg] = 0; \
- } \
- highest_active_reg = high_reg; \
- } \
- \
- set_regs_matched_done = 0; \
- DEBUG_STATEMENT (nfailure_points_popped++); \
-} /* POP_FAILURE_POINT */
-
-
-
-/* Structure for per-register (a.k.a. per-group) information.
- Other register information, such as the
- starting and ending positions (which are addresses), and the list of
- inner groups (which is a bits list) are maintained in separate
- variables.
-
- We are making a (strictly speaking) nonportable assumption here: that
- the compiler will pack our bit fields into something that fits into
- the type of `word', i.e., is something that fits into one item on the
- failure stack. */
-
-
-/* Declarations and macros for re_match_2. */
-
-typedef union
-{
- fail_stack_elt_t word;
- struct
- {
- /* This field is one if this group can match the empty string,
- zero if not. If not yet determined, `MATCH_NULL_UNSET_VALUE'. */
-#define MATCH_NULL_UNSET_VALUE 3
- unsigned match_null_string_p : 2;
- unsigned is_active : 1;
- unsigned matched_something : 1;
- unsigned ever_matched_something : 1;
- } bits;
-} register_info_type;
-
-#define REG_MATCH_NULL_STRING_P(R) ((R).bits.match_null_string_p)
-#define IS_ACTIVE(R) ((R).bits.is_active)
-#define MATCHED_SOMETHING(R) ((R).bits.matched_something)
-#define EVER_MATCHED_SOMETHING(R) ((R).bits.ever_matched_something)
-
-
-/* Call this when have matched a real character; it sets `matched' flags
- for the subexpressions which we are currently inside. Also records
- that those subexprs have matched. */
-#define SET_REGS_MATCHED() \
- do \
- { \
- if (!set_regs_matched_done) \
- { \
- active_reg_t r; \
- set_regs_matched_done = 1; \
- for (r = lowest_active_reg; r <= highest_active_reg; r++) \
- { \
- MATCHED_SOMETHING (reg_info[r]) \
- = EVER_MATCHED_SOMETHING (reg_info[r]) \
- = 1; \
- } \
- } \
- } \
- while (0)
-
-/* Registers are set to a sentinel when they haven't yet matched. */
-static char reg_unset_dummy;
-#define REG_UNSET_VALUE (&reg_unset_dummy)
-#define REG_UNSET(e) ((e) == REG_UNSET_VALUE)
-
-/* Subroutine declarations and macros for regex_compile. */
-
-static reg_errcode_t regex_compile _RE_ARGS ((const char *pattern, size_t size,
- reg_syntax_t syntax,
- struct re_pattern_buffer *bufp));
-static void store_op1 _RE_ARGS ((re_opcode_t op, unsigned char *loc, int arg));
-static void store_op2 _RE_ARGS ((re_opcode_t op, unsigned char *loc,
- int arg1, int arg2));
-static void insert_op1 _RE_ARGS ((re_opcode_t op, unsigned char *loc,
- int arg, unsigned char *end));
-static void insert_op2 _RE_ARGS ((re_opcode_t op, unsigned char *loc,
- int arg1, int arg2, unsigned char *end));
-static boolean at_begline_loc_p _RE_ARGS ((const char *pattern, const char *p,
- reg_syntax_t syntax));
-static boolean at_endline_loc_p _RE_ARGS ((const char *p, const char *pend,
- reg_syntax_t syntax));
-static reg_errcode_t compile_range _RE_ARGS ((const char **p_ptr,
- const char *pend,
- char *translate,
- reg_syntax_t syntax,
- unsigned char *b));
-
-/* Fetch the next character in the uncompiled pattern---translating it
- if necessary. Also cast from a signed character in the constant
- string passed to us by the user to an unsigned char that we can use
- as an array index (in, e.g., `translate'). */
-#ifndef PATFETCH
-# define PATFETCH(c) \
- do {if (p == pend) return REG_EEND; \
- c = (unsigned char) *p++; \
- if (translate) c = (unsigned char) translate[c]; \
- } while (0)
-#endif
-
-/* Fetch the next character in the uncompiled pattern, with no
- translation. */
-#define PATFETCH_RAW(c) \
- do {if (p == pend) return REG_EEND; \
- c = (unsigned char) *p++; \
- } while (0)
-
-/* Go backwards one character in the pattern. */
-#define PATUNFETCH p--
-
-
-/* If `translate' is non-null, return translate[D], else just D. We
- cast the subscript to translate because some data is declared as
- `char *', to avoid warnings when a string constant is passed. But
- when we use a character as a subscript we must make it unsigned. */
-#ifndef TRANSLATE
-# define TRANSLATE(d) \
- (translate ? (char) translate[(unsigned char) (d)] : (d))
-#endif
-
-
-/* Macros for outputting the compiled pattern into `buffer'. */
-
-/* If the buffer isn't allocated when it comes in, use this. */
-#define INIT_BUF_SIZE 32
-
-/* Make sure we have at least N more bytes of space in buffer. */
-#define GET_BUFFER_SPACE(n) \
- while ((unsigned long) (b - bufp->buffer + (n)) > bufp->allocated) \
- EXTEND_BUFFER ()
-
-/* Make sure we have one more byte of buffer space and then add C to it. */
-#define BUF_PUSH(c) \
- do { \
- GET_BUFFER_SPACE (1); \
- *b++ = (unsigned char) (c); \
- } while (0)
-
-
-/* Ensure we have two more bytes of buffer space and then append C1 and C2. */
-#define BUF_PUSH_2(c1, c2) \
- do { \
- GET_BUFFER_SPACE (2); \
- *b++ = (unsigned char) (c1); \
- *b++ = (unsigned char) (c2); \
- } while (0)
-
-
-/* As with BUF_PUSH_2, except for three bytes. */
-#define BUF_PUSH_3(c1, c2, c3) \
- do { \
- GET_BUFFER_SPACE (3); \
- *b++ = (unsigned char) (c1); \
- *b++ = (unsigned char) (c2); \
- *b++ = (unsigned char) (c3); \
- } while (0)
-
-
-/* Store a jump with opcode OP at LOC to location TO. We store a
- relative address offset by the three bytes the jump itself occupies. */
-#define STORE_JUMP(op, loc, to) \
- store_op1 (op, loc, (int) ((to) - (loc) - 3))
-
-/* Likewise, for a two-argument jump. */
-#define STORE_JUMP2(op, loc, to, arg) \
- store_op2 (op, loc, (int) ((to) - (loc) - 3), arg)
-
-/* Like `STORE_JUMP', but for inserting. Assume `b' is the buffer end. */
-#define INSERT_JUMP(op, loc, to) \
- insert_op1 (op, loc, (int) ((to) - (loc) - 3), b)
-
-/* Like `STORE_JUMP2', but for inserting. Assume `b' is the buffer end. */
-#define INSERT_JUMP2(op, loc, to, arg) \
- insert_op2 (op, loc, (int) ((to) - (loc) - 3), arg, b)
-
-
-/* This is not an arbitrary limit: the arguments which represent offsets
- into the pattern are two bytes long. So if 2^16 bytes turns out to
- be too small, many things would have to change. */
-/* Any other compiler which, like MSC, has allocation limit below 2^16
- bytes will have to use approach similar to what was done below for
- MSC and drop MAX_BUF_SIZE a bit. Otherwise you may end up
- reallocating to 0 bytes. Such thing is not going to work too well.
- You have been warned!! */
-#if defined _MSC_VER && !defined WIN32
-/* Microsoft C 16-bit versions limit malloc to approx 65512 bytes.
- The REALLOC define eliminates a flurry of conversion warnings,
- but is not required. */
-# define MAX_BUF_SIZE 65500L
-# define REALLOC(p,s) realloc ((p), (size_t) (s))
-#else
-# define MAX_BUF_SIZE (1L << 16)
-# define REALLOC(p,s) realloc ((p), (s))
-#endif
-
-/* Extend the buffer by twice its current size via realloc and
- reset the pointers that pointed into the old block to point to the
- correct places in the new one. If extending the buffer results in it
- being larger than MAX_BUF_SIZE, then flag memory exhausted. */
-#define EXTEND_BUFFER() \
- do { \
- unsigned char *old_buffer = bufp->buffer; \
- if (bufp->allocated == MAX_BUF_SIZE) \
- return REG_ESIZE; \
- bufp->allocated <<= 1; \
- if (bufp->allocated > MAX_BUF_SIZE) \
- bufp->allocated = MAX_BUF_SIZE; \
- bufp->buffer = (unsigned char *) REALLOC (bufp->buffer, bufp->allocated);\
- if (bufp->buffer == NULL) \
- return REG_ESPACE; \
- /* If the buffer moved, move all the pointers into it. */ \
- if (old_buffer != bufp->buffer) \
- { \
- b = (b - old_buffer) + bufp->buffer; \
- begalt = (begalt - old_buffer) + bufp->buffer; \
- if (fixup_alt_jump) \
- fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer;\
- if (laststart) \
- laststart = (laststart - old_buffer) + bufp->buffer; \
- if (pending_exact) \
- pending_exact = (pending_exact - old_buffer) + bufp->buffer; \
- } \
- } while (0)
-
-
-/* Since we have one byte reserved for the register number argument to
- {start,stop}_memory, the maximum number of groups we can report
- things about is what fits in that byte. */
-#define MAX_REGNUM 255
-
-/* But patterns can have more than `MAX_REGNUM' registers. We just
- ignore the excess. */
-typedef unsigned regnum_t;
-
-
-/* Macros for the compile stack. */
-
-/* Since offsets can go either forwards or backwards, this type needs to
- be able to hold values from -(MAX_BUF_SIZE - 1) to MAX_BUF_SIZE - 1. */
-/* int may be not enough when sizeof(int) == 2. */
-typedef long pattern_offset_t;
-
-typedef struct
-{
- pattern_offset_t begalt_offset;
- pattern_offset_t fixup_alt_jump;
- pattern_offset_t inner_group_offset;
- pattern_offset_t laststart_offset;
- regnum_t regnum;
-} compile_stack_elt_t;
-
-
-typedef struct
-{
- compile_stack_elt_t *stack;
- unsigned size;
- unsigned avail; /* Offset of next open position. */
-} compile_stack_type;
-
-
-#define INIT_COMPILE_STACK_SIZE 32
-
-#define COMPILE_STACK_EMPTY (compile_stack.avail == 0)
-#define COMPILE_STACK_FULL (compile_stack.avail == compile_stack.size)
-
-/* The next available element. */
-#define COMPILE_STACK_TOP (compile_stack.stack[compile_stack.avail])
-
-
-/* Set the bit for character C in a list. */
-#define SET_LIST_BIT(c) \
- (b[((unsigned char) (c)) / BYTEWIDTH] \
- |= 1 << (((unsigned char) c) % BYTEWIDTH))
-
-
-/* Get the next unsigned number in the uncompiled pattern. */
-#define GET_UNSIGNED_NUMBER(num) \
- { if (p != pend) \
- { \
- PATFETCH (c); \
- while (ISDIGIT (c)) \
- { \
- if (num < 0) \
- num = 0; \
- num = num * 10 + c - '0'; \
- if (p == pend) \
- break; \
- PATFETCH (c); \
- } \
- } \
- }
-
-#if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H)
-/* The GNU C library provides support for user-defined character classes
- and the functions from ISO C amendement 1. */
-# ifdef CHARCLASS_NAME_MAX
-# define CHAR_CLASS_MAX_LENGTH CHARCLASS_NAME_MAX
-# else
-/* This shouldn't happen but some implementation might still have this
- problem. Use a reasonable default value. */
-# define CHAR_CLASS_MAX_LENGTH 256
-# endif
-
-# ifdef _LIBC
-# define IS_CHAR_CLASS(string) __wctype (string)
-# else
-# define IS_CHAR_CLASS(string) wctype (string)
-# endif
-#else
-# define CHAR_CLASS_MAX_LENGTH 6 /* Namely, `xdigit'. */
-
-# define IS_CHAR_CLASS(string) \
- (STREQ (string, "alpha") || STREQ (string, "upper") \
- || STREQ (string, "lower") || STREQ (string, "digit") \
- || STREQ (string, "alnum") || STREQ (string, "xdigit") \
- || STREQ (string, "space") || STREQ (string, "print") \
- || STREQ (string, "punct") || STREQ (string, "graph") \
- || STREQ (string, "cntrl") || STREQ (string, "blank"))
-#endif
-
-#ifndef MATCH_MAY_ALLOCATE
-
-/* If we cannot allocate large objects within re_match_2_internal,
- we make the fail stack and register vectors global.
- The fail stack, we grow to the maximum size when a regexp
- is compiled.
- The register vectors, we adjust in size each time we
- compile a regexp, according to the number of registers it needs. */
-
-static fail_stack_type fail_stack;
-
-/* Size with which the following vectors are currently allocated.
- That is so we can make them bigger as needed,
- but never make them smaller. */
-static int regs_allocated_size;
-
-static const char ** regstart, ** regend;
-static const char ** old_regstart, ** old_regend;
-static const char **best_regstart, **best_regend;
-static register_info_type *reg_info;
-static const char **reg_dummy;
-static register_info_type *reg_info_dummy;
-
-/* Make the register vectors big enough for NUM_REGS registers,
- but don't make them smaller. */
-
-static
-regex_grow_registers (num_regs)
- int num_regs;
-{
- if (num_regs > regs_allocated_size)
- {
- RETALLOC_IF (regstart, num_regs, const char *);
- RETALLOC_IF (regend, num_regs, const char *);
- RETALLOC_IF (old_regstart, num_regs, const char *);
- RETALLOC_IF (old_regend, num_regs, const char *);
- RETALLOC_IF (best_regstart, num_regs, const char *);
- RETALLOC_IF (best_regend, num_regs, const char *);
- RETALLOC_IF (reg_info, num_regs, register_info_type);
- RETALLOC_IF (reg_dummy, num_regs, const char *);
- RETALLOC_IF (reg_info_dummy, num_regs, register_info_type);
-
- regs_allocated_size = num_regs;
- }
-}
-
-#endif /* not MATCH_MAY_ALLOCATE */
-
-static boolean group_in_compile_stack _RE_ARGS ((compile_stack_type
- compile_stack,
- regnum_t regnum));
-
-/* `regex_compile' compiles PATTERN (of length SIZE) according to SYNTAX.
- Returns one of error codes defined in `gnu-regex.h', or zero for success.
-
- Assumes the `allocated' (and perhaps `buffer') and `translate'
- fields are set in BUFP on entry.
-
- If it succeeds, results are put in BUFP (if it returns an error, the
- contents of BUFP are undefined):
- `buffer' is the compiled pattern;
- `syntax' is set to SYNTAX;
- `used' is set to the length of the compiled pattern;
- `fastmap_accurate' is zero;
- `re_nsub' is the number of subexpressions in PATTERN;
- `not_bol' and `not_eol' are zero;
-
- The `fastmap' and `newline_anchor' fields are neither
- examined nor set. */
-
-/* Return, freeing storage we allocated. */
-#define FREE_STACK_RETURN(value) \
- return (free (compile_stack.stack), value)
-
-static reg_errcode_t
-regex_compile (pattern, size, syntax, bufp)
- const char *pattern;
- size_t size;
- reg_syntax_t syntax;
- struct re_pattern_buffer *bufp;
-{
- /* We fetch characters from PATTERN here. Even though PATTERN is
- `char *' (i.e., signed), we declare these variables as unsigned, so
- they can be reliably used as array indices. */
- register unsigned char c, c1;
-
- /* A random temporary spot in PATTERN. */
- const char *p1;
-
- /* Points to the end of the buffer, where we should append. */
- register unsigned char *b;
-
- /* Keeps track of unclosed groups. */
- compile_stack_type compile_stack;
-
- /* Points to the current (ending) position in the pattern. */
- const char *p = pattern;
- const char *pend = pattern + size;
-
- /* How to translate the characters in the pattern. */
- RE_TRANSLATE_TYPE translate = bufp->translate;
-
- /* Address of the count-byte of the most recently inserted `exactn'
- command. This makes it possible to tell if a new exact-match
- character can be added to that command or if the character requires
- a new `exactn' command. */
- unsigned char *pending_exact = 0;
-
- /* Address of start of the most recently finished expression.
- This tells, e.g., postfix * where to find the start of its
- operand. Reset at the beginning of groups and alternatives. */
- unsigned char *laststart = 0;
-
- /* Address of beginning of regexp, or inside of last group. */
- unsigned char *begalt;
-
- /* Place in the uncompiled pattern (i.e., the {) to
- which to go back if the interval is invalid. */
- const char *beg_interval;
-
- /* Address of the place where a forward jump should go to the end of
- the containing expression. Each alternative of an `or' -- except the
- last -- ends with a forward jump of this sort. */
- unsigned char *fixup_alt_jump = 0;
-
- /* Counts open-groups as they are encountered. Remembered for the
- matching close-group on the compile stack, so the same register
- number is put in the stop_memory as the start_memory. */
- regnum_t regnum = 0;
-
-#ifdef DEBUG
- DEBUG_PRINT1 ("\nCompiling pattern: ");
- if (debug)
- {
- unsigned debug_count;
-
- for (debug_count = 0; debug_count < size; debug_count++)
- putchar (pattern[debug_count]);
- putchar ('\n');
- }
-#endif /* DEBUG */
-
- /* Initialize the compile stack. */
- compile_stack.stack = TALLOC (INIT_COMPILE_STACK_SIZE, compile_stack_elt_t);
- if (compile_stack.stack == NULL)
- return REG_ESPACE;
-
- compile_stack.size = INIT_COMPILE_STACK_SIZE;
- compile_stack.avail = 0;
-
- /* Initialize the pattern buffer. */
- bufp->syntax = syntax;
- bufp->fastmap_accurate = 0;
- bufp->not_bol = bufp->not_eol = 0;
-
- /* Set `used' to zero, so that if we return an error, the pattern
- printer (for debugging) will think there's no pattern. We reset it
- at the end. */
- bufp->used = 0;
-
- /* Always count groups, whether or not bufp->no_sub is set. */
- bufp->re_nsub = 0;
-
-#if !defined emacs && !defined SYNTAX_TABLE
- /* Initialize the syntax table. */
- init_syntax_once ();
-#endif
-
- if (bufp->allocated == 0)
- {
- if (bufp->buffer)
- { /* If zero allocated, but buffer is non-null, try to realloc
- enough space. This loses if buffer's address is bogus, but
- that is the user's responsibility. */
- RETALLOC (bufp->buffer, INIT_BUF_SIZE, unsigned char);
- }
- else
- { /* Caller did not allocate a buffer. Do it for them. */
- bufp->buffer = TALLOC (INIT_BUF_SIZE, unsigned char);
- }
- if (!bufp->buffer) FREE_STACK_RETURN (REG_ESPACE);
-
- bufp->allocated = INIT_BUF_SIZE;
- }
-
- begalt = b = bufp->buffer;
-
- /* Loop through the uncompiled pattern until we're at the end. */
- while (p != pend)
- {
- PATFETCH (c);
-
- switch (c)
- {
- case '^':
- {
- if ( /* If at start of pattern, it's an operator. */
- p == pattern + 1
- /* If context independent, it's an operator. */
- || syntax & RE_CONTEXT_INDEP_ANCHORS
- /* Otherwise, depends on what's come before. */
- || at_begline_loc_p (pattern, p, syntax))
- BUF_PUSH (begline);
- else
- goto normal_char;
- }
- break;
-
-
- case '$':
- {
- if ( /* If at end of pattern, it's an operator. */
- p == pend
- /* If context independent, it's an operator. */
- || syntax & RE_CONTEXT_INDEP_ANCHORS
- /* Otherwise, depends on what's next. */
- || at_endline_loc_p (p, pend, syntax))
- BUF_PUSH (endline);
- else
- goto normal_char;
- }
- break;
-
-
- case '+':
- case '?':
- if ((syntax & RE_BK_PLUS_QM)
- || (syntax & RE_LIMITED_OPS))
- goto normal_char;
- handle_plus:
- case '*':
- /* If there is no previous pattern... */
- if (!laststart)
- {
- if (syntax & RE_CONTEXT_INVALID_OPS)
- FREE_STACK_RETURN (REG_BADRPT);
- else if (!(syntax & RE_CONTEXT_INDEP_OPS))
- goto normal_char;
- }
-
- {
- /* Are we optimizing this jump? */
- boolean keep_string_p = false;
-
- /* 1 means zero (many) matches is allowed. */
- char zero_times_ok = 0, many_times_ok = 0;
-
- /* If there is a sequence of repetition chars, collapse it
- down to just one (the right one). We can't combine
- interval operators with these because of, e.g., `a{2}*',
- which should only match an even number of `a's. */
-
- for (;;)
- {
- zero_times_ok |= c != '+';
- many_times_ok |= c != '?';
-
- if (p == pend)
- break;
-
- PATFETCH (c);
-
- if (c == '*'
- || (!(syntax & RE_BK_PLUS_QM) && (c == '+' || c == '?')))
- ;
-
- else if (syntax & RE_BK_PLUS_QM && c == '\\')
- {
- if (p == pend) FREE_STACK_RETURN (REG_EESCAPE);
-
- PATFETCH (c1);
- if (!(c1 == '+' || c1 == '?'))
- {
- PATUNFETCH;
- PATUNFETCH;
- break;
- }
-
- c = c1;
- }
- else
- {
- PATUNFETCH;
- break;
- }
-
- /* If we get here, we found another repeat character. */
- }
-
- /* Star, etc. applied to an empty pattern is equivalent
- to an empty pattern. */
- if (!laststart)
- break;
-
- /* Now we know whether or not zero matches is allowed
- and also whether or not two or more matches is allowed. */
- if (many_times_ok)
- { /* More than one repetition is allowed, so put in at the
- end a backward relative jump from `b' to before the next
- jump we're going to put in below (which jumps from
- laststart to after this jump).
-
- But if we are at the `*' in the exact sequence `.*\n',
- insert an unconditional jump backwards to the .,
- instead of the beginning of the loop. This way we only
- push a failure point once, instead of every time
- through the loop. */
- assert (p - 1 > pattern);
-
- /* Allocate the space for the jump. */
- GET_BUFFER_SPACE (3);
-
- /* We know we are not at the first character of the pattern,
- because laststart was nonzero. And we've already
- incremented `p', by the way, to be the character after
- the `*'. Do we have to do something analogous here
- for null bytes, because of RE_DOT_NOT_NULL? */
- if (TRANSLATE (*(p - 2)) == TRANSLATE ('.')
- && zero_times_ok
- && p < pend && TRANSLATE (*p) == TRANSLATE ('\n')
- && !(syntax & RE_DOT_NEWLINE))
- { /* We have .*\n. */
- STORE_JUMP (jump, b, laststart);
- keep_string_p = true;
- }
- else
- /* Anything else. */
- STORE_JUMP (maybe_pop_jump, b, laststart - 3);
-
- /* We've added more stuff to the buffer. */
- b += 3;
- }
-
- /* On failure, jump from laststart to b + 3, which will be the
- end of the buffer after this jump is inserted. */
- GET_BUFFER_SPACE (3);
- INSERT_JUMP (keep_string_p ? on_failure_keep_string_jump
- : on_failure_jump,
- laststart, b + 3);
- pending_exact = 0;
- b += 3;
-
- if (!zero_times_ok)
- {
- /* At least one repetition is required, so insert a
- `dummy_failure_jump' before the initial
- `on_failure_jump' instruction of the loop. This
- effects a skip over that instruction the first time
- we hit that loop. */
- GET_BUFFER_SPACE (3);
- INSERT_JUMP (dummy_failure_jump, laststart, laststart + 6);
- b += 3;
- }
- }
- break;
-
-
- case '.':
- laststart = b;
- BUF_PUSH (anychar);
- break;
-
-
- case '[':
- {
- boolean had_char_class = false;
-
- if (p == pend) FREE_STACK_RETURN (REG_EBRACK);
-
- /* Ensure that we have enough space to push a charset: the
- opcode, the length count, and the bitset; 34 bytes in all. */
- GET_BUFFER_SPACE (34);
-
- laststart = b;
-
- /* We test `*p == '^' twice, instead of using an if
- statement, so we only need one BUF_PUSH. */
- BUF_PUSH (*p == '^' ? charset_not : charset);
- if (*p == '^')
- p++;
-
- /* Remember the first position in the bracket expression. */
- p1 = p;
-
- /* Push the number of bytes in the bitmap. */
- BUF_PUSH ((1 << BYTEWIDTH) / BYTEWIDTH);
-
- /* Clear the whole map. */
- bzero (b, (1 << BYTEWIDTH) / BYTEWIDTH);
-
- /* charset_not matches newline according to a syntax bit. */
- if ((re_opcode_t) b[-2] == charset_not
- && (syntax & RE_HAT_LISTS_NOT_NEWLINE))
- SET_LIST_BIT ('\n');
-
- /* Read in characters and ranges, setting map bits. */
- for (;;)
- {
- if (p == pend) FREE_STACK_RETURN (REG_EBRACK);
-
- PATFETCH (c);
-
- /* \ might escape characters inside [...] and [^...]. */
- if ((syntax & RE_BACKSLASH_ESCAPE_IN_LISTS) && c == '\\')
- {
- if (p == pend) FREE_STACK_RETURN (REG_EESCAPE);
-
- PATFETCH (c1);
- SET_LIST_BIT (c1);
- continue;
- }
-
- /* Could be the end of the bracket expression. If it's
- not (i.e., when the bracket expression is `[]' so
- far), the ']' character bit gets set way below. */
- if (c == ']' && p != p1 + 1)
- break;
-
- /* Look ahead to see if it's a range when the last thing
- was a character class. */
- if (had_char_class && c == '-' && *p != ']')
- FREE_STACK_RETURN (REG_ERANGE);
-
- /* Look ahead to see if it's a range when the last thing
- was a character: if this is a hyphen not at the
- beginning or the end of a list, then it's the range
- operator. */
- if (c == '-'
- && !(p - 2 >= pattern && p[-2] == '[')
- && !(p - 3 >= pattern && p[-3] == '[' && p[-2] == '^')
- && *p != ']')
- {
- reg_errcode_t ret
- = compile_range (&p, pend, translate, syntax, b);
- if (ret != REG_NOERROR) FREE_STACK_RETURN (ret);
- }
-
- else if (p[0] == '-' && p[1] != ']')
- { /* This handles ranges made up of characters only. */
- reg_errcode_t ret;
-
- /* Move past the `-'. */
- PATFETCH (c1);
-
- ret = compile_range (&p, pend, translate, syntax, b);
- if (ret != REG_NOERROR) FREE_STACK_RETURN (ret);
- }
-
- /* See if we're at the beginning of a possible character
- class. */
-
- else if (syntax & RE_CHAR_CLASSES && c == '[' && *p == ':')
- { /* Leave room for the null. */
- char str[CHAR_CLASS_MAX_LENGTH + 1];
-
- PATFETCH (c);
- c1 = 0;
-
- /* If pattern is `[[:'. */
- if (p == pend) FREE_STACK_RETURN (REG_EBRACK);
-
- for (;;)
- {
- PATFETCH (c);
- if ((c == ':' && *p == ']') || p == pend
- || c1 == CHAR_CLASS_MAX_LENGTH)
- break;
- str[c1++] = c;
- }
- str[c1] = '\0';
-
- /* If isn't a word bracketed by `[:' and `:]':
- undo the ending character, the letters, and leave
- the leading `:' and `[' (but set bits for them). */
- if (c == ':' && *p == ']')
- {
-/* CYGNUS LOCAL: Skip this code if we don't have btowc(). btowc() is */
-/* defined in the 1994 Amendment 1 to ISO C and may not be present on */
-/* systems where we have wchar.h and wctype.h. */
-#if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H && defined HAVE_BTOWC)
- boolean is_lower = STREQ (str, "lower");
- boolean is_upper = STREQ (str, "upper");
- wctype_t wt;
- int ch;
-
- wt = IS_CHAR_CLASS (str);
- if (wt == 0)
- FREE_STACK_RETURN (REG_ECTYPE);
-
- /* Throw away the ] at the end of the character
- class. */
- PATFETCH (c);
-
- if (p == pend) FREE_STACK_RETURN (REG_EBRACK);
-
- for (ch = 0; ch < 1 << BYTEWIDTH; ++ch)
- {
-# ifdef _LIBC
- if (__iswctype (__btowc (ch), wt))
- SET_LIST_BIT (ch);
-#else
- if (iswctype (btowc (ch), wt))
- SET_LIST_BIT (ch);
-#endif
-
- if (translate && (is_upper || is_lower)
- && (ISUPPER (ch) || ISLOWER (ch)))
- SET_LIST_BIT (ch);
- }
-
- had_char_class = true;
-#else
- int ch;
- boolean is_alnum = STREQ (str, "alnum");
- boolean is_alpha = STREQ (str, "alpha");
- boolean is_blank = STREQ (str, "blank");
- boolean is_cntrl = STREQ (str, "cntrl");
- boolean is_digit = STREQ (str, "digit");
- boolean is_graph = STREQ (str, "graph");
- boolean is_lower = STREQ (str, "lower");
- boolean is_print = STREQ (str, "print");
- boolean is_punct = STREQ (str, "punct");
- boolean is_space = STREQ (str, "space");
- boolean is_upper = STREQ (str, "upper");
- boolean is_xdigit = STREQ (str, "xdigit");
-
- if (!IS_CHAR_CLASS (str))
- FREE_STACK_RETURN (REG_ECTYPE);
-
- /* Throw away the ] at the end of the character
- class. */
- PATFETCH (c);
-
- if (p == pend) FREE_STACK_RETURN (REG_EBRACK);
-
- for (ch = 0; ch < 1 << BYTEWIDTH; ch++)
- {
- /* This was split into 3 if's to
- avoid an arbitrary limit in some compiler. */
- if ( (is_alnum && ISALNUM (ch))
- || (is_alpha && ISALPHA (ch))
- || (is_blank && ISBLANK (ch))
- || (is_cntrl && ISCNTRL (ch)))
- SET_LIST_BIT (ch);
- if ( (is_digit && ISDIGIT (ch))
- || (is_graph && ISGRAPH (ch))
- || (is_lower && ISLOWER (ch))
- || (is_print && ISPRINT (ch)))
- SET_LIST_BIT (ch);
- if ( (is_punct && ISPUNCT (ch))
- || (is_space && ISSPACE (ch))
- || (is_upper && ISUPPER (ch))
- || (is_xdigit && ISXDIGIT (ch)))
- SET_LIST_BIT (ch);
- if ( translate && (is_upper || is_lower)
- && (ISUPPER (ch) || ISLOWER (ch)))
- SET_LIST_BIT (ch);
- }
- had_char_class = true;
-#endif /* libc || wctype.h */
- }
- else
- {
- c1++;
- while (c1--)
- PATUNFETCH;
- SET_LIST_BIT ('[');
- SET_LIST_BIT (':');
- had_char_class = false;
- }
- }
- else
- {
- had_char_class = false;
- SET_LIST_BIT (c);
- }
- }
-
- /* Discard any (non)matching list bytes that are all 0 at the
- end of the map. Decrease the map-length byte too. */
- while ((int) b[-1] > 0 && b[b[-1] - 1] == 0)
- b[-1]--;
- b += b[-1];
- }
- break;
-
-
- case '(':
- if (syntax & RE_NO_BK_PARENS)
- goto handle_open;
- else
- goto normal_char;
-
-
- case ')':
- if (syntax & RE_NO_BK_PARENS)
- goto handle_close;
- else
- goto normal_char;
-
-
- case '\n':
- if (syntax & RE_NEWLINE_ALT)
- goto handle_alt;
- else
- goto normal_char;
-
-
- case '|':
- if (syntax & RE_NO_BK_VBAR)
- goto handle_alt;
- else
- goto normal_char;
-
-
- case '{':
- if (syntax & RE_INTERVALS && syntax & RE_NO_BK_BRACES)
- goto handle_interval;
- else
- goto normal_char;
-
-
- case '\\':
- if (p == pend) FREE_STACK_RETURN (REG_EESCAPE);
-
- /* Do not translate the character after the \, so that we can
- distinguish, e.g., \B from \b, even if we normally would
- translate, e.g., B to b. */
- PATFETCH_RAW (c);
-
- switch (c)
- {
- case '(':
- if (syntax & RE_NO_BK_PARENS)
- goto normal_backslash;
-
- handle_open:
- bufp->re_nsub++;
- regnum++;
-
- if (COMPILE_STACK_FULL)
- {
- RETALLOC (compile_stack.stack, compile_stack.size << 1,
- compile_stack_elt_t);
- if (compile_stack.stack == NULL) return REG_ESPACE;
-
- compile_stack.size <<= 1;
- }
-
- /* These are the values to restore when we hit end of this
- group. They are all relative offsets, so that if the
- whole pattern moves because of realloc, they will still
- be valid. */
- COMPILE_STACK_TOP.begalt_offset = begalt - bufp->buffer;
- COMPILE_STACK_TOP.fixup_alt_jump
- = fixup_alt_jump ? fixup_alt_jump - bufp->buffer + 1 : 0;
- COMPILE_STACK_TOP.laststart_offset = b - bufp->buffer;
- COMPILE_STACK_TOP.regnum = regnum;
-
- /* We will eventually replace the 0 with the number of
- groups inner to this one. But do not push a
- start_memory for groups beyond the last one we can
- represent in the compiled pattern. */
- if (regnum <= MAX_REGNUM)
- {
- COMPILE_STACK_TOP.inner_group_offset = b - bufp->buffer + 2;
- BUF_PUSH_3 (start_memory, regnum, 0);
- }
-
- compile_stack.avail++;
-
- fixup_alt_jump = 0;
- laststart = 0;
- begalt = b;
- /* If we've reached MAX_REGNUM groups, then this open
- won't actually generate any code, so we'll have to
- clear pending_exact explicitly. */
- pending_exact = 0;
- break;
-
-
- case ')':
- if (syntax & RE_NO_BK_PARENS) goto normal_backslash;
-
- if (COMPILE_STACK_EMPTY)
- {
- if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)
- goto normal_backslash;
- else
- FREE_STACK_RETURN (REG_ERPAREN);
- }
-
- handle_close:
- if (fixup_alt_jump)
- { /* Push a dummy failure point at the end of the
- alternative for a possible future
- `pop_failure_jump' to pop. See comments at
- `push_dummy_failure' in `re_match_2'. */
- BUF_PUSH (push_dummy_failure);
-
- /* We allocated space for this jump when we assigned
- to `fixup_alt_jump', in the `handle_alt' case below. */
- STORE_JUMP (jump_past_alt, fixup_alt_jump, b - 1);
- }
-
- /* See similar code for backslashed left paren above. */
- if (COMPILE_STACK_EMPTY)
- {
- if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)
- goto normal_char;
- else
- FREE_STACK_RETURN (REG_ERPAREN);
- }
-
- /* Since we just checked for an empty stack above, this
- ``can't happen''. */
- assert (compile_stack.avail != 0);
- {
- /* We don't just want to restore into `regnum', because
- later groups should continue to be numbered higher,
- as in `(ab)c(de)' -- the second group is #2. */
- regnum_t this_group_regnum;
-
- compile_stack.avail--;
- begalt = bufp->buffer + COMPILE_STACK_TOP.begalt_offset;
- fixup_alt_jump
- = COMPILE_STACK_TOP.fixup_alt_jump
- ? bufp->buffer + COMPILE_STACK_TOP.fixup_alt_jump - 1
- : 0;
- laststart = bufp->buffer + COMPILE_STACK_TOP.laststart_offset;
- this_group_regnum = COMPILE_STACK_TOP.regnum;
- /* If we've reached MAX_REGNUM groups, then this open
- won't actually generate any code, so we'll have to
- clear pending_exact explicitly. */
- pending_exact = 0;
-
- /* We're at the end of the group, so now we know how many
- groups were inside this one. */
- if (this_group_regnum <= MAX_REGNUM)
- {
- unsigned char *inner_group_loc
- = bufp->buffer + COMPILE_STACK_TOP.inner_group_offset;
-
- *inner_group_loc = regnum - this_group_regnum;
- BUF_PUSH_3 (stop_memory, this_group_regnum,
- regnum - this_group_regnum);
- }
- }
- break;
-
-
- case '|': /* `\|'. */
- if (syntax & RE_LIMITED_OPS || syntax & RE_NO_BK_VBAR)
- goto normal_backslash;
- handle_alt:
- if (syntax & RE_LIMITED_OPS)
- goto normal_char;
-
- /* Insert before the previous alternative a jump which
- jumps to this alternative if the former fails. */
- GET_BUFFER_SPACE (3);
- INSERT_JUMP (on_failure_jump, begalt, b + 6);
- pending_exact = 0;
- b += 3;
-
- /* The alternative before this one has a jump after it
- which gets executed if it gets matched. Adjust that
- jump so it will jump to this alternative's analogous
- jump (put in below, which in turn will jump to the next
- (if any) alternative's such jump, etc.). The last such
- jump jumps to the correct final destination. A picture:
- _____ _____
- | | | |
- | v | v
- a | b | c
-
- If we are at `b', then fixup_alt_jump right now points to a
- three-byte space after `a'. We'll put in the jump, set
- fixup_alt_jump to right after `b', and leave behind three
- bytes which we'll fill in when we get to after `c'. */
-
- if (fixup_alt_jump)
- STORE_JUMP (jump_past_alt, fixup_alt_jump, b);
-
- /* Mark and leave space for a jump after this alternative,
- to be filled in later either by next alternative or
- when know we're at the end of a series of alternatives. */
- fixup_alt_jump = b;
- GET_BUFFER_SPACE (3);
- b += 3;
-
- laststart = 0;
- begalt = b;
- break;
-
-
- case '{':
- /* If \{ is a literal. */
- if (!(syntax & RE_INTERVALS)
- /* If we're at `\{' and it's not the open-interval
- operator. */
- || ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES))
- || (p - 2 == pattern && p == pend))
- goto normal_backslash;
-
- handle_interval:
- {
- /* If got here, then the syntax allows intervals. */
-
- /* At least (most) this many matches must be made. */
- int lower_bound = -1, upper_bound = -1;
-
- beg_interval = p - 1;
-
- if (p == pend)
- {
- if (syntax & RE_NO_BK_BRACES)
- goto unfetch_interval;
- else
- FREE_STACK_RETURN (REG_EBRACE);
- }
-
- GET_UNSIGNED_NUMBER (lower_bound);
-
- if (c == ',')
- {
- GET_UNSIGNED_NUMBER (upper_bound);
- if (upper_bound < 0) upper_bound = RE_DUP_MAX;
- }
- else
- /* Interval such as `{1}' => match exactly once. */
- upper_bound = lower_bound;
-
- if (lower_bound < 0 || upper_bound > RE_DUP_MAX
- || lower_bound > upper_bound)
- {
- if (syntax & RE_NO_BK_BRACES)
- goto unfetch_interval;
- else
- FREE_STACK_RETURN (REG_BADBR);
- }
-
- if (!(syntax & RE_NO_BK_BRACES))
- {
- if (c != '\\') FREE_STACK_RETURN (REG_EBRACE);
-
- PATFETCH (c);
- }
-
- if (c != '}')
- {
- if (syntax & RE_NO_BK_BRACES)
- goto unfetch_interval;
- else
- FREE_STACK_RETURN (REG_BADBR);
- }
-
- /* We just parsed a valid interval. */
-
- /* If it's invalid to have no preceding re. */
- if (!laststart)
- {
- if (syntax & RE_CONTEXT_INVALID_OPS)
- FREE_STACK_RETURN (REG_BADRPT);
- else if (syntax & RE_CONTEXT_INDEP_OPS)
- laststart = b;
- else
- goto unfetch_interval;
- }
-
- /* If the upper bound is zero, don't want to succeed at
- all; jump from `laststart' to `b + 3', which will be
- the end of the buffer after we insert the jump. */
- if (upper_bound == 0)
- {
- GET_BUFFER_SPACE (3);
- INSERT_JUMP (jump, laststart, b + 3);
- b += 3;
- }
-
- /* Otherwise, we have a nontrivial interval. When
- we're all done, the pattern will look like:
- set_number_at <jump count> <upper bound>
- set_number_at <succeed_n count> <lower bound>
- succeed_n <after jump addr> <succeed_n count>
- <body of loop>
- jump_n <succeed_n addr> <jump count>
- (The upper bound and `jump_n' are omitted if
- `upper_bound' is 1, though.) */
- else
- { /* If the upper bound is > 1, we need to insert
- more at the end of the loop. */
- unsigned nbytes = 10 + (upper_bound > 1) * 10;
-
- GET_BUFFER_SPACE (nbytes);
-
- /* Initialize lower bound of the `succeed_n', even
- though it will be set during matching by its
- attendant `set_number_at' (inserted next),
- because `re_compile_fastmap' needs to know.
- Jump to the `jump_n' we might insert below. */
- INSERT_JUMP2 (succeed_n, laststart,
- b + 5 + (upper_bound > 1) * 5,
- lower_bound);
- b += 5;
-
- /* Code to initialize the lower bound. Insert
- before the `succeed_n'. The `5' is the last two
- bytes of this `set_number_at', plus 3 bytes of
- the following `succeed_n'. */
- insert_op2 (set_number_at, laststart, 5, lower_bound, b);
- b += 5;
-
- if (upper_bound > 1)
- { /* More than one repetition is allowed, so
- append a backward jump to the `succeed_n'
- that starts this interval.
-
- When we've reached this during matching,
- we'll have matched the interval once, so
- jump back only `upper_bound - 1' times. */
- STORE_JUMP2 (jump_n, b, laststart + 5,
- upper_bound - 1);
- b += 5;
-
- /* The location we want to set is the second
- parameter of the `jump_n'; that is `b-2' as
- an absolute address. `laststart' will be
- the `set_number_at' we're about to insert;
- `laststart+3' the number to set, the source
- for the relative address. But we are
- inserting into the middle of the pattern --
- so everything is getting moved up by 5.
- Conclusion: (b - 2) - (laststart + 3) + 5,
- i.e., b - laststart.
-
- We insert this at the beginning of the loop
- so that if we fail during matching, we'll
- reinitialize the bounds. */
- insert_op2 (set_number_at, laststart, b - laststart,
- upper_bound - 1, b);
- b += 5;
- }
- }
- pending_exact = 0;
- beg_interval = NULL;
- }
- break;
-
- unfetch_interval:
- /* If an invalid interval, match the characters as literals. */
- assert (beg_interval);
- p = beg_interval;
- beg_interval = NULL;
-
- /* normal_char and normal_backslash need `c'. */
- PATFETCH (c);
-
- if (!(syntax & RE_NO_BK_BRACES))
- {
- if (p > pattern && p[-1] == '\\')
- goto normal_backslash;
- }
- goto normal_char;
-
-#ifdef emacs
- /* There is no way to specify the before_dot and after_dot
- operators. rms says this is ok. --karl */
- case '=':
- BUF_PUSH (at_dot);
- break;
-
- case 's':
- laststart = b;
- PATFETCH (c);
- BUF_PUSH_2 (syntaxspec, syntax_spec_code[c]);
- break;
-
- case 'S':
- laststart = b;
- PATFETCH (c);
- BUF_PUSH_2 (notsyntaxspec, syntax_spec_code[c]);
- break;
-#endif /* emacs */
-
-
- case 'w':
- if (syntax & RE_NO_GNU_OPS)
- goto normal_char;
- laststart = b;
- BUF_PUSH (wordchar);
- break;
-
-
- case 'W':
- if (syntax & RE_NO_GNU_OPS)
- goto normal_char;
- laststart = b;
- BUF_PUSH (notwordchar);
- break;
-
-
- case '<':
- if (syntax & RE_NO_GNU_OPS)
- goto normal_char;
- BUF_PUSH (wordbeg);
- break;
-
- case '>':
- if (syntax & RE_NO_GNU_OPS)
- goto normal_char;
- BUF_PUSH (wordend);
- break;
-
- case 'b':
- if (syntax & RE_NO_GNU_OPS)
- goto normal_char;
- BUF_PUSH (wordbound);
- break;
-
- case 'B':
- if (syntax & RE_NO_GNU_OPS)
- goto normal_char;
- BUF_PUSH (notwordbound);
- break;
-
- case '`':
- if (syntax & RE_NO_GNU_OPS)
- goto normal_char;
- BUF_PUSH (begbuf);
- break;
-
- case '\'':
- if (syntax & RE_NO_GNU_OPS)
- goto normal_char;
- BUF_PUSH (endbuf);
- break;
-
- case '1': case '2': case '3': case '4': case '5':
- case '6': case '7': case '8': case '9':
- if (syntax & RE_NO_BK_REFS)
- goto normal_char;
-
- c1 = c - '0';
-
- if (c1 > regnum)
- FREE_STACK_RETURN (REG_ESUBREG);
-
- /* Can't back reference to a subexpression if inside of it. */
- if (group_in_compile_stack (compile_stack, (regnum_t) c1))
- goto normal_char;
-
- laststart = b;
- BUF_PUSH_2 (duplicate, c1);
- break;
-
-
- case '+':
- case '?':
- if (syntax & RE_BK_PLUS_QM)
- goto handle_plus;
- else
- goto normal_backslash;
-
- default:
- normal_backslash:
- /* You might think it would be useful for \ to mean
- not to translate; but if we don't translate it
- it will never match anything. */
- c = TRANSLATE (c);
- goto normal_char;
- }
- break;
-
-
- default:
- /* Expects the character in `c'. */
- normal_char:
- /* If no exactn currently being built. */
- if (!pending_exact
-
- /* If last exactn not at current position. */
- || pending_exact + *pending_exact + 1 != b
-
- /* We have only one byte following the exactn for the count. */
- || *pending_exact == (1 << BYTEWIDTH) - 1
-
- /* If followed by a repetition operator. */
- || *p == '*' || *p == '^'
- || ((syntax & RE_BK_PLUS_QM)
- ? *p == '\\' && (p[1] == '+' || p[1] == '?')
- : (*p == '+' || *p == '?'))
- || ((syntax & RE_INTERVALS)
- && ((syntax & RE_NO_BK_BRACES)
- ? *p == '{'
- : (p[0] == '\\' && p[1] == '{'))))
- {
- /* Start building a new exactn. */
-
- laststart = b;
-
- BUF_PUSH_2 (exactn, 0);
- pending_exact = b - 1;
- }
-
- BUF_PUSH (c);
- (*pending_exact)++;
- break;
- } /* switch (c) */
- } /* while p != pend */
-
-
- /* Through the pattern now. */
-
- if (fixup_alt_jump)
- STORE_JUMP (jump_past_alt, fixup_alt_jump, b);
-
- if (!COMPILE_STACK_EMPTY)
- FREE_STACK_RETURN (REG_EPAREN);
-
- /* If we don't want backtracking, force success
- the first time we reach the end of the compiled pattern. */
- if (syntax & RE_NO_POSIX_BACKTRACKING)
- BUF_PUSH (succeed);
-
- free (compile_stack.stack);
-
- /* We have succeeded; set the length of the buffer. */
- bufp->used = b - bufp->buffer;
-
-#ifdef DEBUG
- if (debug)
- {
- DEBUG_PRINT1 ("\nCompiled pattern: \n");
- print_compiled_pattern (bufp);
- }
-#endif /* DEBUG */
-
-#ifndef MATCH_MAY_ALLOCATE
- /* Initialize the failure stack to the largest possible stack. This
- isn't necessary unless we're trying to avoid calling alloca in
- the search and match routines. */
- {
- int num_regs = bufp->re_nsub + 1;
-
- /* Since DOUBLE_FAIL_STACK refuses to double only if the current size
- is strictly greater than re_max_failures, the largest possible stack
- is 2 * re_max_failures failure points. */
- if (fail_stack.size < (2 * re_max_failures * MAX_FAILURE_ITEMS))
- {
- fail_stack.size = (2 * re_max_failures * MAX_FAILURE_ITEMS);
-
-# ifdef emacs
- if (! fail_stack.stack)
- fail_stack.stack
- = (fail_stack_elt_t *) xmalloc (fail_stack.size
- * sizeof (fail_stack_elt_t));
- else
- fail_stack.stack
- = (fail_stack_elt_t *) xrealloc (fail_stack.stack,
- (fail_stack.size
- * sizeof (fail_stack_elt_t)));
-# else /* not emacs */
- if (! fail_stack.stack)
- fail_stack.stack
- = (fail_stack_elt_t *) malloc (fail_stack.size
- * sizeof (fail_stack_elt_t));
- else
- fail_stack.stack
- = (fail_stack_elt_t *) realloc (fail_stack.stack,
- (fail_stack.size
- * sizeof (fail_stack_elt_t)));
-# endif /* not emacs */
- }
-
- regex_grow_registers (num_regs);
- }
-#endif /* not MATCH_MAY_ALLOCATE */
-
- return REG_NOERROR;
-} /* regex_compile */
-
-/* Subroutines for `regex_compile'. */
-
-/* Store OP at LOC followed by two-byte integer parameter ARG. */
-
-static void
-store_op1 (op, loc, arg)
- re_opcode_t op;
- unsigned char *loc;
- int arg;
-{
- *loc = (unsigned char) op;
- STORE_NUMBER (loc + 1, arg);
-}
-
-
-/* Like `store_op1', but for two two-byte parameters ARG1 and ARG2. */
-
-static void
-store_op2 (op, loc, arg1, arg2)
- re_opcode_t op;
- unsigned char *loc;
- int arg1, arg2;
-{
- *loc = (unsigned char) op;
- STORE_NUMBER (loc + 1, arg1);
- STORE_NUMBER (loc + 3, arg2);
-}
-
-
-/* Copy the bytes from LOC to END to open up three bytes of space at LOC
- for OP followed by two-byte integer parameter ARG. */
-
-static void
-insert_op1 (op, loc, arg, end)
- re_opcode_t op;
- unsigned char *loc;
- int arg;
- unsigned char *end;
-{
- register unsigned char *pfrom = end;
- register unsigned char *pto = end + 3;
-
- while (pfrom != loc)
- *--pto = *--pfrom;
-
- store_op1 (op, loc, arg);
-}
-
-
-/* Like `insert_op1', but for two two-byte parameters ARG1 and ARG2. */
-
-static void
-insert_op2 (op, loc, arg1, arg2, end)
- re_opcode_t op;
- unsigned char *loc;
- int arg1, arg2;
- unsigned char *end;
-{
- register unsigned char *pfrom = end;
- register unsigned char *pto = end + 5;
-
- while (pfrom != loc)
- *--pto = *--pfrom;
-
- store_op2 (op, loc, arg1, arg2);
-}
-
-
-/* P points to just after a ^ in PATTERN. Return true if that ^ comes
- after an alternative or a begin-subexpression. We assume there is at
- least one character before the ^. */
-
-static boolean
-at_begline_loc_p (pattern, p, syntax)
- const char *pattern, *p;
- reg_syntax_t syntax;
-{
- const char *prev = p - 2;
- boolean prev_prev_backslash = prev > pattern && prev[-1] == '\\';
-
- return
- /* After a subexpression? */
- (*prev == '(' && (syntax & RE_NO_BK_PARENS || prev_prev_backslash))
- /* After an alternative? */
- || (*prev == '|' && (syntax & RE_NO_BK_VBAR || prev_prev_backslash));
-}
-
-
-/* The dual of at_begline_loc_p. This one is for $. We assume there is
- at least one character after the $, i.e., `P < PEND'. */
-
-static boolean
-at_endline_loc_p (p, pend, syntax)
- const char *p, *pend;
- reg_syntax_t syntax;
-{
- const char *next = p;
- boolean next_backslash = *next == '\\';
- const char *next_next = p + 1 < pend ? p + 1 : 0;
-
- return
- /* Before a subexpression? */
- (syntax & RE_NO_BK_PARENS ? *next == ')'
- : next_backslash && next_next && *next_next == ')')
- /* Before an alternative? */
- || (syntax & RE_NO_BK_VBAR ? *next == '|'
- : next_backslash && next_next && *next_next == '|');
-}
-
-
-/* Returns true if REGNUM is in one of COMPILE_STACK's elements and
- false if it's not. */
-
-static boolean
-group_in_compile_stack (compile_stack, regnum)
- compile_stack_type compile_stack;
- regnum_t regnum;
-{
- int this_element;
-
- for (this_element = compile_stack.avail - 1;
- this_element >= 0;
- this_element--)
- if (compile_stack.stack[this_element].regnum == regnum)
- return true;
-
- return false;
-}
-
-
-/* Read the ending character of a range (in a bracket expression) from the
- uncompiled pattern *P_PTR (which ends at PEND). We assume the
- starting character is in `P[-2]'. (`P[-1]' is the character `-'.)
- Then we set the translation of all bits between the starting and
- ending characters (inclusive) in the compiled pattern B.
-
- Return an error code.
-
- We use these short variable names so we can use the same macros as
- `regex_compile' itself. */
-
-static reg_errcode_t
-compile_range (p_ptr, pend, translate, syntax, b)
- const char **p_ptr, *pend;
- RE_TRANSLATE_TYPE translate;
- reg_syntax_t syntax;
- unsigned char *b;
-{
- unsigned this_char;
-
- const char *p = *p_ptr;
- unsigned int range_start, range_end;
-
- if (p == pend)
- return REG_ERANGE;
-
- /* Even though the pattern is a signed `char *', we need to fetch
- with unsigned char *'s; if the high bit of the pattern character
- is set, the range endpoints will be negative if we fetch using a
- signed char *.
-
- We also want to fetch the endpoints without translating them; the
- appropriate translation is done in the bit-setting loop below. */
- /* The SVR4 compiler on the 3B2 had trouble with unsigned const char *. */
- range_start = ((const unsigned char *) p)[-2];
- range_end = ((const unsigned char *) p)[0];
-
- /* Have to increment the pointer into the pattern string, so the
- caller isn't still at the ending character. */
- (*p_ptr)++;
-
- /* If the start is after the end, the range is empty. */
- if (range_start > range_end)
- return syntax & RE_NO_EMPTY_RANGES ? REG_ERANGE : REG_NOERROR;
-
- /* Here we see why `this_char' has to be larger than an `unsigned
- char' -- the range is inclusive, so if `range_end' == 0xff
- (assuming 8-bit characters), we would otherwise go into an infinite
- loop, since all characters <= 0xff. */
- for (this_char = range_start; this_char <= range_end; this_char++)
- {
- SET_LIST_BIT (TRANSLATE (this_char));
- }
-
- return REG_NOERROR;
-}
-
-/* re_compile_fastmap computes a ``fastmap'' for the compiled pattern in
- BUFP. A fastmap records which of the (1 << BYTEWIDTH) possible
- characters can start a string that matches the pattern. This fastmap
- is used by re_search to skip quickly over impossible starting points.
-
- The caller must supply the address of a (1 << BYTEWIDTH)-byte data
- area as BUFP->fastmap.
-
- We set the `fastmap', `fastmap_accurate', and `can_be_null' fields in
- the pattern buffer.
-
- Returns 0 if we succeed, -2 if an internal error. */
-
-int
-re_compile_fastmap (bufp)
- struct re_pattern_buffer *bufp;
-{
- int j, k;
-#ifdef MATCH_MAY_ALLOCATE
- fail_stack_type fail_stack;
-#endif
-#ifndef REGEX_MALLOC
- char *destination;
-#endif
-
- register char *fastmap = bufp->fastmap;
- unsigned char *pattern = bufp->buffer;
- unsigned char *p = pattern;
- register unsigned char *pend = pattern + bufp->used;
-
-#ifdef REL_ALLOC
- /* This holds the pointer to the failure stack, when
- it is allocated relocatably. */
- fail_stack_elt_t *failure_stack_ptr;
-#endif
-
- /* Assume that each path through the pattern can be null until
- proven otherwise. We set this false at the bottom of switch
- statement, to which we get only if a particular path doesn't
- match the empty string. */
- boolean path_can_be_null = true;
-
- /* We aren't doing a `succeed_n' to begin with. */
- boolean succeed_n_p = false;
-
- assert (fastmap != NULL && p != NULL);
-
- INIT_FAIL_STACK ();
- bzero (fastmap, 1 << BYTEWIDTH); /* Assume nothing's valid. */
- bufp->fastmap_accurate = 1; /* It will be when we're done. */
- bufp->can_be_null = 0;
-
- while (1)
- {
- if (p == pend || *p == succeed)
- {
- /* We have reached the (effective) end of pattern. */
- if (!FAIL_STACK_EMPTY ())
- {
- bufp->can_be_null |= path_can_be_null;
-
- /* Reset for next path. */
- path_can_be_null = true;
-
- p = fail_stack.stack[--fail_stack.avail].pointer;
-
- continue;
- }
- else
- break;
- }
-
- /* We should never be about to go beyond the end of the pattern. */
- assert (p < pend);
-
- switch (SWITCH_ENUM_CAST ((re_opcode_t) *p++))
- {
-
- /* I guess the idea here is to simply not bother with a fastmap
- if a backreference is used, since it's too hard to figure out
- the fastmap for the corresponding group. Setting
- `can_be_null' stops `re_search_2' from using the fastmap, so
- that is all we do. */
- case duplicate:
- bufp->can_be_null = 1;
- goto done;
-
-
- /* Following are the cases which match a character. These end
- with `break'. */
-
- case exactn:
- fastmap[p[1]] = 1;
- break;
-
-
- case charset:
- for (j = *p++ * BYTEWIDTH - 1; j >= 0; j--)
- if (p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH)))
- fastmap[j] = 1;
- break;
-
-
- case charset_not:
- /* Chars beyond end of map must be allowed. */
- for (j = *p * BYTEWIDTH; j < (1 << BYTEWIDTH); j++)
- fastmap[j] = 1;
-
- for (j = *p++ * BYTEWIDTH - 1; j >= 0; j--)
- if (!(p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH))))
- fastmap[j] = 1;
- break;
-
-
- case wordchar:
- for (j = 0; j < (1 << BYTEWIDTH); j++)
- if (SYNTAX (j) == Sword)
- fastmap[j] = 1;
- break;
-
-
- case notwordchar:
- for (j = 0; j < (1 << BYTEWIDTH); j++)
- if (SYNTAX (j) != Sword)
- fastmap[j] = 1;
- break;
-
-
- case anychar:
- {
- int fastmap_newline = fastmap['\n'];
-
- /* `.' matches anything ... */
- for (j = 0; j < (1 << BYTEWIDTH); j++)
- fastmap[j] = 1;
-
- /* ... except perhaps newline. */
- if (!(bufp->syntax & RE_DOT_NEWLINE))
- fastmap['\n'] = fastmap_newline;
-
- /* Return if we have already set `can_be_null'; if we have,
- then the fastmap is irrelevant. Something's wrong here. */
- else if (bufp->can_be_null)
- goto done;
-
- /* Otherwise, have to check alternative paths. */
- break;
- }
-
-#ifdef emacs
- case syntaxspec:
- k = *p++;
- for (j = 0; j < (1 << BYTEWIDTH); j++)
- if (SYNTAX (j) == (enum syntaxcode) k)
- fastmap[j] = 1;
- break;
-
-
- case notsyntaxspec:
- k = *p++;
- for (j = 0; j < (1 << BYTEWIDTH); j++)
- if (SYNTAX (j) != (enum syntaxcode) k)
- fastmap[j] = 1;
- break;
-
-
- /* All cases after this match the empty string. These end with
- `continue'. */
-
-
- case before_dot:
- case at_dot:
- case after_dot:
- continue;
-#endif /* emacs */
-
-
- case no_op:
- case begline:
- case endline:
- case begbuf:
- case endbuf:
- case wordbound:
- case notwordbound:
- case wordbeg:
- case wordend:
- case push_dummy_failure:
- continue;
-
-
- case jump_n:
- case pop_failure_jump:
- case maybe_pop_jump:
- case jump:
- case jump_past_alt:
- case dummy_failure_jump:
- EXTRACT_NUMBER_AND_INCR (j, p);
- p += j;
- if (j > 0)
- continue;
-
- /* Jump backward implies we just went through the body of a
- loop and matched nothing. Opcode jumped to should be
- `on_failure_jump' or `succeed_n'. Just treat it like an
- ordinary jump. For a * loop, it has pushed its failure
- point already; if so, discard that as redundant. */
- if ((re_opcode_t) *p != on_failure_jump
- && (re_opcode_t) *p != succeed_n)
- continue;
-
- p++;
- EXTRACT_NUMBER_AND_INCR (j, p);
- p += j;
-
- /* If what's on the stack is where we are now, pop it. */
- if (!FAIL_STACK_EMPTY ()
- && fail_stack.stack[fail_stack.avail - 1].pointer == p)
- fail_stack.avail--;
-
- continue;
-
-
- case on_failure_jump:
- case on_failure_keep_string_jump:
- handle_on_failure_jump:
- EXTRACT_NUMBER_AND_INCR (j, p);
-
- /* For some patterns, e.g., `(a?)?', `p+j' here points to the
- end of the pattern. We don't want to push such a point,
- since when we restore it above, entering the switch will
- increment `p' past the end of the pattern. We don't need
- to push such a point since we obviously won't find any more
- fastmap entries beyond `pend'. Such a pattern can match
- the null string, though. */
- if (p + j < pend)
- {
- if (!PUSH_PATTERN_OP (p + j, fail_stack))
- {
- RESET_FAIL_STACK ();
- return -2;
- }
- }
- else
- bufp->can_be_null = 1;
-
- if (succeed_n_p)
- {
- EXTRACT_NUMBER_AND_INCR (k, p); /* Skip the n. */
- succeed_n_p = false;
- }
-
- continue;
-
-
- case succeed_n:
- /* Get to the number of times to succeed. */
- p += 2;
-
- /* Increment p past the n for when k != 0. */
- EXTRACT_NUMBER_AND_INCR (k, p);
- if (k == 0)
- {
- p -= 4;
- succeed_n_p = true; /* Spaghetti code alert. */
- goto handle_on_failure_jump;
- }
- continue;
-
-
- case set_number_at:
- p += 4;
- continue;
-
-
- case start_memory:
- case stop_memory:
- p += 2;
- continue;
-
-
- default:
- abort (); /* We have listed all the cases. */
- } /* switch *p++ */
-
- /* Getting here means we have found the possible starting
- characters for one path of the pattern -- and that the empty
- string does not match. We need not follow this path further.
- Instead, look at the next alternative (remembered on the
- stack), or quit if no more. The test at the top of the loop
- does these things. */
- path_can_be_null = false;
- p = pend;
- } /* while p */
-
- /* Set `can_be_null' for the last path (also the first path, if the
- pattern is empty). */
- bufp->can_be_null |= path_can_be_null;
-
- done:
- RESET_FAIL_STACK ();
- return 0;
-} /* re_compile_fastmap */
-#ifdef _LIBC
-weak_alias (__re_compile_fastmap, re_compile_fastmap)
-#endif
-
-/* Set REGS to hold NUM_REGS registers, storing them in STARTS and
- ENDS. Subsequent matches using PATTERN_BUFFER and REGS will use
- this memory for recording register information. STARTS and ENDS
- must be allocated using the malloc library routine, and must each
- be at least NUM_REGS * sizeof (regoff_t) bytes long.
-
- If NUM_REGS == 0, then subsequent matches should allocate their own
- register data.
-
- Unless this function is called, the first search or match using
- PATTERN_BUFFER will allocate its own register data, without
- freeing the old data. */
-
-void
-re_set_registers (bufp, regs, num_regs, starts, ends)
- struct re_pattern_buffer *bufp;
- struct re_registers *regs;
- unsigned num_regs;
- regoff_t *starts, *ends;
-{
- if (num_regs)
- {
- bufp->regs_allocated = REGS_REALLOCATE;
- regs->num_regs = num_regs;
- regs->start = starts;
- regs->end = ends;
- }
- else
- {
- bufp->regs_allocated = REGS_UNALLOCATED;
- regs->num_regs = 0;
- regs->start = regs->end = (regoff_t *) 0;
- }
-}
-#ifdef _LIBC
-weak_alias (__re_set_registers, re_set_registers)
-#endif
-
-/* Searching routines. */
-
-/* Like re_search_2, below, but only one string is specified, and
- doesn't let you say where to stop matching. */
-
-int
-re_search (bufp, string, size, startpos, range, regs)
- struct re_pattern_buffer *bufp;
- const char *string;
- int size, startpos, range;
- struct re_registers *regs;
-{
- return re_search_2 (bufp, NULL, 0, string, size, startpos, range,
- regs, size);
-}
-#ifdef _LIBC
-weak_alias (__re_search, re_search)
-#endif
-
-
-/* Using the compiled pattern in BUFP->buffer, first tries to match the
- virtual concatenation of STRING1 and STRING2, starting first at index
- STARTPOS, then at STARTPOS + 1, and so on.
-
- STRING1 and STRING2 have length SIZE1 and SIZE2, respectively.
-
- RANGE is how far to scan while trying to match. RANGE = 0 means try
- only at STARTPOS; in general, the last start tried is STARTPOS +
- RANGE.
-
- In REGS, return the indices of the virtual concatenation of STRING1
- and STRING2 that matched the entire BUFP->buffer and its contained
- subexpressions.
-
- Do not consider matching one past the index STOP in the virtual
- concatenation of STRING1 and STRING2.
-
- We return either the position in the strings at which the match was
- found, -1 if no match, or -2 if error (such as failure
- stack overflow). */
-
-int
-re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop)
- struct re_pattern_buffer *bufp;
- const char *string1, *string2;
- int size1, size2;
- int startpos;
- int range;
- struct re_registers *regs;
- int stop;
-{
- int val;
- register char *fastmap = bufp->fastmap;
- register RE_TRANSLATE_TYPE translate = bufp->translate;
- int total_size = size1 + size2;
- int endpos = startpos + range;
-
- /* Check for out-of-range STARTPOS. */
- if (startpos < 0 || startpos > total_size)
- return -1;
-
- /* Fix up RANGE if it might eventually take us outside
- the virtual concatenation of STRING1 and STRING2.
- Make sure we won't move STARTPOS below 0 or above TOTAL_SIZE. */
- if (endpos < 0)
- range = 0 - startpos;
- else if (endpos > total_size)
- range = total_size - startpos;
-
- /* If the search isn't to be a backwards one, don't waste time in a
- search for a pattern that must be anchored. */
- if (bufp->used > 0 && (re_opcode_t) bufp->buffer[0] == begbuf && range > 0)
- {
- if (startpos > 0)
- return -1;
- else
- range = 1;
- }
-
-#ifdef emacs
- /* In a forward search for something that starts with \=.
- don't keep searching past point. */
- if (bufp->used > 0 && (re_opcode_t) bufp->buffer[0] == at_dot && range > 0)
- {
- range = PT - startpos;
- if (range <= 0)
- return -1;
- }
-#endif /* emacs */
-
- /* Update the fastmap now if not correct already. */
- if (fastmap && !bufp->fastmap_accurate)
- if (re_compile_fastmap (bufp) == -2)
- return -2;
-
- /* Loop through the string, looking for a place to start matching. */
- for (;;)
- {
- /* If a fastmap is supplied, skip quickly over characters that
- cannot be the start of a match. If the pattern can match the
- null string, however, we don't need to skip characters; we want
- the first null string. */
- if (fastmap && startpos < total_size && !bufp->can_be_null)
- {
- if (range > 0) /* Searching forwards. */
- {
- register const char *d;
- register int lim = 0;
- int irange = range;
-
- if (startpos < size1 && startpos + range >= size1)
- lim = range - (size1 - startpos);
-
- d = (startpos >= size1 ? string2 - size1 : string1) + startpos;
-
- /* Written out as an if-else to avoid testing `translate'
- inside the loop. */
- if (translate)
- while (range > lim
- && !fastmap[(unsigned char)
- translate[(unsigned char) *d++]])
- range--;
- else
- while (range > lim && !fastmap[(unsigned char) *d++])
- range--;
-
- startpos += irange - range;
- }
- else /* Searching backwards. */
- {
- register char c = (size1 == 0 || startpos >= size1
- ? string2[startpos - size1]
- : string1[startpos]);
-
- if (!fastmap[(unsigned char) TRANSLATE (c)])
- goto advance;
- }
- }
-
- /* If can't match the null string, and that's all we have left, fail. */
- if (range >= 0 && startpos == total_size && fastmap
- && !bufp->can_be_null)
- return -1;
-
- val = re_match_2_internal (bufp, string1, size1, string2, size2,
- startpos, regs, stop);
-#ifndef REGEX_MALLOC
-# ifdef C_ALLOCA
- alloca (0);
-# endif
-#endif
-
- if (val >= 0)
- return startpos;
-
- if (val == -2)
- return -2;
-
- advance:
- if (!range)
- break;
- else if (range > 0)
- {
- range--;
- startpos++;
- }
- else
- {
- range++;
- startpos--;
- }
- }
- return -1;
-} /* re_search_2 */
-#ifdef _LIBC
-weak_alias (__re_search_2, re_search_2)
-#endif
-
-/* This converts PTR, a pointer into one of the search strings `string1'
- and `string2' into an offset from the beginning of that string. */
-#define POINTER_TO_OFFSET(ptr) \
- (FIRST_STRING_P (ptr) \
- ? ((regoff_t) ((ptr) - string1)) \
- : ((regoff_t) ((ptr) - string2 + size1)))
-
-/* Macros for dealing with the split strings in re_match_2. */
-
-#define MATCHING_IN_FIRST_STRING (dend == end_match_1)
-
-/* Call before fetching a character with *d. This switches over to
- string2 if necessary. */
-#define PREFETCH() \
- while (d == dend) \
- { \
- /* End of string2 => fail. */ \
- if (dend == end_match_2) \
- goto fail; \
- /* End of string1 => advance to string2. */ \
- d = string2; \
- dend = end_match_2; \
- }
-
-
-/* Test if at very beginning or at very end of the virtual concatenation
- of `string1' and `string2'. If only one string, it's `string2'. */
-#define AT_STRINGS_BEG(d) ((d) == (size1 ? string1 : string2) || !size2)
-#define AT_STRINGS_END(d) ((d) == end2)
-
-
-/* Test if D points to a character which is word-constituent. We have
- two special cases to check for: if past the end of string1, look at
- the first character in string2; and if before the beginning of
- string2, look at the last character in string1. */
-#define WORDCHAR_P(d) \
- (SYNTAX ((d) == end1 ? *string2 \
- : (d) == string2 - 1 ? *(end1 - 1) : *(d)) \
- == Sword)
-
-/* Disabled due to a compiler bug -- see comment at case wordbound */
-#if 0
-/* Test if the character before D and the one at D differ with respect
- to being word-constituent. */
-#define AT_WORD_BOUNDARY(d) \
- (AT_STRINGS_BEG (d) || AT_STRINGS_END (d) \
- || WORDCHAR_P (d - 1) != WORDCHAR_P (d))
-#endif
-
-/* Free everything we malloc. */
-#ifdef MATCH_MAY_ALLOCATE
-# define FREE_VAR(var) if (var) REGEX_FREE (var); var = NULL
-# define FREE_VARIABLES() \
- do { \
- REGEX_FREE_STACK (fail_stack.stack); \
- FREE_VAR (regstart); \
- FREE_VAR (regend); \
- FREE_VAR (old_regstart); \
- FREE_VAR (old_regend); \
- FREE_VAR (best_regstart); \
- FREE_VAR (best_regend); \
- FREE_VAR (reg_info); \
- FREE_VAR (reg_dummy); \
- FREE_VAR (reg_info_dummy); \
- } while (0)
-#else
-# define FREE_VARIABLES() ((void)0) /* Do nothing! But inhibit gcc warning. */
-#endif /* not MATCH_MAY_ALLOCATE */
-
-/* These values must meet several constraints. They must not be valid
- register values; since we have a limit of 255 registers (because
- we use only one byte in the pattern for the register number), we can
- use numbers larger than 255. They must differ by 1, because of
- NUM_FAILURE_ITEMS above. And the value for the lowest register must
- be larger than the value for the highest register, so we do not try
- to actually save any registers when none are active. */
-#define NO_HIGHEST_ACTIVE_REG (1 << BYTEWIDTH)
-#define NO_LOWEST_ACTIVE_REG (NO_HIGHEST_ACTIVE_REG + 1)
-
-/* Matching routines. */
-
-#ifndef emacs /* Emacs never uses this. */
-/* re_match is like re_match_2 except it takes only a single string. */
-
-int
-re_match (bufp, string, size, pos, regs)
- struct re_pattern_buffer *bufp;
- const char *string;
- int size, pos;
- struct re_registers *regs;
-{
- int result = re_match_2_internal (bufp, NULL, 0, string, size,
- pos, regs, size);
-# ifndef REGEX_MALLOC
-# ifdef C_ALLOCA
- alloca (0);
-# endif
-# endif
- return result;
-}
-# ifdef _LIBC
-weak_alias (__re_match, re_match)
-# endif
-#endif /* not emacs */
-
-static boolean group_match_null_string_p _RE_ARGS ((unsigned char **p,
- unsigned char *end,
- register_info_type *reg_info));
-static boolean alt_match_null_string_p _RE_ARGS ((unsigned char *p,
- unsigned char *end,
- register_info_type *reg_info));
-static boolean common_op_match_null_string_p _RE_ARGS ((unsigned char **p,
- unsigned char *end,
- register_info_type *reg_info));
-static int bcmp_translate _RE_ARGS ((const char *s1, const char *s2,
- int len, char *translate));
-
-/* re_match_2 matches the compiled pattern in BUFP against the
- the (virtual) concatenation of STRING1 and STRING2 (of length SIZE1
- and SIZE2, respectively). We start matching at POS, and stop
- matching at STOP.
-
- If REGS is non-null and the `no_sub' field of BUFP is nonzero, we
- store offsets for the substring each group matched in REGS. See the
- documentation for exactly how many groups we fill.
-
- We return -1 if no match, -2 if an internal error (such as the
- failure stack overflowing). Otherwise, we return the length of the
- matched substring. */
-
-int
-re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop)
- struct re_pattern_buffer *bufp;
- const char *string1, *string2;
- int size1, size2;
- int pos;
- struct re_registers *regs;
- int stop;
-{
- int result = re_match_2_internal (bufp, string1, size1, string2, size2,
- pos, regs, stop);
-#ifndef REGEX_MALLOC
-# ifdef C_ALLOCA
- alloca (0);
-# endif
-#endif
- return result;
-}
-#ifdef _LIBC
-weak_alias (__re_match_2, re_match_2)
-#endif
-
-/* This is a separate function so that we can force an alloca cleanup
- afterwards. */
-static int
-re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
- struct re_pattern_buffer *bufp;
- const char *string1, *string2;
- int size1, size2;
- int pos;
- struct re_registers *regs;
- int stop;
-{
- /* General temporaries. */
- int mcnt;
- unsigned char *p1;
-
- /* Just past the end of the corresponding string. */
- const char *end1, *end2;
-
- /* Pointers into string1 and string2, just past the last characters in
- each to consider matching. */
- const char *end_match_1, *end_match_2;
-
- /* Where we are in the data, and the end of the current string. */
- const char *d, *dend;
-
- /* Where we are in the pattern, and the end of the pattern. */
- unsigned char *p = bufp->buffer;
- register unsigned char *pend = p + bufp->used;
-
- /* Mark the opcode just after a start_memory, so we can test for an
- empty subpattern when we get to the stop_memory. */
- unsigned char *just_past_start_mem = 0;
-
- /* We use this to map every character in the string. */
- RE_TRANSLATE_TYPE translate = bufp->translate;
-
- /* Failure point stack. Each place that can handle a failure further
- down the line pushes a failure point on this stack. It consists of
- restart, regend, and reg_info for all registers corresponding to
- the subexpressions we're currently inside, plus the number of such
- registers, and, finally, two char *'s. The first char * is where
- to resume scanning the pattern; the second one is where to resume
- scanning the strings. If the latter is zero, the failure point is
- a ``dummy''; if a failure happens and the failure point is a dummy,
- it gets discarded and the next next one is tried. */
-#ifdef MATCH_MAY_ALLOCATE /* otherwise, this is global. */
- fail_stack_type fail_stack;
-#endif
-#ifdef DEBUG
- static unsigned failure_id = 0;
- unsigned nfailure_points_pushed = 0, nfailure_points_popped = 0;
-#endif
-
-#ifdef REL_ALLOC
- /* This holds the pointer to the failure stack, when
- it is allocated relocatably. */
- fail_stack_elt_t *failure_stack_ptr;
-#endif
-
- /* We fill all the registers internally, independent of what we
- return, for use in backreferences. The number here includes
- an element for register zero. */
- size_t num_regs = bufp->re_nsub + 1;
-
- /* The currently active registers. */
- active_reg_t lowest_active_reg = NO_LOWEST_ACTIVE_REG;
- active_reg_t highest_active_reg = NO_HIGHEST_ACTIVE_REG;
-
- /* Information on the contents of registers. These are pointers into
- the input strings; they record just what was matched (on this
- attempt) by a subexpression part of the pattern, that is, the
- regnum-th regstart pointer points to where in the pattern we began
- matching and the regnum-th regend points to right after where we
- stopped matching the regnum-th subexpression. (The zeroth register
- keeps track of what the whole pattern matches.) */
-#ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global. */
- const char **regstart, **regend;
-#endif
-
- /* If a group that's operated upon by a repetition operator fails to
- match anything, then the register for its start will need to be
- restored because it will have been set to wherever in the string we
- are when we last see its open-group operator. Similarly for a
- register's end. */
-#ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global. */
- const char **old_regstart, **old_regend;
-#endif
-
- /* The is_active field of reg_info helps us keep track of which (possibly
- nested) subexpressions we are currently in. The matched_something
- field of reg_info[reg_num] helps us tell whether or not we have
- matched any of the pattern so far this time through the reg_num-th
- subexpression. These two fields get reset each time through any
- loop their register is in. */
-#ifdef MATCH_MAY_ALLOCATE /* otherwise, this is global. */
- register_info_type *reg_info;
-#endif
-
- /* The following record the register info as found in the above
- variables when we find a match better than any we've seen before.
- This happens as we backtrack through the failure points, which in
- turn happens only if we have not yet matched the entire string. */
- unsigned best_regs_set = false;
-#ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global. */
- const char **best_regstart, **best_regend;
-#endif
-
- /* Logically, this is `best_regend[0]'. But we don't want to have to
- allocate space for that if we're not allocating space for anything
- else (see below). Also, we never need info about register 0 for
- any of the other register vectors, and it seems rather a kludge to
- treat `best_regend' differently than the rest. So we keep track of
- the end of the best match so far in a separate variable. We
- initialize this to NULL so that when we backtrack the first time
- and need to test it, it's not garbage. */
- const char *match_end = NULL;
-
- /* This helps SET_REGS_MATCHED avoid doing redundant work. */
- int set_regs_matched_done = 0;
-
- /* Used when we pop values we don't care about. */
-#ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global. */
- const char **reg_dummy;
- register_info_type *reg_info_dummy;
-#endif
-
-#ifdef DEBUG
- /* Counts the total number of registers pushed. */
- unsigned num_regs_pushed = 0;
-#endif
-
- DEBUG_PRINT1 ("\n\nEntering re_match_2.\n");
-
- INIT_FAIL_STACK ();
-
-#ifdef MATCH_MAY_ALLOCATE
- /* Do not bother to initialize all the register variables if there are
- no groups in the pattern, as it takes a fair amount of time. If
- there are groups, we include space for register 0 (the whole
- pattern), even though we never use it, since it simplifies the
- array indexing. We should fix this. */
- if (bufp->re_nsub)
- {
- regstart = REGEX_TALLOC (num_regs, const char *);
- regend = REGEX_TALLOC (num_regs, const char *);
- old_regstart = REGEX_TALLOC (num_regs, const char *);
- old_regend = REGEX_TALLOC (num_regs, const char *);
- best_regstart = REGEX_TALLOC (num_regs, const char *);
- best_regend = REGEX_TALLOC (num_regs, const char *);
- reg_info = REGEX_TALLOC (num_regs, register_info_type);
- reg_dummy = REGEX_TALLOC (num_regs, const char *);
- reg_info_dummy = REGEX_TALLOC (num_regs, register_info_type);
-
- if (!(regstart && regend && old_regstart && old_regend && reg_info
- && best_regstart && best_regend && reg_dummy && reg_info_dummy))
- {
- FREE_VARIABLES ();
- return -2;
- }
- }
- else
- {
- /* We must initialize all our variables to NULL, so that
- `FREE_VARIABLES' doesn't try to free them. */
- regstart = regend = old_regstart = old_regend = best_regstart
- = best_regend = reg_dummy = NULL;
- reg_info = reg_info_dummy = (register_info_type *) NULL;
- }
-#endif /* MATCH_MAY_ALLOCATE */
-
- /* The starting position is bogus. */
- if (pos < 0 || pos > size1 + size2)
- {
- FREE_VARIABLES ();
- return -1;
- }
-
- /* Initialize subexpression text positions to -1 to mark ones that no
- start_memory/stop_memory has been seen for. Also initialize the
- register information struct. */
- for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++)
- {
- regstart[mcnt] = regend[mcnt]
- = old_regstart[mcnt] = old_regend[mcnt] = REG_UNSET_VALUE;
-
- REG_MATCH_NULL_STRING_P (reg_info[mcnt]) = MATCH_NULL_UNSET_VALUE;
- IS_ACTIVE (reg_info[mcnt]) = 0;
- MATCHED_SOMETHING (reg_info[mcnt]) = 0;
- EVER_MATCHED_SOMETHING (reg_info[mcnt]) = 0;
- }
-
- /* We move `string1' into `string2' if the latter's empty -- but not if
- `string1' is null. */
- if (size2 == 0 && string1 != NULL)
- {
- string2 = string1;
- size2 = size1;
- string1 = 0;
- size1 = 0;
- }
- end1 = string1 + size1;
- end2 = string2 + size2;
-
- /* Compute where to stop matching, within the two strings. */
- if (stop <= size1)
- {
- end_match_1 = string1 + stop;
- end_match_2 = string2;
- }
- else
- {
- end_match_1 = end1;
- end_match_2 = string2 + stop - size1;
- }
-
- /* `p' scans through the pattern as `d' scans through the data.
- `dend' is the end of the input string that `d' points within. `d'
- is advanced into the following input string whenever necessary, but
- this happens before fetching; therefore, at the beginning of the
- loop, `d' can be pointing at the end of a string, but it cannot
- equal `string2'. */
- if (size1 > 0 && pos <= size1)
- {
- d = string1 + pos;
- dend = end_match_1;
- }
- else
- {
- d = string2 + pos - size1;
- dend = end_match_2;
- }
-
- DEBUG_PRINT1 ("The compiled pattern is:\n");
- DEBUG_PRINT_COMPILED_PATTERN (bufp, p, pend);
- DEBUG_PRINT1 ("The string to match is: `");
- DEBUG_PRINT_DOUBLE_STRING (d, string1, size1, string2, size2);
- DEBUG_PRINT1 ("'\n");
-
- /* This loops over pattern commands. It exits by returning from the
- function if the match is complete, or it drops through if the match
- fails at this starting point in the input data. */
- for (;;)
- {
-#ifdef _LIBC
- DEBUG_PRINT2 ("\n%p: ", p);
-#else
- DEBUG_PRINT2 ("\n0x%x: ", p);
-#endif
-
- if (p == pend)
- { /* End of pattern means we might have succeeded. */
- DEBUG_PRINT1 ("end of pattern ... ");
-
- /* If we haven't matched the entire string, and we want the
- longest match, try backtracking. */
- if (d != end_match_2)
- {
- /* 1 if this match ends in the same string (string1 or string2)
- as the best previous match. */
- boolean same_str_p = (FIRST_STRING_P (match_end)
- == MATCHING_IN_FIRST_STRING);
- /* 1 if this match is the best seen so far. */
- boolean best_match_p;
-
- /* AIX compiler got confused when this was combined
- with the previous declaration. */
- if (same_str_p)
- best_match_p = d > match_end;
- else
- best_match_p = !MATCHING_IN_FIRST_STRING;
-
- DEBUG_PRINT1 ("backtracking.\n");
-
- if (!FAIL_STACK_EMPTY ())
- { /* More failure points to try. */
-
- /* If exceeds best match so far, save it. */
- if (!best_regs_set || best_match_p)
- {
- best_regs_set = true;
- match_end = d;
-
- DEBUG_PRINT1 ("\nSAVING match as best so far.\n");
-
- for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++)
- {
- best_regstart[mcnt] = regstart[mcnt];
- best_regend[mcnt] = regend[mcnt];
- }
- }
- goto fail;
- }
-
- /* If no failure points, don't restore garbage. And if
- last match is real best match, don't restore second
- best one. */
- else if (best_regs_set && !best_match_p)
- {
- restore_best_regs:
- /* Restore best match. It may happen that `dend ==
- end_match_1' while the restored d is in string2.
- For example, the pattern `x.*y.*z' against the
- strings `x-' and `y-z-', if the two strings are
- not consecutive in memory. */
- DEBUG_PRINT1 ("Restoring best registers.\n");
-
- d = match_end;
- dend = ((d >= string1 && d <= end1)
- ? end_match_1 : end_match_2);
-
- for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++)
- {
- regstart[mcnt] = best_regstart[mcnt];
- regend[mcnt] = best_regend[mcnt];
- }
- }
- } /* d != end_match_2 */
-
- succeed_label:
- DEBUG_PRINT1 ("Accepting match.\n");
-
- /* If caller wants register contents data back, do it. */
- if (regs && !bufp->no_sub)
- {
- /* Have the register data arrays been allocated? */
- if (bufp->regs_allocated == REGS_UNALLOCATED)
- { /* No. So allocate them with malloc. We need one
- extra element beyond `num_regs' for the `-1' marker
- GNU code uses. */
- regs->num_regs = MAX (RE_NREGS, num_regs + 1);
- regs->start = TALLOC (regs->num_regs, regoff_t);
- regs->end = TALLOC (regs->num_regs, regoff_t);
- if (regs->start == NULL || regs->end == NULL)
- {
- FREE_VARIABLES ();
- return -2;
- }
- bufp->regs_allocated = REGS_REALLOCATE;
- }
- else if (bufp->regs_allocated == REGS_REALLOCATE)
- { /* Yes. If we need more elements than were already
- allocated, reallocate them. If we need fewer, just
- leave it alone. */
- if (regs->num_regs < num_regs + 1)
- {
- regs->num_regs = num_regs + 1;
- RETALLOC (regs->start, regs->num_regs, regoff_t);
- RETALLOC (regs->end, regs->num_regs, regoff_t);
- if (regs->start == NULL || regs->end == NULL)
- {
- FREE_VARIABLES ();
- return -2;
- }
- }
- }
- else
- {
- /* These braces fend off a "empty body in an else-statement"
- warning under GCC when assert expands to nothing. */
- assert (bufp->regs_allocated == REGS_FIXED);
- }
-
- /* Convert the pointer data in `regstart' and `regend' to
- indices. Register zero has to be set differently,
- since we haven't kept track of any info for it. */
- if (regs->num_regs > 0)
- {
- regs->start[0] = pos;
- regs->end[0] = (MATCHING_IN_FIRST_STRING
- ? ((regoff_t) (d - string1))
- : ((regoff_t) (d - string2 + size1)));
- }
-
- /* Go through the first `min (num_regs, regs->num_regs)'
- registers, since that is all we initialized. */
- for (mcnt = 1; (unsigned) mcnt < MIN (num_regs, regs->num_regs);
- mcnt++)
- {
- if (REG_UNSET (regstart[mcnt]) || REG_UNSET (regend[mcnt]))
- regs->start[mcnt] = regs->end[mcnt] = -1;
- else
- {
- regs->start[mcnt]
- = (regoff_t) POINTER_TO_OFFSET (regstart[mcnt]);
- regs->end[mcnt]
- = (regoff_t) POINTER_TO_OFFSET (regend[mcnt]);
- }
- }
-
- /* If the regs structure we return has more elements than
- were in the pattern, set the extra elements to -1. If
- we (re)allocated the registers, this is the case,
- because we always allocate enough to have at least one
- -1 at the end. */
- for (mcnt = num_regs; (unsigned) mcnt < regs->num_regs; mcnt++)
- regs->start[mcnt] = regs->end[mcnt] = -1;
- } /* regs && !bufp->no_sub */
-
- DEBUG_PRINT4 ("%u failure points pushed, %u popped (%u remain).\n",
- nfailure_points_pushed, nfailure_points_popped,
- nfailure_points_pushed - nfailure_points_popped);
- DEBUG_PRINT2 ("%u registers pushed.\n", num_regs_pushed);
-
- mcnt = d - pos - (MATCHING_IN_FIRST_STRING
- ? string1
- : string2 - size1);
-
- DEBUG_PRINT2 ("Returning %d from re_match_2.\n", mcnt);
-
- FREE_VARIABLES ();
- return mcnt;
- }
-
- /* Otherwise match next pattern command. */
- switch (SWITCH_ENUM_CAST ((re_opcode_t) *p++))
- {
- /* Ignore these. Used to ignore the n of succeed_n's which
- currently have n == 0. */
- case no_op:
- DEBUG_PRINT1 ("EXECUTING no_op.\n");
- break;
-
- case succeed:
- DEBUG_PRINT1 ("EXECUTING succeed.\n");
- goto succeed_label;
-
- /* Match the next n pattern characters exactly. The following
- byte in the pattern defines n, and the n bytes after that
- are the characters to match. */
- case exactn:
- mcnt = *p++;
- DEBUG_PRINT2 ("EXECUTING exactn %d.\n", mcnt);
-
- /* This is written out as an if-else so we don't waste time
- testing `translate' inside the loop. */
- if (translate)
- {
- do
- {
- PREFETCH ();
- if ((unsigned char) translate[(unsigned char) *d++]
- != (unsigned char) *p++)
- goto fail;
- }
- while (--mcnt);
- }
- else
- {
- do
- {
- PREFETCH ();
- if (*d++ != (char) *p++) goto fail;
- }
- while (--mcnt);
- }
- SET_REGS_MATCHED ();
- break;
-
-
- /* Match any character except possibly a newline or a null. */
- case anychar:
- DEBUG_PRINT1 ("EXECUTING anychar.\n");
-
- PREFETCH ();
-
- if ((!(bufp->syntax & RE_DOT_NEWLINE) && TRANSLATE (*d) == '\n')
- || (bufp->syntax & RE_DOT_NOT_NULL && TRANSLATE (*d) == '\000'))
- goto fail;
-
- SET_REGS_MATCHED ();
- DEBUG_PRINT2 (" Matched `%d'.\n", *d);
- d++;
- break;
-
-
- case charset:
- case charset_not:
- {
- register unsigned char c;
- boolean not = (re_opcode_t) *(p - 1) == charset_not;
-
- DEBUG_PRINT2 ("EXECUTING charset%s.\n", not ? "_not" : "");
-
- PREFETCH ();
- c = TRANSLATE (*d); /* The character to match. */
-
- /* Cast to `unsigned' instead of `unsigned char' in case the
- bit list is a full 32 bytes long. */
- if (c < (unsigned) (*p * BYTEWIDTH)
- && p[1 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH)))
- not = !not;
-
- p += 1 + *p;
-
- if (!not) goto fail;
-
- SET_REGS_MATCHED ();
- d++;
- break;
- }
-
-
- /* The beginning of a group is represented by start_memory.
- The arguments are the register number in the next byte, and the
- number of groups inner to this one in the next. The text
- matched within the group is recorded (in the internal
- registers data structure) under the register number. */
- case start_memory:
- DEBUG_PRINT3 ("EXECUTING start_memory %d (%d):\n", *p, p[1]);
-
- /* Find out if this group can match the empty string. */
- p1 = p; /* To send to group_match_null_string_p. */
-
- if (REG_MATCH_NULL_STRING_P (reg_info[*p]) == MATCH_NULL_UNSET_VALUE)
- REG_MATCH_NULL_STRING_P (reg_info[*p])
- = group_match_null_string_p (&p1, pend, reg_info);
-
- /* Save the position in the string where we were the last time
- we were at this open-group operator in case the group is
- operated upon by a repetition operator, e.g., with `(a*)*b'
- against `ab'; then we want to ignore where we are now in
- the string in case this attempt to match fails. */
- old_regstart[*p] = REG_MATCH_NULL_STRING_P (reg_info[*p])
- ? REG_UNSET (regstart[*p]) ? d : regstart[*p]
- : regstart[*p];
- DEBUG_PRINT2 (" old_regstart: %d\n",
- POINTER_TO_OFFSET (old_regstart[*p]));
-
- regstart[*p] = d;
- DEBUG_PRINT2 (" regstart: %d\n", POINTER_TO_OFFSET (regstart[*p]));
-
- IS_ACTIVE (reg_info[*p]) = 1;
- MATCHED_SOMETHING (reg_info[*p]) = 0;
-
- /* Clear this whenever we change the register activity status. */
- set_regs_matched_done = 0;
-
- /* This is the new highest active register. */
- highest_active_reg = *p;
-
- /* If nothing was active before, this is the new lowest active
- register. */
- if (lowest_active_reg == NO_LOWEST_ACTIVE_REG)
- lowest_active_reg = *p;
-
- /* Move past the register number and inner group count. */
- p += 2;
- just_past_start_mem = p;
-
- break;
-
-
- /* The stop_memory opcode represents the end of a group. Its
- arguments are the same as start_memory's: the register
- number, and the number of inner groups. */
- case stop_memory:
- DEBUG_PRINT3 ("EXECUTING stop_memory %d (%d):\n", *p, p[1]);
-
- /* We need to save the string position the last time we were at
- this close-group operator in case the group is operated
- upon by a repetition operator, e.g., with `((a*)*(b*)*)*'
- against `aba'; then we want to ignore where we are now in
- the string in case this attempt to match fails. */
- old_regend[*p] = REG_MATCH_NULL_STRING_P (reg_info[*p])
- ? REG_UNSET (regend[*p]) ? d : regend[*p]
- : regend[*p];
- DEBUG_PRINT2 (" old_regend: %d\n",
- POINTER_TO_OFFSET (old_regend[*p]));
-
- regend[*p] = d;
- DEBUG_PRINT2 (" regend: %d\n", POINTER_TO_OFFSET (regend[*p]));
-
- /* This register isn't active anymore. */
- IS_ACTIVE (reg_info[*p]) = 0;
-
- /* Clear this whenever we change the register activity status. */
- set_regs_matched_done = 0;
-
- /* If this was the only register active, nothing is active
- anymore. */
- if (lowest_active_reg == highest_active_reg)
- {
- lowest_active_reg = NO_LOWEST_ACTIVE_REG;
- highest_active_reg = NO_HIGHEST_ACTIVE_REG;
- }
- else
- { /* We must scan for the new highest active register, since
- it isn't necessarily one less than now: consider
- (a(b)c(d(e)f)g). When group 3 ends, after the f), the
- new highest active register is 1. */
- unsigned char r = *p - 1;
- while (r > 0 && !IS_ACTIVE (reg_info[r]))
- r--;
-
- /* If we end up at register zero, that means that we saved
- the registers as the result of an `on_failure_jump', not
- a `start_memory', and we jumped to past the innermost
- `stop_memory'. For example, in ((.)*) we save
- registers 1 and 2 as a result of the *, but when we pop
- back to the second ), we are at the stop_memory 1.
- Thus, nothing is active. */
- if (r == 0)
- {
- lowest_active_reg = NO_LOWEST_ACTIVE_REG;
- highest_active_reg = NO_HIGHEST_ACTIVE_REG;
- }
- else
- highest_active_reg = r;
- }
-
- /* If just failed to match something this time around with a
- group that's operated on by a repetition operator, try to
- force exit from the ``loop'', and restore the register
- information for this group that we had before trying this
- last match. */
- if ((!MATCHED_SOMETHING (reg_info[*p])
- || just_past_start_mem == p - 1)
- && (p + 2) < pend)
- {
- boolean is_a_jump_n = false;
-
- p1 = p + 2;
- mcnt = 0;
- switch ((re_opcode_t) *p1++)
- {
- case jump_n:
- is_a_jump_n = true;
- case pop_failure_jump:
- case maybe_pop_jump:
- case jump:
- case dummy_failure_jump:
- EXTRACT_NUMBER_AND_INCR (mcnt, p1);
- if (is_a_jump_n)
- p1 += 2;
- break;
-
- default:
- /* do nothing */ ;
- }
- p1 += mcnt;
-
- /* If the next operation is a jump backwards in the pattern
- to an on_failure_jump right before the start_memory
- corresponding to this stop_memory, exit from the loop
- by forcing a failure after pushing on the stack the
- on_failure_jump's jump in the pattern, and d. */
- if (mcnt < 0 && (re_opcode_t) *p1 == on_failure_jump
- && (re_opcode_t) p1[3] == start_memory && p1[4] == *p)
- {
- /* If this group ever matched anything, then restore
- what its registers were before trying this last
- failed match, e.g., with `(a*)*b' against `ab' for
- regstart[1], and, e.g., with `((a*)*(b*)*)*'
- against `aba' for regend[3].
-
- Also restore the registers for inner groups for,
- e.g., `((a*)(b*))*' against `aba' (register 3 would
- otherwise get trashed). */
-
- if (EVER_MATCHED_SOMETHING (reg_info[*p]))
- {
- unsigned r;
-
- EVER_MATCHED_SOMETHING (reg_info[*p]) = 0;
-
- /* Restore this and inner groups' (if any) registers. */
- for (r = *p; r < (unsigned) *p + (unsigned) *(p + 1);
- r++)
- {
- regstart[r] = old_regstart[r];
-
- /* xx why this test? */
- if (old_regend[r] >= regstart[r])
- regend[r] = old_regend[r];
- }
- }
- p1++;
- EXTRACT_NUMBER_AND_INCR (mcnt, p1);
- PUSH_FAILURE_POINT (p1 + mcnt, d, -2);
-
- goto fail;
- }
- }
-
- /* Move past the register number and the inner group count. */
- p += 2;
- break;
-
-
- /* \<digit> has been turned into a `duplicate' command which is
- followed by the numeric value of <digit> as the register number. */
- case duplicate:
- {
- register const char *d2, *dend2;
- int regno = *p++; /* Get which register to match against. */
- DEBUG_PRINT2 ("EXECUTING duplicate %d.\n", regno);
-
- /* Can't back reference a group which we've never matched. */
- if (REG_UNSET (regstart[regno]) || REG_UNSET (regend[regno]))
- goto fail;
-
- /* Where in input to try to start matching. */
- d2 = regstart[regno];
-
- /* Where to stop matching; if both the place to start and
- the place to stop matching are in the same string, then
- set to the place to stop, otherwise, for now have to use
- the end of the first string. */
-
- dend2 = ((FIRST_STRING_P (regstart[regno])
- == FIRST_STRING_P (regend[regno]))
- ? regend[regno] : end_match_1);
- for (;;)
- {
- /* If necessary, advance to next segment in register
- contents. */
- while (d2 == dend2)
- {
- if (dend2 == end_match_2) break;
- if (dend2 == regend[regno]) break;
-
- /* End of string1 => advance to string2. */
- d2 = string2;
- dend2 = regend[regno];
- }
- /* At end of register contents => success */
- if (d2 == dend2) break;
-
- /* If necessary, advance to next segment in data. */
- PREFETCH ();
-
- /* How many characters left in this segment to match. */
- mcnt = dend - d;
-
- /* Want how many consecutive characters we can match in
- one shot, so, if necessary, adjust the count. */
- if (mcnt > dend2 - d2)
- mcnt = dend2 - d2;
-
- /* Compare that many; failure if mismatch, else move
- past them. */
- if (translate
- ? bcmp_translate (d, d2, mcnt, translate)
- : memcmp (d, d2, mcnt))
- goto fail;
- d += mcnt, d2 += mcnt;
-
- /* Do this because we've match some characters. */
- SET_REGS_MATCHED ();
- }
- }
- break;
-
-
- /* begline matches the empty string at the beginning of the string
- (unless `not_bol' is set in `bufp'), and, if
- `newline_anchor' is set, after newlines. */
- case begline:
- DEBUG_PRINT1 ("EXECUTING begline.\n");
-
- if (AT_STRINGS_BEG (d))
- {
- if (!bufp->not_bol) break;
- }
- else if (d[-1] == '\n' && bufp->newline_anchor)
- {
- break;
- }
- /* In all other cases, we fail. */
- goto fail;
-
-
- /* endline is the dual of begline. */
- case endline:
- DEBUG_PRINT1 ("EXECUTING endline.\n");
-
- if (AT_STRINGS_END (d))
- {
- if (!bufp->not_eol) break;
- }
-
- /* We have to ``prefetch'' the next character. */
- else if ((d == end1 ? *string2 : *d) == '\n'
- && bufp->newline_anchor)
- {
- break;
- }
- goto fail;
-
-
- /* Match at the very beginning of the data. */
- case begbuf:
- DEBUG_PRINT1 ("EXECUTING begbuf.\n");
- if (AT_STRINGS_BEG (d))
- break;
- goto fail;
-
-
- /* Match at the very end of the data. */
- case endbuf:
- DEBUG_PRINT1 ("EXECUTING endbuf.\n");
- if (AT_STRINGS_END (d))
- break;
- goto fail;
-
-
- /* on_failure_keep_string_jump is used to optimize `.*\n'. It
- pushes NULL as the value for the string on the stack. Then
- `pop_failure_point' will keep the current value for the
- string, instead of restoring it. To see why, consider
- matching `foo\nbar' against `.*\n'. The .* matches the foo;
- then the . fails against the \n. But the next thing we want
- to do is match the \n against the \n; if we restored the
- string value, we would be back at the foo.
-
- Because this is used only in specific cases, we don't need to
- check all the things that `on_failure_jump' does, to make
- sure the right things get saved on the stack. Hence we don't
- share its code. The only reason to push anything on the
- stack at all is that otherwise we would have to change
- `anychar's code to do something besides goto fail in this
- case; that seems worse than this. */
- case on_failure_keep_string_jump:
- DEBUG_PRINT1 ("EXECUTING on_failure_keep_string_jump");
-
- EXTRACT_NUMBER_AND_INCR (mcnt, p);
-#ifdef _LIBC
- DEBUG_PRINT3 (" %d (to %p):\n", mcnt, p + mcnt);
-#else
- DEBUG_PRINT3 (" %d (to 0x%x):\n", mcnt, p + mcnt);
-#endif
-
- PUSH_FAILURE_POINT (p + mcnt, NULL, -2);
- break;
-
-
- /* Uses of on_failure_jump:
-
- Each alternative starts with an on_failure_jump that points
- to the beginning of the next alternative. Each alternative
- except the last ends with a jump that in effect jumps past
- the rest of the alternatives. (They really jump to the
- ending jump of the following alternative, because tensioning
- these jumps is a hassle.)
-
- Repeats start with an on_failure_jump that points past both
- the repetition text and either the following jump or
- pop_failure_jump back to this on_failure_jump. */
- case on_failure_jump:
- on_failure:
- DEBUG_PRINT1 ("EXECUTING on_failure_jump");
-
- EXTRACT_NUMBER_AND_INCR (mcnt, p);
-#ifdef _LIBC
- DEBUG_PRINT3 (" %d (to %p)", mcnt, p + mcnt);
-#else
- DEBUG_PRINT3 (" %d (to 0x%x)", mcnt, p + mcnt);
-#endif
-
- /* If this on_failure_jump comes right before a group (i.e.,
- the original * applied to a group), save the information
- for that group and all inner ones, so that if we fail back
- to this point, the group's information will be correct.
- For example, in \(a*\)*\1, we need the preceding group,
- and in \(zz\(a*\)b*\)\2, we need the inner group. */
-
- /* We can't use `p' to check ahead because we push
- a failure point to `p + mcnt' after we do this. */
- p1 = p;
-
- /* We need to skip no_op's before we look for the
- start_memory in case this on_failure_jump is happening as
- the result of a completed succeed_n, as in \(a\)\{1,3\}b\1
- against aba. */
- while (p1 < pend && (re_opcode_t) *p1 == no_op)
- p1++;
-
- if (p1 < pend && (re_opcode_t) *p1 == start_memory)
- {
- /* We have a new highest active register now. This will
- get reset at the start_memory we are about to get to,
- but we will have saved all the registers relevant to
- this repetition op, as described above. */
- highest_active_reg = *(p1 + 1) + *(p1 + 2);
- if (lowest_active_reg == NO_LOWEST_ACTIVE_REG)
- lowest_active_reg = *(p1 + 1);
- }
-
- DEBUG_PRINT1 (":\n");
- PUSH_FAILURE_POINT (p + mcnt, d, -2);
- break;
-
-
- /* A smart repeat ends with `maybe_pop_jump'.
- We change it to either `pop_failure_jump' or `jump'. */
- case maybe_pop_jump:
- EXTRACT_NUMBER_AND_INCR (mcnt, p);
- DEBUG_PRINT2 ("EXECUTING maybe_pop_jump %d.\n", mcnt);
- {
- register unsigned char *p2 = p;
-
- /* Compare the beginning of the repeat with what in the
- pattern follows its end. If we can establish that there
- is nothing that they would both match, i.e., that we
- would have to backtrack because of (as in, e.g., `a*a')
- then we can change to pop_failure_jump, because we'll
- never have to backtrack.
-
- This is not true in the case of alternatives: in
- `(a|ab)*' we do need to backtrack to the `ab' alternative
- (e.g., if the string was `ab'). But instead of trying to
- detect that here, the alternative has put on a dummy
- failure point which is what we will end up popping. */
-
- /* Skip over open/close-group commands.
- If what follows this loop is a ...+ construct,
- look at what begins its body, since we will have to
- match at least one of that. */
- while (1)
- {
- if (p2 + 2 < pend
- && ((re_opcode_t) *p2 == stop_memory
- || (re_opcode_t) *p2 == start_memory))
- p2 += 3;
- else if (p2 + 6 < pend
- && (re_opcode_t) *p2 == dummy_failure_jump)
- p2 += 6;
- else
- break;
- }
-
- p1 = p + mcnt;
- /* p1[0] ... p1[2] are the `on_failure_jump' corresponding
- to the `maybe_finalize_jump' of this case. Examine what
- follows. */
-
- /* If we're at the end of the pattern, we can change. */
- if (p2 == pend)
- {
- /* Consider what happens when matching ":\(.*\)"
- against ":/". I don't really understand this code
- yet. */
- p[-3] = (unsigned char) pop_failure_jump;
- DEBUG_PRINT1
- (" End of pattern: change to `pop_failure_jump'.\n");
- }
-
- else if ((re_opcode_t) *p2 == exactn
- || (bufp->newline_anchor && (re_opcode_t) *p2 == endline))
- {
- register unsigned char c
- = *p2 == (unsigned char) endline ? '\n' : p2[2];
-
- if ((re_opcode_t) p1[3] == exactn && p1[5] != c)
- {
- p[-3] = (unsigned char) pop_failure_jump;
- DEBUG_PRINT3 (" %c != %c => pop_failure_jump.\n",
- c, p1[5]);
- }
-
- else if ((re_opcode_t) p1[3] == charset
- || (re_opcode_t) p1[3] == charset_not)
- {
- int not = (re_opcode_t) p1[3] == charset_not;
-
- if (c < (unsigned char) (p1[4] * BYTEWIDTH)
- && p1[5 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH)))
- not = !not;
-
- /* `not' is equal to 1 if c would match, which means
- that we can't change to pop_failure_jump. */
- if (!not)
- {
- p[-3] = (unsigned char) pop_failure_jump;
- DEBUG_PRINT1 (" No match => pop_failure_jump.\n");
- }
- }
- }
- else if ((re_opcode_t) *p2 == charset)
- {
-#ifdef DEBUG
- register unsigned char c
- = *p2 == (unsigned char) endline ? '\n' : p2[2];
-#endif
-
-#if 0
- if ((re_opcode_t) p1[3] == exactn
- && ! ((int) p2[1] * BYTEWIDTH > (int) p1[5]
- && (p2[2 + p1[5] / BYTEWIDTH]
- & (1 << (p1[5] % BYTEWIDTH)))))
-#else
- if ((re_opcode_t) p1[3] == exactn
- && ! ((int) p2[1] * BYTEWIDTH > (int) p1[4]
- && (p2[2 + p1[4] / BYTEWIDTH]
- & (1 << (p1[4] % BYTEWIDTH)))))
-#endif
- {
- p[-3] = (unsigned char) pop_failure_jump;
- DEBUG_PRINT3 (" %c != %c => pop_failure_jump.\n",
- c, p1[5]);
- }
-
- else if ((re_opcode_t) p1[3] == charset_not)
- {
- int idx;
- /* We win if the charset_not inside the loop
- lists every character listed in the charset after. */
- for (idx = 0; idx < (int) p2[1]; idx++)
- if (! (p2[2 + idx] == 0
- || (idx < (int) p1[4]
- && ((p2[2 + idx] & ~ p1[5 + idx]) == 0))))
- break;
-
- if (idx == p2[1])
- {
- p[-3] = (unsigned char) pop_failure_jump;
- DEBUG_PRINT1 (" No match => pop_failure_jump.\n");
- }
- }
- else if ((re_opcode_t) p1[3] == charset)
- {
- int idx;
- /* We win if the charset inside the loop
- has no overlap with the one after the loop. */
- for (idx = 0;
- idx < (int) p2[1] && idx < (int) p1[4];
- idx++)
- if ((p2[2 + idx] & p1[5 + idx]) != 0)
- break;
-
- if (idx == p2[1] || idx == p1[4])
- {
- p[-3] = (unsigned char) pop_failure_jump;
- DEBUG_PRINT1 (" No match => pop_failure_jump.\n");
- }
- }
- }
- }
- p -= 2; /* Point at relative address again. */
- if ((re_opcode_t) p[-1] != pop_failure_jump)
- {
- p[-1] = (unsigned char) jump;
- DEBUG_PRINT1 (" Match => jump.\n");
- goto unconditional_jump;
- }
- /* Note fall through. */
-
-
- /* The end of a simple repeat has a pop_failure_jump back to
- its matching on_failure_jump, where the latter will push a
- failure point. The pop_failure_jump takes off failure
- points put on by this pop_failure_jump's matching
- on_failure_jump; we got through the pattern to here from the
- matching on_failure_jump, so didn't fail. */
- case pop_failure_jump:
- {
- /* We need to pass separate storage for the lowest and
- highest registers, even though we don't care about the
- actual values. Otherwise, we will restore only one
- register from the stack, since lowest will == highest in
- `pop_failure_point'. */
- active_reg_t dummy_low_reg, dummy_high_reg;
- unsigned char *pdummy;
- const char *sdummy;
-
- DEBUG_PRINT1 ("EXECUTING pop_failure_jump.\n");
- POP_FAILURE_POINT (sdummy, pdummy,
- dummy_low_reg, dummy_high_reg,
- reg_dummy, reg_dummy, reg_info_dummy);
- }
- /* Note fall through. */
-
- unconditional_jump:
-#ifdef _LIBC
- DEBUG_PRINT2 ("\n%p: ", p);
-#else
- DEBUG_PRINT2 ("\n0x%x: ", p);
-#endif
- /* Note fall through. */
-
- /* Unconditionally jump (without popping any failure points). */
- case jump:
- EXTRACT_NUMBER_AND_INCR (mcnt, p); /* Get the amount to jump. */
- DEBUG_PRINT2 ("EXECUTING jump %d ", mcnt);
- p += mcnt; /* Do the jump. */
-#ifdef _LIBC
- DEBUG_PRINT2 ("(to %p).\n", p);
-#else
- DEBUG_PRINT2 ("(to 0x%x).\n", p);
-#endif
- break;
-
-
- /* We need this opcode so we can detect where alternatives end
- in `group_match_null_string_p' et al. */
- case jump_past_alt:
- DEBUG_PRINT1 ("EXECUTING jump_past_alt.\n");
- goto unconditional_jump;
-
-
- /* Normally, the on_failure_jump pushes a failure point, which
- then gets popped at pop_failure_jump. We will end up at
- pop_failure_jump, also, and with a pattern of, say, `a+', we
- are skipping over the on_failure_jump, so we have to push
- something meaningless for pop_failure_jump to pop. */
- case dummy_failure_jump:
- DEBUG_PRINT1 ("EXECUTING dummy_failure_jump.\n");
- /* It doesn't matter what we push for the string here. What
- the code at `fail' tests is the value for the pattern. */
- PUSH_FAILURE_POINT (NULL, NULL, -2);
- goto unconditional_jump;
-
-
- /* At the end of an alternative, we need to push a dummy failure
- point in case we are followed by a `pop_failure_jump', because
- we don't want the failure point for the alternative to be
- popped. For example, matching `(a|ab)*' against `aab'
- requires that we match the `ab' alternative. */
- case push_dummy_failure:
- DEBUG_PRINT1 ("EXECUTING push_dummy_failure.\n");
- /* See comments just above at `dummy_failure_jump' about the
- two zeroes. */
- PUSH_FAILURE_POINT (NULL, NULL, -2);
- break;
-
- /* Have to succeed matching what follows at least n times.
- After that, handle like `on_failure_jump'. */
- case succeed_n:
- EXTRACT_NUMBER (mcnt, p + 2);
- DEBUG_PRINT2 ("EXECUTING succeed_n %d.\n", mcnt);
-
- assert (mcnt >= 0);
- /* Originally, this is how many times we HAVE to succeed. */
- if (mcnt > 0)
- {
- mcnt--;
- p += 2;
- STORE_NUMBER_AND_INCR (p, mcnt);
-#ifdef _LIBC
- DEBUG_PRINT3 (" Setting %p to %d.\n", p - 2, mcnt);
-#else
- DEBUG_PRINT3 (" Setting 0x%x to %d.\n", p - 2, mcnt);
-#endif
- }
- else if (mcnt == 0)
- {
-#ifdef _LIBC
- DEBUG_PRINT2 (" Setting two bytes from %p to no_op.\n", p+2);
-#else
- DEBUG_PRINT2 (" Setting two bytes from 0x%x to no_op.\n", p+2);
-#endif
- p[2] = (unsigned char) no_op;
- p[3] = (unsigned char) no_op;
- goto on_failure;
- }
- break;
-
- case jump_n:
- EXTRACT_NUMBER (mcnt, p + 2);
- DEBUG_PRINT2 ("EXECUTING jump_n %d.\n", mcnt);
-
- /* Originally, this is how many times we CAN jump. */
- if (mcnt)
- {
- mcnt--;
- STORE_NUMBER (p + 2, mcnt);
-#ifdef _LIBC
- DEBUG_PRINT3 (" Setting %p to %d.\n", p + 2, mcnt);
-#else
- DEBUG_PRINT3 (" Setting 0x%x to %d.\n", p + 2, mcnt);
-#endif
- goto unconditional_jump;
- }
- /* If don't have to jump any more, skip over the rest of command. */
- else
- p += 4;
- break;
-
- case set_number_at:
- {
- DEBUG_PRINT1 ("EXECUTING set_number_at.\n");
-
- EXTRACT_NUMBER_AND_INCR (mcnt, p);
- p1 = p + mcnt;
- EXTRACT_NUMBER_AND_INCR (mcnt, p);
-#ifdef _LIBC
- DEBUG_PRINT3 (" Setting %p to %d.\n", p1, mcnt);
-#else
- DEBUG_PRINT3 (" Setting 0x%x to %d.\n", p1, mcnt);
-#endif
- STORE_NUMBER (p1, mcnt);
- break;
- }
-
-#if 0
- /* The DEC Alpha C compiler 3.x generates incorrect code for the
- test WORDCHAR_P (d - 1) != WORDCHAR_P (d) in the expansion of
- AT_WORD_BOUNDARY, so this code is disabled. Expanding the
- macro and introducing temporary variables works around the bug. */
-
- case wordbound:
- DEBUG_PRINT1 ("EXECUTING wordbound.\n");
- if (AT_WORD_BOUNDARY (d))
- break;
- goto fail;
-
- case notwordbound:
- DEBUG_PRINT1 ("EXECUTING notwordbound.\n");
- if (AT_WORD_BOUNDARY (d))
- goto fail;
- break;
-#else
- case wordbound:
- {
- boolean prevchar, thischar;
-
- DEBUG_PRINT1 ("EXECUTING wordbound.\n");
- if (AT_STRINGS_BEG (d) || AT_STRINGS_END (d))
- break;
-
- prevchar = WORDCHAR_P (d - 1);
- thischar = WORDCHAR_P (d);
- if (prevchar != thischar)
- break;
- goto fail;
- }
-
- case notwordbound:
- {
- boolean prevchar, thischar;
-
- DEBUG_PRINT1 ("EXECUTING notwordbound.\n");
- if (AT_STRINGS_BEG (d) || AT_STRINGS_END (d))
- goto fail;
-
- prevchar = WORDCHAR_P (d - 1);
- thischar = WORDCHAR_P (d);
- if (prevchar != thischar)
- goto fail;
- break;
- }
-#endif
-
- case wordbeg:
- DEBUG_PRINT1 ("EXECUTING wordbeg.\n");
- if (WORDCHAR_P (d) && (AT_STRINGS_BEG (d) || !WORDCHAR_P (d - 1)))
- break;
- goto fail;
-
- case wordend:
- DEBUG_PRINT1 ("EXECUTING wordend.\n");
- if (!AT_STRINGS_BEG (d) && WORDCHAR_P (d - 1)
- && (!WORDCHAR_P (d) || AT_STRINGS_END (d)))
- break;
- goto fail;
-
-#ifdef emacs
- case before_dot:
- DEBUG_PRINT1 ("EXECUTING before_dot.\n");
- if (PTR_CHAR_POS ((unsigned char *) d) >= point)
- goto fail;
- break;
-
- case at_dot:
- DEBUG_PRINT1 ("EXECUTING at_dot.\n");
- if (PTR_CHAR_POS ((unsigned char *) d) != point)
- goto fail;
- break;
-
- case after_dot:
- DEBUG_PRINT1 ("EXECUTING after_dot.\n");
- if (PTR_CHAR_POS ((unsigned char *) d) <= point)
- goto fail;
- break;
-
- case syntaxspec:
- DEBUG_PRINT2 ("EXECUTING syntaxspec %d.\n", mcnt);
- mcnt = *p++;
- goto matchsyntax;
-
- case wordchar:
- DEBUG_PRINT1 ("EXECUTING Emacs wordchar.\n");
- mcnt = (int) Sword;
- matchsyntax:
- PREFETCH ();
- /* Can't use *d++ here; SYNTAX may be an unsafe macro. */
- d++;
- if (SYNTAX (d[-1]) != (enum syntaxcode) mcnt)
- goto fail;
- SET_REGS_MATCHED ();
- break;
-
- case notsyntaxspec:
- DEBUG_PRINT2 ("EXECUTING notsyntaxspec %d.\n", mcnt);
- mcnt = *p++;
- goto matchnotsyntax;
-
- case notwordchar:
- DEBUG_PRINT1 ("EXECUTING Emacs notwordchar.\n");
- mcnt = (int) Sword;
- matchnotsyntax:
- PREFETCH ();
- /* Can't use *d++ here; SYNTAX may be an unsafe macro. */
- d++;
- if (SYNTAX (d[-1]) == (enum syntaxcode) mcnt)
- goto fail;
- SET_REGS_MATCHED ();
- break;
-
-#else /* not emacs */
- case wordchar:
- DEBUG_PRINT1 ("EXECUTING non-Emacs wordchar.\n");
- PREFETCH ();
- if (!WORDCHAR_P (d))
- goto fail;
- SET_REGS_MATCHED ();
- d++;
- break;
-
- case notwordchar:
- DEBUG_PRINT1 ("EXECUTING non-Emacs notwordchar.\n");
- PREFETCH ();
- if (WORDCHAR_P (d))
- goto fail;
- SET_REGS_MATCHED ();
- d++;
- break;
-#endif /* not emacs */
-
- default:
- abort ();
- }
- continue; /* Successfully executed one pattern command; keep going. */
-
-
- /* We goto here if a matching operation fails. */
- fail:
- if (!FAIL_STACK_EMPTY ())
- { /* A restart point is known. Restore to that state. */
- DEBUG_PRINT1 ("\nFAIL:\n");
- POP_FAILURE_POINT (d, p,
- lowest_active_reg, highest_active_reg,
- regstart, regend, reg_info);
-
- /* If this failure point is a dummy, try the next one. */
- if (!p)
- goto fail;
-
- /* If we failed to the end of the pattern, don't examine *p. */
- assert (p <= pend);
- if (p < pend)
- {
- boolean is_a_jump_n = false;
-
- /* If failed to a backwards jump that's part of a repetition
- loop, need to pop this failure point and use the next one. */
- switch ((re_opcode_t) *p)
- {
- case jump_n:
- is_a_jump_n = true;
- case maybe_pop_jump:
- case pop_failure_jump:
- case jump:
- p1 = p + 1;
- EXTRACT_NUMBER_AND_INCR (mcnt, p1);
- p1 += mcnt;
-
- if ((is_a_jump_n && (re_opcode_t) *p1 == succeed_n)
- || (!is_a_jump_n
- && (re_opcode_t) *p1 == on_failure_jump))
- goto fail;
- break;
- default:
- /* do nothing */ ;
- }
- }
-
- if (d >= string1 && d <= end1)
- dend = end_match_1;
- }
- else
- break; /* Matching at this starting point really fails. */
- } /* for (;;) */
-
- if (best_regs_set)
- goto restore_best_regs;
-
- FREE_VARIABLES ();
-
- return -1; /* Failure to match. */
-} /* re_match_2 */
-
-/* Subroutine definitions for re_match_2. */
-
-
-/* We are passed P pointing to a register number after a start_memory.
-
- Return true if the pattern up to the corresponding stop_memory can
- match the empty string, and false otherwise.
-
- If we find the matching stop_memory, sets P to point to one past its number.
- Otherwise, sets P to an undefined byte less than or equal to END.
-
- We don't handle duplicates properly (yet). */
-
-static boolean
-group_match_null_string_p (p, end, reg_info)
- unsigned char **p, *end;
- register_info_type *reg_info;
-{
- int mcnt;
- /* Point to after the args to the start_memory. */
- unsigned char *p1 = *p + 2;
-
- while (p1 < end)
- {
- /* Skip over opcodes that can match nothing, and return true or
- false, as appropriate, when we get to one that can't, or to the
- matching stop_memory. */
-
- switch ((re_opcode_t) *p1)
- {
- /* Could be either a loop or a series of alternatives. */
- case on_failure_jump:
- p1++;
- EXTRACT_NUMBER_AND_INCR (mcnt, p1);
-
- /* If the next operation is not a jump backwards in the
- pattern. */
-
- if (mcnt >= 0)
- {
- /* Go through the on_failure_jumps of the alternatives,
- seeing if any of the alternatives cannot match nothing.
- The last alternative starts with only a jump,
- whereas the rest start with on_failure_jump and end
- with a jump, e.g., here is the pattern for `a|b|c':
-
- /on_failure_jump/0/6/exactn/1/a/jump_past_alt/0/6
- /on_failure_jump/0/6/exactn/1/b/jump_past_alt/0/3
- /exactn/1/c
-
- So, we have to first go through the first (n-1)
- alternatives and then deal with the last one separately. */
-
-
- /* Deal with the first (n-1) alternatives, which start
- with an on_failure_jump (see above) that jumps to right
- past a jump_past_alt. */
-
- while ((re_opcode_t) p1[mcnt-3] == jump_past_alt)
- {
- /* `mcnt' holds how many bytes long the alternative
- is, including the ending `jump_past_alt' and
- its number. */
-
- if (!alt_match_null_string_p (p1, p1 + mcnt - 3,
- reg_info))
- return false;
-
- /* Move to right after this alternative, including the
- jump_past_alt. */
- p1 += mcnt;
-
- /* Break if it's the beginning of an n-th alternative
- that doesn't begin with an on_failure_jump. */
- if ((re_opcode_t) *p1 != on_failure_jump)
- break;
-
- /* Still have to check that it's not an n-th
- alternative that starts with an on_failure_jump. */
- p1++;
- EXTRACT_NUMBER_AND_INCR (mcnt, p1);
- if ((re_opcode_t) p1[mcnt-3] != jump_past_alt)
- {
- /* Get to the beginning of the n-th alternative. */
- p1 -= 3;
- break;
- }
- }
-
- /* Deal with the last alternative: go back and get number
- of the `jump_past_alt' just before it. `mcnt' contains
- the length of the alternative. */
- EXTRACT_NUMBER (mcnt, p1 - 2);
-
- if (!alt_match_null_string_p (p1, p1 + mcnt, reg_info))
- return false;
-
- p1 += mcnt; /* Get past the n-th alternative. */
- } /* if mcnt > 0 */
- break;
-
-
- case stop_memory:
- assert (p1[1] == **p);
- *p = p1 + 2;
- return true;
-
-
- default:
- if (!common_op_match_null_string_p (&p1, end, reg_info))
- return false;
- }
- } /* while p1 < end */
-
- return false;
-} /* group_match_null_string_p */
-
-
-/* Similar to group_match_null_string_p, but doesn't deal with alternatives:
- It expects P to be the first byte of a single alternative and END one
- byte past the last. The alternative can contain groups. */
-
-static boolean
-alt_match_null_string_p (p, end, reg_info)
- unsigned char *p, *end;
- register_info_type *reg_info;
-{
- int mcnt;
- unsigned char *p1 = p;
-
- while (p1 < end)
- {
- /* Skip over opcodes that can match nothing, and break when we get
- to one that can't. */
-
- switch ((re_opcode_t) *p1)
- {
- /* It's a loop. */
- case on_failure_jump:
- p1++;
- EXTRACT_NUMBER_AND_INCR (mcnt, p1);
- p1 += mcnt;
- break;
-
- default:
- if (!common_op_match_null_string_p (&p1, end, reg_info))
- return false;
- }
- } /* while p1 < end */
-
- return true;
-} /* alt_match_null_string_p */
-
-
-/* Deals with the ops common to group_match_null_string_p and
- alt_match_null_string_p.
-
- Sets P to one after the op and its arguments, if any. */
-
-static boolean
-common_op_match_null_string_p (p, end, reg_info)
- unsigned char **p, *end;
- register_info_type *reg_info;
-{
- int mcnt;
- boolean ret;
- int reg_no;
- unsigned char *p1 = *p;
-
- switch ((re_opcode_t) *p1++)
- {
- case no_op:
- case begline:
- case endline:
- case begbuf:
- case endbuf:
- case wordbeg:
- case wordend:
- case wordbound:
- case notwordbound:
-#ifdef emacs
- case before_dot:
- case at_dot:
- case after_dot:
-#endif
- break;
-
- case start_memory:
- reg_no = *p1;
- assert (reg_no > 0 && reg_no <= MAX_REGNUM);
- ret = group_match_null_string_p (&p1, end, reg_info);
-
- /* Have to set this here in case we're checking a group which
- contains a group and a back reference to it. */
-
- if (REG_MATCH_NULL_STRING_P (reg_info[reg_no]) == MATCH_NULL_UNSET_VALUE)
- REG_MATCH_NULL_STRING_P (reg_info[reg_no]) = ret;
-
- if (!ret)
- return false;
- break;
-
- /* If this is an optimized succeed_n for zero times, make the jump. */
- case jump:
- EXTRACT_NUMBER_AND_INCR (mcnt, p1);
- if (mcnt >= 0)
- p1 += mcnt;
- else
- return false;
- break;
-
- case succeed_n:
- /* Get to the number of times to succeed. */
- p1 += 2;
- EXTRACT_NUMBER_AND_INCR (mcnt, p1);
-
- if (mcnt == 0)
- {
- p1 -= 4;
- EXTRACT_NUMBER_AND_INCR (mcnt, p1);
- p1 += mcnt;
- }
- else
- return false;
- break;
-
- case duplicate:
- if (!REG_MATCH_NULL_STRING_P (reg_info[*p1]))
- return false;
- break;
-
- case set_number_at:
- p1 += 4;
-
- default:
- /* All other opcodes mean we cannot match the empty string. */
- return false;
- }
-
- *p = p1;
- return true;
-} /* common_op_match_null_string_p */
-
-
-/* Return zero if TRANSLATE[S1] and TRANSLATE[S2] are identical for LEN
- bytes; nonzero otherwise. */
-
-static int
-bcmp_translate (s1, s2, len, translate)
- const char *s1, *s2;
- register int len;
- RE_TRANSLATE_TYPE translate;
-{
- register const unsigned char *p1 = (const unsigned char *) s1;
- register const unsigned char *p2 = (const unsigned char *) s2;
- while (len)
- {
- if (translate[*p1++] != translate[*p2++]) return 1;
- len--;
- }
- return 0;
-}
-
-/* Entry points for GNU code. */
-
-/* re_compile_pattern is the GNU regular expression compiler: it
- compiles PATTERN (of length SIZE) and puts the result in BUFP.
- Returns 0 if the pattern was valid, otherwise an error string.
-
- Assumes the `allocated' (and perhaps `buffer') and `translate' fields
- are set in BUFP on entry.
-
- We call regex_compile to do the actual compilation. */
-
-const char *
-re_compile_pattern (pattern, length, bufp)
- const char *pattern;
- size_t length;
- struct re_pattern_buffer *bufp;
-{
- reg_errcode_t ret;
-
- /* GNU code is written to assume at least RE_NREGS registers will be set
- (and at least one extra will be -1). */
- bufp->regs_allocated = REGS_UNALLOCATED;
-
- /* And GNU code determines whether or not to get register information
- by passing null for the REGS argument to re_match, etc., not by
- setting no_sub. */
- bufp->no_sub = 0;
-
- /* Match anchors at newline. */
- bufp->newline_anchor = 1;
-
- ret = regex_compile (pattern, length, re_syntax_options, bufp);
-
- if (!ret)
- return NULL;
- return gettext (re_error_msgid[(int) ret]);
-}
-#ifdef _LIBC
-weak_alias (__re_compile_pattern, re_compile_pattern)
-#endif
-
-/* Entry points compatible with 4.2 BSD regex library. We don't define
- them unless specifically requested. */
-
-#if defined _REGEX_RE_COMP || defined _LIBC
-
-/* BSD has one and only one pattern buffer. */
-static struct re_pattern_buffer re_comp_buf;
-
-char *
-#ifdef _LIBC
-/* Make these definitions weak in libc, so POSIX programs can redefine
- these names if they don't use our functions, and still use
- regcomp/regexec below without link errors. */
-weak_function
-#endif
-re_comp (s)
- const char *s;
-{
- reg_errcode_t ret;
-
- if (!s)
- {
- if (!re_comp_buf.buffer)
- return gettext ("No previous regular expression");
- return 0;
- }
-
- if (!re_comp_buf.buffer)
- {
- re_comp_buf.buffer = (unsigned char *) malloc (200);
- if (re_comp_buf.buffer == NULL)
- return (char *) gettext (re_error_msgid[(int) REG_ESPACE]);
- re_comp_buf.allocated = 200;
-
- re_comp_buf.fastmap = (char *) malloc (1 << BYTEWIDTH);
- if (re_comp_buf.fastmap == NULL)
- return (char *) gettext (re_error_msgid[(int) REG_ESPACE]);
- }
-
- /* Since `re_exec' always passes NULL for the `regs' argument, we
- don't need to initialize the pattern buffer fields which affect it. */
-
- /* Match anchors at newlines. */
- re_comp_buf.newline_anchor = 1;
-
- ret = regex_compile (s, strlen (s), re_syntax_options, &re_comp_buf);
-
- if (!ret)
- return NULL;
-
- /* Yes, we're discarding `const' here if !HAVE_LIBINTL. */
- return (char *) gettext (re_error_msgid[(int) ret]);
-}
-
-
-int
-#ifdef _LIBC
-weak_function
-#endif
-re_exec (s)
- const char *s;
-{
- const int len = strlen (s);
- return
- 0 <= re_search (&re_comp_buf, s, len, 0, len, (struct re_registers *) 0);
-}
-
-#endif /* _REGEX_RE_COMP */
-
-/* POSIX.2 functions. Don't define these for Emacs. */
-
-#ifndef emacs
-
-/* regcomp takes a regular expression as a string and compiles it.
-
- PREG is a regex_t *. We do not expect any fields to be initialized,
- since POSIX says we shouldn't. Thus, we set
-
- `buffer' to the compiled pattern;
- `used' to the length of the compiled pattern;
- `syntax' to RE_SYNTAX_POSIX_EXTENDED if the
- REG_EXTENDED bit in CFLAGS is set; otherwise, to
- RE_SYNTAX_POSIX_BASIC;
- `newline_anchor' to REG_NEWLINE being set in CFLAGS;
- `fastmap' and `fastmap_accurate' to zero;
- `re_nsub' to the number of subexpressions in PATTERN.
-
- PATTERN is the address of the pattern string.
-
- CFLAGS is a series of bits which affect compilation.
-
- If REG_EXTENDED is set, we use POSIX extended syntax; otherwise, we
- use POSIX basic syntax.
-
- If REG_NEWLINE is set, then . and [^...] don't match newline.
- Also, regexec will try a match beginning after every newline.
-
- If REG_ICASE is set, then we considers upper- and lowercase
- versions of letters to be equivalent when matching.
-
- If REG_NOSUB is set, then when PREG is passed to regexec, that
- routine will report only success or failure, and nothing about the
- registers.
-
- It returns 0 if it succeeds, nonzero if it doesn't. (See gnu-regex.h for
- the return codes and their meanings.) */
-
-int
-regcomp (preg, pattern, cflags)
- regex_t *preg;
- const char *pattern;
- int cflags;
-{
- reg_errcode_t ret;
- reg_syntax_t syntax
- = (cflags & REG_EXTENDED) ?
- RE_SYNTAX_POSIX_EXTENDED : RE_SYNTAX_POSIX_BASIC;
-
- /* regex_compile will allocate the space for the compiled pattern. */
- preg->buffer = 0;
- preg->allocated = 0;
- preg->used = 0;
-
- /* Don't bother to use a fastmap when searching. This simplifies the
- REG_NEWLINE case: if we used a fastmap, we'd have to put all the
- characters after newlines into the fastmap. This way, we just try
- every character. */
- preg->fastmap = 0;
-
- if (cflags & REG_ICASE)
- {
- unsigned i;
-
- preg->translate
- = (RE_TRANSLATE_TYPE) malloc (CHAR_SET_SIZE
- * sizeof (*(RE_TRANSLATE_TYPE)0));
- if (preg->translate == NULL)
- return (int) REG_ESPACE;
-
- /* Map uppercase characters to corresponding lowercase ones. */
- for (i = 0; i < CHAR_SET_SIZE; i++)
- preg->translate[i] = ISUPPER (i) ? tolower (i) : i;
- }
- else
- preg->translate = NULL;
-
- /* If REG_NEWLINE is set, newlines are treated differently. */
- if (cflags & REG_NEWLINE)
- { /* REG_NEWLINE implies neither . nor [^...] match newline. */
- syntax &= ~RE_DOT_NEWLINE;
- syntax |= RE_HAT_LISTS_NOT_NEWLINE;
- /* It also changes the matching behavior. */
- preg->newline_anchor = 1;
- }
- else
- preg->newline_anchor = 0;
-
- preg->no_sub = !!(cflags & REG_NOSUB);
-
- /* POSIX says a null character in the pattern terminates it, so we
- can use strlen here in compiling the pattern. */
- ret = regex_compile (pattern, strlen (pattern), syntax, preg);
-
- /* POSIX doesn't distinguish between an unmatched open-group and an
- unmatched close-group: both are REG_EPAREN. */
- if (ret == REG_ERPAREN) ret = REG_EPAREN;
-
- return (int) ret;
-}
-#ifdef _LIBC
-weak_alias (__regcomp, regcomp)
-#endif
-
-
-/* regexec searches for a given pattern, specified by PREG, in the
- string STRING.
-
- If NMATCH is zero or REG_NOSUB was set in the cflags argument to
- `regcomp', we ignore PMATCH. Otherwise, we assume PMATCH has at
- least NMATCH elements, and we set them to the offsets of the
- corresponding matched substrings.
-
- EFLAGS specifies `execution flags' which affect matching: if
- REG_NOTBOL is set, then ^ does not match at the beginning of the
- string; if REG_NOTEOL is set, then $ does not match at the end.
-
- We return 0 if we find a match and REG_NOMATCH if not. */
-
-int
-regexec (preg, string, nmatch, pmatch, eflags)
- const regex_t *preg;
- const char *string;
- size_t nmatch;
- regmatch_t pmatch[];
- int eflags;
-{
- int ret;
- struct re_registers regs;
- regex_t private_preg;
- int len = strlen (string);
- boolean want_reg_info = !preg->no_sub && nmatch > 0;
-
- private_preg = *preg;
-
- private_preg.not_bol = !!(eflags & REG_NOTBOL);
- private_preg.not_eol = !!(eflags & REG_NOTEOL);
-
- /* The user has told us exactly how many registers to return
- information about, via `nmatch'. We have to pass that on to the
- matching routines. */
- private_preg.regs_allocated = REGS_FIXED;
-
- if (want_reg_info)
- {
- regs.num_regs = nmatch;
- regs.start = TALLOC (nmatch, regoff_t);
- regs.end = TALLOC (nmatch, regoff_t);
- if (regs.start == NULL || regs.end == NULL)
- return (int) REG_NOMATCH;
- }
-
- /* Perform the searching operation. */
- ret = re_search (&private_preg, string, len,
- /* start: */ 0, /* range: */ len,
- want_reg_info ? &regs : (struct re_registers *) 0);
-
- /* Copy the register information to the POSIX structure. */
- if (want_reg_info)
- {
- if (ret >= 0)
- {
- unsigned r;
-
- for (r = 0; r < nmatch; r++)
- {
- pmatch[r].rm_so = regs.start[r];
- pmatch[r].rm_eo = regs.end[r];
- }
- }
-
- /* If we needed the temporary register info, free the space now. */
- free (regs.start);
- free (regs.end);
- }
-
- /* We want zero return to mean success, unlike `re_search'. */
- return ret >= 0 ? (int) REG_NOERROR : (int) REG_NOMATCH;
-}
-#ifdef _LIBC
-weak_alias (__regexec, regexec)
-#endif
-
-
-/* Returns a message corresponding to an error code, ERRCODE, returned
- from either regcomp or regexec. We don't use PREG here. */
-
-size_t
-__regerror (errcode, preg, errbuf, errbuf_size)
- int errcode;
- const regex_t *preg;
- char *errbuf;
- size_t errbuf_size;
-{
- const char *msg;
- size_t msg_size;
-
- if (errcode < 0
- || errcode >= (int) (sizeof (re_error_msgid)
- / sizeof (re_error_msgid[0])))
- /* Only error codes returned by the rest of the code should be passed
- to this routine. If we are given anything else, or if other regex
- code generates an invalid error code, then the program has a bug.
- Dump core so we can fix it. */
- abort ();
-
- msg = gettext (re_error_msgid[errcode]);
-
- msg_size = strlen (msg) + 1; /* Includes the null. */
-
- if (errbuf_size != 0)
- {
- if (msg_size > errbuf_size)
- {
-#if defined HAVE_MEMPCPY || defined _LIBC
- *((char *) __mempcpy (errbuf, msg, errbuf_size - 1)) = '\0';
-#else
- memcpy (errbuf, msg, errbuf_size - 1);
- errbuf[errbuf_size - 1] = 0;
-#endif
- }
- else
- memcpy (errbuf, msg, msg_size);
- }
-
- return msg_size;
-}
-#ifdef _LIBC
-weak_alias (__regerror, regerror)
-#endif
-
-
-/* Free dynamically allocated space used by PREG. */
-
-void
-regfree (preg)
- regex_t *preg;
-{
- if (preg->buffer != NULL)
- free (preg->buffer);
- preg->buffer = NULL;
-
- preg->allocated = 0;
- preg->used = 0;
-
- if (preg->fastmap != NULL)
- free (preg->fastmap);
- preg->fastmap = NULL;
- preg->fastmap_accurate = 0;
-
- if (preg->translate != NULL)
- free (preg->translate);
- preg->translate = NULL;
-}
-#ifdef _LIBC
-weak_alias (__regfree, regfree)
-#endif
-
-#endif /* not emacs */
diff --git a/contrib/gdb/gdb/gnu-regex.h b/contrib/gdb/gdb/gnu-regex.h
deleted file mode 100644
index 9153ea1..0000000
--- a/contrib/gdb/gdb/gnu-regex.h
+++ /dev/null
@@ -1,576 +0,0 @@
-/* Definitions for data structures and routines for the regular
- expression library, version 0.12.
- Copyright (C) 1985,89,90,91,92,93,95,96,97,98 Free Software Foundation, Inc.
-
- NOTE: The canonical source of this file is maintained with the
- GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu.
-
- This program is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the
- Free Software Foundation; either version 2, or (at your option) any
- later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef _REGEX_H
-#define _REGEX_H 1
-
-/* Allow the use in C++ code. */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* POSIX says that <sys/types.h> must be included (by the caller) before
- <regex.h>. */
-
-#if !defined _POSIX_C_SOURCE && !defined _POSIX_SOURCE && defined VMS
-/* VMS doesn't have `size_t' in <sys/types.h>, even though POSIX says it
- should be there. */
-# include <stddef.h>
-#endif
-
-/* GDB LOCAL: define _REGEX_RE_COMP to get BSD style re_comp and re_exec */
-#ifndef _REGEX_RE_COMP
-#define _REGEX_RE_COMP
-#endif
-
-/* The following two types have to be signed and unsigned integer type
- wide enough to hold a value of a pointer. For most ANSI compilers
- ptrdiff_t and size_t should be likely OK. Still size of these two
- types is 2 for Microsoft C. Ugh... */
-typedef long int s_reg_t;
-typedef unsigned long int active_reg_t;
-
-/* The following bits are used to determine the regexp syntax we
- recognize. The set/not-set meanings are chosen so that Emacs syntax
- remains the value 0. The bits are given in alphabetical order, and
- the definitions shifted by one from the previous bit; thus, when we
- add or remove a bit, only one other definition need change. */
-typedef unsigned long int reg_syntax_t;
-
-/* If this bit is not set, then \ inside a bracket expression is literal.
- If set, then such a \ quotes the following character. */
-#define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1)
-
-/* If this bit is not set, then + and ? are operators, and \+ and \? are
- literals.
- If set, then \+ and \? are operators and + and ? are literals. */
-#define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1)
-
-/* If this bit is set, then character classes are supported. They are:
- [:alpha:], [:upper:], [:lower:], [:digit:], [:alnum:], [:xdigit:],
- [:space:], [:print:], [:punct:], [:graph:], and [:cntrl:].
- If not set, then character classes are not supported. */
-#define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1)
-
-/* If this bit is set, then ^ and $ are always anchors (outside bracket
- expressions, of course).
- If this bit is not set, then it depends:
- ^ is an anchor if it is at the beginning of a regular
- expression or after an open-group or an alternation operator;
- $ is an anchor if it is at the end of a regular expression, or
- before a close-group or an alternation operator.
-
- This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because
- POSIX draft 11.2 says that * etc. in leading positions is undefined.
- We already implemented a previous draft which made those constructs
- invalid, though, so we haven't changed the code back. */
-#define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1)
-
-/* If this bit is set, then special characters are always special
- regardless of where they are in the pattern.
- If this bit is not set, then special characters are special only in
- some contexts; otherwise they are ordinary. Specifically,
- * + ? and intervals are only special when not after the beginning,
- open-group, or alternation operator. */
-#define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1)
-
-/* If this bit is set, then *, +, ?, and { cannot be first in an re or
- immediately after an alternation or begin-group operator. */
-#define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1)
-
-/* If this bit is set, then . matches newline.
- If not set, then it doesn't. */
-#define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1)
-
-/* If this bit is set, then . doesn't match NUL.
- If not set, then it does. */
-#define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1)
-
-/* If this bit is set, nonmatching lists [^...] do not match newline.
- If not set, they do. */
-#define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1)
-
-/* If this bit is set, either \{...\} or {...} defines an
- interval, depending on RE_NO_BK_BRACES.
- If not set, \{, \}, {, and } are literals. */
-#define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1)
-
-/* If this bit is set, +, ? and | aren't recognized as operators.
- If not set, they are. */
-#define RE_LIMITED_OPS (RE_INTERVALS << 1)
-
-/* If this bit is set, newline is an alternation operator.
- If not set, newline is literal. */
-#define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1)
-
-/* If this bit is set, then `{...}' defines an interval, and \{ and \}
- are literals.
- If not set, then `\{...\}' defines an interval. */
-#define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1)
-
-/* If this bit is set, (...) defines a group, and \( and \) are literals.
- If not set, \(...\) defines a group, and ( and ) are literals. */
-#define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1)
-
-/* If this bit is set, then \<digit> matches <digit>.
- If not set, then \<digit> is a back-reference. */
-#define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1)
-
-/* If this bit is set, then | is an alternation operator, and \| is literal.
- If not set, then \| is an alternation operator, and | is literal. */
-#define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1)
-
-/* If this bit is set, then an ending range point collating higher
- than the starting range point, as in [z-a], is invalid.
- If not set, then when ending range point collates higher than the
- starting range point, the range is ignored. */
-#define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1)
-
-/* If this bit is set, then an unmatched ) is ordinary.
- If not set, then an unmatched ) is invalid. */
-#define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1)
-
-/* If this bit is set, succeed as soon as we match the whole pattern,
- without further backtracking. */
-#define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1)
-
-/* If this bit is set, do not process the GNU regex operators.
- If not set, then the GNU regex operators are recognized. */
-#define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1)
-
-/* If this bit is set, turn on internal regex debugging.
- If not set, and debugging was on, turn it off.
- This only works if regex.c is compiled -DDEBUG.
- We define this bit always, so that all that's needed to turn on
- debugging is to recompile regex.c; the calling code can always have
- this bit set, and it won't affect anything in the normal case. */
-#define RE_DEBUG (RE_NO_GNU_OPS << 1)
-
-/* This global variable defines the particular regexp syntax to use (for
- some interfaces). When a regexp is compiled, the syntax used is
- stored in the pattern buffer, so changing this does not affect
- already-compiled regexps. */
-extern reg_syntax_t re_syntax_options;
-
-/* Define combinations of the above bits for the standard possibilities.
- (The [[[ comments delimit what gets put into the Texinfo file, so
- don't delete them!) */
-/* [[[begin syntaxes]]] */
-#define RE_SYNTAX_EMACS 0
-
-#define RE_SYNTAX_AWK \
- (RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \
- | RE_NO_BK_PARENS | RE_NO_BK_REFS \
- | RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \
- | RE_DOT_NEWLINE | RE_CONTEXT_INDEP_ANCHORS \
- | RE_UNMATCHED_RIGHT_PAREN_ORD | RE_NO_GNU_OPS)
-
-#define RE_SYNTAX_GNU_AWK \
- ((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DEBUG) \
- & ~(RE_DOT_NOT_NULL | RE_INTERVALS | RE_CONTEXT_INDEP_OPS))
-
-#define RE_SYNTAX_POSIX_AWK \
- (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS \
- | RE_INTERVALS | RE_NO_GNU_OPS)
-
-#define RE_SYNTAX_GREP \
- (RE_BK_PLUS_QM | RE_CHAR_CLASSES \
- | RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS \
- | RE_NEWLINE_ALT)
-
-#define RE_SYNTAX_EGREP \
- (RE_CHAR_CLASSES | RE_CONTEXT_INDEP_ANCHORS \
- | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE \
- | RE_NEWLINE_ALT | RE_NO_BK_PARENS \
- | RE_NO_BK_VBAR)
-
-#define RE_SYNTAX_POSIX_EGREP \
- (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES)
-
-/* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */
-#define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC
-
-#define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC
-
-/* Syntax bits common to both basic and extended POSIX regex syntax. */
-#define _RE_SYNTAX_POSIX_COMMON \
- (RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \
- | RE_INTERVALS | RE_NO_EMPTY_RANGES)
-
-#define RE_SYNTAX_POSIX_BASIC \
- (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM)
-
-/* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes
- RE_LIMITED_OPS, i.e., \? \+ \| are not recognized. Actually, this
- isn't minimal, since other operators, such as \`, aren't disabled. */
-#define RE_SYNTAX_POSIX_MINIMAL_BASIC \
- (_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS)
-
-#define RE_SYNTAX_POSIX_EXTENDED \
- (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \
- | RE_CONTEXT_INDEP_OPS | RE_NO_BK_BRACES \
- | RE_NO_BK_PARENS | RE_NO_BK_VBAR \
- | RE_UNMATCHED_RIGHT_PAREN_ORD)
-
-/* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INVALID_OPS
- replaces RE_CONTEXT_INDEP_OPS and RE_NO_BK_REFS is added. */
-#define RE_SYNTAX_POSIX_MINIMAL_EXTENDED \
- (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \
- | RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES \
- | RE_NO_BK_PARENS | RE_NO_BK_REFS \
- | RE_NO_BK_VBAR | RE_UNMATCHED_RIGHT_PAREN_ORD)
-/* [[[end syntaxes]]] */
-
-/* Maximum number of duplicates an interval can allow. Some systems
- (erroneously) define this in other header files, but we want our
- value, so remove any previous define. */
-#ifdef RE_DUP_MAX
-# undef RE_DUP_MAX
-#endif
-/* If sizeof(int) == 2, then ((1 << 15) - 1) overflows. */
-#define RE_DUP_MAX (0x7fff)
-
-
-/* POSIX `cflags' bits (i.e., information for `regcomp'). */
-
-/* If this bit is set, then use extended regular expression syntax.
- If not set, then use basic regular expression syntax. */
-#define REG_EXTENDED 1
-
-/* If this bit is set, then ignore case when matching.
- If not set, then case is significant. */
-#define REG_ICASE (REG_EXTENDED << 1)
-
-/* If this bit is set, then anchors do not match at newline
- characters in the string.
- If not set, then anchors do match at newlines. */
-#define REG_NEWLINE (REG_ICASE << 1)
-
-/* If this bit is set, then report only success or fail in regexec.
- If not set, then returns differ between not matching and errors. */
-#define REG_NOSUB (REG_NEWLINE << 1)
-
-
-/* POSIX `eflags' bits (i.e., information for regexec). */
-
-/* If this bit is set, then the beginning-of-line operator doesn't match
- the beginning of the string (presumably because it's not the
- beginning of a line).
- If not set, then the beginning-of-line operator does match the
- beginning of the string. */
-#define REG_NOTBOL 1
-
-/* Like REG_NOTBOL, except for the end-of-line. */
-#define REG_NOTEOL (1 << 1)
-
-
-/* If any error codes are removed, changed, or added, update the
- `re_error_msg' table in regex.c. */
-typedef enum
-{
-#if (_XOPEN_SOURCE - 0) == 500
- REG_NOSYS = -1, /* This will never happen for this implementation. */
-#endif
-
- REG_NOERROR = 0, /* Success. */
- REG_NOMATCH, /* Didn't find a match (for regexec). */
-
- /* POSIX regcomp return error codes. (In the order listed in the
- standard.) */
- REG_BADPAT, /* Invalid pattern. */
- REG_ECOLLATE, /* Not implemented. */
- REG_ECTYPE, /* Invalid character class name. */
- REG_EESCAPE, /* Trailing backslash. */
- REG_ESUBREG, /* Invalid back reference. */
- REG_EBRACK, /* Unmatched left bracket. */
- REG_EPAREN, /* Parenthesis imbalance. */
- REG_EBRACE, /* Unmatched \{. */
- REG_BADBR, /* Invalid contents of \{\}. */
- REG_ERANGE, /* Invalid range end. */
- REG_ESPACE, /* Ran out of memory. */
- REG_BADRPT, /* No preceding re for repetition op. */
-
- /* Error codes we've added. */
- REG_EEND, /* Premature end. */
- REG_ESIZE, /* Compiled pattern bigger than 2^16 bytes. */
- REG_ERPAREN /* Unmatched ) or \); not returned from regcomp. */
-} reg_errcode_t;
-
-/* This data structure represents a compiled pattern. Before calling
- the pattern compiler, the fields `buffer', `allocated', `fastmap',
- `translate', and `no_sub' can be set. After the pattern has been
- compiled, the `re_nsub' field is available. All other fields are
- private to the regex routines. */
-
-#ifndef RE_TRANSLATE_TYPE
-# define RE_TRANSLATE_TYPE char *
-#endif
-
-struct re_pattern_buffer
-{
-/* [[[begin pattern_buffer]]] */
- /* Space that holds the compiled pattern. It is declared as
- `unsigned char *' because its elements are
- sometimes used as array indexes. */
- unsigned char *buffer;
-
- /* Number of bytes to which `buffer' points. */
- unsigned long int allocated;
-
- /* Number of bytes actually used in `buffer'. */
- unsigned long int used;
-
- /* Syntax setting with which the pattern was compiled. */
- reg_syntax_t syntax;
-
- /* Pointer to a fastmap, if any, otherwise zero. re_search uses
- the fastmap, if there is one, to skip over impossible
- starting points for matches. */
- char *fastmap;
-
- /* Either a translate table to apply to all characters before
- comparing them, or zero for no translation. The translation
- is applied to a pattern when it is compiled and to a string
- when it is matched. */
- RE_TRANSLATE_TYPE translate;
-
- /* Number of subexpressions found by the compiler. */
- size_t re_nsub;
-
- /* Zero if this pattern cannot match the empty string, one else.
- Well, in truth it's used only in `re_search_2', to see
- whether or not we should use the fastmap, so we don't set
- this absolutely perfectly; see `re_compile_fastmap' (the
- `duplicate' case). */
- unsigned can_be_null : 1;
-
- /* If REGS_UNALLOCATED, allocate space in the `regs' structure
- for `max (RE_NREGS, re_nsub + 1)' groups.
- If REGS_REALLOCATE, reallocate space if necessary.
- If REGS_FIXED, use what's there. */
-#define REGS_UNALLOCATED 0
-#define REGS_REALLOCATE 1
-#define REGS_FIXED 2
- unsigned regs_allocated : 2;
-
- /* Set to zero when `regex_compile' compiles a pattern; set to one
- by `re_compile_fastmap' if it updates the fastmap. */
- unsigned fastmap_accurate : 1;
-
- /* If set, `re_match_2' does not return information about
- subexpressions. */
- unsigned no_sub : 1;
-
- /* If set, a beginning-of-line anchor doesn't match at the
- beginning of the string. */
- unsigned not_bol : 1;
-
- /* Similarly for an end-of-line anchor. */
- unsigned not_eol : 1;
-
- /* If true, an anchor at a newline matches. */
- unsigned newline_anchor : 1;
-
-/* [[[end pattern_buffer]]] */
-};
-
-typedef struct re_pattern_buffer regex_t;
-
-/* Type for byte offsets within the string. POSIX mandates this. */
-typedef int regoff_t;
-
-
-/* This is the structure we store register match data in. See
- regex.texinfo for a full description of what registers match. */
-struct re_registers
-{
- unsigned num_regs;
- regoff_t *start;
- regoff_t *end;
-};
-
-
-/* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer,
- `re_match_2' returns information about at least this many registers
- the first time a `regs' structure is passed. */
-#ifndef RE_NREGS
-# define RE_NREGS 30
-#endif
-
-
-/* POSIX specification for registers. Aside from the different names than
- `re_registers', POSIX uses an array of structures, instead of a
- structure of arrays. */
-typedef struct
-{
- regoff_t rm_so; /* Byte offset from string's start to substring's start. */
- regoff_t rm_eo; /* Byte offset from string's start to substring's end. */
-} regmatch_t;
-
-/* Declarations for routines. */
-
-/* To avoid duplicating every routine declaration -- once with a
- prototype (if we are ANSI), and once without (if we aren't) -- we
- use the following macro to declare argument types. This
- unfortunately clutters up the declarations a bit, but I think it's
- worth it. */
-
-#if __STDC__
-
-# define _RE_ARGS(args) args
-
-#else /* not __STDC__ */
-
-# define _RE_ARGS(args) ()
-
-#endif /* not __STDC__ */
-
-/* Sets the current default syntax to SYNTAX, and return the old syntax.
- You can also simply assign to the `re_syntax_options' variable. */
-extern reg_syntax_t __re_set_syntax _RE_ARGS ((reg_syntax_t syntax));
-extern reg_syntax_t re_set_syntax _RE_ARGS ((reg_syntax_t syntax));
-
-/* Compile the regular expression PATTERN, with length LENGTH
- and syntax given by the global `re_syntax_options', into the buffer
- BUFFER. Return NULL if successful, and an error string if not. */
-extern const char *__re_compile_pattern
- _RE_ARGS ((const char *pattern, size_t length,
- struct re_pattern_buffer *buffer));
-extern const char *re_compile_pattern
- _RE_ARGS ((const char *pattern, size_t length,
- struct re_pattern_buffer *buffer));
-
-
-/* Compile a fastmap for the compiled pattern in BUFFER; used to
- accelerate searches. Return 0 if successful and -2 if was an
- internal error. */
-extern int __re_compile_fastmap _RE_ARGS ((struct re_pattern_buffer *buffer));
-extern int re_compile_fastmap _RE_ARGS ((struct re_pattern_buffer *buffer));
-
-
-/* Search in the string STRING (with length LENGTH) for the pattern
- compiled into BUFFER. Start searching at position START, for RANGE
- characters. Return the starting position of the match, -1 for no
- match, or -2 for an internal error. Also return register
- information in REGS (if REGS and BUFFER->no_sub are nonzero). */
-extern int __re_search
- _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
- int length, int start, int range, struct re_registers *regs));
-extern int re_search
- _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
- int length, int start, int range, struct re_registers *regs));
-
-
-/* Like `re_search', but search in the concatenation of STRING1 and
- STRING2. Also, stop searching at index START + STOP. */
-extern int __re_search_2
- _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
- int length1, const char *string2, int length2,
- int start, int range, struct re_registers *regs, int stop));
-extern int re_search_2
- _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
- int length1, const char *string2, int length2,
- int start, int range, struct re_registers *regs, int stop));
-
-
-/* Like `re_search', but return how many characters in STRING the regexp
- in BUFFER matched, starting at position START. */
-extern int __re_match
- _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
- int length, int start, struct re_registers *regs));
-extern int re_match
- _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
- int length, int start, struct re_registers *regs));
-
-
-/* Relates to `re_match' as `re_search_2' relates to `re_search'. */
-extern int __re_match_2
- _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
- int length1, const char *string2, int length2,
- int start, struct re_registers *regs, int stop));
-extern int re_match_2
- _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
- int length1, const char *string2, int length2,
- int start, struct re_registers *regs, int stop));
-
-
-/* Set REGS to hold NUM_REGS registers, storing them in STARTS and
- ENDS. Subsequent matches using BUFFER and REGS will use this memory
- for recording register information. STARTS and ENDS must be
- allocated with malloc, and must each be at least `NUM_REGS * sizeof
- (regoff_t)' bytes long.
-
- If NUM_REGS == 0, then subsequent matches should allocate their own
- register data.
-
- Unless this function is called, the first search or match using
- PATTERN_BUFFER will allocate its own register data, without
- freeing the old data. */
-extern void __re_set_registers
- _RE_ARGS ((struct re_pattern_buffer *buffer, struct re_registers *regs,
- unsigned num_regs, regoff_t *starts, regoff_t *ends));
-extern void re_set_registers
- _RE_ARGS ((struct re_pattern_buffer *buffer, struct re_registers *regs,
- unsigned num_regs, regoff_t *starts, regoff_t *ends));
-
-#ifdef _REGEX_RE_COMP
-# ifndef _CRAY
-/* 4.2 bsd compatibility. */
-extern char *re_comp _RE_ARGS ((const char *));
-extern int re_exec _RE_ARGS ((const char *));
-# endif
-#endif
-
-/* POSIX compatibility. */
-extern int __regcomp _RE_ARGS ((regex_t *__preg, const char *__pattern,
- int __cflags));
-extern int regcomp _RE_ARGS ((regex_t *__preg, const char *__pattern,
- int __cflags));
-
-extern int __regexec _RE_ARGS ((const regex_t *__preg,
- const char *__string, size_t __nmatch,
- regmatch_t __pmatch[], int __eflags));
-extern int regexec _RE_ARGS ((const regex_t *__preg,
- const char *__string, size_t __nmatch,
- regmatch_t __pmatch[], int __eflags));
-
-extern size_t __regerror _RE_ARGS ((int __errcode, const regex_t *__preg,
- char *__errbuf, size_t __errbuf_size));
-extern size_t regerror _RE_ARGS ((int __errcode, const regex_t *__preg,
- char *__errbuf, size_t __errbuf_size));
-
-extern void __regfree _RE_ARGS ((regex_t *__preg));
-extern void regfree _RE_ARGS ((regex_t *__preg));
-
-
-#ifdef __cplusplus
-}
-#endif /* C++ */
-
-#endif /* regex.h */
-
-/*
-Local variables:
-make-backup-files: t
-version-control: t
-trim-versions-without-asking: nil
-End:
-*/
diff --git a/contrib/gdb/gdb/hp-psymtab-read.c b/contrib/gdb/gdb/hp-psymtab-read.c
deleted file mode 100644
index 5926ada..0000000
--- a/contrib/gdb/gdb/hp-psymtab-read.c
+++ /dev/null
@@ -1,2381 +0,0 @@
-/* Read hp debug symbols and convert to internal format, for GDB.
- Copyright 1993, 1996, 1998, 1999 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
- Written by the Center for Software Science at the University of Utah
- and by Cygnus Support. */
-
-/* Common include file for hp_symtab_read.c and hp_psymtab_read.c.
- This has nested includes of a bunch of stuff. */
-#include "hpread.h"
-#include "demangle.h"
-
-/* To generate dumping code, uncomment this define. The dumping
- itself is controlled by routine-local statics called "dumping". */
-/* #define DUMPING 1 */
-
-/* To use the quick look-up tables, uncomment this define. */
-#define QUICK_LOOK_UP 1
-
-/* To call PXDB to process un-processed files, uncomment this define. */
-#define USE_PXDB 1
-
-/* Forward procedure declarations */
-
-void hpread_symfile_init
- PARAMS ((struct objfile *));
-
-void
-do_pxdb PARAMS ((bfd *));
-
-void hpread_build_psymtabs
- PARAMS ((struct objfile *, struct section_offsets *, int));
-
-void hpread_symfile_finish
- PARAMS ((struct objfile *));
-
-static union dnttentry *hpread_get_gntt
- PARAMS ((int, struct objfile *));
-
-static unsigned long hpread_get_textlow
- PARAMS ((int, int, struct objfile *, int));
-
-static struct partial_symtab *hpread_start_psymtab
- PARAMS ((struct objfile *, struct section_offsets *, char *, CORE_ADDR, int,
- struct partial_symbol **, struct partial_symbol **));
-
-static struct partial_symtab *hpread_end_psymtab
- PARAMS ((struct partial_symtab *, char **, int, int, CORE_ADDR,
- struct partial_symtab **, int));
-
-/* End of forward routine declarations */
-
-#ifdef USE_PXDB
-
-/* NOTE use of system files! May not be portable. */
-
-#define PXDB_SVR4 "/opt/langtools/bin/pxdb"
-#define PXDB_BSD "/usr/bin/pxdb"
-
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-/* check for the existance of a file, given its full pathname */
-int
-file_exists (filename)
- char *filename;
-{
- if (filename)
- return (access (filename, F_OK) == 0);
- return 0;
-}
-
-
-/* Translate from the "hp_language" enumeration in hp-symtab.h
- used in the debug info to gdb's generic enumeration in defs.h. */
-static enum language
-trans_lang (in_lang)
- enum hp_language in_lang;
-{
- if (in_lang == HP_LANGUAGE_C)
- return language_c;
-
- else if (in_lang == HP_LANGUAGE_CPLUSPLUS)
- return language_cplus;
-
- else if (in_lang == HP_LANGUAGE_F77)
- return language_fortran;
-
- else
- return language_unknown;
-}
-
-static char main_string[] = "main";
-
-/* Call PXDB to process our file.
-
- Approach copied from DDE's "dbgk_run_pxdb". Note: we
- don't check for BSD location of pxdb, nor for existance
- of pxdb itself, etc.
-
- NOTE: uses system function and string functions directly.
-
- Return value: 1 if ok, 0 if not */
-int
-hpread_call_pxdb (file_name)
- char *file_name;
-{
- char *p;
- int status;
- int retval;
-
- if (file_exists (PXDB_SVR4))
- {
- p = malloc (strlen (PXDB_SVR4) + strlen (file_name) + 2);
- strcpy (p, PXDB_SVR4);
- strcat (p, " ");
- strcat (p, file_name);
-
- warning ("File not processed by pxdb--about to process now.\n");
- status = system (p);
-
- retval = (status == 0);
- }
- else
- {
- warning ("pxdb not found at standard location: /opt/langtools/bin\ngdb will not be able to debug %s.\nPlease install pxdb at the above location and then restart gdb.\nYou can also run pxdb on %s with the command\n\"pxdb %s\" and then restart gdb.", file_name, file_name, file_name);
-
- retval = 0;
- }
- return retval;
-} /* hpread_call_pxdb */
-
-
-/* Return 1 if the file turns out to need pre-processing
- by PXDB, and we have thus called PXDB to do this processing
- and the file therefore needs to be re-loaded. Otherwise
- return 0. */
-int
-hpread_pxdb_needed (sym_bfd)
- bfd *sym_bfd;
-{
- asection *pinfo_section, *debug_section, *header_section;
- unsigned int do_pxdb;
- char *buf;
- bfd_size_type header_section_size;
-
- unsigned long tmp;
- unsigned int pxdbed;
-
- header_section = bfd_get_section_by_name (sym_bfd, "$HEADER$");
- if (!header_section)
- {
- return 0; /* No header at all, can't recover... */
- }
-
- debug_section = bfd_get_section_by_name (sym_bfd, "$DEBUG$");
- pinfo_section = bfd_get_section_by_name (sym_bfd, "$PINFO$");
-
- if (pinfo_section && !debug_section)
- {
- /* Debug info with DOC, has different header format.
- this only happens if the file was pxdbed and compiled optimized
- otherwise the PINFO section is not there. */
- header_section_size = bfd_section_size (objfile->obfd, header_section);
-
- if (header_section_size == (bfd_size_type) sizeof (DOC_info_PXDB_header))
- {
- buf = alloca (sizeof (DOC_info_PXDB_header));
-
- if (!bfd_get_section_contents (sym_bfd,
- header_section,
- buf, 0,
- header_section_size))
- error ("bfd_get_section_contents\n");
-
- tmp = bfd_get_32 (sym_bfd, (bfd_byte *) (buf + sizeof (int) * 4));
- pxdbed = (tmp >> 31) & 0x1;
-
- if (!pxdbed)
- error ("file debug header info invalid\n");
- do_pxdb = 0;
- }
-
- else
- error ("invalid $HEADER$ size in executable \n");
- }
-
- else
- {
-
- /* this can be three different cases:
- 1. pxdbed and not doc
- - DEBUG and HEADER sections are there
- - header is PXDB_header type
- - pxdbed flag is set to 1
-
- 2. not pxdbed and doc
- - DEBUG and HEADER sections are there
- - header is DOC_info_header type
- - pxdbed flag is set to 0
-
- 3. not pxdbed and not doc
- - DEBUG and HEADER sections are there
- - header is XDB_header type
- - pxdbed flag is set to 0
-
- NOTE: the pxdbed flag is meaningful also in the not
- already pxdb processed version of the header,
- because in case on non-already processed by pxdb files
- that same bit in the header would be always zero.
- Why? Because the bit is the leftmost bit of a word
- which contains a 'length' which is always a positive value
- so that bit is never set to 1 (otherwise it would be negative)
-
- Given the above, we have two choices : either we ignore the
- size of the header itself and just look at the pxdbed field,
- or we check the size and then we (for safety and paranoia related
- issues) check the bit.
- The first solution is used by DDE, the second by PXDB itself.
- I am using the second one here, because I already wrote it,
- and it is the end of a long day.
- Also, using the first approach would still involve size issues
- because we need to read in the contents of the header section, and
- give the correct amount of stuff we want to read to the
- get_bfd_section_contents function. */
-
- /* decide which case depending on the size of the header section.
- The size is as defined in hp-symtab.h */
-
- header_section_size = bfd_section_size (objfile->obfd, header_section);
-
- if (header_section_size == (bfd_size_type) sizeof (PXDB_header)) /* pxdb and not doc */
- {
-
- buf = alloca (sizeof (PXDB_header));
- if (!bfd_get_section_contents (sym_bfd,
- header_section,
- buf, 0,
- header_section_size))
- error ("bfd_get_section_contents\n");
-
- tmp = bfd_get_32 (sym_bfd, (bfd_byte *) (buf + sizeof (int) * 3));
- pxdbed = (tmp >> 31) & 0x1;
-
- if (pxdbed)
- do_pxdb = 0;
- else
- error ("file debug header invalid\n");
- }
- else /*not pxdbed and doc OR not pxdbed and non doc */
- do_pxdb = 1;
- }
-
- if (do_pxdb)
- {
- return 1;
- }
- else
- {
- return 0;
- }
-} /* hpread_pxdb_needed */
-
-#endif
-
-/* Check whether the file needs to be preprocessed by pxdb.
- If so, call pxdb. */
-
-void
-do_pxdb (sym_bfd)
- bfd *sym_bfd;
-{
- /* The following code is HP-specific. The "right" way of
- doing this is unknown, but we bet would involve a target-
- specific pre-file-load check using a generic mechanism. */
-
- /* This code will not be executed if the file is not in SOM
- format (i.e. if compiled with gcc) */
- if (hpread_pxdb_needed (sym_bfd))
- {
- /*This file has not been pre-processed. Preprocess now */
-
- if (hpread_call_pxdb (sym_bfd->filename))
- {
- /* The call above has changed the on-disk file,
- we can close the file anyway, because the
- symbols will be reread in when the target is run */
- bfd_close (sym_bfd);
- }
- }
-}
-
-
-
-#ifdef QUICK_LOOK_UP
-
-/* Code to handle quick lookup-tables follows. */
-
-
-/* Some useful macros */
-#define VALID_FILE(i) ((i) < pxdb_header_p->fd_entries)
-#define VALID_MODULE(i) ((i) < pxdb_header_p->md_entries)
-#define VALID_PROC(i) ((i) < pxdb_header_p->pd_entries)
-#define VALID_CLASS(i) ((i) < pxdb_header_p->cd_entries)
-
-#define FILE_START(i) (qFD[i].adrStart)
-#define MODULE_START(i) (qMD[i].adrStart)
-#define PROC_START(i) (qPD[i].adrStart)
-
-#define FILE_END(i) (qFD[i].adrEnd)
-#define MODULE_END(i) (qMD[i].adrEnd)
-#define PROC_END(i) (qPD[i].adrEnd)
-
-#define FILE_ISYM(i) (qFD[i].isym)
-#define MODULE_ISYM(i) (qMD[i].isym)
-#define PROC_ISYM(i) (qPD[i].isym)
-
-#define VALID_CURR_FILE (curr_fd < pxdb_header_p->fd_entries)
-#define VALID_CURR_MODULE (curr_md < pxdb_header_p->md_entries)
-#define VALID_CURR_PROC (curr_pd < pxdb_header_p->pd_entries)
-#define VALID_CURR_CLASS (curr_cd < pxdb_header_p->cd_entries)
-
-#define CURR_FILE_START (qFD[curr_fd].adrStart)
-#define CURR_MODULE_START (qMD[curr_md].adrStart)
-#define CURR_PROC_START (qPD[curr_pd].adrStart)
-
-#define CURR_FILE_END (qFD[curr_fd].adrEnd)
-#define CURR_MODULE_END (qMD[curr_md].adrEnd)
-#define CURR_PROC_END (qPD[curr_pd].adrEnd)
-
-#define CURR_FILE_ISYM (qFD[curr_fd].isym)
-#define CURR_MODULE_ISYM (qMD[curr_md].isym)
-#define CURR_PROC_ISYM (qPD[curr_pd].isym)
-
-#define TELL_OBJFILE \
- do { \
- if( !told_objfile ) { \
- told_objfile = 1; \
- warning ("\nIn object file \"%s\":\n", \
- objfile->name); \
- } \
- } while (0)
-
-
-
-/* Keeping track of the start/end symbol table (LNTT) indices of
- psymtabs created so far */
-
-typedef struct
- {
- int start;
- int end;
- }
-pst_syms_struct;
-
-static pst_syms_struct *pst_syms_array = 0;
-
-static pst_syms_count = 0;
-static pst_syms_size = 0;
-
-/* used by the TELL_OBJFILE macro */
-static boolean told_objfile = 0;
-
-/* Set up psymtab symbol index stuff */
-static void
-init_pst_syms ()
-{
- pst_syms_count = 0;
- pst_syms_size = 20;
- pst_syms_array = (pst_syms_struct *) xmalloc (20 * sizeof (pst_syms_struct));
-}
-
-/* Clean up psymtab symbol index stuff */
-static void
-clear_pst_syms ()
-{
- pst_syms_count = 0;
- pst_syms_size = 0;
- free (pst_syms_array);
- pst_syms_array = 0;
-}
-
-/* Add information about latest psymtab to symbol index table */
-static void
-record_pst_syms (start_sym, end_sym)
- int start_sym;
- int end_sym;
-{
- if (++pst_syms_count > pst_syms_size)
- {
- pst_syms_array = (pst_syms_struct *) xrealloc (pst_syms_array,
- 2 * pst_syms_size * sizeof (pst_syms_struct));
- pst_syms_size *= 2;
- }
- pst_syms_array[pst_syms_count - 1].start = start_sym;
- pst_syms_array[pst_syms_count - 1].end = end_sym;
-}
-
-/* Find a suitable symbol table index which can serve as the upper
- bound of a psymtab that starts at INDEX
-
- This scans backwards in the psymtab symbol index table to find a
- "hole" in which the given index can fit. This is a heuristic!!
- We don't search the entire table to check for multiple holes,
- we don't care about overlaps, etc.
-
- Return 0 => not found */
-static int
-find_next_pst_start (index)
- int index;
-{
- int i;
-
- for (i = pst_syms_count - 1; i >= 0; i--)
- if (pst_syms_array[i].end <= index)
- return (i == pst_syms_count - 1) ? 0 : pst_syms_array[i + 1].start - 1;
-
- if (pst_syms_array[0].start > index)
- return pst_syms_array[0].start - 1;
-
- return 0;
-}
-
-
-
-/* Utility functions to find the ending symbol index for a psymtab */
-
-/* Find the next file entry that begins beyond INDEX, and return
- its starting symbol index - 1.
- QFD is the file table, CURR_FD is the file entry from where to start,
- PXDB_HEADER_P as in hpread_quick_traverse (to allow macros to work).
-
- Return 0 => not found */
-static int
-find_next_file_isym (index, qFD, curr_fd, pxdb_header_p)
- int index;
- quick_file_entry *qFD;
- int curr_fd;
- PXDB_header_ptr pxdb_header_p;
-{
- while (VALID_CURR_FILE)
- {
- if (CURR_FILE_ISYM >= index)
- return CURR_FILE_ISYM - 1;
- curr_fd++;
- }
- return 0;
-}
-
-/* Find the next procedure entry that begins beyond INDEX, and return
- its starting symbol index - 1.
- QPD is the procedure table, CURR_PD is the proc entry from where to start,
- PXDB_HEADER_P as in hpread_quick_traverse (to allow macros to work).
-
- Return 0 => not found */
-static int
-find_next_proc_isym (index, qPD, curr_pd, pxdb_header_p)
- int index;
- quick_procedure_entry *qPD;
- int curr_pd;
- PXDB_header_ptr pxdb_header_p;
-{
- while (VALID_CURR_PROC)
- {
- if (CURR_PROC_ISYM >= index)
- return CURR_PROC_ISYM - 1;
- curr_pd++;
- }
- return 0;
-}
-
-/* Find the next module entry that begins beyond INDEX, and return
- its starting symbol index - 1.
- QMD is the module table, CURR_MD is the modue entry from where to start,
- PXDB_HEADER_P as in hpread_quick_traverse (to allow macros to work).
-
- Return 0 => not found */
-static int
-find_next_module_isym (index, qMD, curr_md, pxdb_header_p)
- int index;
- quick_module_entry *qMD;
- int curr_md;
- PXDB_header_ptr pxdb_header_p;
-{
- while (VALID_CURR_MODULE)
- {
- if (CURR_MODULE_ISYM >= index)
- return CURR_MODULE_ISYM - 1;
- curr_md++;
- }
- return 0;
-}
-
-/* Scan and record partial symbols for all functions starting from index
- pointed to by CURR_PD_P, and between code addresses START_ADR and END_ADR.
- Other parameters are explained in comments below. */
-
-/* This used to be inline in hpread_quick_traverse, but now that we do essentially the
- same thing for two different cases (modules and module-less files), it's better
- organized in a separate routine, although it does take lots of arguments. pai/1997-10-08 */
-
-static int
-scan_procs (curr_pd_p, qPD, max_procs, start_adr, end_adr, pst, vt_bits, objfile, section_offsets)
- int *curr_pd_p; /* pointer to current proc index */
- quick_procedure_entry *qPD; /* the procedure quick lookup table */
- int max_procs; /* number of entries in proc. table */
- CORE_ADDR start_adr; /* beginning of code range for current psymtab */
- CORE_ADDR end_adr; /* end of code range for current psymtab */
- struct partial_symtab *pst; /* current psymtab */
- char *vt_bits; /* strings table of SOM debug space */
- struct objfile *objfile; /* current object file */
- struct section_offsets *section_offsets; /* not really used for HP-UX currently */
-{
- union dnttentry *dn_bufp;
- int symbol_count = 0; /* Total number of symbols in this psymtab */
- int curr_pd = *curr_pd_p; /* Convenience variable -- avoid dereferencing pointer all the time */
-
-#ifdef DUMPING
- /* Turn this on for lots of debugging information in this routine */
- static int dumping = 0;
-#endif
-
-#ifdef DUMPING
- if (dumping)
- {
- printf ("Scan_procs called, addresses %x to %x, proc %x\n", start_adr, end_adr, curr_pd);
- }
-#endif
-
- while ((CURR_PROC_START <= end_adr) && (curr_pd < max_procs))
- {
-
- char *rtn_name; /* mangled name */
- char *rtn_dem_name; /* qualified demangled name */
- char *class_name;
- int class;
-
- if ((trans_lang ((enum hp_language) qPD[curr_pd].language) == language_cplus) &&
- vt_bits[(long) qPD[curr_pd].sbAlias]) /* not a null string */
- {
- /* Get mangled name for the procedure, and demangle it */
- rtn_name = &vt_bits[(long) qPD[curr_pd].sbAlias];
- rtn_dem_name = cplus_demangle (rtn_name, DMGL_ANSI | DMGL_PARAMS);
- }
- else
- {
- rtn_name = &vt_bits[(long) qPD[curr_pd].sbProc];
- rtn_dem_name = NULL;
- }
-
- /* Hack to get around HP C/C++ compilers' insistence on providing
- "_MAIN_" as an alternate name for "main" */
- if ((strcmp (rtn_name, "_MAIN_") == 0) &&
- (strcmp (&vt_bits[(long) qPD[curr_pd].sbProc], "main") == 0))
- rtn_dem_name = rtn_name = main_string;
-
-#ifdef DUMPING
- if (dumping)
- {
- printf ("..add %s (demangled %s), index %x to this psymtab\n", rtn_name, rtn_dem_name, curr_pd);
- }
-#endif
-
- /* Check for module-spanning routines. */
- if (CURR_PROC_END > end_adr)
- {
- TELL_OBJFILE;
- warning ("Procedure \"%s\" [0x%x] spans file or module boundaries.", rtn_name, curr_pd);
- }
-
- /* Add this routine symbol to the list in the objfile.
- Unfortunately we have to go to the LNTT to determine the
- correct list to put it on. An alternative (which the
- code used to do) would be to not check and always throw
- it on the "static" list. But if we go that route, then
- symbol_lookup() needs to be tweaked a bit to account
- for the fact that the function might not be found on
- the correct list in the psymtab. - RT */
- dn_bufp = hpread_get_lntt (qPD[curr_pd].isym, objfile);
- if (dn_bufp->dfunc.global)
- add_psymbol_with_dem_name_to_list (rtn_name,
- strlen (rtn_name),
- rtn_dem_name,
- strlen (rtn_dem_name),
- VAR_NAMESPACE,
- LOC_BLOCK, /* "I am a routine" */
- &objfile->global_psymbols,
- (qPD[curr_pd].adrStart + /* Starting address of rtn */
- ANOFFSET (section_offsets, SECT_OFF_TEXT)),
- 0, /* core addr?? */
- trans_lang ((enum hp_language) qPD[curr_pd].language),
- objfile);
- else
- add_psymbol_with_dem_name_to_list (rtn_name,
- strlen (rtn_name),
- rtn_dem_name,
- strlen (rtn_dem_name),
- VAR_NAMESPACE,
- LOC_BLOCK, /* "I am a routine" */
- &objfile->static_psymbols,
- (qPD[curr_pd].adrStart + /* Starting address of rtn */
- ANOFFSET (section_offsets, SECT_OFF_TEXT)),
- 0, /* core addr?? */
- trans_lang ((enum hp_language) qPD[curr_pd].language),
- objfile);
-
- symbol_count++;
- *curr_pd_p = ++curr_pd; /* bump up count & reflect in caller */
- } /* loop over procedures */
-
-#ifdef DUMPING
- if (dumping)
- {
- if (symbol_count == 0)
- printf ("Scan_procs: no symbols found!\n");
- }
-#endif
-
- return symbol_count;
-}
-
-
-/* Traverse the quick look-up tables, building a set of psymtabs.
-
- This constructs a psymtab for modules and files in the quick lookup
- tables.
-
- Mostly, modules correspond to compilation units, so we try to
- create psymtabs that correspond to modules; however, in some cases
- a file can result in a compiled object which does not have a module
- entry for it, so in such cases we create a psymtab for the file. */
-
-int
-hpread_quick_traverse (objfile, section_offsets, gntt_bits, vt_bits, pxdb_header_p)
- struct objfile *objfile; /* The object file descriptor */
- struct section_offsets *section_offsets; /* ?? Null for HP */
- char *gntt_bits; /* GNTT entries, loaded in from the file */
- char *vt_bits; /* VT (string) entries ditto. */
- PXDB_header_ptr pxdb_header_p; /* Pointer to pxdb header ditto */
-{
- struct partial_symtab *pst;
-
- char *addr;
-
- quick_procedure_entry *qPD;
- quick_file_entry *qFD;
- quick_module_entry *qMD;
- quick_class_entry *qCD;
-
- int idx;
- int i;
- CORE_ADDR start_adr; /* current psymtab's starting code addr */
- CORE_ADDR end_adr; /* current psymtab's ending code addr */
- CORE_ADDR next_mod_adr; /* next module's starting code addr */
- int curr_pd; /* current procedure */
- int curr_fd; /* current file */
- int curr_md; /* current module */
- int start_sym; /* current psymtab's starting symbol index */
- int end_sym; /* current psymtab's ending symbol index */
- int max_LNTT_sym_index;
- int syms_in_pst;
- B_TYPE *class_entered;
-
- struct partial_symbol **global_syms; /* We'll be filling in the "global" */
- struct partial_symbol **static_syms; /* and "static" tables in the objfile
- as we go, so we need a pair of
- current pointers. */
-
-#ifdef DUMPING
- /* Turn this on for lots of debugging information in this routine.
- You get a blow-by-blow account of quick lookup table reading */
- static int dumping = 0;
-#endif
-
- pst = (struct partial_symtab *) 0;
-
- /* Clear out some globals */
- init_pst_syms ();
- told_objfile = 0;
-
- /* Demangling style -- if EDG style already set, don't change it,
- as HP style causes some problems with the KAI EDG compiler */
- if (current_demangling_style != edg_demangling)
- {
- /* Otherwise, ensure that we are using HP style demangling */
- set_demangling_style (HP_DEMANGLING_STYLE_STRING);
- }
-
- /* First we need to find the starting points of the quick
- look-up tables in the GNTT. */
-
- addr = gntt_bits;
-
- qPD = (quick_procedure_entry_ptr) addr;
- addr += pxdb_header_p->pd_entries * sizeof (quick_procedure_entry);
-
-#ifdef DUMPING
- if (dumping)
- {
- printf ("\n Printing routines as we see them\n");
- for (i = 0; VALID_PROC (i); i++)
- {
- idx = (long) qPD[i].sbProc;
- printf ("%s %x..%x\n", &vt_bits[idx],
- (int) PROC_START (i),
- (int) PROC_END (i));
- }
- }
-#endif
-
- qFD = (quick_file_entry_ptr) addr;
- addr += pxdb_header_p->fd_entries * sizeof (quick_file_entry);
-
-#ifdef DUMPING
- if (dumping)
- {
- printf ("\n Printing files as we see them\n");
- for (i = 0; VALID_FILE (i); i++)
- {
- idx = (long) qFD[i].sbFile;
- printf ("%s %x..%x\n", &vt_bits[idx],
- (int) FILE_START (i),
- (int) FILE_END (i));
- }
- }
-#endif
-
- qMD = (quick_module_entry_ptr) addr;
- addr += pxdb_header_p->md_entries * sizeof (quick_module_entry);
-
-#ifdef DUMPING
- if (dumping)
- {
- printf ("\n Printing modules as we see them\n");
- for (i = 0; i < pxdb_header_p->md_entries; i++)
- {
- idx = (long) qMD[i].sbMod;
- printf ("%s\n", &vt_bits[idx]);
- }
- }
-#endif
-
- qCD = (quick_class_entry_ptr) addr;
- addr += pxdb_header_p->cd_entries * sizeof (quick_class_entry);
-
-#ifdef DUMPING
- if (dumping)
- {
- printf ("\n Printing classes as we see them\n");
- for (i = 0; VALID_CLASS (i); i++)
- {
- idx = (long) qCD[i].sbClass;
- printf ("%s\n", &vt_bits[idx]);
- }
-
- printf ("\n Done with dump, on to build!\n");
- }
-#endif
-
- /* We need this index only while hp-symtab-read.c expects
- a byte offset to the end of the LNTT entries for a given
- psymtab. Thus the need for it should go away someday.
-
- When it goes away, then we won't have any need to load the
- LNTT from the objfile at psymtab-time, and start-up will be
- faster. To make that work, we'll need some way to create
- a null pst for the "globals" pseudo-module. */
- max_LNTT_sym_index = LNTT_SYMCOUNT (objfile);
-
- /* Scan the module descriptors and make a psymtab for each.
-
- We know the MDs, FDs and the PDs are in order by starting
- address. We use that fact to traverse all three arrays in
- parallel, knowing when the next PD is in a new file
- and we need to create a new psymtab. */
- curr_pd = 0; /* Current procedure entry */
- curr_fd = 0; /* Current file entry */
- curr_md = 0; /* Current module entry */
-
- start_adr = 0; /* Current psymtab code range */
- end_adr = 0;
-
- start_sym = 0; /* Current psymtab symbol range */
- end_sym = 0;
-
- syms_in_pst = 0; /* Symbol count for psymtab */
-
- /* Psts actually just have pointers into the objfile's
- symbol table, not their own symbol tables. */
- global_syms = objfile->global_psymbols.list;
- static_syms = objfile->static_psymbols.list;
-
-
- /* First skip over pseudo-entries with address 0. These represent inlined
- routines and abstract (uninstantiated) template routines.
- FIXME: These should be read in and available -- even if we can't set
- breakpoints, etc., there's some information that can be presented
- to the user. pai/1997-10-08 */
-
- while (VALID_CURR_PROC && (CURR_PROC_START == 0))
- curr_pd++;
-
- /* Loop over files, modules, and procedures in code address order. Each
- time we enter an iteration of this loop, curr_pd points to the first
- unprocessed procedure, curr_fd points to the first unprocessed file, and
- curr_md to the first unprocessed module. Each iteration of this loop
- updates these as required -- any or all of them may be bumpd up
- each time around. When we exit this loop, we are done with all files
- and modules in the tables -- there may still be some procedures, however.
-
- Note: This code used to loop only over module entries, under the assumption
- that files can occur via inclusions and are thus unreliable, while a
- compiled object always corresponds to a module. With CTTI in the HP aCC
- compiler, it turns out that compiled objects may have only files and no
- modules; so we have to loop over files and modules, creating psymtabs for
- either as appropriate. Unfortunately there are some problems (notably:
- 1. the lack of "SRC_FILE_END" entries in the LNTT, 2. the lack of pointers
- to the ending symbol indices of a module or a file) which make it quite hard
- to do this correctly. Currently it uses a bunch of heuristics to start and
- end psymtabs; they seem to work well with most objects generated by aCC, but
- who knows when that will change... */
-
- while (VALID_CURR_FILE || VALID_CURR_MODULE)
- {
-
- char *mod_name_string;
- char *full_name_string;
-
- /* First check for modules like "version.c", which have no code
- in them but still have qMD entries. They also have no qFD or
- qPD entries. Their start address is -1 and their end address
- is 0. */
- if (VALID_CURR_MODULE && (CURR_MODULE_START == -1) && (CURR_MODULE_END == 0))
- {
-
- mod_name_string = &vt_bits[(long) qMD[curr_md].sbMod];
-
-#ifdef DUMPING
- if (dumping)
- printf ("Module with data only %s\n", mod_name_string);
-#endif
-
- /* We'll skip the rest (it makes error-checking easier), and
- just make an empty pst. Right now empty psts are not put
- in the pst chain, so all this is for naught, but later it
- might help. */
-
- pst = hpread_start_psymtab (objfile,
- section_offsets, /* ?? */
- mod_name_string,
- CURR_MODULE_START, /* Low text address: bogus! */
- (CURR_MODULE_ISYM * sizeof (struct dntt_type_block)),
- /* ldsymoff */
- global_syms,
- static_syms);
-
- pst = hpread_end_psymtab (pst,
- NULL, /* psymtab_include_list */
- 0, /* includes_used */
- end_sym * sizeof (struct dntt_type_block),
- /* byte index in LNTT of end
- = capping symbol offset
- = LDSYMOFF of nextfile */
- 0, /* text high */
- NULL, /* dependency_list */
- 0); /* dependencies_used */
-
- global_syms = objfile->global_psymbols.next;
- static_syms = objfile->static_psymbols.next;
-
- curr_md++;
- }
- else if (VALID_CURR_MODULE &&
- ((CURR_MODULE_START == 0) || (CURR_MODULE_START == -1) ||
- (CURR_MODULE_END == 0) || (CURR_MODULE_END == -1)))
- {
- TELL_OBJFILE;
- warning ("Module \"%s\" [0x%x] has non-standard addresses. It starts at 0x%x, ends at 0x%x, and will be skipped.",
- mod_name_string, curr_md, start_adr, end_adr);
- /* On to next module */
- curr_md++;
- }
- else
- {
- /* First check if we are looking at a file with code in it
- that does not overlap the current module's code range */
-
- if (VALID_CURR_FILE ? (VALID_CURR_MODULE ? (CURR_FILE_END < CURR_MODULE_START) : 1) : 0)
- {
-
- /* Looking at file not corresponding to any module,
- create a psymtab for it */
- full_name_string = &vt_bits[(long) qFD[curr_fd].sbFile];
- start_adr = CURR_FILE_START;
- end_adr = CURR_FILE_END;
- start_sym = CURR_FILE_ISYM;
-
- /* Check if there are any procedures not handled until now, that
- begin before the start address of this file, and if so, adjust
- this module's start address to include them. This handles routines that
- are in between file or module ranges for some reason (probably
- indicates a compiler bug */
-
- if (CURR_PROC_START < start_adr)
- {
- TELL_OBJFILE;
- warning ("Found procedure \"%s\" [0x%x] that is not in any file or module.",
- &vt_bits[(long) qPD[curr_pd].sbProc], curr_pd);
- start_adr = CURR_PROC_START;
- if (CURR_PROC_ISYM < start_sym)
- start_sym = CURR_PROC_ISYM;
- }
-
- /* Sometimes (compiler bug -- COBOL) the module end address is higher
- than the start address of the next module, so check for that and
- adjust accordingly */
-
- if (VALID_FILE (curr_fd + 1) && (FILE_START (curr_fd + 1) <= end_adr))
- {
- TELL_OBJFILE;
- warning ("File \"%s\" [0x%x] has ending address after starting address of next file; adjusting ending address down.",
- full_name_string, curr_fd);
- end_adr = FILE_START (curr_fd + 1) - 1; /* Is -4 (or -8 for 64-bit) better? */
- }
- if (VALID_MODULE (curr_md) && (CURR_MODULE_START <= end_adr))
- {
- TELL_OBJFILE;
- warning ("File \"%s\" [0x%x] has ending address after starting address of next module; adjusting ending address down.",
- full_name_string, curr_fd);
- end_adr = CURR_MODULE_START - 1; /* Is -4 (or -8 for 64-bit) better? */
- }
-
-
-#ifdef DUMPING
- if (dumping)
- {
- printf ("Make new psymtab for file %s (%x to %x).\n",
- full_name_string, start_adr, end_adr);
- }
-#endif
- /* Create the basic psymtab, connecting it in the list
- for this objfile and pointing its symbol entries
- to the current end of the symbol areas in the objfile.
-
- The "ldsymoff" parameter is the byte offset in the LNTT
- of the first symbol in this file. Some day we should
- turn this into an index (fix in hp-symtab-read.c as well).
- And it's not even the right byte offset, as we're using
- the size of a union! FIXME! */
- pst = hpread_start_psymtab (objfile,
- section_offsets, /* ?? */
- full_name_string,
- start_adr, /* Low text address */
- (start_sym * sizeof (struct dntt_type_block)),
- /* ldsymoff */
- global_syms,
- static_syms);
-
- /* Set up to only enter each class referenced in this module once. */
- class_entered = malloc (B_BYTES (pxdb_header_p->cd_entries));
- B_CLRALL (class_entered, pxdb_header_p->cd_entries);
-
- /* Scan the procedure descriptors for procedures in the current
- file, based on the starting addresses. */
-
- syms_in_pst = scan_procs (&curr_pd, qPD, pxdb_header_p->pd_entries,
- start_adr, end_adr,
- pst, vt_bits, objfile, section_offsets);
-
- /* Get ending symbol offset */
-
- end_sym = 0;
- /* First check for starting index before previous psymtab */
- if (pst_syms_count && start_sym < pst_syms_array[pst_syms_count - 1].end)
- {
- end_sym = find_next_pst_start (start_sym);
- }
- /* Look for next start index of a file or module, or procedure */
- if (!end_sym)
- {
- int next_file_isym = find_next_file_isym (start_sym, qFD, curr_fd + 1, pxdb_header_p);
- int next_module_isym = find_next_module_isym (start_sym, qMD, curr_md, pxdb_header_p);
- int next_proc_isym = find_next_proc_isym (start_sym, qPD, curr_pd, pxdb_header_p);
-
- if (next_file_isym && next_module_isym)
- {
- /* pick lower of next file or module start index */
- end_sym = min (next_file_isym, next_module_isym);
- }
- else
- {
- /* one of them is zero, pick the other */
- end_sym = max (next_file_isym, next_module_isym);
- }
-
- /* As a precaution, check next procedure index too */
- if (!end_sym)
- end_sym = next_proc_isym;
- else
- end_sym = min (end_sym, next_proc_isym);
- }
-
- /* Couldn't find procedure, file, or module, use globals as default */
- if (!end_sym)
- end_sym = pxdb_header_p->globals;
-
-#ifdef DUMPING
- if (dumping)
- {
- printf ("File psymtab indices: %x to %x\n", start_sym, end_sym);
- }
-#endif
-
- pst = hpread_end_psymtab (pst,
- NULL, /* psymtab_include_list */
- 0, /* includes_used */
- end_sym * sizeof (struct dntt_type_block),
- /* byte index in LNTT of end
- = capping symbol offset
- = LDSYMOFF of nextfile */
- end_adr, /* text high */
- NULL, /* dependency_list */
- 0); /* dependencies_used */
-
- record_pst_syms (start_sym, end_sym);
-
- if (NULL == pst)
- warning ("No symbols in psymtab for file \"%s\" [0x%x].", full_name_string, curr_fd);
-
-#ifdef DUMPING
- if (dumping)
- {
- printf ("Made new psymtab for file %s (%x to %x), sym %x to %x.\n",
- full_name_string, start_adr, end_adr, CURR_FILE_ISYM, end_sym);
- }
-#endif
- /* Prepare for the next psymtab. */
- global_syms = objfile->global_psymbols.next;
- static_syms = objfile->static_psymbols.next;
- free (class_entered);
-
- curr_fd++;
- } /* Psymtab for file */
- else
- {
- /* We have a module for which we create a psymtab */
-
- mod_name_string = &vt_bits[(long) qMD[curr_md].sbMod];
-
- /* We will include the code ranges of any files that happen to
- overlap with this module */
-
- /* So, first pick the lower of the file's and module's start addresses */
- start_adr = CURR_MODULE_START;
- if (VALID_CURR_FILE)
- {
- if (CURR_FILE_START < CURR_MODULE_START)
- {
- TELL_OBJFILE;
- warning ("File \"%s\" [0x%x] crosses beginning of module \"%s\".",
- &vt_bits[(long) qFD[curr_fd].sbFile],
- curr_fd, mod_name_string);
-
- start_adr = CURR_FILE_START;
- }
- }
-
- /* Also pick the lower of the file's and the module's start symbol indices */
- start_sym = CURR_MODULE_ISYM;
- if (VALID_CURR_FILE && (CURR_FILE_ISYM < CURR_MODULE_ISYM))
- start_sym = CURR_FILE_ISYM;
-
- /* For the end address, we scan through the files till we find one
- that overlaps the current module but ends beyond it; if no such file exists we
- simply use the module's start address.
- (Note, if file entries themselves overlap
- we take the longest overlapping extension beyond the end of the module...)
- We assume that modules never overlap. */
-
- end_adr = CURR_MODULE_END;
-
- if (VALID_CURR_FILE)
- {
- while (VALID_CURR_FILE && (CURR_FILE_START < end_adr))
- {
-
-#ifdef DUMPING
- if (dumping)
- printf ("Maybe skipping file %s which overlaps with module %s\n",
- &vt_bits[(long) qFD[curr_fd].sbFile], mod_name_string);
-#endif
- if (CURR_FILE_END > end_adr)
- {
- TELL_OBJFILE;
- warning ("File \"%s\" [0x%x] crosses end of module \"%s\".",
- &vt_bits[(long) qFD[curr_fd].sbFile],
- curr_fd, mod_name_string);
- end_adr = CURR_FILE_END;
- }
- curr_fd++;
- }
- curr_fd--; /* back up after going too far */
- }
-
- /* Sometimes (compiler bug -- COBOL) the module end address is higher
- than the start address of the next module, so check for that and
- adjust accordingly */
-
- if (VALID_MODULE (curr_md + 1) && (MODULE_START (curr_md + 1) <= end_adr))
- {
- TELL_OBJFILE;
- warning ("Module \"%s\" [0x%x] has ending address after starting address of next module; adjusting ending address down.",
- mod_name_string, curr_md);
- end_adr = MODULE_START (curr_md + 1) - 1; /* Is -4 (or -8 for 64-bit) better? */
- }
- if (VALID_FILE (curr_fd + 1) && (FILE_START (curr_fd + 1) <= end_adr))
- {
- TELL_OBJFILE;
- warning ("Module \"%s\" [0x%x] has ending address after starting address of next file; adjusting ending address down.",
- mod_name_string, curr_md);
- end_adr = FILE_START (curr_fd + 1) - 1; /* Is -4 (or -8 for 64-bit) better? */
- }
-
- /* Use one file to get the full name for the module. This
- situation can arise if there is executable code in a #include
- file. Each file with code in it gets a qFD. Files which don't
- contribute code don't get a qFD, even if they include files
- which do, e.g.:
-
- body.c: rtn.h:
- int x; int main() {
- #include "rtn.h" return x;
- }
-
- There will a qFD for "rtn.h",and a qMD for "body.c",
- but no qMD for "rtn.h" or qFD for "body.c"!
-
- We pick the name of the last file to overlap with this
- module. C convention is to put include files first. In a
- perfect world, we could check names and use the file whose full
- path name ends with the module name. */
-
- if (VALID_CURR_FILE)
- full_name_string = &vt_bits[(long) qFD[curr_fd].sbFile];
- else
- full_name_string = mod_name_string;
-
- /* Check if there are any procedures not handled until now, that
- begin before the start address we have now, and if so, adjust
- this psymtab's start address to include them. This handles routines that
- are in between file or module ranges for some reason (probably
- indicates a compiler bug */
-
- if (CURR_PROC_START < start_adr)
- {
- TELL_OBJFILE;
- warning ("Found procedure \"%s\" [0x%x] that is not in any file or module.",
- &vt_bits[(long) qPD[curr_pd].sbProc], curr_pd);
- start_adr = CURR_PROC_START;
- if (CURR_PROC_ISYM < start_sym)
- start_sym = CURR_PROC_ISYM;
- }
-
-#ifdef DUMPING
- if (dumping)
- {
- printf ("Make new psymtab for module %s (%x to %x), using file %s\n",
- mod_name_string, start_adr, end_adr, full_name_string);
- }
-#endif
- /* Create the basic psymtab, connecting it in the list
- for this objfile and pointing its symbol entries
- to the current end of the symbol areas in the objfile.
-
- The "ldsymoff" parameter is the byte offset in the LNTT
- of the first symbol in this file. Some day we should
- turn this into an index (fix in hp-symtab-read.c as well).
- And it's not even the right byte offset, as we're using
- the size of a union! FIXME! */
- pst = hpread_start_psymtab (objfile,
- section_offsets, /* ?? */
- full_name_string,
- start_adr, /* Low text address */
- (start_sym * sizeof (struct dntt_type_block)),
- /* ldsymoff */
- global_syms,
- static_syms);
-
- /* Set up to only enter each class referenced in this module once. */
- class_entered = malloc (B_BYTES (pxdb_header_p->cd_entries));
- B_CLRALL (class_entered, pxdb_header_p->cd_entries);
-
- /* Scan the procedure descriptors for procedures in the current
- module, based on the starting addresses. */
-
- syms_in_pst = scan_procs (&curr_pd, qPD, pxdb_header_p->pd_entries,
- start_adr, end_adr,
- pst, vt_bits, objfile, section_offsets);
-
- /* Get ending symbol offset */
-
- end_sym = 0;
- /* First check for starting index before previous psymtab */
- if (pst_syms_count && start_sym < pst_syms_array[pst_syms_count - 1].end)
- {
- end_sym = find_next_pst_start (start_sym);
- }
- /* Look for next start index of a file or module, or procedure */
- if (!end_sym)
- {
- int next_file_isym = find_next_file_isym (start_sym, qFD, curr_fd + 1, pxdb_header_p);
- int next_module_isym = find_next_module_isym (start_sym, qMD, curr_md + 1, pxdb_header_p);
- int next_proc_isym = find_next_proc_isym (start_sym, qPD, curr_pd, pxdb_header_p);
-
- if (next_file_isym && next_module_isym)
- {
- /* pick lower of next file or module start index */
- end_sym = min (next_file_isym, next_module_isym);
- }
- else
- {
- /* one of them is zero, pick the other */
- end_sym = max (next_file_isym, next_module_isym);
- }
-
- /* As a precaution, check next procedure index too */
- if (!end_sym)
- end_sym = next_proc_isym;
- else
- end_sym = min (end_sym, next_proc_isym);
- }
-
- /* Couldn't find procedure, file, or module, use globals as default */
- if (!end_sym)
- end_sym = pxdb_header_p->globals;
-
-#ifdef DUMPING
- if (dumping)
- {
- printf ("Module psymtab indices: %x to %x\n", start_sym, end_sym);
- }
-#endif
-
- pst = hpread_end_psymtab (pst,
- NULL, /* psymtab_include_list */
- 0, /* includes_used */
- end_sym * sizeof (struct dntt_type_block),
- /* byte index in LNTT of end
- = capping symbol offset
- = LDSYMOFF of nextfile */
- end_adr, /* text high */
- NULL, /* dependency_list */
- 0); /* dependencies_used */
-
- record_pst_syms (start_sym, end_sym);
-
- if (NULL == pst)
- warning ("No symbols in psymtab for module \"%s\" [0x%x].", mod_name_string, curr_md);
-
-#ifdef DUMPING
- if (dumping)
- {
- printf ("Made new psymtab for module %s (%x to %x), sym %x to %x.\n",
- mod_name_string, start_adr, end_adr, CURR_MODULE_ISYM, end_sym);
- }
-#endif
-
- /* Prepare for the next psymtab. */
- global_syms = objfile->global_psymbols.next;
- static_syms = objfile->static_psymbols.next;
- free (class_entered);
-
- curr_md++;
- curr_fd++;
- } /* psymtab for module */
- } /* psymtab for non-bogus file or module */
- } /* End of while loop over all files & modules */
-
- /* There may be some routines after all files and modules -- these will get
- inserted in a separate new module of their own */
- if (VALID_CURR_PROC)
- {
- start_adr = CURR_PROC_START;
- end_adr = qPD[pxdb_header_p->pd_entries - 1].adrEnd;
- TELL_OBJFILE;
- warning ("Found functions beyond end of all files and modules [0x%x].", curr_pd);
-#ifdef DUMPING
- if (dumping)
- {
- printf ("Orphan functions at end, PD %d and beyond (%x to %x)\n",
- curr_pd, start_adr, end_adr);
- }
-#endif
- pst = hpread_start_psymtab (objfile,
- section_offsets, /* ?? */
- "orphans",
- start_adr, /* Low text address */
- (CURR_PROC_ISYM * sizeof (struct dntt_type_block)),
- /* ldsymoff */
- global_syms,
- static_syms);
-
- scan_procs (&curr_pd, qPD, pxdb_header_p->pd_entries,
- start_adr, end_adr,
- pst, vt_bits, objfile, section_offsets);
-
- pst = hpread_end_psymtab (pst,
- NULL, /* psymtab_include_list */
- 0, /* includes_used */
- pxdb_header_p->globals * sizeof (struct dntt_type_block),
- /* byte index in LNTT of end
- = capping symbol offset
- = LDSYMOFF of nextfile */
- end_adr, /* text high */
- NULL, /* dependency_list */
- 0); /* dependencies_used */
- }
-
-
-#ifdef NEVER_NEVER
- /* Now build psts for non-module things (in the tail of
- the LNTT, after the last END MODULE entry).
-
- If null psts were kept on the chain, this would be
- a solution. FIXME */
- pst = hpread_start_psymtab (objfile,
- section_offsets,
- "globals",
- 0,
- (pxdb_header_p->globals
- * sizeof (struct dntt_type_block)),
- objfile->global_psymbols.next,
- objfile->static_psymbols.next);
- hpread_end_psymtab (pst,
- NULL, 0,
- (max_LNTT_sym_index * sizeof (struct dntt_type_block)),
- 0,
- NULL, 0);
-#endif
-
- clear_pst_syms ();
-
- return 1;
-
-} /* End of hpread_quick_traverse. */
-
-
-/* Get appropriate header, based on pxdb type.
- Return value: 1 if ok, 0 if not */
-int
-hpread_get_header (objfile, pxdb_header_p)
- struct objfile *objfile;
- PXDB_header_ptr pxdb_header_p;
-{
- asection *pinfo_section, *debug_section, *header_section;
-
-#ifdef DUMPING
- /* Turn on for debugging information */
- static int dumping = 0;
-#endif
-
- header_section = bfd_get_section_by_name (objfile->obfd, "$HEADER$");
- if (!header_section)
- {
- /* We don't have either PINFO or DEBUG sections. But
- stuff like "libc.sl" has no debug info. There's no
- need to warn the user of this, as it may be ok. The
- caller will figure it out and issue any needed
- messages. */
-#ifdef DUMPING
- if (dumping)
- printf ("==No debug info at all for %s.\n", objfile->name);
-#endif
-
- return 0;
- }
-
- /* We would like either a $DEBUG$ or $PINFO$ section.
- Once we know which, we can understand the header
- data (which we have defined to suit the more common
- $DEBUG$ case). */
- debug_section = bfd_get_section_by_name (objfile->obfd, "$DEBUG$");
- pinfo_section = bfd_get_section_by_name (objfile->obfd, "$PINFO$");
- if (debug_section)
- {
- /* The expected case: normal pxdb header. */
- bfd_get_section_contents (objfile->obfd, header_section,
- pxdb_header_p, 0, sizeof (PXDB_header));
-
- if (!pxdb_header_p->pxdbed)
- {
- /* This shouldn't happen if we check in "symfile.c". */
- return 0;
- } /* DEBUG section */
- }
-
- else if (pinfo_section)
- {
- /* The DOC case; we need to translate this into a
- regular header. */
- DOC_info_PXDB_header doc_header;
-
-#ifdef DUMPING
- if (dumping)
- {
- printf ("==OOps, PINFO, let's try to handle this, %s.\n", objfile->name);
- }
-#endif
-
- bfd_get_section_contents (objfile->obfd,
- header_section,
- &doc_header, 0,
- sizeof (DOC_info_PXDB_header));
-
- if (!doc_header.pxdbed)
- {
- /* This shouldn't happen if we check in "symfile.c". */
- warning ("File \"%s\" not processed by pxdb!", objfile->name);
- return 0;
- }
-
- /* Copy relevent fields to standard header passed in. */
- pxdb_header_p->pd_entries = doc_header.pd_entries;
- pxdb_header_p->fd_entries = doc_header.fd_entries;
- pxdb_header_p->md_entries = doc_header.md_entries;
- pxdb_header_p->pxdbed = doc_header.pxdbed;
- pxdb_header_p->bighdr = doc_header.bighdr;
- pxdb_header_p->sa_header = doc_header.sa_header;
- pxdb_header_p->inlined = doc_header.inlined;
- pxdb_header_p->globals = doc_header.globals;
- pxdb_header_p->time = doc_header.time;
- pxdb_header_p->pg_entries = doc_header.pg_entries;
- pxdb_header_p->functions = doc_header.functions;
- pxdb_header_p->files = doc_header.files;
- pxdb_header_p->cd_entries = doc_header.cd_entries;
- pxdb_header_p->aa_entries = doc_header.aa_entries;
- pxdb_header_p->oi_entries = doc_header.oi_entries;
- pxdb_header_p->version = doc_header.version;
- } /* PINFO section */
-
- else
- {
-#ifdef DUMPING
- if (dumping)
- printf ("==No debug info at all for %s.\n", objfile->name);
-#endif
-
- return 0;
-
- }
-
- return 1;
-} /* End of hpread_get_header */
-#endif /* QUICK_LOOK_UP */
-
-
-/* Initialization for reading native HP C debug symbols from OBJFILE.
-
- Its only purpose in life is to set up the symbol reader's private
- per-objfile data structures, and read in the raw contents of the debug
- sections (attaching pointers to the debug info into the private data
- structures).
-
- Since BFD doesn't know how to read debug symbols in a format-independent
- way (and may never do so...), we have to do it ourselves. Note we may
- be called on a file without native HP C debugging symbols.
-
- FIXME, there should be a cleaner peephole into the BFD environment
- here. */
-void
-hpread_symfile_init (objfile)
- struct objfile *objfile;
-{
- asection *vt_section, *slt_section, *lntt_section, *gntt_section;
-
- /* Allocate struct to keep track of the symfile */
- objfile->sym_private = (PTR)
- xmmalloc (objfile->md, sizeof (struct hpread_symfile_info));
- memset (objfile->sym_private, 0, sizeof (struct hpread_symfile_info));
-
- /* We haven't read in any types yet. */
- TYPE_VECTOR (objfile) = 0;
-
- /* Read in data from the $GNTT$ subspace. */
- gntt_section = bfd_get_section_by_name (objfile->obfd, "$GNTT$");
- if (!gntt_section)
- return;
-
- GNTT (objfile)
- = obstack_alloc (&objfile->symbol_obstack,
- bfd_section_size (objfile->obfd, gntt_section));
-
- bfd_get_section_contents (objfile->obfd, gntt_section, GNTT (objfile),
- 0, bfd_section_size (objfile->obfd, gntt_section));
-
- GNTT_SYMCOUNT (objfile)
- = bfd_section_size (objfile->obfd, gntt_section)
- / sizeof (struct dntt_type_block);
-
- /* Read in data from the $LNTT$ subspace. Also keep track of the number
- of LNTT symbols.
-
- FIXME: this could be moved into the psymtab-to-symtab expansion
- code, and save startup time. At the moment this data is
- still used, though. We'd need a way to tell hp-symtab-read.c
- whether or not to load the LNTT. */
- lntt_section = bfd_get_section_by_name (objfile->obfd, "$LNTT$");
- if (!lntt_section)
- return;
-
- LNTT (objfile)
- = obstack_alloc (&objfile->symbol_obstack,
- bfd_section_size (objfile->obfd, lntt_section));
-
- bfd_get_section_contents (objfile->obfd, lntt_section, LNTT (objfile),
- 0, bfd_section_size (objfile->obfd, lntt_section));
-
- LNTT_SYMCOUNT (objfile)
- = bfd_section_size (objfile->obfd, lntt_section)
- / sizeof (struct dntt_type_block);
-
- /* Read in data from the $SLT$ subspace. $SLT$ contains information
- on source line numbers. */
- slt_section = bfd_get_section_by_name (objfile->obfd, "$SLT$");
- if (!slt_section)
- return;
-
- SLT (objfile) =
- obstack_alloc (&objfile->symbol_obstack,
- bfd_section_size (objfile->obfd, slt_section));
-
- bfd_get_section_contents (objfile->obfd, slt_section, SLT (objfile),
- 0, bfd_section_size (objfile->obfd, slt_section));
-
- /* Read in data from the $VT$ subspace. $VT$ contains things like
- names and constants. Keep track of the number of symbols in the VT. */
- vt_section = bfd_get_section_by_name (objfile->obfd, "$VT$");
- if (!vt_section)
- return;
-
- VT_SIZE (objfile) = bfd_section_size (objfile->obfd, vt_section);
-
- VT (objfile) =
- (char *) obstack_alloc (&objfile->symbol_obstack,
- VT_SIZE (objfile));
-
- bfd_get_section_contents (objfile->obfd, vt_section, VT (objfile),
- 0, VT_SIZE (objfile));
-}
-
-/* Scan and build partial symbols for a symbol file.
-
- The minimal symbol table (either SOM or HP a.out) has already been
- read in; all we need to do is setup partial symbols based on the
- native debugging information.
-
- Note that the minimal table is produced by the linker, and has
- only global routines in it; the psymtab is based on compiler-
- generated debug information and has non-global
- routines in it as well as files and class information.
-
- We assume hpread_symfile_init has been called to initialize the
- symbol reader's private data structures.
-
- SECTION_OFFSETS contains offsets relative to which the symbols in the
- various sections are (depending where the sections were actually loaded).
- MAINLINE is true if we are reading the main symbol table (as
- opposed to a shared lib or dynamically loaded file). */
-void
-hpread_build_psymtabs (objfile, section_offsets, mainline)
- struct objfile *objfile;
- struct section_offsets *section_offsets;
- int mainline;
-{
-
-#ifdef DUMPING
- /* Turn this on to get debugging output. */
- static int dumping = 0;
-#endif
-
- char *namestring;
- int past_first_source_file = 0;
- struct cleanup *old_chain;
-
- int hp_symnum, symcount, i;
- int scan_start = 0;
-
- union dnttentry *dn_bufp;
- unsigned long valu;
- char *p;
- int texthigh = 0;
- int have_name = 0;
-
- /* Current partial symtab */
- struct partial_symtab *pst;
-
- /* List of current psymtab's include files */
- char **psymtab_include_list;
- int includes_allocated;
- int includes_used;
-
- /* Index within current psymtab dependency list */
- struct partial_symtab **dependency_list;
- int dependencies_used, dependencies_allocated;
-
- /* Just in case the stabs reader left turds lying around. */
- free_pending_blocks ();
- make_cleanup ((make_cleanup_func) really_free_pendings, 0);
-
- pst = (struct partial_symtab *) 0;
-
- /* We shouldn't use alloca, instead use malloc/free. Doing so avoids
- a number of problems with cross compilation and creating useless holes
- in the stack when we have to allocate new entries. FIXME. */
-
- includes_allocated = 30;
- includes_used = 0;
- psymtab_include_list = (char **) alloca (includes_allocated *
- sizeof (char *));
-
- dependencies_allocated = 30;
- dependencies_used = 0;
- dependency_list =
- (struct partial_symtab **) alloca (dependencies_allocated *
- sizeof (struct partial_symtab *));
-
- old_chain = make_cleanup ((make_cleanup_func) free_objfile, objfile);
-
- last_source_file = 0;
-
-#ifdef QUICK_LOOK_UP
- {
- /* Begin code for new-style loading of quick look-up tables. */
-
- /* elz: this checks whether the file has beeen processed by pxdb.
- If not we would like to try to read the psymbols in
- anyway, but it turns out to be not so easy. So this could
- actually be commented out, but I leave it in, just in case
- we decide to add support for non-pxdb-ed stuff in the future. */
- PXDB_header pxdb_header;
- int found_modules_in_program;
-
- if (hpread_get_header (objfile, &pxdb_header))
- {
- /* Build a minimal table. No types, no global variables,
- no include files.... */
-#ifdef DUMPING
- if (dumping)
- printf ("\nNew method for %s\n", objfile->name);
-#endif
-
- /* elz: quick_traverse returns true if it found
- some modules in the main source file, other
- than those in end.c
- In C and C++, all the files have MODULES entries
- in the LNTT, and the quick table traverse is all
- based on finding these MODULES entries. Without
- those it cannot work.
- It happens that F77 programs don't have MODULES
- so the quick traverse gets confused. F90 programs
- have modules, and the quick method still works.
- So, if modules (other than those in end.c) are
- not found we give up on the quick table stuff,
- and fall back on the slower method */
- found_modules_in_program = hpread_quick_traverse (objfile,
- section_offsets,
- GNTT (objfile),
- VT (objfile),
- &pxdb_header);
-
- discard_cleanups (old_chain);
-
- /* Set up to scan the global section of the LNTT.
-
- This field is not always correct: if there are
- no globals, it will point to the last record in
- the regular LNTT, which is usually an END MODULE.
-
- Since it might happen that there could be a file
- with just one global record, there's no way to
- tell other than by looking at the record, so that's
- done below. */
- if (found_modules_in_program)
- scan_start = pxdb_header.globals;
- }
-#ifdef DUMPING
- else
- {
- if (dumping)
- printf ("\nGoing on to old method for %s\n", objfile->name);
- }
-#endif
- }
-#endif /* QUICK_LOOK_UP */
-
- /* Make two passes, one over the GNTT symbols, the other for the
- LNTT symbols.
-
- JB comment: above isn't true--they only make one pass, over
- the LNTT. */
- for (i = 0; i < 1; i++)
- {
- int within_function = 0;
-
- if (i)
- symcount = GNTT_SYMCOUNT (objfile);
- else
- symcount = LNTT_SYMCOUNT (objfile);
-
-
- for (hp_symnum = scan_start; hp_symnum < symcount; hp_symnum++)
- {
- QUIT;
- if (i)
- dn_bufp = hpread_get_gntt (hp_symnum, objfile);
- else
- dn_bufp = hpread_get_lntt (hp_symnum, objfile);
-
- if (dn_bufp->dblock.extension)
- continue;
-
- /* Only handle things which are necessary for minimal symbols.
- everything else is ignored. */
- switch (dn_bufp->dblock.kind)
- {
- case DNTT_TYPE_SRCFILE:
- {
-#ifdef QUICK_LOOK_UP
- if (scan_start == hp_symnum
- && symcount == hp_symnum + 1)
- {
- /* If there are NO globals in an executable,
- PXDB's index to the globals will point to
- the last record in the file, which
- could be this record. (this happened for F77 libraries)
- ignore it and be done! */
- continue;
- }
-#endif /* QUICK_LOOK_UP */
-
- /* A source file of some kind. Note this may simply
- be an included file. */
- SET_NAMESTRING (dn_bufp, &namestring, objfile);
-
- /* Check if this is the source file we are already working
- with. */
- if (pst && !strcmp (namestring, pst->filename))
- continue;
-
- /* Check if this is an include file, if so check if we have
- already seen it. Add it to the include list */
- p = strrchr (namestring, '.');
- if (!strcmp (p, ".h"))
- {
- int j, found;
-
- found = 0;
- for (j = 0; j < includes_used; j++)
- if (!strcmp (namestring, psymtab_include_list[j]))
- {
- found = 1;
- break;
- }
- if (found)
- continue;
-
- /* Add it to the list of includes seen so far and
- allocate more include space if necessary. */
- psymtab_include_list[includes_used++] = namestring;
- if (includes_used >= includes_allocated)
- {
- char **orig = psymtab_include_list;
-
- psymtab_include_list = (char **)
- alloca ((includes_allocated *= 2) *
- sizeof (char *));
- memcpy ((PTR) psymtab_include_list, (PTR) orig,
- includes_used * sizeof (char *));
- }
- continue;
- }
-
- if (pst)
- {
- if (!have_name)
- {
- pst->filename = (char *)
- obstack_alloc (&pst->objfile->psymbol_obstack,
- strlen (namestring) + 1);
- strcpy (pst->filename, namestring);
- have_name = 1;
- continue;
- }
- continue;
- }
-
- /* This is a bonafide new source file.
- End the current partial symtab and start a new one. */
-
- if (pst && past_first_source_file)
- {
- hpread_end_psymtab (pst, psymtab_include_list,
- includes_used,
- (hp_symnum
- * sizeof (struct dntt_type_block)),
- texthigh,
- dependency_list, dependencies_used);
- pst = (struct partial_symtab *) 0;
- includes_used = 0;
- dependencies_used = 0;
- }
- else
- past_first_source_file = 1;
-
- valu = hpread_get_textlow (i, hp_symnum, objfile, symcount);
- valu += ANOFFSET (section_offsets, SECT_OFF_TEXT);
- pst = hpread_start_psymtab (objfile, section_offsets,
- namestring, valu,
- (hp_symnum
- * sizeof (struct dntt_type_block)),
- objfile->global_psymbols.next,
- objfile->static_psymbols.next);
- texthigh = valu;
- have_name = 1;
- continue;
- }
-
- case DNTT_TYPE_MODULE:
- /* A source file. It's still unclear to me what the
- real difference between a DNTT_TYPE_SRCFILE and DNTT_TYPE_MODULE
- is supposed to be. */
-
- /* First end the previous psymtab */
- if (pst)
- {
- hpread_end_psymtab (pst, psymtab_include_list, includes_used,
- ((hp_symnum - 1)
- * sizeof (struct dntt_type_block)),
- texthigh,
- dependency_list, dependencies_used);
- pst = (struct partial_symtab *) 0;
- includes_used = 0;
- dependencies_used = 0;
- have_name = 0;
- }
-
- /* Now begin a new module and a new psymtab for it */
- SET_NAMESTRING (dn_bufp, &namestring, objfile);
- valu = hpread_get_textlow (i, hp_symnum, objfile, symcount);
- valu += ANOFFSET (section_offsets, SECT_OFF_TEXT);
- if (!pst)
- {
- pst = hpread_start_psymtab (objfile, section_offsets,
- namestring, valu,
- (hp_symnum
- * sizeof (struct dntt_type_block)),
- objfile->global_psymbols.next,
- objfile->static_psymbols.next);
- texthigh = valu;
- have_name = 0;
- }
- continue;
-
- case DNTT_TYPE_FUNCTION:
- case DNTT_TYPE_ENTRY:
- /* The beginning of a function. DNTT_TYPE_ENTRY may also denote
- a secondary entry point. */
- valu = dn_bufp->dfunc.hiaddr + ANOFFSET (section_offsets,
- SECT_OFF_TEXT);
- if (valu > texthigh)
- texthigh = valu;
- valu = dn_bufp->dfunc.lowaddr +
- ANOFFSET (section_offsets, SECT_OFF_TEXT);
- SET_NAMESTRING (dn_bufp, &namestring, objfile);
- if (dn_bufp->dfunc.global)
- add_psymbol_to_list (namestring, strlen (namestring),
- VAR_NAMESPACE, LOC_BLOCK,
- &objfile->global_psymbols, valu,
- 0, language_unknown, objfile);
- else
- add_psymbol_to_list (namestring, strlen (namestring),
- VAR_NAMESPACE, LOC_BLOCK,
- &objfile->static_psymbols, valu,
- 0, language_unknown, objfile);
- within_function = 1;
- continue;
-
- case DNTT_TYPE_DOC_FUNCTION:
- valu = dn_bufp->ddocfunc.hiaddr + ANOFFSET (section_offsets,
- SECT_OFF_TEXT);
- if (valu > texthigh)
- texthigh = valu;
- valu = dn_bufp->ddocfunc.lowaddr +
- ANOFFSET (section_offsets, SECT_OFF_TEXT);
- SET_NAMESTRING (dn_bufp, &namestring, objfile);
- if (dn_bufp->ddocfunc.global)
- add_psymbol_to_list (namestring, strlen (namestring),
- VAR_NAMESPACE, LOC_BLOCK,
- &objfile->global_psymbols, valu,
- 0, language_unknown, objfile);
- else
- add_psymbol_to_list (namestring, strlen (namestring),
- VAR_NAMESPACE, LOC_BLOCK,
- &objfile->static_psymbols, valu,
- 0, language_unknown, objfile);
- within_function = 1;
- continue;
-
- case DNTT_TYPE_BEGIN:
- case DNTT_TYPE_END:
- /* We don't check MODULE end here, because there can be
- symbols beyond the module end which properly belong to the
- current psymtab -- so we wait till the next MODULE start */
-
-
-#ifdef QUICK_LOOK_UP
- if (scan_start == hp_symnum
- && symcount == hp_symnum + 1)
- {
- /* If there are NO globals in an executable,
- PXDB's index to the globals will point to
- the last record in the file, which is
- probably an END MODULE, i.e. this record.
- ignore it and be done! */
- continue;
- }
-#endif /* QUICK_LOOK_UP */
-
- /* Scope block begin/end. We only care about function
- and file blocks right now. */
-
- if ((dn_bufp->dend.endkind == DNTT_TYPE_FUNCTION) ||
- (dn_bufp->dend.endkind == DNTT_TYPE_DOC_FUNCTION))
- within_function = 0;
- continue;
-
- case DNTT_TYPE_SVAR:
- case DNTT_TYPE_DVAR:
- case DNTT_TYPE_TYPEDEF:
- case DNTT_TYPE_TAGDEF:
- {
- /* Variables, typedefs an the like. */
- enum address_class storage;
- namespace_enum namespace;
-
- /* Don't add locals to the partial symbol table. */
- if (within_function
- && (dn_bufp->dblock.kind == DNTT_TYPE_SVAR
- || dn_bufp->dblock.kind == DNTT_TYPE_DVAR))
- continue;
-
- /* TAGDEFs go into the structure namespace. */
- if (dn_bufp->dblock.kind == DNTT_TYPE_TAGDEF)
- namespace = STRUCT_NAMESPACE;
- else
- namespace = VAR_NAMESPACE;
-
- /* What kind of "storage" does this use? */
- if (dn_bufp->dblock.kind == DNTT_TYPE_SVAR)
- storage = LOC_STATIC;
- else if (dn_bufp->dblock.kind == DNTT_TYPE_DVAR
- && dn_bufp->ddvar.regvar)
- storage = LOC_REGISTER;
- else if (dn_bufp->dblock.kind == DNTT_TYPE_DVAR)
- storage = LOC_LOCAL;
- else
- storage = LOC_UNDEF;
-
- SET_NAMESTRING (dn_bufp, &namestring, objfile);
- if (!pst)
- {
- pst = hpread_start_psymtab (objfile, section_offsets,
- "globals", 0,
- (hp_symnum
- * sizeof (struct dntt_type_block)),
- objfile->global_psymbols.next,
- objfile->static_psymbols.next);
- }
-
- /* Compute address of the data symbol */
- valu = dn_bufp->dsvar.location;
- /* Relocate in case it's in a shared library */
- if (storage == LOC_STATIC)
- valu += ANOFFSET (section_offsets, SECT_OFF_DATA);
-
- /* Luckily, dvar, svar, typedef, and tagdef all
- have their "global" bit in the same place, so it works
- (though it's bad programming practice) to reference
- "dsvar.global" even though we may be looking at
- any of the above four types. */
- if (dn_bufp->dsvar.global)
- {
- add_psymbol_to_list (namestring, strlen (namestring),
- namespace, storage,
- &objfile->global_psymbols,
- valu,
- 0, language_unknown, objfile);
- }
- else
- {
- add_psymbol_to_list (namestring, strlen (namestring),
- namespace, storage,
- &objfile->static_psymbols,
- valu,
- 0, language_unknown, objfile);
- }
-
- /* For TAGDEF's, the above code added the tagname to the
- struct namespace. This will cause tag "t" to be found
- on a reference of the form "(struct t) x". But for
- C++ classes, "t" will also be a typename, which we
- want to find on a reference of the form "ptype t".
- Therefore, we also add "t" to the var namespace.
- Do the same for enum's due to the way aCC generates
- debug info for these (see more extended comment
- in hp-symtab-read.c).
- We do the same for templates, so that "ptype t"
- where "t" is a template also works. */
- if (dn_bufp->dblock.kind == DNTT_TYPE_TAGDEF &&
- dn_bufp->dtype.type.dnttp.index < LNTT_SYMCOUNT (objfile))
- {
- int global = dn_bufp->dtag.global;
- /* Look ahead to see if it's a C++ class */
- dn_bufp = hpread_get_lntt (dn_bufp->dtype.type.dnttp.index, objfile);
- if (dn_bufp->dblock.kind == DNTT_TYPE_CLASS ||
- dn_bufp->dblock.kind == DNTT_TYPE_ENUM ||
- dn_bufp->dblock.kind == DNTT_TYPE_TEMPLATE)
- {
- if (global)
- {
- add_psymbol_to_list (namestring, strlen (namestring),
- VAR_NAMESPACE, storage,
- &objfile->global_psymbols,
- dn_bufp->dsvar.location,
- 0, language_unknown, objfile);
- }
- else
- {
- add_psymbol_to_list (namestring, strlen (namestring),
- VAR_NAMESPACE, storage,
- &objfile->static_psymbols,
- dn_bufp->dsvar.location,
- 0, language_unknown, objfile);
- }
- }
- }
- }
- continue;
-
- case DNTT_TYPE_MEMENUM:
- case DNTT_TYPE_CONST:
- /* Constants and members of enumerated types. */
- SET_NAMESTRING (dn_bufp, &namestring, objfile);
- if (!pst)
- {
- pst = hpread_start_psymtab (objfile, section_offsets,
- "globals", 0,
- (hp_symnum
- * sizeof (struct dntt_type_block)),
- objfile->global_psymbols.next,
- objfile->static_psymbols.next);
- }
- if (dn_bufp->dconst.global)
- add_psymbol_to_list (namestring, strlen (namestring),
- VAR_NAMESPACE, LOC_CONST,
- &objfile->global_psymbols, 0,
- 0, language_unknown, objfile);
- else
- add_psymbol_to_list (namestring, strlen (namestring),
- VAR_NAMESPACE, LOC_CONST,
- &objfile->static_psymbols, 0,
- 0, language_unknown, objfile);
- continue;
- default:
- continue;
- }
- }
- }
-
- /* End any pending partial symbol table. */
- if (pst)
- {
- hpread_end_psymtab (pst, psymtab_include_list, includes_used,
- hp_symnum * sizeof (struct dntt_type_block),
- 0, dependency_list, dependencies_used);
- }
-
- discard_cleanups (old_chain);
-}
-
-/* Perform any local cleanups required when we are done with a particular
- objfile. I.E, we are in the process of discarding all symbol information
- for an objfile, freeing up all memory held for it, and unlinking the
- objfile struct from the global list of known objfiles. */
-
-void
-hpread_symfile_finish (objfile)
- struct objfile *objfile;
-{
- if (objfile->sym_private != NULL)
- {
- mfree (objfile->md, objfile->sym_private);
- }
-}
-
-
-/* The remaining functions are all for internal use only. */
-
-/* Various small functions to get entries in the debug symbol sections. */
-
-union dnttentry *
-hpread_get_lntt (index, objfile)
- int index;
- struct objfile *objfile;
-{
- return (union dnttentry *)
- &(LNTT (objfile)[(index * sizeof (struct dntt_type_block))]);
-}
-
-static union dnttentry *
-hpread_get_gntt (index, objfile)
- int index;
- struct objfile *objfile;
-{
- return (union dnttentry *)
- &(GNTT (objfile)[(index * sizeof (struct dntt_type_block))]);
-}
-
-union sltentry *
-hpread_get_slt (index, objfile)
- int index;
- struct objfile *objfile;
-{
- return (union sltentry *) &(SLT (objfile)[index * sizeof (union sltentry)]);
-}
-
-/* Get the low address associated with some symbol (typically the start
- of a particular source file or module). Since that information is not
- stored as part of the DNTT_TYPE_MODULE or DNTT_TYPE_SRCFILE symbol we must infer it from
- the existance of DNTT_TYPE_FUNCTION symbols. */
-
-static unsigned long
-hpread_get_textlow (global, index, objfile, symcount)
- int global;
- int index;
- struct objfile *objfile;
- int symcount;
-{
- union dnttentry *dn_bufp;
- struct minimal_symbol *msymbol;
-
- /* Look for a DNTT_TYPE_FUNCTION symbol. */
- if (index < symcount) /* symcount is the number of symbols in */
- { /* the dbinfo, LNTT table */
- do
- {
- if (global)
- dn_bufp = hpread_get_gntt (index++, objfile);
- else
- dn_bufp = hpread_get_lntt (index++, objfile);
- }
- while (dn_bufp->dblock.kind != DNTT_TYPE_FUNCTION
- && dn_bufp->dblock.kind != DNTT_TYPE_DOC_FUNCTION
- && dn_bufp->dblock.kind != DNTT_TYPE_END
- && index < symcount);
- }
-
- /* Avoid going past a DNTT_TYPE_END when looking for a DNTT_TYPE_FUNCTION. This
- might happen when a sourcefile has no functions. */
- if (dn_bufp->dblock.kind == DNTT_TYPE_END)
- return 0;
-
- /* Avoid going past the end of the LNTT file */
- if (index == symcount)
- return 0;
-
- /* The minimal symbols are typically more accurate for some reason. */
- if (dn_bufp->dblock.kind == DNTT_TYPE_FUNCTION)
- msymbol = lookup_minimal_symbol (dn_bufp->dfunc.name + VT (objfile), NULL,
- objfile);
- else /* must be a DNTT_TYPE_DOC_FUNCTION */
- msymbol = lookup_minimal_symbol (dn_bufp->ddocfunc.name + VT (objfile), NULL,
- objfile);
-
- if (msymbol)
- return SYMBOL_VALUE_ADDRESS (msymbol);
- else
- return dn_bufp->dfunc.lowaddr;
-}
-
-/* Allocate and partially fill a partial symtab. It will be
- completely filled at the end of the symbol list.
-
- SYMFILE_NAME is the name of the symbol-file we are reading from, and ADDR
- is the address relative to which its symbols are (incremental) or 0
- (normal). */
-
-static struct partial_symtab *
-hpread_start_psymtab (objfile, section_offsets,
- filename, textlow, ldsymoff, global_syms, static_syms)
- struct objfile *objfile;
- struct section_offsets *section_offsets;
- char *filename;
- CORE_ADDR textlow;
- int ldsymoff;
- struct partial_symbol **global_syms;
- struct partial_symbol **static_syms;
-{
- int offset = ANOFFSET (section_offsets, SECT_OFF_TEXT);
- extern void hpread_psymtab_to_symtab ();
- struct partial_symtab *result =
- start_psymtab_common (objfile, section_offsets,
- filename, textlow, global_syms, static_syms);
-
- result->textlow += offset;
- result->read_symtab_private = (char *)
- obstack_alloc (&objfile->psymbol_obstack, sizeof (struct symloc));
- LDSYMOFF (result) = ldsymoff;
- result->read_symtab = hpread_psymtab_to_symtab;
-
- return result;
-}
-
-
-/* Close off the current usage of PST.
- Returns PST or NULL if the partial symtab was empty and thrown away.
-
- capping_symbol_offset --Byte index in LNTT or GNTT of the
- last symbol processed during the build
- of the previous pst.
-
- FIXME: List variables and peculiarities of same. */
-
-static struct partial_symtab *
-hpread_end_psymtab (pst, include_list, num_includes, capping_symbol_offset,
- capping_text, dependency_list, number_dependencies)
- struct partial_symtab *pst;
- char **include_list;
- int num_includes;
- int capping_symbol_offset;
- CORE_ADDR capping_text;
- struct partial_symtab **dependency_list;
- int number_dependencies;
-{
- int i;
- struct objfile *objfile = pst->objfile;
- int offset = ANOFFSET (pst->section_offsets, SECT_OFF_TEXT);
-
-#ifdef DUMPING
- /* Turn on to see what kind of a psymtab we've built. */
- static int dumping = 0;
-#endif
-
- if (capping_symbol_offset != -1)
- LDSYMLEN (pst) = capping_symbol_offset - LDSYMOFF (pst);
- else
- LDSYMLEN (pst) = 0;
- pst->texthigh = capping_text + offset;
-
- pst->n_global_syms =
- objfile->global_psymbols.next - (objfile->global_psymbols.list + pst->globals_offset);
- pst->n_static_syms =
- objfile->static_psymbols.next - (objfile->static_psymbols.list + pst->statics_offset);
-
-#ifdef DUMPING
- if (dumping)
- {
- printf ("\nPst %s, LDSYMOFF %x (%x), LDSYMLEN %x (%x), globals %d, statics %d\n",
- pst->filename,
- LDSYMOFF (pst),
- LDSYMOFF (pst) / sizeof (struct dntt_type_block),
- LDSYMLEN (pst),
- LDSYMLEN (pst) / sizeof (struct dntt_type_block),
- pst->n_global_syms, pst->n_static_syms);
- }
-#endif
-
- pst->number_of_dependencies = number_dependencies;
- if (number_dependencies)
- {
- pst->dependencies = (struct partial_symtab **)
- obstack_alloc (&objfile->psymbol_obstack,
- number_dependencies * sizeof (struct partial_symtab *));
- memcpy (pst->dependencies, dependency_list,
- number_dependencies * sizeof (struct partial_symtab *));
- }
- else
- pst->dependencies = 0;
-
- for (i = 0; i < num_includes; i++)
- {
- struct partial_symtab *subpst =
- allocate_psymtab (include_list[i], objfile);
-
- subpst->section_offsets = pst->section_offsets;
- subpst->read_symtab_private =
- (char *) obstack_alloc (&objfile->psymbol_obstack,
- sizeof (struct symloc));
- LDSYMOFF (subpst) =
- LDSYMLEN (subpst) =
- subpst->textlow =
- subpst->texthigh = 0;
-
- /* We could save slight bits of space by only making one of these,
- shared by the entire set of include files. FIXME-someday. */
- subpst->dependencies = (struct partial_symtab **)
- obstack_alloc (&objfile->psymbol_obstack,
- sizeof (struct partial_symtab *));
- subpst->dependencies[0] = pst;
- subpst->number_of_dependencies = 1;
-
- subpst->globals_offset =
- subpst->n_global_syms =
- subpst->statics_offset =
- subpst->n_static_syms = 0;
-
- subpst->readin = 0;
- subpst->symtab = 0;
- subpst->read_symtab = pst->read_symtab;
- }
-
- sort_pst_symbols (pst);
-
- /* If there is already a psymtab or symtab for a file of this name, remove it.
- (If there is a symtab, more drastic things also happen.)
- This happens in VxWorks. */
- free_named_symtabs (pst->filename);
-
- if (num_includes == 0
- && number_dependencies == 0
- && pst->n_global_syms == 0
- && pst->n_static_syms == 0)
- {
- /* Throw away this psymtab, it's empty. We can't deallocate it, since
- it is on the obstack, but we can forget to chain it on the list.
- Empty psymtabs happen as a result of header files which don't have
- any symbols in them. There can be a lot of them. But this check
- is wrong, in that a psymtab with N_SLINE entries but nothing else
- is not empty, but we don't realize that. Fixing that without slowing
- things down might be tricky.
- It's also wrong if we're using the quick look-up tables, as
- we can get empty psymtabs from modules with no routines in
- them. */
-
- discard_psymtab (pst);
-
- /* Indicate that psymtab was thrown away. */
- pst = (struct partial_symtab *) NULL;
-
- }
- return pst;
-}
-
-
-/* End of hp-psymtab-read.c */
-
-/* Set indentation to 4 spaces for Emacs; this file is
- mostly non-GNU-ish in its style :-( */
-#if 0
-***Local Variables:
-***c - basic - offset:4
-*** End:
-#endif
-
-
diff --git a/contrib/gdb/gdb/hp-symtab-read.c b/contrib/gdb/gdb/hp-symtab-read.c
deleted file mode 100644
index 90d4a10..0000000
--- a/contrib/gdb/gdb/hp-symtab-read.c
+++ /dev/null
@@ -1,3988 +0,0 @@
-/* Read hp debug symbols and convert to internal format, for GDB.
- Copyright 1993, 1996 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
- Written by the Center for Software Science at the University of Utah
- and by Cygnus Support. */
-
-/* Common include for hp-symtab-read.c and hp-psymtab-read.c.
- * Note this has nested includes for a bunch of stuff.
- */
-#include "defs.h"
-#include "symtab.h"
-#include "gdbtypes.h"
-#include "hpread.h"
-#include "demangle.h"
-#include "complaints.h"
-
-
-
-
-static struct complaint hpread_unhandled_end_common_complaint =
-{
- "unhandled symbol in hp-symtab-read.c: DNTT_TYPE_COMMON/DNTT_TYPE_END.\n", 0, 0
-};
-
-static struct complaint hpread_unhandled_type_complaint =
-{
- "hpread_type_translate: unhandled type code.", 0, 0
-};
-
-static struct complaint hpread_struct_complaint =
-{
- "hpread_read_struct_type: expected SVAR type...", 0, 0
-};
-
-static struct complaint hpread_array_complaint =
-{
- "error in hpread_array_type.", 0, 0
-};
-
-static struct complaint hpread_type_lookup_complaint =
-{
- "error in hpread_type_lookup().", 0, 0
-};
-
-
-static struct complaint hpread_unexpected_end_complaint =
-{
- "internal error in hp-symtab-read.c: Unexpected DNTT_TYPE_END kind.", 0, 0
-};
-
-static struct complaint hpread_tagdef_complaint =
-{
- "error processing class tagdef", 0, 0
-};
-
-static struct complaint hpread_unhandled_common_complaint =
-{
- "unhandled symbol in hp-symtab-read.c: DNTT_TYPE_COMMON.", 0, 0
-};
-
-static struct complaint hpread_unhandled_blockdata_complaint =
-{
- "unhandled symbol in hp-symtab-read.c: DNTT_TYPE_BLOCKDATA.", 0, 0
-};
-
-
-/* Forward procedure declarations */
-
-static unsigned long hpread_get_scope_start
- PARAMS ((sltpointer, struct objfile *));
-
-static unsigned long hpread_get_line
- PARAMS ((sltpointer, struct objfile *));
-
-static CORE_ADDR hpread_get_location
- PARAMS ((sltpointer, struct objfile *));
-
-static void hpread_psymtab_to_symtab_1
- PARAMS ((struct partial_symtab *));
-
-void hpread_psymtab_to_symtab
- PARAMS ((struct partial_symtab *));
-
-static struct symtab *hpread_expand_symtab
- PARAMS ((struct objfile *, int, int, CORE_ADDR, int,
- struct section_offsets *, char *));
-
-static int hpread_type_translate
- PARAMS ((dnttpointer));
-
-static struct type **hpread_lookup_type
- PARAMS ((dnttpointer, struct objfile *));
-
-static struct type *hpread_alloc_type
- PARAMS ((dnttpointer, struct objfile *));
-
-static struct type *hpread_read_enum_type
- PARAMS ((dnttpointer, union dnttentry *, struct objfile *));
-
-static struct type *hpread_read_function_type
- PARAMS ((dnttpointer, union dnttentry *, struct objfile *, int));
-
-static struct type *hpread_read_doc_function_type
- PARAMS ((dnttpointer, union dnttentry *, struct objfile *, int));
-
-static struct type *hpread_read_struct_type
- PARAMS ((dnttpointer, union dnttentry *, struct objfile *));
-
-static struct type *hpread_get_nth_template_arg
- PARAMS ((struct objfile *, int));
-
-static struct type * hpread_read_templ_arg_type
- PARAMS ((dnttpointer, union dnttentry *, struct objfile *, char *));
-
-static struct type *hpread_read_set_type
- PARAMS ((dnttpointer, union dnttentry *, struct objfile *));
-
-static struct type * hpread_read_array_type
- PARAMS ((dnttpointer, union dnttentry *dn_bufp, struct objfile *objfile));
-
-static struct type *hpread_read_subrange_type
- PARAMS ((dnttpointer, union dnttentry *, struct objfile *));
-
-static struct type * hpread_type_lookup
- PARAMS ((dnttpointer, struct objfile *));
-
-static sltpointer hpread_record_lines
- PARAMS ((struct subfile *, sltpointer, sltpointer,
- struct objfile *, CORE_ADDR));
-
-static void hpread_process_one_debug_symbol
- PARAMS ((union dnttentry *, char *, struct section_offsets *,
- struct objfile *, CORE_ADDR, int, char *, int, int * ));
-
-static int hpread_get_scope_depth
- PARAMS ((union dnttentry *, struct objfile *, int));
-
-static void fix_static_member_physnames
- PARAMS ((struct type *, char *, struct objfile *));
-
-static void fixup_class_method_type
- PARAMS ((struct type *, struct type *, struct objfile *));
-
-static void hpread_adjust_bitoffsets PARAMS ((struct type *, int));
-
-static dnttpointer hpread_get_next_skip_over_anon_unions
- PARAMS ((int, dnttpointer, union dnttentry **, struct objfile *));
-
-/* Global to indicate presence of HP-compiled objects,
- in particular, SOM executable file with SOM debug info
- Defined in symtab.c, used in hppa-tdep.c. */
-extern int hp_som_som_object_present;
-
-/* Static used to indicate a class type that requires a
- fix-up of one of its method types */
-static struct type * fixup_class = NULL;
-
-/* Static used to indicate the method type that is to be
- used to fix-up the type for fixup_class */
-static struct type * fixup_method = NULL;
-
-
-
-/* Get the nesting depth for the source line identified by INDEX. */
-
-static unsigned long
-hpread_get_scope_start (index, objfile)
- sltpointer index;
- struct objfile *objfile;
-{
- union sltentry *sl_bufp;
-
- sl_bufp = hpread_get_slt (index, objfile);
- return sl_bufp->sspec.backptr.dnttp.index;
-}
-
-/* Get the source line number the the line identified by INDEX. */
-
-static unsigned long
-hpread_get_line (index, objfile)
- sltpointer index;
- struct objfile *objfile;
-{
- union sltentry *sl_bufp;
-
- sl_bufp = hpread_get_slt (index, objfile);
- return sl_bufp->snorm.line;
-}
-
-/* Find the code address associated with a given sltpointer */
-
-static CORE_ADDR
-hpread_get_location (index, objfile)
- sltpointer index;
- struct objfile *objfile;
-{
- union sltentry *sl_bufp;
- int i;
-
- /* code location of special sltentrys is determined from context */
- sl_bufp = hpread_get_slt (index, objfile);
-
- if (sl_bufp->snorm.sltdesc == SLT_END)
- {
- /* find previous normal sltentry and get address */
- for (i = 0; ((sl_bufp->snorm.sltdesc != SLT_NORMAL) &&
- (sl_bufp->snorm.sltdesc != SLT_NORMAL_OFFSET) &&
- (sl_bufp->snorm.sltdesc != SLT_EXIT)); i++)
- sl_bufp = hpread_get_slt (index - i, objfile);
- if (sl_bufp->snorm.sltdesc == SLT_NORMAL_OFFSET)
- return sl_bufp->snormoff.address;
- else
- return sl_bufp->snorm.address;
- }
-
- /* find next normal sltentry and get address */
- for (i = 0; ((sl_bufp->snorm.sltdesc != SLT_NORMAL) &&
- (sl_bufp->snorm.sltdesc != SLT_NORMAL_OFFSET) &&
- (sl_bufp->snorm.sltdesc != SLT_EXIT)); i++)
- sl_bufp = hpread_get_slt (index + i, objfile);
- if (sl_bufp->snorm.sltdesc == SLT_NORMAL_OFFSET)
- return sl_bufp->snormoff.address;
- else
- return sl_bufp->snorm.address;
-}
-
-
-/* Return 1 if an HP debug symbol of type KIND has a name associated with
- * it, else return 0. (This function is not currently used, but I'll
- * leave it here in case it proves useful later on. - RT).
- */
-
-int
-hpread_has_name (kind)
- enum dntt_entry_type kind;
-{
- switch (kind)
- {
- case DNTT_TYPE_SRCFILE:
- case DNTT_TYPE_MODULE:
- case DNTT_TYPE_FUNCTION:
- case DNTT_TYPE_DOC_FUNCTION:
- case DNTT_TYPE_ENTRY:
- case DNTT_TYPE_IMPORT:
- case DNTT_TYPE_LABEL:
- case DNTT_TYPE_FPARAM:
- case DNTT_TYPE_SVAR:
- case DNTT_TYPE_DVAR:
- case DNTT_TYPE_CONST:
- case DNTT_TYPE_TYPEDEF:
- case DNTT_TYPE_TAGDEF:
- case DNTT_TYPE_MEMENUM:
- case DNTT_TYPE_FIELD:
- case DNTT_TYPE_SA:
- case DNTT_TYPE_BLOCKDATA:
- case DNTT_TYPE_MEMFUNC:
- case DNTT_TYPE_DOC_MEMFUNC:
- return 1;
-
- case DNTT_TYPE_BEGIN:
- case DNTT_TYPE_END:
- case DNTT_TYPE_POINTER:
- case DNTT_TYPE_ENUM:
- case DNTT_TYPE_SET:
- case DNTT_TYPE_ARRAY:
- case DNTT_TYPE_STRUCT:
- case DNTT_TYPE_UNION:
- case DNTT_TYPE_VARIANT:
- case DNTT_TYPE_FILE:
- case DNTT_TYPE_FUNCTYPE:
- case DNTT_TYPE_SUBRANGE:
- case DNTT_TYPE_WITH:
- case DNTT_TYPE_COMMON:
- case DNTT_TYPE_COBSTRUCT:
- case DNTT_TYPE_XREF:
- case DNTT_TYPE_MACRO:
- case DNTT_TYPE_CLASS_SCOPE:
- case DNTT_TYPE_REFERENCE:
- case DNTT_TYPE_PTRMEM:
- case DNTT_TYPE_PTRMEMFUNC:
- case DNTT_TYPE_CLASS:
- case DNTT_TYPE_GENFIELD:
- case DNTT_TYPE_VFUNC:
- case DNTT_TYPE_MEMACCESS:
- case DNTT_TYPE_INHERITANCE:
- case DNTT_TYPE_FRIEND_CLASS:
- case DNTT_TYPE_FRIEND_FUNC:
- case DNTT_TYPE_MODIFIER:
- case DNTT_TYPE_OBJECT_ID:
- case DNTT_TYPE_TEMPLATE:
- case DNTT_TYPE_TEMPLATE_ARG:
- case DNTT_TYPE_FUNC_TEMPLATE:
- case DNTT_TYPE_LINK:
- /* DNTT_TYPE_DYN_ARRAY_DESC ? */
- /* DNTT_TYPE_DESC_SUBRANGE ? */
- /* DNTT_TYPE_BEGIN_EXT ? */
- /* DNTT_TYPE_INLN ? */
- /* DNTT_TYPE_INLN_LIST ? */
- /* DNTT_TYPE_ALIAS ? */
- default:
- return 0;
- }
-}
-
-/* Do the dirty work of reading in the full symbol from a partial symbol
- table. */
-
-static void
-hpread_psymtab_to_symtab_1 (pst)
- struct partial_symtab *pst;
-{
- struct cleanup *old_chain;
- int i;
-
- /* Get out quick if passed junk. */
- if (!pst)
- return;
-
- /* Complain if we've already read in this symbol table. */
- if (pst->readin)
- {
- fprintf (stderr, "Psymtab for %s already read in. Shouldn't happen.\n",
- pst->filename);
- return;
- }
-
- /* Read in all partial symtabs on which this one is dependent */
- for (i = 0; i < pst->number_of_dependencies; i++)
- if (!pst->dependencies[i]->readin)
- {
- /* Inform about additional files that need to be read in. */
- if (info_verbose)
- {
- fputs_filtered (" ", gdb_stdout);
- wrap_here ("");
- fputs_filtered ("and ", gdb_stdout);
- wrap_here ("");
- printf_filtered ("%s...", pst->dependencies[i]->filename);
- wrap_here (""); /* Flush output */
- gdb_flush (gdb_stdout);
- }
- hpread_psymtab_to_symtab_1 (pst->dependencies[i]);
- }
-
- /* If it's real... */
- if (LDSYMLEN (pst))
- {
- /* Init stuff necessary for reading in symbols */
- buildsym_init ();
- old_chain = make_cleanup (really_free_pendings, 0);
-
- pst->symtab =
- hpread_expand_symtab (pst->objfile, LDSYMOFF (pst), LDSYMLEN (pst),
- pst->textlow, pst->texthigh - pst->textlow,
- pst->section_offsets, pst->filename);
- sort_symtab_syms (pst->symtab);
-
- do_cleanups (old_chain);
- }
-
- pst->readin = 1;
-}
-
-/* Read in all of the symbols for a given psymtab for real.
- Be verbose about it if the user wants that. */
-
-void
-hpread_psymtab_to_symtab (pst)
- struct partial_symtab *pst;
-{
- /* Get out quick if given junk. */
- if (!pst)
- return;
-
- /* Sanity check. */
- if (pst->readin)
- {
- fprintf (stderr, "Psymtab for %s already read in. Shouldn't happen.\n",
- pst->filename);
- return;
- }
-
- /* elz: setting the flag to indicate that the code of the target
- was compiled using an HP compiler (aCC, cc)
- the processing_acc_compilation variable is declared in the
- file buildsym.h, the HP_COMPILED_TARGET is defined to be equal
- to 3 in the file tm_hppa.h*/
-
- processing_gcc_compilation = 0;
-
- if (LDSYMLEN (pst) || pst->number_of_dependencies)
- {
- /* Print the message now, before reading the string table,
- to avoid disconcerting pauses. */
- if (info_verbose)
- {
- printf_filtered ("Reading in symbols for %s...", pst->filename);
- gdb_flush (gdb_stdout);
- }
-
- hpread_psymtab_to_symtab_1 (pst);
-
- /* Match with global symbols. This only needs to be done once,
- after all of the symtabs and dependencies have been read in. */
- scan_file_globals (pst->objfile);
-
- /* Finish up the debug error message. */
- if (info_verbose)
- printf_filtered ("done.\n");
- }
-}
-
-/* Read in a defined section of a specific object file's symbols.
-
- DESC is the file descriptor for the file, positioned at the
- beginning of the symtab
- SYM_OFFSET is the offset within the file of
- the beginning of the symbols we want to read
- SYM_SIZE is the size of the symbol info to read in.
- TEXT_OFFSET is the beginning of the text segment we are reading symbols for
- TEXT_SIZE is the size of the text segment read in.
- SECTION_OFFSETS are the relocation offsets which get added to each symbol. */
-
-static struct symtab *
-hpread_expand_symtab (objfile, sym_offset, sym_size, text_offset, text_size,
- section_offsets, filename)
- struct objfile *objfile;
- int sym_offset;
- int sym_size;
- CORE_ADDR text_offset;
- int text_size;
- struct section_offsets *section_offsets;
- char *filename;
-{
- char *namestring;
- union dnttentry *dn_bufp;
- unsigned max_symnum;
- int at_module_boundary = 0;
- /* 1 => at end, -1 => at beginning */
-
- int sym_index = sym_offset / sizeof (struct dntt_type_block);
-
- current_objfile = objfile;
- subfile_stack = 0;
-
- last_source_file = 0;
-
- /* Demangling style -- if EDG style already set, don't change it,
- as HP style causes some problems with the KAI EDG compiler */
- if (current_demangling_style != edg_demangling) {
- /* Otherwise, ensure that we are using HP style demangling */
- set_demangling_style (HP_DEMANGLING_STYLE_STRING);
- }
-
- dn_bufp = hpread_get_lntt (sym_index, objfile);
- if (!((dn_bufp->dblock.kind == (unsigned char) DNTT_TYPE_SRCFILE) ||
- (dn_bufp->dblock.kind == (unsigned char) DNTT_TYPE_MODULE)))
- {
- start_symtab ("globals", NULL, 0);
- record_debugformat ("HP");
- }
-
- /* The psymtab builder (hp-psymtab-read.c) is the one that
- * determined the "sym_size" argument (i.e. how many DNTT symbols
- * are in this symtab), which we use to compute "max_symnum"
- * (point in DNTT to which we read).
- *
- * Perhaps this should be changed so that
- * process_one_debug_symbol() "knows" when
- * to stop reading (based on reading from the MODULE to the matching
- * END), and take out this reliance on a #-syms being passed in...
- * (I'm worried about the reliability of this number). But I'll
- * leave it as-is, for now. - RT
- *
- * The change above has been made. I've left the "for" loop control
- * in to prepare for backing this out again. -JB
- */
- max_symnum = sym_size / sizeof (struct dntt_type_block);
- /* No reason to multiply on pst side and divide on sym side... FIXME */
-
- /* Read in and process each debug symbol within the specified range.
- */
- for (symnum = 0;
- symnum < max_symnum;
- symnum++)
- {
- QUIT; /* Allow this to be interruptable */
- dn_bufp = hpread_get_lntt (sym_index + symnum, objfile);
-
- if (dn_bufp->dblock.extension)
- continue;
-
- /* Yow! We call SET_NAMESTRING on things without names! */
- SET_NAMESTRING (dn_bufp, &namestring, objfile);
-
- hpread_process_one_debug_symbol (dn_bufp, namestring, section_offsets,
- objfile, text_offset, text_size,
- filename, symnum + sym_index,
- &at_module_boundary
- );
-
- /* OLD COMMENTS: This routine is only called for psts. All psts
- * correspond to MODULES. If we ever do lazy-reading of globals
- * from the LNTT, then there will be a pst which ends when the
- * LNTT ends, and not at an END MODULE entry. Then we'll have
- * to re-visit this break.
-
- if( at_end_of_module )
- break;
-
- */
-
- /* We no longer break out of the loop when we reach the end of a
- module. The reason is that with CTTI, the compiler can generate
- function symbols (for template function instantiations) which are not
- in any module; typically they show up beyond a module's end, and
- before the next module's start. We include them in the current
- module. However, we still don't trust the MAX_SYMNUM value from
- the psymtab, so we break out if we enter a new module. */
-
- if (at_module_boundary == -1)
- break;
- }
-
- current_objfile = NULL;
- hp_som_som_object_present = 1; /* Indicate we've processed an HP SOM SOM file */
-
- return end_symtab (text_offset + text_size, objfile, 0);
-}
-
-
-
-
-/* Convert basic types from HP debug format into GDB internal format. */
-
-static int
-hpread_type_translate (typep)
- dnttpointer typep;
-{
- if (!typep.dntti.immediate) {
- error ("error in hpread_type_translate\n.");
- return;
- }
-
- switch (typep.dntti.type)
- {
- case HP_TYPE_BOOLEAN:
- case HP_TYPE_BOOLEAN_S300_COMPAT:
- case HP_TYPE_BOOLEAN_VAX_COMPAT:
- return FT_BOOLEAN;
- case HP_TYPE_CHAR: /* C signed char, C++ plain char */
-
- case HP_TYPE_WIDE_CHAR:
- return FT_CHAR;
- case HP_TYPE_INT:
- if (typep.dntti.bitlength <= 8)
- return FT_SIGNED_CHAR; /* C++ signed char */
- if (typep.dntti.bitlength <= 16)
- return FT_SHORT;
- if (typep.dntti.bitlength <= 32)
- return FT_INTEGER;
- return FT_LONG_LONG;
- case HP_TYPE_LONG:
- if (typep.dntti.bitlength <= 8)
- return FT_SIGNED_CHAR; /* C++ signed char. */
- return FT_LONG;
- case HP_TYPE_UNSIGNED_LONG:
- if (typep.dntti.bitlength <= 8)
- return FT_UNSIGNED_CHAR; /* C/C++ unsigned char */
- if (typep.dntti.bitlength <= 16)
- return FT_UNSIGNED_SHORT;
- if (typep.dntti.bitlength <= 32)
- return FT_UNSIGNED_LONG;
- return FT_UNSIGNED_LONG_LONG;
- case HP_TYPE_UNSIGNED_INT:
- if (typep.dntti.bitlength <= 8)
- return FT_UNSIGNED_CHAR;
- if (typep.dntti.bitlength <= 16)
- return FT_UNSIGNED_SHORT;
- if (typep.dntti.bitlength <= 32)
- return FT_UNSIGNED_INTEGER;
- return FT_UNSIGNED_LONG_LONG;
- case HP_TYPE_REAL:
- case HP_TYPE_REAL_3000:
- case HP_TYPE_DOUBLE:
- if (typep.dntti.bitlength == 64)
- return FT_DBL_PREC_FLOAT;
- if (typep.dntti.bitlength == 128)
- return FT_EXT_PREC_FLOAT;
- return FT_FLOAT;
- case HP_TYPE_COMPLEX:
- case HP_TYPE_COMPLEXS3000:
- if (typep.dntti.bitlength == 128)
- return FT_DBL_PREC_COMPLEX;
- if (typep.dntti.bitlength == 192)
- return FT_EXT_PREC_COMPLEX;
- return FT_COMPLEX;
- case HP_TYPE_VOID:
- return FT_VOID;
- case HP_TYPE_STRING200:
- case HP_TYPE_LONGSTRING200:
- case HP_TYPE_FTN_STRING_SPEC:
- case HP_TYPE_MOD_STRING_SPEC:
- case HP_TYPE_MOD_STRING_3000:
- case HP_TYPE_FTN_STRING_S300_COMPAT:
- case HP_TYPE_FTN_STRING_VAX_COMPAT:
- return FT_STRING;
- case HP_TYPE_TEMPLATE_ARG:
- return FT_TEMPLATE_ARG;
- case HP_TYPE_TEXT:
- case HP_TYPE_FLABEL:
- case HP_TYPE_PACKED_DECIMAL:
- case HP_TYPE_ANYPOINTER:
- case HP_TYPE_GLOBAL_ANYPOINTER:
- case HP_TYPE_LOCAL_ANYPOINTER:
- default:
- warning ("hpread_type_translate: unhandled type code.\n");
- return FT_VOID;
- }
-}
-
-/* Given a position in the DNTT, return a pointer to the
- * already-built "struct type" (if any), for the type defined
- * at that position.
- */
-
-static struct type **
-hpread_lookup_type (hp_type, objfile)
- dnttpointer hp_type;
- struct objfile *objfile;
-{
- unsigned old_len;
- int index = hp_type.dnttp.index;
- int size_changed = 0;
-
- /* The immediate flag indicates this doesn't actually point to
- * a type DNTT.
- */
- if (hp_type.dntti.immediate)
- return NULL;
-
- /* For each objfile, we maintain a "type vector".
- * This an array of "struct type *"'s with one pointer per DNTT index.
- * Given a DNTT index, we look in this array to see if we have
- * already processed this DNTT and if it is a type definition.
- * If so, then we can locate a pointer to the already-built
- * "struct type", and not build it again.
- *
- * The need for this arises because our DNTT-walking code wanders
- * around. In particular, it will encounter the same type multiple
- * times (once for each object of that type). We don't want to
- * built multiple "struct type"'s for the same thing.
- *
- * Having said this, I should point out that this type-vector is
- * an expensive way to keep track of this. If most DNTT entries are
- * 3 words, the type-vector will be 1/3 the size of the DNTT itself.
- * Alternative solutions:
- * - Keep a compressed or hashed table. Less memory, but more expensive
- * to search and update.
- * - (Suggested by JB): Overwrite the DNTT entry itself
- * with the info. Create a new type code "ALREADY_BUILT", and modify
- * the DNTT to have that type code and point to the already-built entry.
- * -RT
- */
-
- if (index < LNTT_SYMCOUNT (objfile))
- {
- if (index >= TYPE_VECTOR_LENGTH (objfile))
- {
- old_len = TYPE_VECTOR_LENGTH (objfile);
-
- /* See if we need to allocate a type-vector. */
- if (old_len == 0)
- {
- TYPE_VECTOR_LENGTH(objfile) = LNTT_SYMCOUNT (objfile) + GNTT_SYMCOUNT (objfile);
- TYPE_VECTOR (objfile) = (struct type **)
- xmmalloc (objfile->md, TYPE_VECTOR_LENGTH (objfile) * sizeof (struct type *));
- memset (&TYPE_VECTOR (objfile)[old_len], 0,
- (TYPE_VECTOR_LENGTH (objfile) - old_len) *
- sizeof (struct type *));
- }
-
- /* See if we need to resize type-vector. With my change to
- * initially allocate a correct-size type-vector, this code
- * should no longer trigger.
- */
- while (index >= TYPE_VECTOR_LENGTH (objfile)) {
- TYPE_VECTOR_LENGTH (objfile) *= 2;
- size_changed = 1;
- }
- if (size_changed) {
- TYPE_VECTOR (objfile) = (struct type **)
- xmrealloc (objfile -> md,
- (char *) TYPE_VECTOR (objfile),
- (TYPE_VECTOR_LENGTH (objfile) * sizeof (struct type *)));
-
- memset (&TYPE_VECTOR (objfile)[old_len], 0,
- (TYPE_VECTOR_LENGTH (objfile) - old_len) *
- sizeof (struct type *));
- }
-
- }
- return &TYPE_VECTOR (objfile)[index];
- }
- else
- return NULL;
-}
-
-/* Possibly allocate a GDB internal type so we can internalize HP_TYPE.
- Note we'll just return the address of a GDB internal type if we already
- have it lying around. */
-
-static struct type *
-hpread_alloc_type (hp_type, objfile)
- dnttpointer hp_type;
- struct objfile *objfile;
-{
- struct type **type_addr;
-
- type_addr = hpread_lookup_type (hp_type, objfile);
- if (*type_addr == 0) {
- *type_addr = alloc_type (objfile);
-
- /* A hack - if we really are a C++ class symbol, then this default
- * will get overriden later on.
- */
- TYPE_CPLUS_SPECIFIC (*type_addr)
- = (struct cplus_struct_type *) &cplus_struct_default;
- }
-
- return *type_addr;
-}
-
-/* Read a native enumerated type and return it in GDB internal form. */
-
-static struct type *
-hpread_read_enum_type (hp_type, dn_bufp, objfile)
- dnttpointer hp_type;
- union dnttentry *dn_bufp;
- struct objfile *objfile;
-{
- struct type *type;
- struct pending **symlist, *osyms, *syms;
- struct pending *local_list = NULL;
- int o_nsyms, nsyms = 0;
- dnttpointer mem;
- union dnttentry *memp;
- char *name;
- long n;
- struct symbol *sym;
-
- /* Allocate a GDB type. If we've already read in this enum type,
- * it'll return the already built GDB type, so stop here.
- * (Note: I added this check, to conform with what's done for
- * struct, union, class.
- * I assume this is OK. - RT)
- */
- type = hpread_alloc_type (hp_type, objfile);
- if (TYPE_CODE (type) == TYPE_CODE_ENUM)
- return type;
-
- /* HP C supports "sized enums", where a specifier such as "short" or
- "char" can be used to get enums of different sizes. So don't assume
- an enum is always 4 bytes long. pai/1997-08-21 */
- TYPE_LENGTH (type) = dn_bufp->denum.bitlength / 8;
-
- symlist = &file_symbols;
- osyms = *symlist;
- o_nsyms = osyms ? osyms->nsyms : 0;
-
- /* Get a name for each member and add it to our list of members.
- * The list of "mem" SOM records we are walking should all be
- * SOM type DNTT_TYPE_MEMENUM (not checked).
- */
- mem = dn_bufp->denum.firstmem;
- while (mem.word && mem.word != DNTTNIL)
- {
- memp = hpread_get_lntt (mem.dnttp.index, objfile);
-
- name = VT (objfile) + memp->dmember.name;
- sym = (struct symbol *) obstack_alloc (&objfile->symbol_obstack,
- sizeof (struct symbol));
- memset (sym, 0, sizeof (struct symbol));
- SYMBOL_NAME (sym) = obsavestring (name, strlen (name),
- &objfile->symbol_obstack);
- SYMBOL_CLASS (sym) = LOC_CONST;
- SYMBOL_NAMESPACE (sym) = VAR_NAMESPACE;
- SYMBOL_VALUE (sym) = memp->dmember.value;
- add_symbol_to_list (sym, symlist);
- nsyms++;
- mem = memp->dmember.nextmem;
- }
-
- /* Now that we know more about the enum, fill in more info. */
- TYPE_CODE (type) = TYPE_CODE_ENUM;
- TYPE_FLAGS (type) &= ~TYPE_FLAG_STUB;
- TYPE_NFIELDS (type) = nsyms;
- TYPE_FIELDS (type) = (struct field *)
- obstack_alloc (&objfile->type_obstack, sizeof (struct field) * nsyms);
-
- /* Find the symbols for the members and put them into the type.
- The symbols can be found in the symlist that we put them on
- to cause them to be defined. osyms contains the old value
- of that symlist; everything up to there was defined by us.
-
- Note that we preserve the order of the enum constants, so
- that in something like "enum {FOO, LAST_THING=FOO}" we print
- FOO, not LAST_THING. */
- for (syms = *symlist, n = 0; syms; syms = syms->next)
- {
- int j = 0;
- if (syms == osyms)
- j = o_nsyms;
- for (; j < syms->nsyms; j++, n++)
- {
- struct symbol *xsym = syms->symbol[j];
- SYMBOL_TYPE (xsym) = type;
- TYPE_FIELD_NAME (type, n) = SYMBOL_NAME (xsym);
- TYPE_FIELD_BITPOS (type, n) = SYMBOL_VALUE (xsym);
- TYPE_FIELD_BITSIZE (type, n) = 0;
- }
- if (syms == osyms)
- break;
- }
-
- return type;
-}
-
-/* Read and internalize a native function debug symbol. */
-
-static struct type *
-hpread_read_function_type (hp_type, dn_bufp, objfile, newblock)
- dnttpointer hp_type;
- union dnttentry *dn_bufp;
- struct objfile *objfile;
- int newblock;
-{
- struct type *type, *type1;
- struct pending *syms;
- struct pending *local_list = NULL;
- int nsyms = 0;
- dnttpointer param;
- union dnttentry *paramp;
- char *name;
- long n;
- struct symbol *sym;
- int record_args = 1;
-
- /* See if we've already read in this type. */
- type = hpread_alloc_type (hp_type, objfile);
- if (TYPE_CODE (type) == TYPE_CODE_FUNC)
- {
- record_args = 0; /* already read in, don't modify type */
- }
- else
- {
- /* Nope, so read it in and store it away. */
- if (dn_bufp->dblock.kind == DNTT_TYPE_FUNCTION ||
- dn_bufp->dblock.kind == DNTT_TYPE_MEMFUNC)
- type1 = lookup_function_type (hpread_type_lookup (dn_bufp->dfunc.retval,
- objfile));
- else if (dn_bufp->dblock.kind == DNTT_TYPE_FUNCTYPE)
- type1 = lookup_function_type (hpread_type_lookup (dn_bufp->dfunctype.retval,
- objfile));
- else /* expect DNTT_TYPE_FUNC_TEMPLATE */
- type1 = lookup_function_type (hpread_type_lookup (dn_bufp->dfunc_template.retval,
- objfile));
- memcpy ((char *) type, (char *) type1, sizeof (struct type));
-
- /* Mark it -- in the middle of processing */
- TYPE_FLAGS (type) |= TYPE_FLAG_INCOMPLETE;
- }
-
- /* Now examine each parameter noting its type, location, and a
- wealth of other information. */
- if (dn_bufp->dblock.kind == DNTT_TYPE_FUNCTION ||
- dn_bufp->dblock.kind == DNTT_TYPE_MEMFUNC)
- param = dn_bufp->dfunc.firstparam;
- else if (dn_bufp->dblock.kind == DNTT_TYPE_FUNCTYPE)
- param = dn_bufp->dfunctype.firstparam;
- else /* expect DNTT_TYPE_FUNC_TEMPLATE */
- param = dn_bufp->dfunc_template.firstparam;
- while (param.word && param.word != DNTTNIL)
- {
- paramp = hpread_get_lntt (param.dnttp.index, objfile);
- nsyms++;
- param = paramp->dfparam.nextparam;
-
- /* Get the name. */
- name = VT (objfile) + paramp->dfparam.name;
- sym = (struct symbol *) obstack_alloc (&objfile->symbol_obstack,
- sizeof (struct symbol));
- (void) memset (sym, 0, sizeof (struct symbol));
- SYMBOL_NAME (sym) = obsavestring (name, strlen (name),
- &objfile->symbol_obstack);
-
- /* Figure out where it lives. */
- if (paramp->dfparam.regparam)
- SYMBOL_CLASS (sym) = LOC_REGPARM;
- else if (paramp->dfparam.indirect)
- SYMBOL_CLASS (sym) = LOC_REF_ARG;
- else
- SYMBOL_CLASS (sym) = LOC_ARG;
- SYMBOL_NAMESPACE (sym) = VAR_NAMESPACE;
- if (paramp->dfparam.copyparam)
- {
- SYMBOL_VALUE (sym) = paramp->dfparam.location ;
-#ifdef HPREAD_ADJUST_STACK_ADDRESS
- SYMBOL_VALUE (sym)
- += HPREAD_ADJUST_STACK_ADDRESS (CURRENT_FUNCTION_VALUE (objfile));
-#endif
- /* This is likely a pass-by-invisible reference parameter,
- Hack on the symbol class to make GDB happy. */
- /* ??rehrauer: This appears to be broken w/r/t to passing
- C values of type float and struct. Perhaps this ought
- to be highighted as a special case, but for now, just
- allowing these to be LOC_ARGs seems to work fine.
- */
-#if 0
- SYMBOL_CLASS (sym) = LOC_REGPARM_ADDR;
-#endif
- }
- else
- SYMBOL_VALUE (sym) = paramp->dfparam.location;
-
- /* Get its type. */
- SYMBOL_TYPE (sym) = hpread_type_lookup (paramp->dfparam.type, objfile);
- /* Add it to the symbol list. */
- /* Note 1 (RT) At the moment, add_symbol_to_list() is also being
- * called on FPARAM symbols from the process_one_debug_symbol()
- * level... so parameters are getting added twice! (this shows
- * up in the symbol dump you get from "maint print symbols ...").
- * Note 2 (RT) I took out the processing of FPARAM from the
- * process_one_debug_symbol() level, so at the moment parameters are only
- * being processed here. This seems to have no ill effect.
- */
- /* Note 3 (pai/1997-08-11) I removed the add_symbol_to_list() which put
- each fparam on the local_symbols list from here. Now we use the
- local_list to which fparams are added below, and set the param_symbols
- global to point to that at the end of this routine. */
- /* elz: I added this new list of symbols which is local to the function.
- this list is the one which is actually used to build the type for the
- function rather than the gloabal list pointed to by symlist.
- Using a global list to keep track of the parameters is wrong, because
- this function is called recursively if one parameter happend to be
- a function itself with more parameters in it. Adding parameters to the
- same global symbol list would not work!
- Actually it did work in case of cc compiled programs where you do
- not check the parameter lists of the arguments. */
- add_symbol_to_list (sym, &local_list);
-
- }
-
- /* If type was read in earlier, don't bother with modifying
- the type struct */
- if (!record_args)
- goto finish;
-
- /* Note how many parameters we found. */
- TYPE_NFIELDS (type) = nsyms;
- TYPE_FIELDS (type) = (struct field *)
- obstack_alloc (&objfile->type_obstack,
- sizeof (struct field) * nsyms);
-
- /* Find the symbols for the parameters and
- use them to fill parameter-type information into the function-type.
- The parameter symbols can be found in the local_list that we just put them on. */
- /* Note that we preserve the order of the parameters, so
- that in something like "enum {FOO, LAST_THING=FOO}" we print
- FOO, not LAST_THING. */
-
- /* get the parameters types from the local list not the global list
- so that the type can be correctly constructed for functions which
- have function as parameters */
- for (syms = local_list, n = 0; syms; syms = syms->next)
- {
- int j = 0;
- for (j=0; j < syms->nsyms; j++, n++)
- {
- struct symbol *xsym = syms->symbol[j];
- TYPE_FIELD_NAME (type, n) = SYMBOL_NAME (xsym);
- TYPE_FIELD_TYPE (type, n) = SYMBOL_TYPE (xsym);
- TYPE_FIELD_BITPOS (type, n) = n;
- TYPE_FIELD_BITSIZE (type, n) = 0;
- }
- }
- /* Mark it as having been processed */
- TYPE_FLAGS (type) &= ~(TYPE_FLAG_INCOMPLETE);
-
- /* Check whether we need to fix-up a class type with this function's type */
- if (fixup_class && (fixup_method == type))
- {
- fixup_class_method_type (fixup_class, fixup_method, objfile);
- fixup_class = NULL;
- fixup_method = NULL;
- }
-
- /* Set the param list of this level of the context stack
- to our local list. Do this only if this function was
- called for creating a new block, and not if it was called
- simply to get the function type. This prevents recursive
- invocations from trashing param_symbols. */
-finish:
- if (newblock)
- param_symbols = local_list;
-
- return type;
-}
-
-
-/* Read and internalize a native DOC function debug symbol. */
-/* This is almost identical to hpread_read_function_type(), except
- * for references to dn_bufp->ddocfunc instead of db_bufp->dfunc.
- * Since debug information for DOC functions is more likely to be
- * volatile, please leave it this way.
- */
-static struct type *
-hpread_read_doc_function_type (hp_type, dn_bufp, objfile, newblock)
- dnttpointer hp_type;
- union dnttentry *dn_bufp;
- struct objfile *objfile;
- int newblock;
-{
- struct type *type, *type1;
- struct pending *syms;
- struct pending *local_list = NULL;
- int nsyms = 0;
- dnttpointer param;
- union dnttentry *paramp;
- char *name;
- long n;
- struct symbol *sym;
- int record_args = 1;
-
- /* See if we've already read in this type. */
- type = hpread_alloc_type (hp_type, objfile);
- if (TYPE_CODE (type) == TYPE_CODE_FUNC)
- {
- record_args = 0; /* already read in, don't modify type */
- }
- else
- {
- /* Nope, so read it in and store it away. */
- if (dn_bufp->dblock.kind == DNTT_TYPE_DOC_FUNCTION ||
- dn_bufp->dblock.kind == DNTT_TYPE_DOC_MEMFUNC)
- type1 = lookup_function_type (hpread_type_lookup (dn_bufp->ddocfunc.retval,
- objfile));
- memcpy ((char *) type, (char *) type1, sizeof (struct type));
-
- /* Mark it -- in the middle of processing */
- TYPE_FLAGS (type) |= TYPE_FLAG_INCOMPLETE;
- }
-
- /* Now examine each parameter noting its type, location, and a
- wealth of other information. */
- if (dn_bufp->dblock.kind == DNTT_TYPE_DOC_FUNCTION ||
- dn_bufp->dblock.kind == DNTT_TYPE_DOC_MEMFUNC)
- param = dn_bufp->ddocfunc.firstparam;
- while (param.word && param.word != DNTTNIL)
- {
- paramp = hpread_get_lntt (param.dnttp.index, objfile);
- nsyms++;
- param = paramp->dfparam.nextparam;
-
- /* Get the name. */
- name = VT (objfile) + paramp->dfparam.name;
- sym = (struct symbol *) obstack_alloc (&objfile->symbol_obstack,
- sizeof (struct symbol));
- (void) memset (sym, 0, sizeof (struct symbol));
- SYMBOL_NAME (sym) = name;
-
- /* Figure out where it lives. */
- if (paramp->dfparam.regparam)
- SYMBOL_CLASS (sym) = LOC_REGPARM;
- else if (paramp->dfparam.indirect)
- SYMBOL_CLASS (sym) = LOC_REF_ARG;
- else
- SYMBOL_CLASS (sym) = LOC_ARG;
- SYMBOL_NAMESPACE (sym) = VAR_NAMESPACE;
- if (paramp->dfparam.copyparam)
- {
- SYMBOL_VALUE (sym) = paramp->dfparam.location ;
-#ifdef HPREAD_ADJUST_STACK_ADDRESS
- SYMBOL_VALUE (sym)
- += HPREAD_ADJUST_STACK_ADDRESS (CURRENT_FUNCTION_VALUE (objfile));
-#endif
- /* This is likely a pass-by-invisible reference parameter,
- Hack on the symbol class to make GDB happy. */
- /* ??rehrauer: This appears to be broken w/r/t to passing
- C values of type float and struct. Perhaps this ought
- to be highighted as a special case, but for now, just
- allowing these to be LOC_ARGs seems to work fine.
- */
-#if 0
- SYMBOL_CLASS (sym) = LOC_REGPARM_ADDR;
-#endif
- }
- else
- SYMBOL_VALUE (sym) = paramp->dfparam.location;
-
- /* Get its type. */
- SYMBOL_TYPE (sym) = hpread_type_lookup (paramp->dfparam.type, objfile);
- /* Add it to the symbol list. */
- /* Note 1 (RT) At the moment, add_symbol_to_list() is also being
- * called on FPARAM symbols from the process_one_debug_symbol()
- * level... so parameters are getting added twice! (this shows
- * up in the symbol dump you get from "maint print symbols ...").
- * Note 2 (RT) I took out the processing of FPARAM from the
- * process_one_debug_symbol() level, so at the moment parameters are only
- * being processed here. This seems to have no ill effect.
- */
- /* Note 3 (pai/1997-08-11) I removed the add_symbol_to_list() which put
- each fparam on the local_symbols list from here. Now we use the
- local_list to which fparams are added below, and set the param_symbols
- global to point to that at the end of this routine. */
-
- /* elz: I added this new list of symbols which is local to the function.
- this list is the one which is actually used to build the type for the
- function rather than the gloabal list pointed to by symlist.
- Using a global list to keep track of the parameters is wrong, because
- this function is called recursively if one parameter happend to be
- a function itself with more parameters in it. Adding parameters to the
- same global symbol list would not work!
- Actually it did work in case of cc compiled programs where you do not check the
- parameter lists of the arguments. */
- add_symbol_to_list (sym, &local_list);
- }
-
- /* If type was read in earlier, don't bother with modifying
- the type struct */
- if (!record_args)
- goto finish;
-
- /* Note how many parameters we found. */
- TYPE_NFIELDS (type) = nsyms;
- TYPE_FIELDS (type) = (struct field *)
- obstack_alloc (&objfile->type_obstack,
- sizeof (struct field) * nsyms);
-
- /* Find the symbols for the parameters and
- use them to fill parameter-type information into the function-type.
- The parameter symbols can be found in the local_list that we just put them on. */
- /* Note that we preserve the order of the parameters, so
- that in something like "enum {FOO, LAST_THING=FOO}" we print
- FOO, not LAST_THING. */
-
- /* get the parameters types from the local list not the global list
- so that the type can be correctly constructed for functions which
- have function as parameters
- */
- for (syms = local_list, n = 0; syms; syms = syms->next)
- {
- int j = 0;
- for (j = 0; j < syms->nsyms; j++, n++)
- {
- struct symbol *xsym = syms->symbol[j];
- TYPE_FIELD_NAME (type, n) = SYMBOL_NAME (xsym);
- TYPE_FIELD_TYPE (type, n) = SYMBOL_TYPE (xsym);
- TYPE_FIELD_BITPOS (type, n) = n;
- TYPE_FIELD_BITSIZE (type, n) = 0;
- }
- }
-
- /* Mark it as having been processed */
- TYPE_FLAGS (type) &= ~(TYPE_FLAG_INCOMPLETE);
-
- /* Check whether we need to fix-up a class type with this function's type */
- if (fixup_class && (fixup_method == type))
- {
- fixup_class_method_type (fixup_class, fixup_method, objfile);
- fixup_class = NULL;
- fixup_method = NULL;
- }
-
- /* Set the param list of this level of the context stack
- to our local list. Do this only if this function was
- called for creating a new block, and not if it was called
- simply to get the function type. This prevents recursive
- invocations from trashing param_symbols. */
-finish:
- if (newblock)
- param_symbols = local_list;
-
- return type;
-}
-
-
-
-/* A file-level variable which keeps track of the current-template
- * being processed. Set in hpread_read_struct_type() while processing
- * a template type. Referred to in hpread_get_nth_templ_arg().
- * Yes, this is a kludge, but it arises from the kludge that already
- * exists in symtab.h, namely the fact that they encode
- * "template argument n" with fundamental type FT_TEMPLATE_ARG and
- * bitlength n. This means that deep in processing fundamental types
- * I need to ask the question "what template am I in the middle of?".
- * The alternative to stuffing a global would be to pass an argument
- * down the chain of calls just for this purpose.
- *
- * There may be problems handling nested templates... tough.
- */
-static struct type * current_template = NULL;
-
-/* Read in and internalize a structure definition.
- * This same routine is called for struct, union, and class types.
- * Also called for templates, since they build a very similar
- * type entry as for class types.
- */
-
-static struct type *
-hpread_read_struct_type (hp_type, dn_bufp, objfile)
- dnttpointer hp_type;
- union dnttentry *dn_bufp;
- struct objfile *objfile;
-{
- /* The data members get linked together into a list of struct nextfield's */
- struct nextfield
- {
- struct nextfield *next;
- struct field field;
- unsigned char attributes; /* store visibility and virtuality info */
-# define ATTR_VIRTUAL 1
-# define ATTR_PRIVATE 2
-# define ATTR_PROTECT 3
- };
-
-
- /* The methods get linked together into a list of struct next_fn_field's */
- struct next_fn_field
- {
- struct next_fn_field *next;
- struct fn_fieldlist field;
- struct fn_field fn_field;
- int num_fn_fields;
- };
-
- /* The template args get linked together into a list of struct next_template's */
- struct next_template
- {
- struct next_template *next;
- struct template_arg arg;
- };
-
- /* The template instantiations get linked together into a list of these... */
- struct next_instantiation
- {
- struct next_instantiation * next;
- struct type * t;
- };
-
- struct type *type;
- struct type *baseclass;
- struct type *memtype;
- struct nextfield *list = 0, *tmp_list = 0;
- struct next_fn_field *fn_list = 0;
- struct next_fn_field *fn_p;
- struct next_template *t_new, *t_list = 0;
- struct nextfield *new;
- struct next_fn_field *fn_new;
- struct next_instantiation *i_new, *i_list = 0;
- int n, nfields = 0, n_fn_fields = 0, n_fn_fields_total = 0;
- int n_base_classes = 0, n_templ_args = 0;
- int ninstantiations = 0;
- dnttpointer field, fn_field, parent;
- union dnttentry *fieldp, *fn_fieldp, *parentp;
- int i;
- int static_member = 0;
- int const_member = 0;
- int volatile_member = 0;
- unsigned long vtbl_offset;
- int need_bitvectors = 0;
- char * method_name = NULL;
- char * method_alias = NULL;
-
-
- /* Is it something we've already dealt with? */
- type = hpread_alloc_type (hp_type, objfile);
- if ((TYPE_CODE (type) == TYPE_CODE_STRUCT) ||
- (TYPE_CODE (type) == TYPE_CODE_UNION) ||
- (TYPE_CODE (type) == TYPE_CODE_CLASS) ||
- (TYPE_CODE (type) == TYPE_CODE_TEMPLATE))
- return type;
-
- /* Get the basic type correct. */
- if (dn_bufp->dblock.kind == DNTT_TYPE_STRUCT)
- {
- TYPE_CODE (type) = TYPE_CODE_STRUCT;
- TYPE_LENGTH (type) = dn_bufp->dstruct.bitlength / 8;
- }
- else if (dn_bufp->dblock.kind == DNTT_TYPE_UNION)
- {
- TYPE_CODE (type) = TYPE_CODE_UNION;
- TYPE_LENGTH (type) = dn_bufp->dunion.bitlength / 8;
- }
- else if (dn_bufp->dblock.kind == DNTT_TYPE_CLASS)
- {
- TYPE_CODE (type) = TYPE_CODE_CLASS;
- TYPE_LENGTH (type) = dn_bufp->dclass.bitlength / 8;
-
- /* Overrides the TYPE_CPLUS_SPECIFIC(type) with allocated memory
- * rather than &cplus_struct_default.
- */
- allocate_cplus_struct_type(type);
-
- /* Fill in declared-type.
- * (The C++ compiler will emit TYPE_CODE_CLASS
- * for all 3 of "class", "struct"
- * "union", and we have to look at the "class_decl" field if we
- * want to know how it was really declared)
- */
- /* (0==class, 1==union, 2==struct) */
- TYPE_DECLARED_TYPE(type) = dn_bufp->dclass.class_decl;
- }
- else if (dn_bufp->dblock.kind == DNTT_TYPE_TEMPLATE)
- {
- /* Get the basic type correct. */
- TYPE_CODE (type) = TYPE_CODE_TEMPLATE;
- allocate_cplus_struct_type(type);
- TYPE_DECLARED_TYPE(type) = DECLARED_TYPE_TEMPLATE;
- }
- else
- return type;
-
-
- TYPE_FLAGS (type) &= ~TYPE_FLAG_STUB;
-
- /* For classes, read the parent list.
- * Question (RT): Do we need to do this for templates also?
- */
- if (dn_bufp->dblock.kind == DNTT_TYPE_CLASS) {
-
- /* First read the parent-list (classes from which we derive fields) */
- parent = dn_bufp->dclass.parentlist;
- while (parent.word && parent.word != DNTTNIL) {
- parentp = hpread_get_lntt (parent.dnttp.index, objfile);
-
- /* "parentp" should point to a DNTT_TYPE_INHERITANCE record */
-
- /* Get space to record the next field/data-member. */
- new = (struct nextfield *) alloca (sizeof (struct nextfield));
- new->next = list;
- list = new;
-
- FIELD_BITSIZE (list->field) = 0;
-
- /* The "classname" field is actually a DNTT pointer to the base class */
- baseclass = hpread_type_lookup (parentp->dinheritance.classname,
- objfile);
- FIELD_TYPE (list->field) = baseclass;
-
- list->field.name = type_name_no_tag(FIELD_TYPE (list->field));
-
- list->attributes = 0;
-
- /* Check for virtuality of base, and set the
- * offset of the base subobject within the object.
- * (Offset set to -1 for virtual bases (for now).)
- */
- if (parentp->dinheritance.Virtual)
- {
- B_SET(&(list->attributes), ATTR_VIRTUAL);
- parentp->dinheritance.offset = -1;
- }
- else
- FIELD_BITPOS (list->field) = parentp->dinheritance.offset;
-
- /* Check visibility */
- switch (parentp->dinheritance.visibility)
- {
- case 1:
- B_SET(&(list->attributes), ATTR_PROTECT);
- break;
- case 2:
- B_SET(&(list->attributes), ATTR_PRIVATE);
- break;
- }
-
- n_base_classes++;
- nfields++;
-
- parent = parentp->dinheritance.next;
- }
- }
-
- /* For templates, read the template argument list.
- * This must be done before processing the member list, because
- * the member list may refer back to this. E.g.:
- * template <class T1, class T2> class q2 {
- * public:
- * T1 a;
- * T2 b;
- * };
- * We need to read the argument list "T1", "T2" first.
- */
- if (dn_bufp->dblock.kind == DNTT_TYPE_TEMPLATE) {
- /* Kludge alert: This stuffs a global "current_template" which
- * is referred to by hpread_get_nth_templ_arg(). The global
- * is cleared at the end of this routine.
- */
- current_template = type;
-
- /* Read in the argument list */
- field = dn_bufp->dtemplate.arglist;
- while (field.word && field.word != DNTTNIL) {
- /* Get this template argument*/
- fieldp = hpread_get_lntt (field.dnttp.index, objfile);
- if (fieldp->dblock.kind != DNTT_TYPE_TEMPLATE_ARG)
- {
- warning ("Invalid debug info: Template argument entry is of wrong kind");
- break;
- }
- /* Bump the count */
- n_templ_args++;
- /* Allocate and fill in a struct next_template */
- t_new = (struct next_template *) alloca (sizeof (struct next_template));
- t_new->next = t_list;
- t_list = t_new;
- t_list->arg.name = VT (objfile) + fieldp->dtempl_arg.name;
- t_list->arg.type = hpread_read_templ_arg_type(field, fieldp,
- objfile, t_list->arg.name);
- /* Walk to the next template argument */
- field = fieldp->dtempl_arg.nextarg;
- }
- }
-
- TYPE_NTEMPLATE_ARGS(type) = n_templ_args;
-
- if (n_templ_args > 0)
- TYPE_TEMPLATE_ARGS(type) = (struct template_arg *)
- obstack_alloc (&objfile->type_obstack, sizeof (struct template_arg) * n_templ_args);
- for (n = n_templ_args; t_list; t_list = t_list->next)
- {
- n -= 1;
- TYPE_TEMPLATE_ARG(type, n) = t_list->arg;
- }
-
- /* Next read in and internalize all the fields/members. */
- if (dn_bufp->dblock.kind == DNTT_TYPE_STRUCT)
- field = dn_bufp->dstruct.firstfield;
- else if (dn_bufp->dblock.kind == DNTT_TYPE_UNION)
- field = dn_bufp->dunion.firstfield;
- else if (dn_bufp->dblock.kind == DNTT_TYPE_CLASS)
- field = dn_bufp->dclass.memberlist;
- else if (dn_bufp->dblock.kind == DNTT_TYPE_TEMPLATE)
- field = dn_bufp->dtemplate.memberlist;
- else
- field.word = DNTTNIL;
-
- while (field.word && field.word != DNTTNIL)
- {
- fieldp = hpread_get_lntt (field.dnttp.index, objfile);
-
- /* At this point "fieldp" may point to either a DNTT_TYPE_FIELD
- * or a DNTT_TYPE_GENFIELD record.
- */
- vtbl_offset = 0;
- static_member = 0;
- const_member = 0;
- volatile_member = 0;
-
- if (fieldp->dblock.kind == DNTT_TYPE_GENFIELD) {
-
- /* The type will be GENFIELD if the field is a method or
- * a static member (or some other cases -- see below)
- */
-
- /* Follow a link to get to the record for the field. */
- fn_field = fieldp->dgenfield.field;
- fn_fieldp = hpread_get_lntt(fn_field.dnttp.index, objfile);
-
- /* Virtual funcs are indicated by a VFUNC which points to the
- * real entry
- */
- if (fn_fieldp->dblock.kind == DNTT_TYPE_VFUNC) {
- vtbl_offset = fn_fieldp->dvfunc.vtbl_offset;
- fn_field = fn_fieldp->dvfunc.funcptr;
- fn_fieldp = hpread_get_lntt(fn_field.dnttp.index, objfile);
- }
-
- /* A function's entry may be preceded by a modifier which
- * labels it static/constant/volatile.
- */
- if (fn_fieldp->dblock.kind == DNTT_TYPE_MODIFIER) {
- static_member = fn_fieldp->dmodifier.m_static;
- const_member = fn_fieldp->dmodifier.m_const;
- volatile_member = fn_fieldp->dmodifier.m_volatile;
- fn_field = fn_fieldp->dmodifier.type;
- fn_fieldp = hpread_get_lntt(fn_field.dnttp.index, objfile);
- }
-
- /* Check whether we have a method */
- if ((fn_fieldp->dblock.kind == DNTT_TYPE_MEMFUNC) ||
- (fn_fieldp->dblock.kind == DNTT_TYPE_FUNCTION) ||
- (fn_fieldp->dblock.kind == DNTT_TYPE_DOC_MEMFUNC) ||
- (fn_fieldp->dblock.kind == DNTT_TYPE_DOC_FUNCTION)) {
- /* Method found */
-
- short ix = 0;
-
- /* Look up function type of method */
- memtype = hpread_type_lookup (fn_field, objfile);
-
- /* Methods can be seen before classes in the SOM records.
- If we are processing this class because it's a parameter of a
- method, at this point the method's type is actually incomplete;
- we'll have to fix it up later; mark the class for this. */
-
- if (TYPE_INCOMPLETE (memtype))
- {
- TYPE_FLAGS (type) |= TYPE_FLAG_INCOMPLETE;
- if (fixup_class)
- warning ("Two classes to fix up for method?? Type information may be incorrect for some classes.");
- if (fixup_method)
- warning ("Two methods to be fixed up at once?? Type information may be incorrect for some classes.");
- fixup_class = type; /* remember this class has to be fixed up */
- fixup_method = memtype; /* remember the method type to be used in fixup */
- }
-
- /* HP aCC generates operator names without the "operator" keyword, and
- generates null strings as names for operators that are
- user-defined type conversions to basic types (e.g. operator int ()).
- So try to reconstruct name as best as possible. */
-
- method_name = (char *) (VT (objfile) + fn_fieldp->dfunc.name);
- method_alias = (char *) (VT (objfile) + fn_fieldp->dfunc.alias);
-
- if (!method_name || /* no name */
- !*method_name || /* or null name */
- cplus_mangle_opname (method_name, DMGL_ANSI)) /* or name is an operator like "<" */
- {
- char * tmp_name = cplus_demangle (method_alias, DMGL_ANSI);
- char * op_string = strstr (tmp_name, "operator");
- method_name = xmalloc (strlen (op_string) + 1); /* don't overwrite VT! */
- strcpy (method_name, op_string);
- }
-
- /* First check if a method of the same name has already been seen. */
- fn_p = fn_list;
- while (fn_p)
- {
- if (STREQ (fn_p->field.name, method_name))
- break;
- fn_p = fn_p->next;
- }
-
- /* If no such method was found, allocate a new entry in the list */
- if (!fn_p)
- {
- /* Get space to record this member function */
- /* Note: alloca used; this will disappear on routine exit */
- fn_new = (struct next_fn_field *) alloca (sizeof (struct next_fn_field));
- fn_new->next = fn_list;
- fn_list = fn_new;
-
- /* Fill in the fields of the struct nextfield */
-
- /* Record the (unmangled) method name */
- fn_list->field.name = method_name;
- /* Initial space for overloaded methods */
- /* Note: xmalloc is used; this will persist after this routine exits */
- fn_list->field.fn_fields = (struct fn_field *) xmalloc (5 * (sizeof (struct fn_field)));
- fn_list->field.length = 1; /* Init # of overloaded instances */
- fn_list->num_fn_fields = 5; /* # of entries for which space allocated */
- fn_p = fn_list;
- ix = 0; /* array index for fn_field */
- /* Bump the total count of the distinctly named methods */
- n_fn_fields++;
- }
- else /* Another overloaded instance of an already seen method name */
- {
- if (++(fn_p->field.length) > fn_p->num_fn_fields)
- {
- /* Increase space allocated for overloaded instances */
- fn_p->field.fn_fields
- = (struct fn_field *) xrealloc (fn_p->field.fn_fields,
- (fn_p->num_fn_fields + 5) * sizeof (struct fn_field));
- fn_p->num_fn_fields += 5;
- }
- ix = fn_p->field.length -1; /* array index for fn_field */
- }
-
- /* "physname" is intended to be the name of this overloaded instance. */
- if ((fn_fieldp->dfunc.language == HP_LANGUAGE_CPLUSPLUS) &&
- method_alias &&
- *method_alias) /* not a null string */
- fn_p->field.fn_fields[ix].physname = method_alias;
- else
- fn_p->field.fn_fields[ix].physname = method_name;
- /* What's expected here is the function type */
- /* But mark it as NULL if the method was incompletely processed
- We'll fix this up later when the method is fully processed */
- if (TYPE_INCOMPLETE (memtype))
- {
- fn_p->field.fn_fields[ix].type = NULL;
- fn_p->field.fn_fields[ix].args = NULL;
- }
- else
- {
- fn_p->field.fn_fields[ix].type = memtype;
-
- /* The argument list */
- fn_p->field.fn_fields[ix].type->type_specific.arg_types =
- (struct type **) obstack_alloc(&objfile->type_obstack,
- sizeof(struct type *) * (memtype->nfields + 1));
- for (i = 0; i < memtype->nfields; i++)
- fn_p->field.fn_fields[ix].type->type_specific.arg_types[i] = memtype->fields[i].type;
- /* void termination */
- fn_p->field.fn_fields[ix].type->type_specific.arg_types[memtype->nfields] = builtin_type_void;
-
- /* pai: It's not clear why this args field has to be set. Perhaps
- * it should be eliminated entirely. */
- fn_p->field.fn_fields[ix].args =
- (struct type **) obstack_alloc(&objfile->type_obstack,
- sizeof(struct type *) * (memtype->nfields + 1));
- for (i = 0; i < memtype->nfields; i++)
- fn_p->field.fn_fields[ix].args[i] = memtype->fields[i].type;
- /* null-terminated, unlike arg_types above e*/
- fn_p->field.fn_fields[ix].args[memtype->nfields] = NULL;
- }
- /* For virtual functions, fill in the voffset field with the
- * virtual table offset. (This is just copied over from the
- * SOM record; not sure if it is what GDB expects here...).
- * But if the function is a static method, set it to 1.
- *
- * Note that we have to add 1 because 1 indicates a static
- * method, and 0 indicates a non-static, non-virtual method */
-
- if (static_member)
- fn_p->field.fn_fields[ix].voffset = VOFFSET_STATIC;
- else
- fn_p->field.fn_fields[ix].voffset = vtbl_offset ? vtbl_offset + 1 : 0;
-
- /* Also fill in the fcontext field with the current
- * class. (The latter isn't quite right: should be the baseclass
- * that defines the virtual function... Note we do have
- * a variable "baseclass" that we could stuff into the fcontext
- * field, but "baseclass" isn't necessarily right either,
- * since the virtual function could have been defined more
- * than one level up).
- */
-
- if (vtbl_offset != 0)
- fn_p->field.fn_fields[ix].fcontext = type;
- else
- fn_p->field.fn_fields[ix].fcontext = NULL;
-
- /* Other random fields pertaining to this method */
- fn_p->field.fn_fields[ix].is_const = const_member;
- fn_p->field.fn_fields[ix].is_volatile = volatile_member; /* ?? */
- switch (fieldp->dgenfield.visibility) {
- case 1:
- fn_p->field.fn_fields[ix].is_protected = 1;
- fn_p->field.fn_fields[ix].is_private = 0;
- break;
- case 2:
- fn_p->field.fn_fields[ix].is_protected = 0;
- fn_p->field.fn_fields[ix].is_private = 1;
- break;
- default: /* public */
- fn_p->field.fn_fields[ix].is_protected = 0;
- fn_p->field.fn_fields[ix].is_private = 0;
- }
- fn_p->field.fn_fields[ix].is_stub = 0;
-
- /* HP aCC emits both MEMFUNC and FUNCTION entries for a method;
- if the class points to the FUNCTION, there is usually separate
- code for the method; but if we have a MEMFUNC, the method has
- been inlined (and there is usually no FUNCTION entry)
- FIXME Not sure if this test is accurate. pai/1997-08-22 */
- if ((fn_fieldp->dblock.kind == DNTT_TYPE_MEMFUNC) ||
- (fn_fieldp->dblock.kind == DNTT_TYPE_DOC_MEMFUNC))
- fn_p->field.fn_fields[ix].is_inlined = 1;
- else
- fn_p->field.fn_fields[ix].is_inlined = 0;
-
- fn_p->field.fn_fields[ix].dummy = 0;
-
- /* Bump the total count of the member functions */
- n_fn_fields_total++;
-
- } else if (fn_fieldp->dblock.kind == DNTT_TYPE_SVAR) {
- /* This case is for static data members of classes */
-
- /* pai:: FIXME -- check that "staticmem" bit is set */
-
- /* Get space to record this static member */
- new = (struct nextfield *) alloca (sizeof (struct nextfield));
- new->next = list;
- list = new;
-
- list->field.name = VT (objfile) + fn_fieldp->dsvar.name;
- FIELD_BITSIZE (list->field) = -1; /* indicates static member */
- SET_FIELD_PHYSNAME (list->field, 0); /* initialize to empty */
- memtype = hpread_type_lookup (fn_fieldp->dsvar.type, objfile);
-
- FIELD_TYPE (list->field) = memtype;
- list->attributes = 0;
- switch (fieldp->dgenfield.visibility) {
- case 1:
- B_SET(&(list->attributes), ATTR_PROTECT);
- break;
- case 2:
- B_SET(&(list->attributes), ATTR_PRIVATE);
- break;
- }
- nfields++;
- }
-
- else if (fn_fieldp->dblock.kind == DNTT_TYPE_FIELD)
- {
- /* FIELDs follow GENFIELDs for fields of anonymous unions.
- Code below is replicated from the case for FIELDs further
- below, except that fieldp is replaced by fn_fieldp */
- if (!fn_fieldp->dfield.a_union)
- warning ("Debug info inconsistent: FIELD of anonymous union doesn't have a_union bit set");
- /* Get space to record the next field/data-member. */
- new = (struct nextfield *) alloca (sizeof (struct nextfield));
- new->next = list;
- list = new;
-
- list->field.name = VT (objfile) + fn_fieldp->dfield.name;
- FIELD_BITPOS (list->field) = fn_fieldp->dfield.bitoffset;
- if (fn_fieldp->dfield.bitlength % 8)
- list->field.bitsize = fn_fieldp->dfield.bitlength;
- else
- list->field.bitsize = 0;
-
- memtype = hpread_type_lookup (fn_fieldp->dfield.type, objfile);
- list->field.type = memtype;
- list->attributes = 0;
- switch (fn_fieldp->dfield.visibility) {
- case 1:
- B_SET(&(list->attributes), ATTR_PROTECT);
- break;
- case 2:
- B_SET(&(list->attributes), ATTR_PRIVATE);
- break;
- }
- nfields++;
- }
- else if (fn_fieldp->dblock.kind == DNTT_TYPE_SVAR)
- {
- /* Field of anonymous union; union is not inside a class */
- if (!fn_fieldp->dsvar.a_union)
- warning ("Debug info inconsistent: SVAR field in anonymous union doesn't have a_union bit set");
- /* Get space to record the next field/data-member. */
- new = (struct nextfield *) alloca (sizeof (struct nextfield));
- new->next = list;
- list = new;
-
- list->field.name = VT (objfile) + fn_fieldp->dsvar.name;
- FIELD_BITPOS (list->field) = 0; /* FIXME is this always true? */
- FIELD_BITSIZE (list->field) = 0; /* use length from type */
- memtype = hpread_type_lookup (fn_fieldp->dsvar.type, objfile);
- list->field.type = memtype;
- list->attributes = 0;
- /* No info to set visibility -- always public */
- nfields++;
- }
- else if (fn_fieldp->dblock.kind == DNTT_TYPE_DVAR)
- {
- /* Field of anonymous union; union is not inside a class */
- if (!fn_fieldp->ddvar.a_union)
- warning ("Debug info inconsistent: DVAR field in anonymous union doesn't have a_union bit set");
- /* Get space to record the next field/data-member. */
- new = (struct nextfield *) alloca (sizeof (struct nextfield));
- new->next = list;
- list = new;
-
- list->field.name = VT (objfile) + fn_fieldp->ddvar.name;
- FIELD_BITPOS (list->field) = 0; /* FIXME is this always true? */
- FIELD_BITSIZE (list->field) = 0; /* use length from type */
- memtype = hpread_type_lookup (fn_fieldp->ddvar.type, objfile);
- list->field.type = memtype;
- list->attributes = 0;
- /* No info to set visibility -- always public */
- nfields++;
- }
- else { /* Not a method, nor a static data member, nor an anon union field */
-
- /* This case is for miscellaneous type entries (local enums,
- local function templates, etc.) that can be present
- inside a class. */
-
- /* Enums -- will be handled by other code that takes care
- of DNTT_TYPE_ENUM; here we see only DNTT_TYPE_MEMENUM so
- it's not clear we could have handled them here at all. */
- /* FUNC_TEMPLATE: is handled by other code (??). */
- /* MEMACCESS: modified access for inherited member. Not
- sure what to do with this, ignoriing it at present. */
-
- /* What other entries can appear following a GENFIELD which
- we do not handle above? (MODIFIER, VFUNC handled above.) */
-
- if ((fn_fieldp->dblock.kind != DNTT_TYPE_MEMACCESS) &&
- (fn_fieldp->dblock.kind != DNTT_TYPE_MEMENUM) &&
- (fn_fieldp->dblock.kind != DNTT_TYPE_FUNC_TEMPLATE))
- warning ("Internal error: Unexpected debug record kind %d found following DNTT_GENFIELD",
- fn_fieldp->dblock.kind);
- }
- /* walk to the next FIELD or GENFIELD */
- field = fieldp->dgenfield.nextfield;
-
- }
- else if (fieldp->dblock.kind == DNTT_TYPE_FIELD) {
-
- /* Ordinary structure/union/class field */
- struct type * anon_union_type;
-
- /* Get space to record the next field/data-member. */
- new = (struct nextfield *) alloca (sizeof (struct nextfield));
- new->next = list;
- list = new;
-
- list->field.name = VT (objfile) + fieldp->dfield.name;
-
-
- /* A FIELD by itself (without a GENFIELD) can also be a static member */
- if (fieldp->dfield.staticmem)
- {
- FIELD_BITPOS (list->field) = -1;
- FIELD_BITSIZE (list->field) = 0;
- }
- else /* Non-static data member */
- {
- FIELD_BITPOS (list->field) = fieldp->dfield.bitoffset;
- if (fieldp->dfield.bitlength % 8)
- FIELD_BITSIZE (list->field) = fieldp->dfield.bitlength;
- else
- FIELD_BITSIZE (list->field) = 0;
- }
-
- memtype = hpread_type_lookup (fieldp->dfield.type, objfile);
- FIELD_TYPE (list->field) = memtype;
- list->attributes = 0;
- switch (fieldp->dfield.visibility) {
- case 1:
- B_SET(&(list->attributes), ATTR_PROTECT);
- break;
- case 2:
- B_SET(&(list->attributes), ATTR_PRIVATE);
- break;
- }
- nfields++;
-
-
- /* Note 1: First, we have to check if the current field is an anonymous
- union. If it is, then *its* fields are threaded along in the
- nextfield chain. :-( This was supposed to help debuggers, but is
- really just a nuisance since we deal with anonymous unions anyway by
- checking that the name is null. So anyway, we skip over the fields
- of the anonymous union. pai/1997-08-22 */
- /* Note 2: In addition, the bitoffsets for the fields of the anon union
- are relative to the enclosing struct, *NOT* relative to the anon
- union! This is an even bigger nuisance -- we have to go in and munge
- the anon union's type information appropriately. pai/1997-08-22 */
-
- /* Both tasks noted above are done by a separate function. This takes us
- to the next FIELD or GENFIELD, skipping anon unions, and recursively
- processing intermediate types. */
- field = hpread_get_next_skip_over_anon_unions (1, field, &fieldp, objfile);
-
- } else {
- /* neither field nor genfield ?? is this possible?? */
- /* pai:: FIXME walk to the next -- how? */
- warning ("Internal error: unexpected DNTT kind %d encountered as field of struct");
- warning ("Skipping remaining fields of struct");
- break; /* get out of loop of fields */
- }
- }
-
- /* If it's a template, read in the instantiation list */
- if (dn_bufp->dblock.kind == DNTT_TYPE_TEMPLATE) {
- ninstantiations = 0;
- field = dn_bufp->dtemplate.expansions;
- while (field.word && field.word != DNTTNIL) {
- fieldp = hpread_get_lntt (field.dnttp.index, objfile);
-
- /* The expansions or nextexp should point to a tagdef */
- if (fieldp->dblock.kind != DNTT_TYPE_TAGDEF)
- break;
-
- i_new = (struct next_instantiation *) alloca (sizeof (struct next_instantiation));
- i_new->next = i_list;
- i_list = i_new;
- i_list->t = hpread_type_lookup (field, objfile);
- ninstantiations++;
-
- /* And the "type" field of that should point to a class */
- field = fieldp->dtag.type;
- fieldp = hpread_get_lntt (field.dnttp.index, objfile);
- if (fieldp->dblock.kind != DNTT_TYPE_CLASS)
- break;
-
- /* Get the next expansion */
- field = fieldp->dclass.nextexp;
- }
- }
- TYPE_NINSTANTIATIONS(type) = ninstantiations;
- if (ninstantiations > 0)
- TYPE_INSTANTIATIONS(type) = (struct type **)
- obstack_alloc (&objfile->type_obstack, sizeof (struct type *) * ninstantiations);
- for (n = ninstantiations; i_list; i_list = i_list->next)
- {
- n -= 1;
- TYPE_INSTANTIATION(type, n) = i_list->t;
- }
-
-
- /* Copy the field-list to GDB's symbol table */
- TYPE_NFIELDS (type) = nfields;
- TYPE_N_BASECLASSES (type) = n_base_classes;
- TYPE_FIELDS (type) = (struct field *)
- obstack_alloc (&objfile->type_obstack, sizeof (struct field) * nfields);
- /* Copy the saved-up fields into the field vector. */
- for (n = nfields, tmp_list = list; tmp_list; tmp_list = tmp_list->next)
- {
- n -= 1;
- TYPE_FIELD (type, n) = tmp_list->field;
- }
-
- /* Copy the "function-field-list" (i.e., the list of member
- * functions in the class) to GDB's symbol table
- */
- TYPE_NFN_FIELDS (type) = n_fn_fields;
- TYPE_NFN_FIELDS_TOTAL (type) = n_fn_fields_total;
- TYPE_FN_FIELDLISTS(type) = (struct fn_fieldlist *)
- obstack_alloc (&objfile->type_obstack, sizeof (struct fn_fieldlist) * n_fn_fields);
- for (n = n_fn_fields; fn_list; fn_list = fn_list->next)
- {
- n -= 1;
- TYPE_FN_FIELDLIST(type, n) = fn_list->field;
- }
-
- /* pai:: FIXME -- perhaps each bitvector should be created individually */
- for (n = nfields, tmp_list = list; tmp_list; tmp_list = tmp_list->next)
- {
- n -= 1;
- if (tmp_list->attributes)
- {
- need_bitvectors = 1;
- break;
- }
- }
-
- if (need_bitvectors)
- {
- /* pai:: this step probably redundant */
- ALLOCATE_CPLUS_STRUCT_TYPE (type);
-
- TYPE_FIELD_VIRTUAL_BITS (type) =
- (B_TYPE *) TYPE_ALLOC (type, B_BYTES (nfields));
- B_CLRALL (TYPE_FIELD_VIRTUAL_BITS (type), nfields);
-
- TYPE_FIELD_PRIVATE_BITS (type) =
- (B_TYPE *) TYPE_ALLOC (type, B_BYTES (nfields));
- B_CLRALL (TYPE_FIELD_PRIVATE_BITS (type), nfields);
-
- TYPE_FIELD_PROTECTED_BITS (type) =
- (B_TYPE *) TYPE_ALLOC (type, B_BYTES (nfields));
- B_CLRALL (TYPE_FIELD_PROTECTED_BITS (type), nfields);
-
- /* this field vector isn't actually used with HP aCC */
- TYPE_FIELD_IGNORE_BITS (type) =
- (B_TYPE *) TYPE_ALLOC (type, B_BYTES (nfields));
- B_CLRALL (TYPE_FIELD_IGNORE_BITS (type), nfields);
-
- while (nfields-- > 0)
- {
- if (B_TST(&(list->attributes),ATTR_VIRTUAL))
- SET_TYPE_FIELD_VIRTUAL (type, nfields);
- if (B_TST(&(list->attributes),ATTR_PRIVATE))
- SET_TYPE_FIELD_PRIVATE (type, nfields);
- if (B_TST(&(list->attributes),ATTR_PROTECT))
- SET_TYPE_FIELD_PROTECTED (type, nfields);
-
- list = list->next;
- }
- }
- else
- {
- TYPE_FIELD_VIRTUAL_BITS(type) = NULL;
- TYPE_FIELD_PROTECTED_BITS(type) = NULL;
- TYPE_FIELD_PRIVATE_BITS(type) = NULL;
- }
-
- if (has_vtable(type))
- {
- /* Allocate space for class runtime information */
- TYPE_RUNTIME_PTR(type) = (struct runtime_info *) xmalloc (sizeof(struct runtime_info));
- /* Set flag for vtable */
- TYPE_VTABLE(type) = 1;
- /* The first non-virtual base class with a vtable. */
- TYPE_PRIMARY_BASE(type) = primary_base_class(type);
- /* The virtual base list. */
- TYPE_VIRTUAL_BASE_LIST(type) = virtual_base_list(type);
- }
- else
- TYPE_RUNTIME_PTR(type) = NULL;
-
- /* If this is a local type (C++ - declared inside a function), record file name & line # */
- if (hpread_get_scope_depth (dn_bufp, objfile, 1 /* no need for real depth */))
- {
- TYPE_LOCALTYPE_PTR (type) = (struct local_type_info *) xmalloc (sizeof (struct local_type_info));
- TYPE_LOCALTYPE_FILE (type) = (char *) xmalloc (strlen (current_subfile->name) + 1);
- strcpy (TYPE_LOCALTYPE_FILE (type), current_subfile->name);
- if (current_subfile->line_vector && (current_subfile->line_vector->nitems > 0))
- TYPE_LOCALTYPE_LINE (type) = current_subfile->line_vector->item[current_subfile->line_vector->nitems - 1].line;
- else
- TYPE_LOCALTYPE_LINE (type) = 0;
- }
- else
- TYPE_LOCALTYPE_PTR (type) = NULL;
-
- /* Clear the global saying what template we are in the middle of processing */
- current_template = NULL;
-
- return type;
-}
-
-/* Adjust the physnames for each static member of a struct
- or class type to be something like "A::x"; then various
- other pieces of code that do a lookup_symbol on the phyname
- work correctly.
- TYPE is a pointer to the struct/class type
- NAME is a char * (string) which is the class/struct name
- Void return */
-
-static void
-fix_static_member_physnames (type, class_name, objfile)
- struct type * type;
- char * class_name;
- struct objfile * objfile;
-{
- int i;
-
- /* We fix the member names only for classes or structs */
- if (TYPE_CODE (type) != TYPE_CODE_STRUCT)
- return;
-
- for (i=0; i < TYPE_NFIELDS (type); i++)
- if (TYPE_FIELD_STATIC (type, i))
- {
- if (TYPE_FIELD_STATIC_PHYSNAME (type, i))
- return; /* physnames are already set */
-
- SET_FIELD_PHYSNAME (type->fields[i],
- obstack_alloc (&objfile->type_obstack,
- strlen (class_name) + strlen (TYPE_FIELD_NAME (type, i)) + 3));
- strcpy (TYPE_FIELD_STATIC_PHYSNAME (type, i), class_name);
- strcat (TYPE_FIELD_STATIC_PHYSNAME (type, i), "::");
- strcat (TYPE_FIELD_STATIC_PHYSNAME (type, i), TYPE_FIELD_NAME (type, i));
- }
-}
-
-/* Fix-up the type structure for a CLASS so that the type entry
- * for a method (previously marked with a null type in hpread_read_struct_type()
- * is set correctly to METHOD.
- * OBJFILE is as for other such functions.
- * Void return. */
-
-static void
-fixup_class_method_type (class, method, objfile)
- struct type * class;
- struct type * method;
- struct objfile * objfile;
-{
- int i, j, k;
-
- if (!class || !method || !objfile)
- return;
-
- /* Only for types that have methods */
- if ((TYPE_CODE (class) != TYPE_CODE_CLASS) &&
- (TYPE_CODE (class) != TYPE_CODE_UNION))
- return;
-
- /* Loop over all methods and find the one marked with a NULL type */
- for (i = 0; i < TYPE_NFN_FIELDS (class); i++)
- for (j = 0; j < TYPE_FN_FIELDLIST_LENGTH (class, i); j++)
- if (TYPE_FN_FIELD_TYPE (TYPE_FN_FIELDLIST1 (class, i), j) == NULL)
- {
- /* Set the method type */
- TYPE_FN_FIELD_TYPE (TYPE_FN_FIELDLIST1 (class, i), j) = method;
- /* The argument list */
- (TYPE_FN_FIELD_TYPE (TYPE_FN_FIELDLIST1 (class, i), j))->type_specific.arg_types
- = (struct type **) obstack_alloc(&objfile->type_obstack,
- sizeof(struct type *) * (method->nfields + 1));
- for (k = 0; k < method->nfields; k++)
- (TYPE_FN_FIELD_TYPE (TYPE_FN_FIELDLIST1 (class, i), j))->type_specific.arg_types[k] = method->fields[k].type;
- /* void termination */
- (TYPE_FN_FIELD_TYPE (TYPE_FN_FIELDLIST1 (class, i), j))->type_specific.arg_types[method->nfields] = builtin_type_void;
-
- /* pai: It's not clear why this args field has to be set. Perhaps
- * it should be eliminated entirely. */
- (TYPE_FN_FIELD (TYPE_FN_FIELDLIST1 (class, i), j)).args
- = (struct type **) obstack_alloc(&objfile->type_obstack,
- sizeof(struct type *) * (method->nfields + 1));
- for (k = 0; k < method->nfields; k++)
- (TYPE_FN_FIELD (TYPE_FN_FIELDLIST1 (class, i), j)).args[k] = method->fields[k].type;
- /* null-terminated, unlike arg_types above */
- (TYPE_FN_FIELD (TYPE_FN_FIELDLIST1 (class, i), j)).args[method->nfields] = NULL;
-
- /* Break out of both loops -- only one method to fix up in a class */
- goto finish;
- }
-
-finish:
- TYPE_FLAGS (class) &= ~TYPE_FLAG_INCOMPLETE;
-}
-
-
-/* If we're in the middle of processing a template, get a pointer
- * to the Nth template argument.
- * An example may make this clearer:
- * template <class T1, class T2> class q2 {
- * public:
- * T1 a;
- * T2 b;
- * };
- * The type for "a" will be "first template arg" and
- * the type for "b" will be "second template arg".
- * We need to look these up in order to fill in "a" and "b"'s type.
- * This is called from hpread_type_lookup().
- */
-static struct type *
-hpread_get_nth_template_arg(objfile, n)
- struct objfile *objfile;
- int n;
-{
- if (current_template != NULL)
- return TYPE_TEMPLATE_ARG(current_template, n).type;
- else
- return lookup_fundamental_type (objfile, FT_TEMPLATE_ARG);
-}
-
-/* Read in and internalize a TEMPL_ARG (template arg) symbol. */
-
-static struct type *
-hpread_read_templ_arg_type (hp_type, dn_bufp, objfile, name)
- dnttpointer hp_type;
- union dnttentry *dn_bufp;
- struct objfile *objfile;
- char * name;
-{
- struct type *type;
-
- /* See if it's something we've already deal with. */
- type = hpread_alloc_type (hp_type, objfile);
- if (TYPE_CODE (type) == TYPE_CODE_TEMPLATE_ARG)
- return type;
-
- /* Nope. Fill in the appropriate fields. */
- TYPE_CODE (type) = TYPE_CODE_TEMPLATE_ARG;
- TYPE_LENGTH (type) = 0;
- TYPE_NFIELDS (type) = 0;
- TYPE_NAME (type) = name;
- return type;
-}
-
-/* Read in and internalize a set debug symbol. */
-
-static struct type *
-hpread_read_set_type (hp_type, dn_bufp, objfile)
- dnttpointer hp_type;
- union dnttentry *dn_bufp;
- struct objfile *objfile;
-{
- struct type *type;
-
- /* See if it's something we've already deal with. */
- type = hpread_alloc_type (hp_type, objfile);
- if (TYPE_CODE (type) == TYPE_CODE_SET)
- return type;
-
- /* Nope. Fill in the appropriate fields. */
- TYPE_CODE (type) = TYPE_CODE_SET;
- TYPE_LENGTH (type) = dn_bufp->dset.bitlength / 8;
- TYPE_NFIELDS (type) = 0;
- TYPE_TARGET_TYPE (type) = hpread_type_lookup (dn_bufp->dset.subtype,
- objfile);
- return type;
-}
-
-/* Read in and internalize an array debug symbol. */
-
-static struct type *
-hpread_read_array_type (hp_type, dn_bufp, objfile)
- dnttpointer hp_type;
- union dnttentry *dn_bufp;
- struct objfile *objfile;
-{
- struct type *type;
-
- /* Allocate an array type symbol.
- * Why no check for already-read here, like in the other
- * hpread_read_xxx_type routines? Because it kept us
- * from properly determining the size of the array!
- */
- type = hpread_alloc_type (hp_type, objfile);
-
- TYPE_CODE (type) = TYPE_CODE_ARRAY;
-
- /* Although the hp-symtab.h does not *require* this to be the case,
- * GDB is assuming that "arrayisbytes" and "elemisbytes" be consistent.
- * I.e., express both array-length and element-length in bits,
- * or express both array-length and element-length in bytes.
- */
- if (!((dn_bufp->darray.arrayisbytes && dn_bufp->darray.elemisbytes) ||
- (!dn_bufp->darray.arrayisbytes && !dn_bufp->darray.elemisbytes))) {
- warning ("error in hpread_array_type.\n");
- return;
- } else if (dn_bufp->darray.arraylength == 0x7fffffff) {
- /* The HP debug format represents char foo[]; as an array with
- * length 0x7fffffff. Internally GDB wants to represent this
- * as an array of length zero.
- */
- TYPE_LENGTH (type) = 0;
- } else if (dn_bufp->darray.arrayisbytes)
- TYPE_LENGTH (type) = dn_bufp->darray.arraylength;
- else /* arraylength is in bits */
- TYPE_LENGTH (type) = dn_bufp->darray.arraylength / 8;
-
- TYPE_TARGET_TYPE (type) = hpread_type_lookup (dn_bufp->darray.elemtype,
- objfile);
-
- /* The one "field" is used to store the subscript type */
- /* Since C and C++ multi-dimensional arrays are simply represented
- * as: array of array of ..., we only need one subscript-type
- * per array. This subscript type is typically a subrange of integer.
- * If this gets extended to support languages like Pascal, then
- * we need to fix this to represent multi-dimensional arrays properly.
- */
- TYPE_NFIELDS (type) = 1;
- TYPE_FIELDS (type) = (struct field *)
- obstack_alloc (&objfile->type_obstack, sizeof (struct field));
- TYPE_FIELD_TYPE (type, 0) = hpread_type_lookup (dn_bufp->darray.indextype,
- objfile);
- return type;
-}
-
-/* Read in and internalize a subrange debug symbol. */
-static struct type *
-hpread_read_subrange_type (hp_type, dn_bufp, objfile)
- dnttpointer hp_type;
- union dnttentry *dn_bufp;
- struct objfile *objfile;
-{
- struct type *type;
-
- /* Is it something we've already dealt with. */
- type = hpread_alloc_type (hp_type, objfile);
- if (TYPE_CODE (type) == TYPE_CODE_RANGE)
- return type;
-
- /* Nope, internalize it. */
- TYPE_CODE (type) = TYPE_CODE_RANGE;
- TYPE_LENGTH (type) = dn_bufp->dsubr.bitlength / 8;
- TYPE_NFIELDS (type) = 2;
- TYPE_FIELDS (type)
- = (struct field *) obstack_alloc (&objfile->type_obstack,
- 2 * sizeof (struct field));
-
- if (dn_bufp->dsubr.dyn_low)
- TYPE_FIELD_BITPOS (type, 0) = 0;
- else
- TYPE_FIELD_BITPOS (type, 0) = dn_bufp->dsubr.lowbound;
-
- if (dn_bufp->dsubr.dyn_high)
- TYPE_FIELD_BITPOS (type, 1) = -1;
- else
- TYPE_FIELD_BITPOS (type, 1) = dn_bufp->dsubr.highbound;
- TYPE_TARGET_TYPE (type) = hpread_type_lookup (dn_bufp->dsubr.subtype,
- objfile);
- return type;
-}
-
-/* struct type * hpread_type_lookup(hp_type, objfile)
- * Arguments:
- * hp_type: A pointer into the DNTT specifying what type we
- * are about to "look up"., or else [for fundamental types
- * like int, float, ...] an "immediate" structure describing
- * the type.
- * objfile: ?
- * Return value: A pointer to a "struct type" (representation of a
- * type in GDB's internal symbol table - see gdbtypes.h)
- * Routine description:
- * There are a variety of places when scanning the DNTT when we
- * need to interpret a "type" field. The simplest and most basic
- * example is when we're processing the symbol table record
- * for a data symbol (a SVAR or DVAR record). That has
- * a "type" field specifying the type of the data symbol. That
- * "type" field is either an "immediate" type specification (for the
- * fundamental types) or a DNTT pointer (for more complicated types).
- * For the more complicated types, we may or may not have already
- * processed the pointed-to type. (Multiple data symbols can of course
- * share the same type).
- * The job of hpread_type_lookup() is to process this "type" field.
- * Most of the real work is done in subroutines. Here we interpret
- * the immediate flag. If not immediate, chase the DNTT pointer to
- * find our way to the SOM record describing the type, switch on
- * the SOM kind, and then call an appropriate subroutine depending
- * on what kind of type we are constructing. (e.g., an array type,
- * a struct/class type, etc).
- */
-static struct type *
-hpread_type_lookup (hp_type, objfile)
- dnttpointer hp_type;
- struct objfile *objfile;
-{
- union dnttentry *dn_bufp;
- struct type * tmp_type;
-
- /* First see if it's a simple builtin type. */
- if (hp_type.dntti.immediate)
- /* If this is a template argument, the argument number is
- * encoded in the bitlength. All other cases, just return
- * GDB's representation of this fundamental type.
- */
- if (hp_type.dntti.type == HP_TYPE_TEMPLATE_ARG)
- return hpread_get_nth_template_arg(objfile, hp_type.dntti.bitlength);
- else
- return lookup_fundamental_type (objfile, hpread_type_translate (hp_type));
-
- /* Not a builtin type. We'll have to read it in. */
- if (hp_type.dnttp.index < LNTT_SYMCOUNT (objfile))
- dn_bufp = hpread_get_lntt (hp_type.dnttp.index, objfile);
- else
- /* This is a fancy way of returning NULL */
- return lookup_fundamental_type (objfile, FT_VOID);
-
- switch (dn_bufp->dblock.kind)
- {
- case DNTT_TYPE_SRCFILE:
- case DNTT_TYPE_MODULE:
- case DNTT_TYPE_ENTRY:
- case DNTT_TYPE_BEGIN:
- case DNTT_TYPE_END:
- case DNTT_TYPE_IMPORT:
- case DNTT_TYPE_LABEL:
- case DNTT_TYPE_FPARAM:
- case DNTT_TYPE_SVAR:
- case DNTT_TYPE_DVAR:
- case DNTT_TYPE_CONST:
- case DNTT_TYPE_MEMENUM:
- case DNTT_TYPE_VARIANT:
- case DNTT_TYPE_FILE:
- case DNTT_TYPE_WITH:
- case DNTT_TYPE_COMMON:
- case DNTT_TYPE_COBSTRUCT:
- case DNTT_TYPE_XREF:
- case DNTT_TYPE_SA:
- case DNTT_TYPE_MACRO:
- case DNTT_TYPE_BLOCKDATA:
- case DNTT_TYPE_CLASS_SCOPE:
- case DNTT_TYPE_MEMACCESS:
- case DNTT_TYPE_INHERITANCE:
- case DNTT_TYPE_OBJECT_ID:
- case DNTT_TYPE_FRIEND_CLASS:
- case DNTT_TYPE_FRIEND_FUNC:
- /* These are not types - something went wrong. */
- /* This is a fancy way of returning NULL */
- return lookup_fundamental_type (objfile, FT_VOID);
-
- case DNTT_TYPE_FUNCTION:
- /* We wind up here when dealing with class member functions
- * (called from hpread_read_struct_type(), i.e. when processing
- * the class definition itself).
- */
- return hpread_read_function_type (hp_type, dn_bufp, objfile, 0);
-
- case DNTT_TYPE_DOC_FUNCTION:
- return hpread_read_doc_function_type (hp_type, dn_bufp, objfile, 0);
-
- case DNTT_TYPE_TYPEDEF:
- {
- /* A typedef - chase it down by making a recursive call */
- struct type *structtype = hpread_type_lookup (dn_bufp->dtype.type,
- objfile);
-
- /* The following came from the base hpread.c that we inherited.
- * It is WRONG so I have commented it out. - RT
- *...
-
- char *suffix;
- suffix = VT (objfile) + dn_bufp->dtype.name;
- TYPE_NAME (structtype) = suffix;
-
- * ... further explanation ....
- *
- * What we have here is a typedef pointing to a typedef.
- * E.g.,
- * typedef int foo;
- * typedef foo fum;
- *
- * What we desire to build is (these are pictures
- * of "struct type"'s):
- *
- * +---------+ +----------+ +------------+
- * | typedef | | typedef | | fund. type |
- * | type| -> | type| -> | |
- * | "fum" | | "foo" | | "int" |
- * +---------+ +----------+ +------------+
- *
- * What this commented-out code is doing is smashing the
- * name of pointed-to-type to be the same as the pointed-from
- * type. So we wind up with something like:
- *
- * +---------+ +----------+ +------------+
- * | typedef | | typedef | | fund. type |
- * | type| -> | type| -> | |
- * | "fum" | | "fum" | | "fum" |
- * +---------+ +----------+ +------------+
- *
- */
-
- return structtype;
- }
-
- case DNTT_TYPE_TAGDEF:
- {
- /* Just a little different from above. We have to tack on
- * an identifier of some kind (struct, union, enum, class, etc).
- */
- struct type *structtype = hpread_type_lookup (dn_bufp->dtype.type,
- objfile);
- char *prefix, *suffix;
- suffix = VT (objfile) + dn_bufp->dtype.name;
-
- /* Lookup the next type in the list. It should be a structure,
- * union, class, enum, or template type.
- * We will need to attach that to our name.
- */
- if (dn_bufp->dtype.type.dnttp.index < LNTT_SYMCOUNT (objfile))
- dn_bufp = hpread_get_lntt (dn_bufp->dtype.type.dnttp.index, objfile);
- else {
- complain (&hpread_type_lookup_complaint);
- return;
- }
-
- if (dn_bufp->dblock.kind == DNTT_TYPE_STRUCT) {
- prefix = "struct ";
- } else if (dn_bufp->dblock.kind == DNTT_TYPE_UNION) {
- prefix = "union ";
- } else if (dn_bufp->dblock.kind == DNTT_TYPE_CLASS) {
- /* Further field for CLASS saying how it was really declared */
- /* 0==class, 1==union, 2==struct */
- if (dn_bufp->dclass.class_decl == 0)
- prefix = "class ";
- else if (dn_bufp->dclass.class_decl == 1)
- prefix = "union ";
- else if (dn_bufp->dclass.class_decl == 2)
- prefix = "struct ";
- else
- prefix = "";
- } else if (dn_bufp->dblock.kind == DNTT_TYPE_ENUM) {
- prefix = "enum ";
- } else if (dn_bufp->dblock.kind == DNTT_TYPE_TEMPLATE) {
- prefix = "template ";
- } else {
- prefix = "";
- }
-
- /* Build the correct name. */
- structtype->name
- = (char *) obstack_alloc (&objfile->type_obstack,
- strlen (prefix) + strlen (suffix) + 1);
- TYPE_NAME (structtype) = strcpy (TYPE_NAME (structtype), prefix);
- TYPE_NAME (structtype) = strcat (TYPE_NAME (structtype), suffix);
- TYPE_TAG_NAME (structtype) = suffix;
-
- /* For classes/structs, we have to set the static member "physnames"
- to point to strings like "Class::Member" */
- if (TYPE_CODE (structtype) == TYPE_CODE_STRUCT)
- fix_static_member_physnames (structtype, suffix, objfile);
-
- return structtype;
- }
-
- case DNTT_TYPE_POINTER:
- /* Pointer type - call a routine in gdbtypes.c that constructs
- * the appropriate GDB type.
- */
- return make_pointer_type (
- hpread_type_lookup (dn_bufp->dptr.pointsto,
- objfile),
- NULL);
-
- case DNTT_TYPE_REFERENCE:
- /* C++ reference type - call a routine in gdbtypes.c that constructs
- * the appropriate GDB type.
- */
- return make_reference_type (
- hpread_type_lookup (dn_bufp->dreference.pointsto,
- objfile),
- NULL);
-
- case DNTT_TYPE_ENUM:
- return hpread_read_enum_type (hp_type, dn_bufp, objfile);
- case DNTT_TYPE_SET:
- return hpread_read_set_type (hp_type, dn_bufp, objfile);
- case DNTT_TYPE_SUBRANGE:
- return hpread_read_subrange_type (hp_type, dn_bufp, objfile);
- case DNTT_TYPE_ARRAY:
- return hpread_read_array_type (hp_type, dn_bufp, objfile);
- case DNTT_TYPE_STRUCT:
- case DNTT_TYPE_UNION:
- return hpread_read_struct_type (hp_type, dn_bufp, objfile);
- case DNTT_TYPE_FIELD:
- return hpread_type_lookup (dn_bufp->dfield.type, objfile);
-
- case DNTT_TYPE_FUNCTYPE:
- /* Here we want to read the function SOMs and return a
- * type for it. We get here, for instance, when processing
- * pointer-to-function type.
- */
- return hpread_read_function_type (hp_type, dn_bufp, objfile, 0);
-
- case DNTT_TYPE_PTRMEM:
- /* Declares a C++ pointer-to-data-member type.
- * The "pointsto" field defines the class,
- * while the "memtype" field defines the pointed-to-type.
- */
- {
- struct type * ptrmemtype;
- struct type * class_type;
- struct type * memtype;
- memtype = hpread_type_lookup (dn_bufp->dptrmem.memtype,
- objfile),
- class_type = hpread_type_lookup (dn_bufp->dptrmem.pointsto,
- objfile),
- ptrmemtype = alloc_type(objfile);
- smash_to_member_type(ptrmemtype, class_type, memtype);
- return make_pointer_type(ptrmemtype, NULL);
- }
- break;
-
- case DNTT_TYPE_PTRMEMFUNC:
- /* Defines a C++ pointer-to-function-member type.
- * The "pointsto" field defines the class,
- * while the "memtype" field defines the pointed-to-type.
- */
- {
- struct type * ptrmemtype;
- struct type * class_type;
- struct type * functype;
- struct type * retvaltype;
- int nargs;
- int i;
- struct type ** args_type;
- class_type = hpread_type_lookup (dn_bufp->dptrmem.pointsto,
- objfile);
- functype = hpread_type_lookup (dn_bufp->dptrmem.memtype,
- objfile);
- retvaltype = TYPE_TARGET_TYPE (functype);
- nargs = TYPE_NFIELDS (functype);
- args_type = (struct type **) xmalloc ((nargs+1) * sizeof (struct type *));
- for (i = 0; i < nargs; i++) {
- args_type[i] = TYPE_FIELD_TYPE (functype, i);
- }
- args_type[nargs] = NULL;
- ptrmemtype = alloc_type(objfile);
- smash_to_method_type(ptrmemtype, class_type, retvaltype, args_type);
- return make_pointer_type(ptrmemtype, NULL);
- }
- break;
-
- case DNTT_TYPE_CLASS:
- return hpread_read_struct_type (hp_type, dn_bufp, objfile);
-
- case DNTT_TYPE_GENFIELD:
- /* Chase pointer from GENFIELD to FIELD, and make recursive
- * call on that.
- */
- return hpread_type_lookup (dn_bufp->dgenfield.field, objfile);
-
- case DNTT_TYPE_VFUNC:
- /* C++ virtual function.
- * We get here in the course of processing a class type which
- * contains virtual functions. Just go through another level
- * of indirection to get to the pointed-to function SOM.
- */
- return hpread_type_lookup (dn_bufp->dvfunc.funcptr, objfile);
-
- case DNTT_TYPE_MODIFIER:
- /* Check the modifiers and then just make a recursive call on
- * the "type" pointed to by the modifier DNTT.
- *
- * pai:: FIXME -- do we ever want to handle "m_duplicate" and
- * "m_void" modifiers? Is static_flag really needed here?
- * (m_static used for methods of classes, elsewhere).
- */
- tmp_type = make_cv_type (dn_bufp->dmodifier.m_const,
- dn_bufp->dmodifier.m_volatile,
- hpread_type_lookup (dn_bufp->dmodifier.type, objfile),
- 0);
- return tmp_type;
-
-
- case DNTT_TYPE_MEMFUNC:
- /* Member function. Treat like a function.
- * I think we get here in the course of processing a
- * pointer-to-member-function type...
- */
- return hpread_read_function_type (hp_type, dn_bufp, objfile, 0);
-
- case DNTT_TYPE_DOC_MEMFUNC:
- return hpread_read_doc_function_type (hp_type, dn_bufp, objfile, 0);
-
- case DNTT_TYPE_TEMPLATE:
- /* Template - sort of the header for a template definition,
- * which like a class, points to a member list and also points
- * to a TEMPLATE_ARG list of type-arguments.
- */
- return hpread_read_struct_type (hp_type, dn_bufp, objfile);
-
- case DNTT_TYPE_TEMPLATE_ARG:
- {
- char * name;
- /* The TEMPLATE record points to an argument list of
- * TEMPLATE_ARG records, each of which describes one
- * of the type-arguments.
- */
- name = VT (objfile) + dn_bufp->dtempl_arg.name;
- return hpread_read_templ_arg_type (hp_type, dn_bufp, objfile, name);
- }
-
- case DNTT_TYPE_FUNC_TEMPLATE:
- /* We wind up here when processing a TEMPLATE type,
- * if the template has member function(s).
- * Treat it like a FUNCTION.
- */
- return hpread_read_function_type (hp_type, dn_bufp, objfile, 0);
-
- case DNTT_TYPE_LINK:
- /* The LINK record is used to link up templates with instantiations.
- * There is no type associated with the LINK record per se.
- */
- return lookup_fundamental_type (objfile, FT_VOID);
-
- /* Also not yet handled... */
- /* case DNTT_TYPE_DYN_ARRAY_DESC: */
- /* case DNTT_TYPE_DESC_SUBRANGE: */
- /* case DNTT_TYPE_BEGIN_EXT: */
- /* case DNTT_TYPE_INLN: */
- /* case DNTT_TYPE_INLN_LIST: */
- /* case DNTT_TYPE_ALIAS: */
- default:
- /* A fancy way of returning NULL */
- return lookup_fundamental_type (objfile, FT_VOID);
- }
-}
-
-static sltpointer
-hpread_record_lines (subfile, s_idx, e_idx, objfile, offset)
- struct subfile *subfile;
- sltpointer s_idx, e_idx;
- struct objfile *objfile;
- CORE_ADDR offset;
-{
- union sltentry *sl_bufp;
-
- while (s_idx <= e_idx)
- {
- sl_bufp = hpread_get_slt (s_idx, objfile);
- /* Only record "normal" entries in the SLT. */
- if (sl_bufp->snorm.sltdesc == SLT_NORMAL
- || sl_bufp->snorm.sltdesc == SLT_EXIT)
- record_line (subfile, sl_bufp->snorm.line,
- sl_bufp->snorm.address + offset);
- else if (sl_bufp->snorm.sltdesc == SLT_NORMAL_OFFSET)
- record_line (subfile, sl_bufp->snormoff.line,
- sl_bufp->snormoff.address + offset);
- s_idx++;
- }
- return e_idx;
-}
-
-/* Given a function "f" which is a member of a class, find
- * the classname that it is a member of. Used to construct
- * the name (e.g., "c::f") which GDB will put in the
- * "demangled name" field of the function's symbol.
- * Called from hpread_process_one_debug_symbol()
- * If "f" is not a member function, return NULL.
- */
-char * class_of (functype)
-struct type * functype;
-{
- struct type * first_param_type;
- char * first_param_name;
- struct type * pointed_to_type;
- char * class_name;
-
- /* Check that the function has a first argument "this",
- * and that "this" is a pointer to a class. If not,
- * functype is not a member function, so return NULL.
- */
- if (TYPE_NFIELDS(functype) == 0)
- return NULL;
- first_param_name = TYPE_FIELD_NAME (functype, 0);
- if (first_param_name == NULL)
- return NULL; /* paranoia */
- if (strcmp(first_param_name, "this"))
- return NULL;
- first_param_type = TYPE_FIELD_TYPE (functype, 0);
- if (first_param_type == NULL)
- return NULL; /* paranoia */
- if (TYPE_CODE(first_param_type) != TYPE_CODE_PTR)
- return NULL;
-
- /* Get the thing that "this" points to, check that
- * it's a class, and get its class name.
- */
- pointed_to_type = TYPE_TARGET_TYPE(first_param_type);
- if (pointed_to_type == NULL)
- return NULL; /* paranoia */
- if (TYPE_CODE(pointed_to_type) != TYPE_CODE_CLASS)
- return NULL;
- class_name = TYPE_NAME(pointed_to_type);
- if (class_name == NULL)
- return NULL; /* paranoia */
-
- /* The class name may be of the form "class c", in which case
- * we want to strip off the leading "class ".
- */
- if (strncmp(class_name, "class ", 6) == 0)
- class_name += 6;
-
- return class_name;
-}
-
-/* Internalize one native debug symbol.
- * Called in a loop from hpread_expand_symtab().
- * Arguments:
- * dn_bufp:
- * name:
- * section_offsets:
- * objfile:
- * text_offset:
- * text_size:
- * filename:
- * index: Index of this symbol
- * at_module_boundary_p Pointer to boolean flag to control caller's loop.
- */
-
-static void
-hpread_process_one_debug_symbol (dn_bufp, name, section_offsets, objfile,
- text_offset, text_size, filename,
- index, at_module_boundary_p
- )
- union dnttentry *dn_bufp;
- char *name;
- struct section_offsets *section_offsets;
- struct objfile *objfile;
- CORE_ADDR text_offset;
- int text_size;
- char *filename;
- int index;
- int *at_module_boundary_p;
-{
- unsigned long desc;
- int type;
- CORE_ADDR valu;
- int offset = ANOFFSET (section_offsets, SECT_OFF_TEXT);
- int data_offset = ANOFFSET (section_offsets, SECT_OFF_DATA);
- union dnttentry *dn_temp;
- dnttpointer hp_type;
- struct symbol *sym;
- struct context_stack *new;
- char * class_scope_name;
- extern int is_in_import_list (); /* in somread.c */
-
- /* Allocate one GDB debug symbol and fill in some default values. */
- sym = (struct symbol *) obstack_alloc (&objfile->symbol_obstack,
- sizeof (struct symbol));
- memset (sym, 0, sizeof (struct symbol));
- SYMBOL_NAME (sym) = obsavestring (name, strlen (name), &objfile->symbol_obstack);
- SYMBOL_LANGUAGE (sym) = language_auto;
- SYMBOL_NAMESPACE (sym) = VAR_NAMESPACE;
- SYMBOL_LINE (sym) = 0;
- SYMBOL_VALUE (sym) = 0;
- SYMBOL_CLASS (sym) = LOC_TYPEDEF;
-
- /* Just a trick in case the SOM debug symbol is a type definition.
- * There are routines that are set up to build a GDB type symbol, given
- * a SOM dnttpointer. So we set up a dummy SOM dnttpointer "hp_type".
- * This allows us to call those same routines.
- */
- hp_type.dnttp.extension = 1;
- hp_type.dnttp.immediate = 0;
- hp_type.dnttp.global = 0;
- hp_type.dnttp.index = index;
-
- /* This "type" is the type of SOM record.
- * Switch on SOM type.
- */
- type = dn_bufp->dblock.kind;
- switch (type)
- {
- case DNTT_TYPE_SRCFILE:
- /* This type of symbol indicates from which source file or
- * include file any following data comes. It may indicate:
- *
- * o The start of an entirely new source file (and thus
- * a new module)
- *
- * o The start of a different source file due to #include
- *
- * o The end of an include file and the return to the original
- * file. Thus if "foo.c" includes "bar.h", we see first
- * a SRCFILE for foo.c, then one for bar.h, and then one for
- * foo.c again.
- *
- * If it indicates the start of a new module then we must
- * finish the symbol table of the previous module
- * (if any) and start accumulating a new symbol table.
- */
-
- valu = text_offset;
- if (!last_source_file ) {
- /*
- * A note on "last_source_file": this is a char* pointing
- * to the actual file name. "start_symtab" sets it,
- * "end_symtab" clears it.
- *
- * So if "last_source_file" is NULL, then either this is
- * the first record we are looking at, or a previous call
- * to "end_symtab()" was made to close out the previous
- * module. Since we're now quitting the scan loop when we
- * see a MODULE END record, we should never get here, except
- * in the case that we're not using the quick look-up tables
- * and have to use the old system as a fall-back.
- */
- start_symtab (name, NULL, valu);
- record_debugformat ("HP");
- SL_INDEX (objfile) = dn_bufp->dsfile.address;
- }
-
- else {
- /* Either a new include file, or a SRCFILE record
- * saying we are back in the main source (or out of
- * a nested include file) again.
- */
- SL_INDEX (objfile) = hpread_record_lines (current_subfile,
- SL_INDEX (objfile),
- dn_bufp->dsfile.address,
- objfile, offset);
- }
-
- /* A note on "start_subfile". This routine will check
- * the name we pass it and look for an existing subfile
- * of that name. There's thus only one sub-file for the
- * actual source (e.g. for "foo.c" in foo.c), despite the
- * fact that we'll see lots of SRCFILE entries for foo.c
- * inside foo.c.
- */
- start_subfile (name, NULL);
- break;
-
- case DNTT_TYPE_MODULE:
- /*
- * We no longer ignore DNTT_TYPE_MODULE symbols. The module
- * represents the meaningful semantic structure of a compilation
- * unit. We expect to start the psymtab-to-symtab expansion
- * looking at a MODULE entry, and to end it at the corresponding
- * END MODULE entry.
- *
- *--Begin outdated comments
- *
- * This record signifies the start of a new source module
- * In C/C++ there is no explicit "module" construct in the language,
- * but each compilation unit is implicitly a module and they
- * do emit the DNTT_TYPE_MODULE records.
- * The end of the module is marked by a matching DNTT_TYPE_END record.
- *
- * The reason GDB gets away with ignoring the DNTT_TYPE_MODULE record
- * is it notices the DNTT_TYPE_END record for the previous
- * module (see comments under DNTT_TYPE_END case), and then treats
- * the next DNTT_TYPE_SRCFILE record as if it were the module-start record.
- * (i.e., it makes a start_symtab() call).
- * This scheme seems a little convoluted, but I'll leave it
- * alone on the principle "if it ain't broke don't fix
- * it". (RT).
- *
- *-- End outdated comments
- */
-
- valu = text_offset;
- if (!last_source_file )
- {
- /* Start of a new module. We know this because "last_source_file"
- * is NULL, which can only happen the first time or if we just
- * made a call to end_symtab() to close out the previous module.
- */
- start_symtab (name, NULL, valu);
- SL_INDEX (objfile) = dn_bufp->dmodule.address;
- }
- else
- {
- /* This really shouldn't happen if we're using the quick
- * look-up tables, as it would mean we'd scanned past an
- * END MODULE entry. But if we're not using the tables,
- * we started the module on the SRCFILE entry, so it's ok.
- * For now, accept this.
- */
- /* warning( "Error expanding psymtab, missed module end, found entry for %s",
- * name );
- */
- *at_module_boundary_p = -1;
- }
-
- start_subfile (name, NULL);
- break;
-
- case DNTT_TYPE_FUNCTION:
- case DNTT_TYPE_ENTRY:
- /* A function or secondary entry point. */
- valu = dn_bufp->dfunc.lowaddr + offset;
-
- /* Record lines up to this point. */
- SL_INDEX (objfile) = hpread_record_lines (current_subfile,
- SL_INDEX (objfile),
- dn_bufp->dfunc.address,
- objfile, offset);
-
- WITHIN_FUNCTION (objfile) = 1;
- CURRENT_FUNCTION_VALUE (objfile) = valu;
-
- /* Stack must be empty now. */
- if (context_stack_depth != 0)
- complain (&lbrac_unmatched_complaint, (char *) symnum);
- new = push_context (0, valu);
-
- /* Built a type for the function. This includes processing
- * the symbol records for the function parameters.
- */
- SYMBOL_CLASS (sym) = LOC_BLOCK;
- SYMBOL_TYPE (sym) = hpread_read_function_type (hp_type, dn_bufp, objfile, 1);
-
- /* The "SYMBOL_NAME" field is expected to be the mangled name
- * (if any), which we get from the "alias" field of the SOM record
- * if that exists.
- */
- if ((dn_bufp->dfunc.language == HP_LANGUAGE_CPLUSPLUS) &&
- dn_bufp->dfunc.alias && /* has an alias */
- *(char *)(VT (objfile) + dn_bufp->dfunc.alias)) /* not a null string */
- SYMBOL_NAME (sym) = VT (objfile) + dn_bufp->dfunc.alias;
- else
- SYMBOL_NAME (sym) = VT (objfile) + dn_bufp->dfunc.name;
-
- /* Special hack to get around HP compilers' insistence on
- * reporting "main" as "_MAIN_" for C/C++ */
- if ((strcmp (SYMBOL_NAME (sym), "_MAIN_") == 0) &&
- (strcmp (VT (objfile) + dn_bufp->dfunc.name, "main") == 0))
- SYMBOL_NAME (sym) = VT (objfile) + dn_bufp->dfunc.name;
-
- /* The SYMBOL_CPLUS_DEMANGLED_NAME field is expected to
- * be the demangled name.
- */
- if (dn_bufp->dfunc.language == HP_LANGUAGE_CPLUSPLUS)
- {
- /* SYMBOL_INIT_DEMANGLED_NAME is a macro which winds up
- * calling the demangler in libiberty (cplus_demangle()) to
- * do the job. This generally does the job, even though
- * it's intended for the GNU compiler and not the aCC compiler
- * Note that SYMBOL_INIT_DEMANGLED_NAME calls the
- * demangler with arguments DMGL_PARAMS | DMGL_ANSI.
- * Generally, we don't want params when we display
- * a demangled name, but when I took out the DMGL_PARAMS,
- * some things broke, so I'm leaving it in here, and
- * working around the issue in stack.c. - RT
- */
- SYMBOL_INIT_DEMANGLED_NAME (sym, &objfile->symbol_obstack);
- if ((SYMBOL_NAME (sym) == VT (objfile) + dn_bufp->dfunc.alias) &&
- (!SYMBOL_CPLUS_DEMANGLED_NAME(sym))) {
-
- /* Well, the symbol name is mangled, but the
- * demangler in libiberty failed so the demangled
- * field is still NULL. Try to
- * do the job ourselves based on the "name" field
- * in the SOM record. A complication here is that
- * the name field contains only the function name
- * (like "f"), whereas we want the class qualification
- * (as in "c::f"). Try to reconstruct that.
- */
- char * basename;
- char * classname;
- char * dem_name;
- basename = VT (objfile) + dn_bufp->dfunc.name;
- classname = class_of(SYMBOL_TYPE(sym));
- if (classname) {
- dem_name = xmalloc(strlen(basename)+strlen(classname)+3);
- strcpy(dem_name, classname);
- strcat(dem_name, "::");
- strcat(dem_name, basename);
- SYMBOL_CPLUS_DEMANGLED_NAME(sym) = dem_name;
- SYMBOL_LANGUAGE (sym) = language_cplus;
- }
- }
- }
-
- /* Add the function symbol to the list of symbols in this blockvector */
- if (dn_bufp->dfunc.global)
- add_symbol_to_list (sym, &global_symbols);
- else
- add_symbol_to_list (sym, &file_symbols);
- new->name = sym;
-
- /* Search forward to the next BEGIN and also read
- * in the line info up to that point.
- * Not sure why this is needed.
- * In HP FORTRAN this code is harmful since there
- * may not be a BEGIN after the FUNCTION.
- * So I made it C/C++ specific. - RT
- */
- if (dn_bufp->dfunc.language == HP_LANGUAGE_C ||
- dn_bufp->dfunc.language == HP_LANGUAGE_CPLUSPLUS) {
- while (dn_bufp->dblock.kind != DNTT_TYPE_BEGIN)
- {
- dn_bufp = hpread_get_lntt (++index, objfile);
- if (dn_bufp->dblock.extension)
- continue;
- }
- SL_INDEX (objfile) = hpread_record_lines (current_subfile,
- SL_INDEX (objfile),
- dn_bufp->dbegin.address,
- objfile, offset);
- SYMBOL_LINE (sym) = hpread_get_line (dn_bufp->dbegin.address, objfile);
- }
- record_line (current_subfile, SYMBOL_LINE (sym), valu);
- break;
-
- case DNTT_TYPE_DOC_FUNCTION:
- valu = dn_bufp->ddocfunc.lowaddr + offset;
-
- /* Record lines up to this point. */
- SL_INDEX (objfile) = hpread_record_lines (current_subfile,
- SL_INDEX (objfile),
- dn_bufp->ddocfunc.address,
- objfile, offset);
-
- WITHIN_FUNCTION (objfile) = 1;
- CURRENT_FUNCTION_VALUE (objfile) = valu;
- /* Stack must be empty now. */
- if (context_stack_depth != 0)
- complain (&lbrac_unmatched_complaint, (char *) symnum);
- new = push_context (0, valu);
-
- /* Built a type for the function. This includes processing
- * the symbol records for the function parameters.
- */
- SYMBOL_CLASS (sym) = LOC_BLOCK;
- SYMBOL_TYPE (sym) = hpread_read_doc_function_type (hp_type, dn_bufp, objfile, 1);
-
- /* The "SYMBOL_NAME" field is expected to be the mangled name
- * (if any), which we get from the "alias" field of the SOM record
- * if that exists.
- */
- if ((dn_bufp->ddocfunc.language == HP_LANGUAGE_CPLUSPLUS) &&
- dn_bufp->ddocfunc.alias && /* has an alias */
- *(char *)(VT (objfile) + dn_bufp->ddocfunc.alias)) /* not a null string */
- SYMBOL_NAME (sym) = VT (objfile) + dn_bufp->ddocfunc.alias;
- else
- SYMBOL_NAME (sym) = VT (objfile) + dn_bufp->ddocfunc.name;
-
- /* Special hack to get around HP compilers' insistence on
- * reporting "main" as "_MAIN_" for C/C++ */
- if ((strcmp (SYMBOL_NAME (sym), "_MAIN_") == 0) &&
- (strcmp (VT (objfile) + dn_bufp->ddocfunc.name, "main") == 0))
- SYMBOL_NAME (sym) = VT (objfile) + dn_bufp->ddocfunc.name;
-
- if (dn_bufp->ddocfunc.language == HP_LANGUAGE_CPLUSPLUS) {
-
- /* SYMBOL_INIT_DEMANGLED_NAME is a macro which winds up
- * calling the demangler in libiberty (cplus_demangle()) to
- * do the job. This generally does the job, even though
- * it's intended for the GNU compiler and not the aCC compiler
- * Note that SYMBOL_INIT_DEMANGLED_NAME calls the
- * demangler with arguments DMGL_PARAMS | DMGL_ANSI.
- * Generally, we don't want params when we display
- * a demangled name, but when I took out the DMGL_PARAMS,
- * some things broke, so I'm leaving it in here, and
- * working around the issue in stack.c. - RT
- */
- SYMBOL_INIT_DEMANGLED_NAME (sym, &objfile->symbol_obstack);
-
- if ((SYMBOL_NAME (sym) == VT (objfile) + dn_bufp->ddocfunc.alias) &&
- (!SYMBOL_CPLUS_DEMANGLED_NAME(sym))) {
-
- /* Well, the symbol name is mangled, but the
- * demangler in libiberty failed so the demangled
- * field is still NULL. Try to
- * do the job ourselves based on the "name" field
- * in the SOM record. A complication here is that
- * the name field contains only the function name
- * (like "f"), whereas we want the class qualification
- * (as in "c::f"). Try to reconstruct that.
- */
- char * basename;
- char * classname;
- char * dem_name;
- basename = VT (objfile) + dn_bufp->ddocfunc.name;
- classname = class_of(SYMBOL_TYPE(sym));
- if (classname) {
- dem_name = xmalloc(strlen(basename)+strlen(classname)+3);
- strcpy(dem_name, classname);
- strcat(dem_name, "::");
- strcat(dem_name, basename);
- SYMBOL_CPLUS_DEMANGLED_NAME(sym) = dem_name;
- SYMBOL_LANGUAGE (sym) = language_cplus;
- }
- }
- }
-
- /* Add the function symbol to the list of symbols in this blockvector */
- if (dn_bufp->ddocfunc.global)
- add_symbol_to_list (sym, &global_symbols);
- else
- add_symbol_to_list (sym, &file_symbols);
- new->name = sym;
-
- /* Search forward to the next BEGIN and also read
- * in the line info up to that point.
- * Not sure why this is needed.
- * In HP FORTRAN this code is harmful since there
- * may not be a BEGIN after the FUNCTION.
- * So I made it C/C++ specific. - RT
- */
- if (dn_bufp->ddocfunc.language == HP_LANGUAGE_C ||
- dn_bufp->ddocfunc.language == HP_LANGUAGE_CPLUSPLUS) {
- while (dn_bufp->dblock.kind != DNTT_TYPE_BEGIN)
- {
- dn_bufp = hpread_get_lntt (++index, objfile);
- if (dn_bufp->dblock.extension)
- continue;
- }
- SL_INDEX (objfile) = hpread_record_lines (current_subfile,
- SL_INDEX (objfile),
- dn_bufp->dbegin.address,
- objfile, offset);
- SYMBOL_LINE (sym) = hpread_get_line (dn_bufp->dbegin.address, objfile);
- }
- record_line (current_subfile, SYMBOL_LINE (sym), valu);
- break;
-
- case DNTT_TYPE_BEGIN:
- /* Begin a new scope. */
- if (context_stack_depth == 1 /* this means we're at function level */ &&
- context_stack[0].name != NULL /* this means it's a function */ &&
- context_stack[0].depth == 0 /* this means it's the first BEGIN
- we've seen after the FUNCTION */
- )
- {
- /* This is the first BEGIN after a FUNCTION.
- * We ignore this one, since HP compilers always insert
- * at least one BEGIN, i.e. it's:
- *
- * FUNCTION
- * argument symbols
- * BEGIN
- * local symbols
- * (possibly nested BEGIN ... END's if there are inner { } blocks)
- * END
- * END
- *
- * By ignoring this first BEGIN, the local symbols get treated
- * as belonging to the function scope, and "print func::local_sym"
- * works (which is what we want).
- */
-
- /* All we do here is increase the depth count associated with
- * the FUNCTION entry in the context stack. This ensures that
- * the next BEGIN we see (if any), representing a real nested { }
- * block, will get processed.
- */
-
- context_stack[0].depth++;
-
- } else {
-
- /* Record lines up to this SLT pointer. */
- SL_INDEX (objfile) = hpread_record_lines (current_subfile,
- SL_INDEX (objfile),
- dn_bufp->dbegin.address,
- objfile, offset);
- /* Calculate start address of new scope */
- valu = hpread_get_location (dn_bufp->dbegin.address, objfile);
- valu += offset; /* Relocate for dynamic loading */
- /* We use the scope start DNTT index as nesting depth identifier! */
- desc = hpread_get_scope_start (dn_bufp->dbegin.address, objfile);
- new = push_context (desc, valu);
- }
- break;
-
- case DNTT_TYPE_END:
- /* End a scope. */
-
- /* Valid end kinds are:
- * MODULE
- * FUNCTION
- * WITH
- * COMMON
- * BEGIN
- * CLASS_SCOPE
- */
-
- SL_INDEX (objfile) = hpread_record_lines (current_subfile,
- SL_INDEX (objfile),
- dn_bufp->dend.address,
- objfile, offset);
- switch (dn_bufp->dend.endkind)
- {
- case DNTT_TYPE_MODULE:
- /* Ending a module ends the symbol table for that module.
- * Calling end_symtab() has the side effect of clearing the
- * last_source_file pointer, which in turn signals
- * process_one_debug_symbol() to treat the next DNTT_TYPE_SRCFILE
- * record as a module-begin.
- */
- valu = text_offset + text_size + offset;
-
- /* Tell our caller that we're done with expanding the
- * debug information for a module.
- */
- *at_module_boundary_p = 1;
-
- /* Don't do this, as our caller will do it!
- *
- * (void) end_symtab (valu, objfile, 0);
- */
- break;
-
- case DNTT_TYPE_FUNCTION:
- /* Ending a function, well, ends the function's scope. */
- dn_temp = hpread_get_lntt (dn_bufp->dend.beginscope.dnttp.index,
- objfile);
- valu = dn_temp->dfunc.hiaddr + offset;
- /* Insert func params into local list */
- merge_symbol_lists (&param_symbols, &local_symbols);
- new = pop_context ();
- /* Make a block for the local symbols within. */
- finish_block (new->name, &local_symbols, new->old_blocks,
- new->start_addr, valu, objfile);
- WITHIN_FUNCTION (objfile) = 0; /* This may have to change for Pascal */
- local_symbols = new->locals;
- param_symbols = new->params;
- break;
-
- case DNTT_TYPE_BEGIN:
- if (context_stack_depth == 1 &&
- context_stack[0].name != NULL &&
- context_stack[0].depth == 1)
- {
- /* This is the END corresponding to the
- * BEGIN which we ignored - see DNTT_TYPE_BEGIN case above.
- */
- context_stack[0].depth--;
- } else {
- /* Ending a local scope. */
- valu = hpread_get_location (dn_bufp->dend.address, objfile);
- /* Why in the hell is this needed? */
- valu += offset + 9; /* Relocate for dynamic loading */
- new = pop_context ();
- desc = dn_bufp->dend.beginscope.dnttp.index;
- if (desc != new->depth)
- complain (&lbrac_mismatch_complaint, (char *) symnum);
-
- /* Make a block for the local symbols within. */
- finish_block (new->name, &local_symbols, new->old_blocks,
- new->start_addr, valu, objfile);
- local_symbols = new->locals;
- param_symbols = new->params;
- }
- break;
-
- case DNTT_TYPE_WITH:
- /* Since we ignore the DNTT_TYPE_WITH that starts the scope,
- * we can ignore the DNTT_TYPE_END that ends it.
- */
- break;
-
- case DNTT_TYPE_COMMON:
- /* End a FORTRAN common block. We don't currently handle these */
- complain (&hpread_unhandled_end_common_complaint);
- break;
-
- case DNTT_TYPE_CLASS_SCOPE:
-
- /* pai: FIXME Not handling nested classes for now -- must
- * maintain a stack */
- class_scope_name = NULL;
-
-#if 0
- /* End a class scope */
- valu = hpread_get_location (dn_bufp->dend.address, objfile);
- /* Why in the hell is this needed? */
- valu += offset + 9; /* Relocate for dynamic loading */
- new = pop_context ();
- desc = dn_bufp->dend.beginscope.dnttp.index;
- if (desc != new->depth)
- complain (&lbrac_mismatch_complaint, (char *) symnum);
- /* Make a block for the local symbols within. */
- finish_block (new->name, &local_symbols, new->old_blocks,
- new->start_addr, valu, objfile);
- local_symbols = new->locals;
- param_symbols = new->params;
-#endif
- break;
-
- default:
- complain (&hpread_unexpected_end_complaint);
- break;
- }
- break;
-
- /* DNTT_TYPE_IMPORT is not handled */
-
- case DNTT_TYPE_LABEL:
- SYMBOL_NAMESPACE (sym) = LABEL_NAMESPACE;
- break;
-
- case DNTT_TYPE_FPARAM:
- /* Function parameters. */
- /* Note 1: This code was present in the 4.16 sources, and then
- removed, because fparams are handled in
- hpread_read_function_type(). However, while fparam symbols
- are indeed handled twice, this code here cannot be removed
- because then they don't get added to the local symbol list of
- the function's code block, which leads to a failure to look
- up locals, "this"-relative member names, etc. So I've put
- this code back in. pai/1997-07-21 */
- /* Note 2: To fix a defect, we stopped adding FPARAMS to local_symbols
- in hpread_read_function_type(), so FPARAMS had to be handled
- here. I changed the location to be the appropriate argument
- kinds rather than LOC_LOCAL. pai/1997-08-08 */
- /* Note 3: Well, the fix in Note 2 above broke argument printing
- in traceback frames, and further it makes assumptions about the
- order of the FPARAM entries from HP compilers (cc and aCC in particular
- generate them in reverse orders -- fixing one breaks for the other).
- So I've added code in hpread_read_function_type() to add fparams
- to a param_symbols list for the current context level. These are
- then merged into local_symbols when a function end is reached.
- pai/1997-08-11 */
-
- break; /* do nothing; handled in hpread_read_function_type() */
-
-#if 0 /* Old code */
- if (dn_bufp->dfparam.regparam)
- SYMBOL_CLASS (sym) = LOC_REGISTER;
- else if (dn_bufp->dfparam.indirect)
- SYMBOL_CLASS (sym) = LOC_REF_ARG;
- else
- SYMBOL_CLASS (sym) = LOC_ARG;
- SYMBOL_NAMESPACE (sym) = VAR_NAMESPACE;
- if (dn_bufp->dfparam.copyparam)
- {
- SYMBOL_VALUE (sym) = dn_bufp->dfparam.location;
-#ifdef HPREAD_ADJUST_STACK_ADDRESS
- SYMBOL_VALUE (sym)
- += HPREAD_ADJUST_STACK_ADDRESS (CURRENT_FUNCTION_VALUE (objfile));
-#endif
- }
- else
- SYMBOL_VALUE (sym) = dn_bufp->dfparam.location;
- SYMBOL_TYPE (sym) = hpread_type_lookup (dn_bufp->dfparam.type, objfile);
- add_symbol_to_list (sym, &fparam_symbols);
- break;
-#endif
-
- case DNTT_TYPE_SVAR:
- /* Static variables. */
- SYMBOL_CLASS (sym) = LOC_STATIC;
-
- /* Note: There is a case that arises with globals in shared
- * libraries where we need to set the address to LOC_INDIRECT.
- * This case is if you have a global "g" in one library, and
- * it is referenced "extern <type> g;" in another library.
- * If we're processing the symbols for the referencing library,
- * we'll see a global "g", but in this case the address given
- * in the symbol table contains a pointer to the real "g".
- * We use the storage class LOC_INDIRECT to indicate this. RT
- */
- if (is_in_import_list (SYMBOL_NAME(sym), objfile))
- SYMBOL_CLASS (sym) = LOC_INDIRECT;
-
- SYMBOL_VALUE_ADDRESS (sym) = dn_bufp->dsvar.location + data_offset;
- SYMBOL_TYPE (sym) = hpread_type_lookup (dn_bufp->dsvar.type, objfile);
-
- if (dn_bufp->dsvar.global)
- add_symbol_to_list (sym, &global_symbols);
-
- else if (WITHIN_FUNCTION (objfile))
- add_symbol_to_list (sym, &local_symbols);
-
- else
- add_symbol_to_list (sym, &file_symbols);
-
- if (dn_bufp->dsvar.thread_specific)
- {
- /* Thread-local variable.
- */
- SYMBOL_CLASS (sym) = LOC_THREAD_LOCAL_STATIC;
- SYMBOL_BASEREG (sym) = CR27_REGNUM;
-
- if( objfile->flags & OBJF_SHARED ) {
- /*
- * This variable is not only thread local but
- * in a shared library.
- *
- * Alas, the shared lib structures are private
- * to "somsolib.c". But C lets us point to one.
- */
- struct so_list *so;
-
- if( objfile->obj_private == NULL )
- error( "Internal error in reading shared library information." );
-
- so = ((obj_private_data_t *)(objfile->obj_private))->so_info;
- if( so == NULL )
- error( "Internal error in reading shared library information." );
-
- /* Thread-locals in shared libraries do NOT have the
- * standard offset ("data_offset"), so we re-calculate
- * where to look for this variable, using a call-back
- * to interpret the private shared-library data.
- */
- SYMBOL_VALUE_ADDRESS(sym) = dn_bufp->dsvar.location +
- so_lib_thread_start_addr( so );
- }
- }
- break;
-
- case DNTT_TYPE_DVAR:
- /* Dynamic variables. */
- if (dn_bufp->ddvar.regvar)
- SYMBOL_CLASS (sym) = LOC_REGISTER;
- else
- SYMBOL_CLASS (sym) = LOC_LOCAL;
-
- SYMBOL_VALUE (sym) = dn_bufp->ddvar.location;
-#ifdef HPREAD_ADJUST_STACK_ADDRESS
- SYMBOL_VALUE (sym)
- += HPREAD_ADJUST_STACK_ADDRESS (CURRENT_FUNCTION_VALUE (objfile));
-#endif
- SYMBOL_TYPE (sym) = hpread_type_lookup (dn_bufp->ddvar.type, objfile);
- if (dn_bufp->ddvar.global)
- add_symbol_to_list (sym, &global_symbols);
- else if (WITHIN_FUNCTION (objfile))
- add_symbol_to_list (sym, &local_symbols);
- else
- add_symbol_to_list (sym, &file_symbols);
- break;
-
- case DNTT_TYPE_CONST:
- /* A constant (pascal?). */
- SYMBOL_CLASS (sym) = LOC_CONST;
- SYMBOL_VALUE (sym) = dn_bufp->dconst.location;
- SYMBOL_TYPE (sym) = hpread_type_lookup (dn_bufp->dconst.type, objfile);
- if (dn_bufp->dconst.global)
- add_symbol_to_list (sym, &global_symbols);
- else if (WITHIN_FUNCTION (objfile))
- add_symbol_to_list (sym, &local_symbols);
- else
- add_symbol_to_list (sym, &file_symbols);
- break;
-
- case DNTT_TYPE_TYPEDEF:
- /* A typedef. We do want to process these, since a name is
- * added to the namespace for the typedef'ed name.
- */
- SYMBOL_NAMESPACE (sym) = VAR_NAMESPACE;
- SYMBOL_TYPE (sym) = hpread_type_lookup (dn_bufp->dtype.type, objfile);
- if (dn_bufp->dtype.global)
- add_symbol_to_list (sym, &global_symbols);
- else if (WITHIN_FUNCTION (objfile))
- add_symbol_to_list (sym, &local_symbols);
- else
- add_symbol_to_list (sym, &file_symbols);
- break;
-
- case DNTT_TYPE_TAGDEF:
- {
- int global = dn_bufp->dtag.global;
- /* Structure, union, enum, template, or class tag definition */
- /* We do want to process these, since a name is
- * added to the namespace for the tag name (and if C++ class,
- * for the typename also).
- */
- SYMBOL_NAMESPACE (sym) = STRUCT_NAMESPACE;
-
- /* The tag contains in its "type" field a pointer to the
- * DNTT_TYPE_STRUCT, DNTT_TYPE_UNION, DNTT_TYPE_ENUM,
- * DNTT_TYPE_CLASS or DNTT_TYPE_TEMPLATE
- * record that actually defines the type.
- */
- SYMBOL_TYPE (sym) = hpread_type_lookup (dn_bufp->dtype.type, objfile);
- TYPE_NAME (sym->type) = SYMBOL_NAME (sym);
- TYPE_TAG_NAME (sym->type) = SYMBOL_NAME (sym);
- if (dn_bufp->dtag.global)
- add_symbol_to_list (sym, &global_symbols);
- else if (WITHIN_FUNCTION (objfile))
- add_symbol_to_list (sym, &local_symbols);
- else
- add_symbol_to_list (sym, &file_symbols);
-
- /* If this is a C++ class, then we additionally
- * need to define a typedef for the
- * class type. E.g., so that the name "c" becomes visible as
- * a type name when the user says "class c { ... }".
- * In order to figure this out, we need to chase down the "type"
- * field to get to the DNTT_TYPE_CLASS record.
- *
- * We also add the typename for ENUM. Though this isn't
- * strictly correct, it is necessary because of the debug info
- * generated by the aCC compiler, in which we cannot
- * distinguish between:
- * enum e { ... };
- * and
- * typedef enum { ... } e;
- * I.e., the compiler emits the same debug info for the above
- * two cases, in both cases "e" appearing as a tagdef.
- * Therefore go ahead and generate the typename so that
- * "ptype e" will work in the above cases.
- *
- * We also add the typename for TEMPLATE, so as to allow "ptype t"
- * when "t" is a template name.
- */
- if (dn_bufp->dtype.type.dnttp.index < LNTT_SYMCOUNT (objfile))
- dn_bufp = hpread_get_lntt (dn_bufp->dtag.type.dnttp.index, objfile);
- else {
- complain (&hpread_tagdef_complaint);
- return;
- }
- if (dn_bufp->dblock.kind == DNTT_TYPE_CLASS ||
- dn_bufp->dblock.kind == DNTT_TYPE_ENUM ||
- dn_bufp->dblock.kind == DNTT_TYPE_TEMPLATE) {
- struct symbol *newsym;
-
- newsym = (struct symbol *) obstack_alloc (&objfile->symbol_obstack,
- sizeof (struct symbol));
- memset (newsym, 0, sizeof (struct symbol));
- SYMBOL_NAME (newsym) = name;
- SYMBOL_LANGUAGE (newsym) = language_auto;
- SYMBOL_NAMESPACE (newsym) = VAR_NAMESPACE;
- SYMBOL_LINE (newsym) = 0;
- SYMBOL_VALUE (newsym) = 0;
- SYMBOL_CLASS (newsym) = LOC_TYPEDEF;
- SYMBOL_TYPE (newsym) = sym->type;
- if (global)
- add_symbol_to_list (newsym, &global_symbols);
- else if (WITHIN_FUNCTION (objfile))
- add_symbol_to_list (newsym, &local_symbols);
- else
- add_symbol_to_list (newsym, &file_symbols);
- }
- }
- break;
-
- case DNTT_TYPE_POINTER:
- /* Declares a pointer type. Should not be necessary to do anything
- * with the type at this level; these are processed
- * at the hpread_type_lookup() level.
- */
- break;
-
- case DNTT_TYPE_ENUM:
- /* Declares an enum type. Should not be necessary to do anything
- * with the type at this level; these are processed
- * at the hpread_type_lookup() level.
- */
- break;
-
- case DNTT_TYPE_MEMENUM:
- /* Member of enum */
- /* Ignored at this level, but hpread_read_enum_type() will take
- * care of walking the list of enumeration members.
- */
- break;
-
- case DNTT_TYPE_SET:
- /* Declares a set type. Should not be necessary to do anything
- * with the type at this level; these are processed
- * at the hpread_type_lookup() level.
- */
- break;
-
- case DNTT_TYPE_SUBRANGE:
- /* Declares a subrange type. Should not be necessary to do anything
- * with the type at this level; these are processed
- * at the hpread_type_lookup() level.
- */
- break;
-
- case DNTT_TYPE_ARRAY:
- /* Declares an array type. Should not be necessary to do anything
- * with the type at this level; these are processed
- * at the hpread_type_lookup() level.
- */
- break;
-
- case DNTT_TYPE_STRUCT:
- case DNTT_TYPE_UNION:
- /* Declares an struct/union type.
- * Should not be necessary to do anything
- * with the type at this level; these are processed
- * at the hpread_type_lookup() level.
- */
- break;
-
- case DNTT_TYPE_FIELD:
- /* Structure/union/class field */
- /* Ignored at this level, but hpread_read_struct_type() will take
- * care of walking the list of structure/union/class members.
- */
- break;
-
- /* DNTT_TYPE_VARIANT is not handled by GDB */
-
- /* DNTT_TYPE_FILE is not handled by GDB */
-
- case DNTT_TYPE_FUNCTYPE:
- /* Function type */
- /* Ignored at this level, handled within hpread_type_lookup() */
- break;
-
- case DNTT_TYPE_WITH:
- /* This is emitted within methods to indicate "with <class>"
- * scoping rules (i.e., indicate that the class data members
- * are directly visible).
- * However, since GDB already infers this by looking at the
- * "this" argument, interpreting the DNTT_TYPE_WITH
- * symbol record is unnecessary.
- */
- break;
-
- case DNTT_TYPE_COMMON:
- /* FORTRAN common. Not yet handled. */
- complain (&hpread_unhandled_common_complaint);
- break;
-
- /* DNTT_TYPE_COBSTRUCT is not handled by GDB. */
- /* DNTT_TYPE_XREF is not handled by GDB. */
- /* DNTT_TYPE_SA is not handled by GDB. */
- /* DNTT_TYPE_MACRO is not handled by GDB */
-
- case DNTT_TYPE_BLOCKDATA:
- /* Not sure what this is - part of FORTRAN support maybe?
- * Anyway, not yet handled.
- */
- complain (&hpread_unhandled_blockdata_complaint);
- break;
-
- case DNTT_TYPE_CLASS_SCOPE:
-
-
-
- /* The compiler brackets member functions with a CLASS_SCOPE/END
- * pair of records, presumably to put them in a different scope
- * from the module scope where they are normally defined.
- * E.g., in the situation:
- * void f() { ... }
- * void c::f() { ...}
- * The member function "c::f" will be bracketed by a CLASS_SCOPE/END.
- * This causes "break f" at the module level to pick the
- * the file-level function f(), not the member function
- * (which needs to be referenced via "break c::f").
- *
- * Here we record the class name to generate the demangled names of
- * member functions later.
- *
- * FIXME Not being used now for anything -- cplus_demangle seems
- * enough for getting the class-qualified names of functions. We
- * may need this for handling nested classes and types. */
-
- /* pai: FIXME Not handling nested classes for now -- need to
- * maintain a stack */
-
- dn_temp = hpread_get_lntt (dn_bufp->dclass_scope.type.dnttp.index, objfile);
- if (dn_temp->dblock.kind == DNTT_TYPE_TAGDEF)
- class_scope_name = VT (objfile) + dn_temp->dtag.name;
- else
- class_scope_name = NULL;
-
-#if 0
-
- /* Begin a new scope. */
- SL_INDEX (objfile) = hpread_record_lines (current_subfile,
- SL_INDEX (objfile),
- dn_bufp->dclass_scope.address,
- objfile, offset);
- valu = hpread_get_location (dn_bufp->dclass_scope.address, objfile);
- valu += offset; /* Relocate for dynamic loading */
- desc = hpread_get_scope_start (dn_bufp->dclass_scope.address, objfile);
- /* We use the scope start DNTT index as the nesting depth identifier! */
- new = push_context (desc, valu);
-#endif
- break;
-
- case DNTT_TYPE_REFERENCE:
- /* Declares a C++ reference type. Should not be necessary to do anything
- * with the type at this level; these are processed
- * at the hpread_type_lookup() level.
- */
- break;
-
- case DNTT_TYPE_PTRMEM:
- /* Declares a C++ pointer-to-data-member type. This does not
- * need to be handled at this level; being a type description it
- * is instead handled at the hpread_type_lookup() level.
- */
- break;
-
- case DNTT_TYPE_PTRMEMFUNC:
- /* Declares a C++ pointer-to-function-member type. This does not
- * need to be handled at this level; being a type description it
- * is instead handled at the hpread_type_lookup() level.
- */
- break;
-
- case DNTT_TYPE_CLASS:
- /* Declares a class type.
- * Should not be necessary to do anything
- * with the type at this level; these are processed
- * at the hpread_type_lookup() level.
- */
- break;
-
- case DNTT_TYPE_GENFIELD:
- /* I believe this is used for class member functions */
- /* Ignored at this level, but hpread_read_struct_type() will take
- * care of walking the list of class members.
- */
- break;
-
- case DNTT_TYPE_VFUNC:
- /* Virtual function */
- /* This does not have to be handled at this level; handled in
- * the course of processing class symbols.
- */
- break;
-
- case DNTT_TYPE_MEMACCESS:
- /* DDE ignores this symbol table record.
- * It has something to do with "modified access" to class members.
- * I'll assume we can safely ignore it too.
- */
- break;
-
- case DNTT_TYPE_INHERITANCE:
- /* These don't have to be handled here, since they are handled
- * within hpread_read_struct_type() in the process of constructing
- * a class type.
- */
- break;
-
- case DNTT_TYPE_FRIEND_CLASS:
- case DNTT_TYPE_FRIEND_FUNC:
- /* These can safely be ignored, as GDB doesn't need this
- * info. DDE only uses it in "describe". We may later want
- * to extend GDB's "ptype" to give this info, but for now
- * it seems safe enough to ignore it.
- */
- break;
-
- case DNTT_TYPE_MODIFIER:
- /* Intended to supply "modified access" to a type */
- /* From the way DDE handles this, it looks like it always
- * modifies a type. Therefore it is safe to ignore it at this
- * level, and handle it in hpread_type_lookup().
- */
- break;
-
- case DNTT_TYPE_OBJECT_ID:
- /* Just ignore this - that's all DDE does */
- break;
-
- case DNTT_TYPE_MEMFUNC:
- /* Member function */
- /* This does not have to be handled at this level; handled in
- * the course of processing class symbols.
- */
- break;
-
- case DNTT_TYPE_DOC_MEMFUNC:
- /* Member function */
- /* This does not have to be handled at this level; handled in
- * the course of processing class symbols.
- */
- break;
-
- case DNTT_TYPE_TEMPLATE:
- /* Template - sort of the header for a template definition,
- * which like a class, points to a member list and also points
- * to a TEMPLATE_ARG list of type-arguments.
- * We do not need to process TEMPLATE records at this level though.
- */
- break;
-
- case DNTT_TYPE_TEMPLATE_ARG:
- /* The TEMPLATE record points to an argument list of
- * TEMPLATE_ARG records, each of which describes one
- * of the type-arguments.
- * We do not need to process TEMPLATE_ARG records at this level though.
- */
- break;
-
- case DNTT_TYPE_FUNC_TEMPLATE:
- /* This will get emitted for member functions of templates.
- * But we don't need to process this record at this level though,
- * we will process it in the course of processing a TEMPLATE
- * record.
- */
- break;
-
- case DNTT_TYPE_LINK:
- /* The LINK record is used to link up templates with instantiations. */
- /* It is not clear why this is needed, and furthermore aCC does
- * not appear to generate this, so I think we can safely ignore it. - RT
- */
- break;
-
- /* DNTT_TYPE_DYN_ARRAY_DESC is not handled by GDB */
- /* DNTT_TYPE_DESC_SUBRANGE is not handled by GDB */
- /* DNTT_TYPE_BEGIN_EXT is not handled by GDB */
- /* DNTT_TYPE_INLN is not handled by GDB */
- /* DNTT_TYPE_INLN_LIST is not handled by GDB */
- /* DNTT_TYPE_ALIAS is not handled by GDB */
-
- default:
- break;
- }
-}
-
-/* Get nesting depth for a DNTT entry.
- * DN_BUFP points to a DNTT entry.
- * OBJFILE is the object file.
- * REPORT_NESTED is a flag; if 0, real nesting depth is
- * reported, if it is 1, the function simply returns a
- * non-zero value if the nesting depth is anything > 0.
- *
- * Return value is an integer. 0 => not a local type / name
- * positive return => type or name is local to some
- * block or function.
- */
-
-
-/* elz: ATTENTION: FIXME: NOTE: WARNING!!!!
- this function now returns 0 right away. It was taking too much time
- at start up. Now, though, the local types are not handled correctly.
-*/
-
-
-static int
-hpread_get_scope_depth (dn_bufp, objfile, report_nested)
- union dnttentry * dn_bufp;
- struct objfile * objfile;
- int report_nested;
-{
- register int index;
- register union dnttentry * dn_tmp;
- register short depth = 0;
-/****************************/
- return 0;
-/****************************/
-
- index = (((char *) dn_bufp) - LNTT (objfile)) / (sizeof (struct dntt_type_block));
-
- while (--index >= 0)
- {
- dn_tmp = hpread_get_lntt (index, objfile);
- switch (dn_tmp->dblock.kind)
- {
- case DNTT_TYPE_MODULE:
- return depth;
- case DNTT_TYPE_END:
- /* index is signed int; dnttp.index is 29-bit unsigned int! */
- index = (int) dn_tmp->dend.beginscope.dnttp.index;
- break;
- case DNTT_TYPE_BEGIN:
- case DNTT_TYPE_FUNCTION:
- case DNTT_TYPE_DOC_FUNCTION:
- case DNTT_TYPE_WITH:
- case DNTT_TYPE_COMMON:
- case DNTT_TYPE_CLASS_SCOPE:
- depth++;
- if (report_nested)
- return 1;
- break;
- default:
- break;
- }
- }
- return depth;
-}
-
-/* Adjust the bitoffsets for all fields of an anonymous union of
- type TYPE by negative BITS. This handles HP aCC's hideous habit
- of giving members of anonymous unions bit offsets relative to the
- enclosing structure instead of relative to the union itself. */
-
-static void
-hpread_adjust_bitoffsets (type, bits)
- struct type * type;
- int bits;
-{
- register int i;
-
- /* This is done only for unions; caller had better check that
- it is an anonymous one. */
- if (TYPE_CODE (type) != TYPE_CODE_UNION)
- return;
-
- /* Adjust each field; since this is a union, there are no base
- classes. Also no static membes. Also, no need for recursion as
- the members of this union if themeselves structs or unions, have
- the correct bitoffsets; if an anonymous union is a member of this
- anonymous union, the code in hpread_read_struct_type() will
- adjust for that. */
-
- for (i = 0; i < TYPE_NFIELDS (type); i++)
- TYPE_FIELD_BITPOS (type, i) -= bits;
-}
-
-/* Because of quirks in HP compilers' treatment of anonymous unions inside
- classes, we have to chase through a chain of threaded FIELD entries.
- If we encounter an anonymous union in the chain, we must recursively skip over
- that too.
-
- This function does a "next" in the chain of FIELD entries, but transparently
- skips over anonymous unions' fields (recursively).
-
- Inputs are the number of times to do "next" at the top level, the dnttpointer
- (FIELD) and entry pointer (FIELDP) for the dntt record corresponding to it,
- and the ubiquitous objfile parameter. (Note: FIELDP is a **.) Return value
- is a dnttpointer for the new field after all the skipped ones */
-
-static dnttpointer
-hpread_get_next_skip_over_anon_unions (skip_fields, field, fieldp, objfile)
- int skip_fields;
- dnttpointer field;
- union dnttentry ** fieldp;
- struct objfile * objfile;
-{
- struct type * anon_type;
- register int i;
- int bitoffset;
- char * name;
-
- for (i=0; i < skip_fields; i++)
- {
- /* Get type of item we're looking at now; recursively processes the types
- of these intermediate items we skip over, so they aren't lost. */
- anon_type = hpread_type_lookup ((*fieldp)->dfield.type, objfile);
- anon_type = CHECK_TYPEDEF (anon_type);
- bitoffset = (*fieldp)->dfield.bitoffset;
- name = VT (objfile) + (*fieldp)->dfield.name;
- /* First skip over one item to avoid stack death on recursion */
- field = (*fieldp)->dfield.nextfield;
- *fieldp = hpread_get_lntt (field.dnttp.index, objfile);
- /* Do we have another anonymous union? If so, adjust the bitoffsets
- of its members and skip over its members. */
- if ((TYPE_CODE (anon_type) == TYPE_CODE_UNION) &&
- (!name || STREQ (name, "")))
- {
- hpread_adjust_bitoffsets (anon_type, bitoffset);
- field = hpread_get_next_skip_over_anon_unions (TYPE_NFIELDS (anon_type), field, fieldp, objfile);
- }
- }
- return field;
-}
-
-
diff --git a/contrib/gdb/gdb/hpread.h b/contrib/gdb/gdb/hpread.h
deleted file mode 100644
index 7864dd6..0000000
--- a/contrib/gdb/gdb/hpread.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/* hpread.h
- * Common include file for:
- * hp_symtab_read.c
- * hp_psymtab_read.c
- */
-
-/* Copyright 1993, 1996 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
- Written by the Center for Software Science at the University of Utah
- and by Cygnus Support. */
-
-#include "defs.h"
-#include "bfd.h"
-#include "gdb_string.h"
-#include "hp-symtab.h"
-#include "syms.h"
-#include "symtab.h"
-#include "symfile.h"
-#include "objfiles.h"
-#include "buildsym.h"
-#include "complaints.h"
-#include "gdb-stabs.h"
-#include "gdbtypes.h"
-#include "demangle.h"
-
-/* Private information attached to an objfile which we use to find
- and internalize the HP C debug symbols within that objfile. */
-
-struct hpread_symfile_info
-{
- /* The contents of each of the debug sections (there are 4 of them). */
- char *gntt;
- char *lntt;
- char *slt;
- char *vt;
-
- /* We keep the size of the $VT$ section for range checking. */
- unsigned int vt_size;
-
- /* Some routines still need to know the number of symbols in the
- main debug sections ($LNTT$ and $GNTT$). */
- unsigned int lntt_symcount;
- unsigned int gntt_symcount;
-
- /* To keep track of all the types we've processed. */
- struct type **type_vector;
- int type_vector_length;
-
- /* Keeps track of the beginning of a range of source lines. */
- sltpointer sl_index;
-
- /* Some state variables we'll need. */
- int within_function;
-
- /* Keep track of the current function's address. We may need to look
- up something based on this address. */
- unsigned int current_function_value;
-};
-
-/* Accessor macros to get at the fields. */
-#define HPUX_SYMFILE_INFO(o) \
- ((struct hpread_symfile_info *)((o)->sym_private))
-#define GNTT(o) (HPUX_SYMFILE_INFO(o)->gntt)
-#define LNTT(o) (HPUX_SYMFILE_INFO(o)->lntt)
-#define SLT(o) (HPUX_SYMFILE_INFO(o)->slt)
-#define VT(o) (HPUX_SYMFILE_INFO(o)->vt)
-#define VT_SIZE(o) (HPUX_SYMFILE_INFO(o)->vt_size)
-#define LNTT_SYMCOUNT(o) (HPUX_SYMFILE_INFO(o)->lntt_symcount)
-#define GNTT_SYMCOUNT(o) (HPUX_SYMFILE_INFO(o)->gntt_symcount)
-#define TYPE_VECTOR(o) (HPUX_SYMFILE_INFO(o)->type_vector)
-#define TYPE_VECTOR_LENGTH(o) (HPUX_SYMFILE_INFO(o)->type_vector_length)
-#define SL_INDEX(o) (HPUX_SYMFILE_INFO(o)->sl_index)
-#define WITHIN_FUNCTION(o) (HPUX_SYMFILE_INFO(o)->within_function)
-#define CURRENT_FUNCTION_VALUE(o) (HPUX_SYMFILE_INFO(o)->current_function_value)
-
-/* Given the native debug symbol SYM, set NAMEP to the name associated
- with the debug symbol. Note we may be called with a debug symbol which
- has no associated name, in that case we return an empty string.
-
- Also note we "know" that the name for any symbol is always in the
- same place. Hence we don't have to conditionalize on the symbol type. */
-#define SET_NAMESTRING(SYM, NAMEP, OBJFILE) \
- if (! hpread_has_name ((SYM)->dblock.kind)) \
- *NAMEP = ""; \
- else if (((unsigned)(SYM)->dsfile.name) >= VT_SIZE (OBJFILE)) \
- { \
- complain (&string_table_offset_complaint, (char *) symnum); \
- *NAMEP = ""; \
- } \
- else \
- *NAMEP = (SYM)->dsfile.name + VT (OBJFILE)
-
-/* We put a pointer to this structure in the read_symtab_private field
- of the psymtab. */
-
-struct symloc
-{
- /* The offset within the file symbol table of first local symbol for
- this file. */
-
- int ldsymoff;
-
- /* Length (in bytes) of the section of the symbol table devoted to
- this file's symbols (actually, the section bracketed may contain
- more than just this file's symbols). If ldsymlen is 0, the only
- reason for this thing's existence is the dependency list.
- Nothing else will happen when it is read in. */
-
- int ldsymlen;
-};
-
-#define LDSYMOFF(p) (((struct symloc *)((p)->read_symtab_private))->ldsymoff)
-#define LDSYMLEN(p) (((struct symloc *)((p)->read_symtab_private))->ldsymlen)
-#define SYMLOC(p) ((struct symloc *)((p)->read_symtab_private))
-
-/* FIXME: Shouldn't this stuff be in a .h file somewhere? */
-/* Nonzero means give verbose info on gdb action. */
-extern int info_verbose;
-
-/* Complaints about the symbols we have encountered. */
-extern struct complaint string_table_offset_complaint;
-extern struct complaint lbrac_unmatched_complaint;
-extern struct complaint lbrac_mismatch_complaint;
-
-extern union sltentry *hpread_get_slt
- PARAMS ((int, struct objfile *));
-
-extern union dnttentry *hpread_get_lntt
- PARAMS ((int, struct objfile *));
-
-int hpread_has_name
- PARAMS ((enum dntt_entry_type));
-
-/* end of hpread.h */
diff --git a/contrib/gdb/gdb/jv-exp.tab.c b/contrib/gdb/gdb/jv-exp.tab.c
deleted file mode 100644
index 39920ca..0000000
--- a/contrib/gdb/gdb/jv-exp.tab.c
+++ /dev/null
@@ -1,2351 +0,0 @@
-
-/* A Bison parser, made from jv-exp.y
- by GNU Bison version 1.25
- */
-
-#define YYBISON 1 /* Identify Bison output. */
-
-#define INTEGER_LITERAL 258
-#define FLOATING_POINT_LITERAL 259
-#define IDENTIFIER 260
-#define STRING_LITERAL 261
-#define BOOLEAN_LITERAL 262
-#define TYPENAME 263
-#define NAME_OR_INT 264
-#define ERROR 265
-#define LONG 266
-#define SHORT 267
-#define BYTE 268
-#define INT 269
-#define CHAR 270
-#define BOOLEAN 271
-#define DOUBLE 272
-#define FLOAT 273
-#define VARIABLE 274
-#define ASSIGN_MODIFY 275
-#define THIS 276
-#define SUPER 277
-#define NEW 278
-#define OROR 279
-#define ANDAND 280
-#define EQUAL 281
-#define NOTEQUAL 282
-#define LEQ 283
-#define GEQ 284
-#define LSH 285
-#define RSH 286
-#define INCREMENT 287
-#define DECREMENT 288
-
-#line 38 "jv-exp.y"
-
-
-#include "defs.h"
-#include "gdb_string.h"
-#include <ctype.h>
-#include "expression.h"
-#include "value.h"
-#include "parser-defs.h"
-#include "language.h"
-#include "jv-lang.h"
-#include "bfd.h" /* Required by objfiles.h. */
-#include "symfile.h" /* Required by objfiles.h. */
-#include "objfiles.h" /* For have_full_symbols and have_partial_symbols */
-
-/* Remap normal yacc parser interface names (yyparse, yylex, yyerror, etc),
- as well as gratuitiously global symbol names, so we can have multiple
- yacc generated parsers in gdb. Note that these are only the variables
- produced by yacc. If other parser generators (bison, byacc, etc) produce
- additional global names that conflict at link time, then those parser
- generators need to be fixed instead of adding those names to this list. */
-
-#define yymaxdepth java_maxdepth
-#define yyparse java_parse
-#define yylex java_lex
-#define yyerror java_error
-#define yylval java_lval
-#define yychar java_char
-#define yydebug java_debug
-#define yypact java_pact
-#define yyr1 java_r1
-#define yyr2 java_r2
-#define yydef java_def
-#define yychk java_chk
-#define yypgo java_pgo
-#define yyact java_act
-#define yyexca java_exca
-#define yyerrflag java_errflag
-#define yynerrs java_nerrs
-#define yyps java_ps
-#define yypv java_pv
-#define yys java_s
-#define yy_yys java_yys
-#define yystate java_state
-#define yytmp java_tmp
-#define yyv java_v
-#define yy_yyv java_yyv
-#define yyval java_val
-#define yylloc java_lloc
-#define yyreds java_reds /* With YYDEBUG defined */
-#define yytoks java_toks /* With YYDEBUG defined */
-#define yylhs java_yylhs
-#define yylen java_yylen
-#define yydefred java_yydefred
-#define yydgoto java_yydgoto
-#define yysindex java_yysindex
-#define yyrindex java_yyrindex
-#define yygindex java_yygindex
-#define yytable java_yytable
-#define yycheck java_yycheck
-
-#ifndef YYDEBUG
-#define YYDEBUG 0 /* Default to no yydebug support */
-#endif
-
-int
-yyparse PARAMS ((void));
-
-static int
-yylex PARAMS ((void));
-
-void
-yyerror PARAMS ((char *));
-
-static struct type * java_type_from_name PARAMS ((struct stoken));
-static void push_expression_name PARAMS ((struct stoken));
-static void push_fieldnames PARAMS ((struct stoken));
-
-static struct expression *copy_exp PARAMS ((struct expression *, int));
-static void insert_exp PARAMS ((int, struct expression *));
-
-
-#line 124 "jv-exp.y"
-typedef union
- {
- LONGEST lval;
- struct {
- LONGEST val;
- struct type *type;
- } typed_val_int;
- struct {
- DOUBLEST dval;
- struct type *type;
- } typed_val_float;
- struct symbol *sym;
- struct type *tval;
- struct stoken sval;
- struct ttype tsym;
- struct symtoken ssym;
- struct block *bval;
- enum exp_opcode opcode;
- struct internalvar *ivar;
- int *ivec;
- } YYSTYPE;
-#line 146 "jv-exp.y"
-
-/* YYSTYPE gets defined by %union */
-static int
-parse_number PARAMS ((char *, int, int, YYSTYPE *));
-#include <stdio.h>
-
-#ifndef __cplusplus
-#ifndef __STDC__
-#define const
-#endif
-#endif
-
-
-
-#define YYFINAL 208
-#define YYFLAG -32768
-#define YYNTBASE 57
-
-#define YYTRANSLATE(x) ((unsigned)(x) <= 288 ? yytranslate[x] : 112)
-
-static const char yytranslate[] = { 0,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 55, 2, 2, 2, 44, 31, 2, 49,
- 50, 42, 40, 24, 41, 47, 43, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 56, 2, 34,
- 25, 35, 26, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 48, 2, 53, 30, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 51, 29, 52, 54, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 27, 28,
- 32, 33, 36, 37, 38, 39, 45, 46
-};
-
-#if YYDEBUG != 0
-static const short yyprhs[] = { 0,
- 0, 2, 4, 6, 8, 10, 12, 14, 16, 18,
- 20, 22, 24, 26, 28, 30, 32, 34, 36, 38,
- 40, 42, 44, 46, 48, 51, 54, 56, 58, 60,
- 62, 64, 66, 70, 72, 76, 78, 80, 82, 84,
- 88, 90, 92, 94, 96, 100, 102, 104, 110, 112,
- 116, 117, 119, 124, 129, 131, 134, 138, 141, 145,
- 147, 148, 152, 156, 161, 168, 175, 180, 185, 190,
- 192, 194, 196, 198, 200, 203, 206, 208, 210, 213,
- 216, 219, 221, 224, 227, 229, 232, 235, 237, 243,
- 248, 254, 256, 260, 264, 268, 270, 274, 278, 280,
- 284, 288, 290, 294, 298, 302, 306, 308, 312, 316,
- 318, 322, 324, 328, 330, 334, 336, 340, 342, 346,
- 348, 354, 356, 358, 362, 366, 368, 370, 372, 374
-};
-
-static const short yyrhs[] = { 73,
- 0, 58, 0, 59, 0, 62, 0, 68, 0, 6,
- 0, 3, 0, 9, 0, 4, 0, 7, 0, 60,
- 0, 63, 0, 16, 0, 64, 0, 65, 0, 13,
- 0, 12, 0, 14, 0, 11, 0, 15, 0, 18,
- 0, 17, 0, 69, 0, 66, 0, 62, 84, 0,
- 69, 84, 0, 5, 0, 72, 0, 71, 0, 72,
- 0, 5, 0, 9, 0, 69, 47, 71, 0, 111,
- 0, 73, 24, 111, 0, 75, 0, 81, 0, 61,
- 0, 21, 0, 49, 111, 50, 0, 78, 0, 86,
- 0, 87, 0, 88, 0, 76, 79, 77, 0, 51,
- 0, 52, 0, 23, 67, 49, 80, 50, 0, 111,
- 0, 79, 24, 111, 0, 0, 79, 0, 23, 62,
- 82, 85, 0, 23, 66, 82, 85, 0, 83, 0,
- 82, 83, 0, 48, 111, 53, 0, 48, 53, 0,
- 84, 48, 53, 0, 84, 0, 0, 74, 47, 71,
- 0, 19, 47, 71, 0, 69, 49, 80, 50, 0,
- 74, 47, 71, 49, 80, 50, 0, 22, 47, 71,
- 49, 80, 50, 0, 69, 48, 111, 53, 0, 19,
- 48, 111, 53, 0, 75, 48, 111, 53, 0, 74,
- 0, 69, 0, 19, 0, 90, 0, 91, 0, 89,
- 45, 0, 89, 46, 0, 93, 0, 94, 0, 40,
- 92, 0, 41, 92, 0, 42, 92, 0, 95, 0,
- 45, 92, 0, 46, 92, 0, 89, 0, 54, 92,
- 0, 55, 92, 0, 96, 0, 49, 62, 85, 50,
- 92, 0, 49, 111, 50, 95, 0, 49, 69, 84,
- 50, 95, 0, 92, 0, 97, 42, 92, 0, 97,
- 43, 92, 0, 97, 44, 92, 0, 97, 0, 98,
- 40, 97, 0, 98, 41, 97, 0, 98, 0, 99,
- 38, 98, 0, 99, 39, 98, 0, 99, 0, 100,
- 34, 99, 0, 100, 35, 99, 0, 100, 36, 99,
- 0, 100, 37, 99, 0, 100, 0, 101, 32, 100,
- 0, 101, 33, 100, 0, 101, 0, 102, 31, 101,
- 0, 102, 0, 103, 30, 102, 0, 103, 0, 104,
- 29, 103, 0, 104, 0, 105, 28, 104, 0, 105,
- 0, 106, 27, 105, 0, 106, 0, 106, 26, 111,
- 56, 107, 0, 107, 0, 109, 0, 110, 25, 107,
- 0, 110, 20, 107, 0, 70, 0, 19, 0, 86,
- 0, 88, 0, 108, 0
-};
-
-#endif
-
-#if YYDEBUG != 0
-static const short yyrline[] = { 0,
- 203, 204, 207, 215, 217, 220, 229, 235, 243, 248,
- 253, 263, 265, 269, 271, 274, 277, 279, 281, 283,
- 287, 290, 301, 306, 310, 313, 317, 319, 322, 324,
- 327, 329, 332, 356, 357, 361, 363, 366, 368, 371,
- 372, 373, 374, 375, 376, 383, 388, 393, 398, 401,
- 405, 408, 411, 414, 418, 420, 423, 427, 430, 434,
- 436, 440, 443, 448, 451, 453, 457, 475, 477, 481,
- 483, 485, 487, 488, 491, 496, 501, 503, 504, 505,
- 507, 509, 512, 517, 522, 524, 526, 528, 531, 536,
- 557, 564, 566, 568, 570, 574, 576, 578, 582, 584,
- 586, 591, 593, 595, 597, 599, 604, 606, 608, 612,
- 614, 618, 620, 623, 625, 629, 631, 635, 637, 641,
- 643, 647, 649, 652, 655, 661, 664, 666, 667, 671
-};
-#endif
-
-
-#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
-
-static const char * const yytname[] = { "$","error","$undefined.","INTEGER_LITERAL",
-"FLOATING_POINT_LITERAL","IDENTIFIER","STRING_LITERAL","BOOLEAN_LITERAL","TYPENAME",
-"NAME_OR_INT","ERROR","LONG","SHORT","BYTE","INT","CHAR","BOOLEAN","DOUBLE",
-"FLOAT","VARIABLE","ASSIGN_MODIFY","THIS","SUPER","NEW","','","'='","'?'","OROR",
-"ANDAND","'|'","'^'","'&'","EQUAL","NOTEQUAL","'<'","'>'","LEQ","GEQ","LSH",
-"RSH","'+'","'-'","'*'","'/'","'%'","INCREMENT","DECREMENT","'.'","'['","'('",
-"')'","'{'","'}'","']'","'~'","'!'","':'","start","type_exp","PrimitiveOrArrayType",
-"StringLiteral","Literal","PrimitiveType","NumericType","IntegralType","FloatingPointType",
-"ClassOrInterfaceType","ClassType","ArrayType","Name","ForcedName","SimpleName",
-"QualifiedName","exp1","Primary","PrimaryNoNewArray","lcurly","rcurly","ClassInstanceCreationExpression",
-"ArgumentList","ArgumentList_opt","ArrayCreationExpression","DimExprs","DimExpr",
-"Dims","Dims_opt","FieldAccess","MethodInvocation","ArrayAccess","PostfixExpression",
-"PostIncrementExpression","PostDecrementExpression","UnaryExpression","PreIncrementExpression",
-"PreDecrementExpression","UnaryExpressionNotPlusMinus","CastExpression","MultiplicativeExpression",
-"AdditiveExpression","ShiftExpression","RelationalExpression","EqualityExpression",
-"AndExpression","ExclusiveOrExpression","InclusiveOrExpression","ConditionalAndExpression",
-"ConditionalOrExpression","ConditionalExpression","AssignmentExpression","Assignment",
-"LeftHandSide","Expression", NULL
-};
-#endif
-
-static const short yyr1[] = { 0,
- 57, 57, 58, 59, 59, 60, 61, 61, 61, 61,
- 61, 62, 62, 63, 63, 64, 64, 64, 64, 64,
- 65, 65, 66, 67, 68, 68, 69, 69, 70, 70,
- 71, 71, 72, 73, 73, 74, 74, 75, 75, 75,
- 75, 75, 75, 75, 75, 76, 77, 78, 79, 79,
- 80, 80, 81, 81, 82, 82, 83, 84, 84, 85,
- 85, 86, 86, 87, 87, 87, 88, 88, 88, 89,
- 89, 89, 89, 89, 90, 91, 92, 92, 92, 92,
- 92, 92, 93, 94, 95, 95, 95, 95, 96, 96,
- 96, 97, 97, 97, 97, 98, 98, 98, 99, 99,
- 99, 100, 100, 100, 100, 100, 101, 101, 101, 102,
- 102, 103, 103, 104, 104, 105, 105, 106, 106, 107,
- 107, 108, 108, 109, 109, 110, 110, 110, 110, 111
-};
-
-static const short yyr2[] = { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 2, 2, 1, 1, 1, 1,
- 1, 1, 3, 1, 3, 1, 1, 1, 1, 3,
- 1, 1, 1, 1, 3, 1, 1, 5, 1, 3,
- 0, 1, 4, 4, 1, 2, 3, 2, 3, 1,
- 0, 3, 3, 4, 6, 6, 4, 4, 4, 1,
- 1, 1, 1, 1, 2, 2, 1, 1, 2, 2,
- 2, 1, 2, 2, 1, 2, 2, 1, 5, 4,
- 5, 1, 3, 3, 3, 1, 3, 3, 1, 3,
- 3, 1, 3, 3, 3, 3, 1, 3, 3, 1,
- 3, 1, 3, 1, 3, 1, 3, 1, 3, 1,
- 5, 1, 1, 3, 3, 1, 1, 1, 1, 1
-};
-
-static const short yydefact[] = { 0,
- 7, 9, 27, 6, 10, 8, 19, 17, 16, 18,
- 20, 13, 22, 21, 72, 39, 0, 0, 0, 0,
- 0, 0, 0, 0, 46, 0, 0, 2, 3, 11,
- 38, 4, 12, 14, 15, 5, 71, 126, 29, 28,
- 1, 70, 36, 0, 41, 37, 42, 43, 44, 85,
- 73, 74, 92, 77, 78, 82, 88, 96, 99, 102,
- 107, 110, 112, 114, 116, 118, 120, 122, 130, 123,
- 0, 34, 0, 0, 0, 27, 0, 24, 0, 23,
- 28, 8, 72, 71, 42, 44, 79, 80, 81, 83,
- 84, 61, 71, 0, 86, 87, 0, 25, 0, 0,
- 51, 26, 0, 0, 0, 0, 49, 75, 76, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 31, 32, 63, 0, 0, 0, 61, 55, 61, 51,
- 0, 60, 0, 0, 40, 58, 0, 33, 0, 52,
- 0, 35, 62, 0, 0, 47, 45, 93, 94, 95,
- 97, 98, 100, 101, 103, 104, 105, 106, 108, 109,
- 111, 113, 115, 117, 0, 119, 125, 124, 68, 51,
- 0, 0, 56, 53, 54, 0, 0, 0, 90, 59,
- 67, 64, 51, 69, 50, 0, 0, 57, 48, 89,
- 91, 0, 121, 66, 65, 0, 0, 0
-};
-
-static const short yydefgoto[] = { 206,
- 28, 29, 30, 31, 32, 33, 34, 35, 78, 79,
- 36, 84, 38, 39, 81, 41, 42, 43, 44, 157,
- 45, 150, 151, 46, 137, 138, 142, 143, 85, 48,
- 86, 50, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, 107
-};
-
-static const short yypact[] = { 206,
--32768,-32768, -5,-32768,-32768, -3,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768, 1,-32768, -34, 225, 312, 312,
- 312, 312, 312, 206,-32768, 312, 312,-32768,-32768,-32768,
--32768, -23,-32768,-32768,-32768,-32768, 34,-32768,-32768, 7,
- 4, -28, -17, 365,-32768,-32768, 15,-32768, 21, 74,
--32768,-32768,-32768,-32768,-32768,-32768,-32768, 45, 44, 86,
- 35, 96, 3, 23, 8, 51, 104,-32768,-32768,-32768,
- 32,-32768, 46, 365, 46,-32768, 25, 25, 14, 55,
--32768,-32768, 87, 47,-32768,-32768,-32768,-32768,-32768,-32768,
--32768, -23, 34, 40,-32768,-32768, 57, 50, 46, 259,
- 365, 50, 365, 46, 365, -13,-32768,-32768,-32768, 312,
- 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
- 312, 312, 312, 312, 312, 312, 365, 312, 312, 312,
--32768,-32768,-32768, 61, 59, 365, 56,-32768, 56, 365,
- 365, 50, 66, 43, 372,-32768, 69,-32768, 73, 108,
- 106,-32768, 111, 109, 365,-32768,-32768,-32768,-32768,-32768,
- 45, 45, 44, 44, 86, 86, 86, 86, 35, 35,
- 96, 3, 23, 8, 107, 51,-32768,-32768,-32768, 365,
- 112, 259,-32768,-32768,-32768, 114, 312, 372,-32768,-32768,
--32768,-32768, 365,-32768,-32768, 312, 116,-32768,-32768,-32768,
--32768, 118,-32768,-32768,-32768, 169, 170,-32768
-};
-
-static const short yypgoto[] = {-32768,
--32768,-32768,-32768,-32768, -8,-32768,-32768,-32768,-32768,-32768,
--32768, 5,-32768, -66, 0,-32768,-32768,-32768,-32768,-32768,
--32768, 127, -126,-32768, 94, -94, -29, -40, 6,-32768,
- 12,-32768,-32768,-32768, 39,-32768,-32768, -141,-32768, 24,
- 28, -42, 36, 52, 53, 49, 58, 48,-32768, -128,
--32768,-32768,-32768, 18
-};
-
-
-#define YYLAST 427
-
-
-static const short yytable[] = { 40,
- 177, 178, 98, 189, 37, 47, 133, 102, 135, 77,
- 155, 49, 75, 186, -31, 92, -32, 72, 104, -31,
- -127, -32, 80, 40, 97, -127, -30, 103, 93, 47,
- 105, -30, 148, 123, -128, 49, 125, 153, 156, -128,
- -129, 94, 183, 40, 183, -129, 201, 73, 74, 47,
- 131, 129, 124, 197, 132, 49, 130, 87, 88, 89,
- 90, 91, 140, 144, 95, 96, 202, 203, 117, 118,
- 119, 120, 136, 40, 165, 166, 167, 168, 126, 47,
- 99, 100, 101, 113, 114, 49, 110, 111, 112, 145,
- 147, 134, 188, 99, 141, 101, 184, 147, 185, 40,
- 40, 99, 40, 182, 40, 47, 47, 180, 47, 146,
- 47, 49, 49, 179, 49, 187, 49, 149, 108, 109,
- 152, 190, 154, 115, 116, 191, 40, 121, 122, 127,
- 128, 155, 47, 73, 74, 40, 161, 162, 49, 40,
- 40, 47, 163, 164, 175, 47, 47, 49, 158, 159,
- 160, 49, 49, 181, 40, 192, 169, 170, 149, 193,
- 47, 194, 196, 199, 198, 204, 49, 205, 207, 208,
- 106, 139, 195, 173, 171, 176, 172, 0, 0, 40,
- 0, 40, 0, 174, 0, 47, 0, 47, 0, 0,
- 0, 49, 40, 49, 0, 0, 0, 0, 47, 181,
- 0, 0, 0, 0, 49, 0, 0, 0, 1, 2,
- 3, 4, 5, 0, 6, 0, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, 200, 16, 17, 18, 76,
- 0, 0, 0, 0, 0, 7, 8, 9, 10, 11,
- 12, 13, 14, 0, 0, 19, 20, 21, 0, 0,
- 22, 23, 0, 0, 24, 0, 25, 0, 0, 26,
- 27, 1, 2, 3, 4, 5, 0, 6, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 15, 0, 16,
- 17, 18, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 19, 20,
- 21, 0, 0, 22, 23, 0, 0, 24, 0, 25,
- 0, 146, 26, 27, 1, 2, 76, 4, 5, 0,
- 82, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83, 0, 16, 17, 18, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 19, 20, 21, 0, 0, 22, 23, 0, 0,
- 24, 0, 25, 0, 0, 26, 27, 1, 2, 3,
- 4, 5, 0, 6, 1, 2, 76, 4, 5, 0,
- 82, 0, 0, 15, 0, 16, 17, 18, 0, 0,
- 83, 0, 16, 17, 18, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 19, 20, 21, 0, 0, 22,
- 23, 0, 0, 24, 0, 25, 0, 0, 26, 27,
- 24, 0, 25, 0, 0, 26, 27
-};
-
-static const short yycheck[] = { 0,
- 129, 130, 32, 145, 0, 0, 73, 37, 75, 18,
- 24, 0, 47, 140, 20, 24, 20, 0, 47, 25,
- 20, 25, 18, 24, 48, 25, 20, 24, 24, 24,
- 48, 25, 99, 31, 20, 24, 29, 104, 52, 25,
- 20, 24, 137, 44, 139, 25, 188, 47, 48, 44,
- 5, 20, 30, 180, 9, 44, 25, 19, 20, 21,
- 22, 23, 49, 93, 26, 27, 193, 196, 34, 35,
- 36, 37, 48, 74, 117, 118, 119, 120, 28, 74,
- 47, 48, 49, 40, 41, 74, 42, 43, 44, 50,
- 48, 74, 50, 47, 48, 49, 137, 48, 139, 100,
- 101, 47, 103, 48, 105, 100, 101, 49, 103, 53,
- 105, 100, 101, 53, 103, 50, 105, 100, 45, 46,
- 103, 53, 105, 38, 39, 53, 127, 32, 33, 26,
- 27, 24, 127, 47, 48, 136, 113, 114, 127, 140,
- 141, 136, 115, 116, 127, 140, 141, 136, 110, 111,
- 112, 140, 141, 136, 155, 50, 121, 122, 141, 49,
- 155, 53, 56, 50, 53, 50, 155, 50, 0, 0,
- 44, 78, 155, 125, 123, 128, 124, -1, -1, 180,
- -1, 182, -1, 126, -1, 180, -1, 182, -1, -1,
- -1, 180, 193, 182, -1, -1, -1, -1, 193, 182,
- -1, -1, -1, -1, 193, -1, -1, -1, 3, 4,
- 5, 6, 7, -1, 9, -1, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 187, 21, 22, 23, 5,
- -1, -1, -1, -1, -1, 11, 12, 13, 14, 15,
- 16, 17, 18, -1, -1, 40, 41, 42, -1, -1,
- 45, 46, -1, -1, 49, -1, 51, -1, -1, 54,
- 55, 3, 4, 5, 6, 7, -1, 9, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 19, -1, 21,
- 22, 23, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 40, 41,
- 42, -1, -1, 45, 46, -1, -1, 49, -1, 51,
- -1, 53, 54, 55, 3, 4, 5, 6, 7, -1,
- 9, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 19, -1, 21, 22, 23, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 40, 41, 42, -1, -1, 45, 46, -1, -1,
- 49, -1, 51, -1, -1, 54, 55, 3, 4, 5,
- 6, 7, -1, 9, 3, 4, 5, 6, 7, -1,
- 9, -1, -1, 19, -1, 21, 22, 23, -1, -1,
- 19, -1, 21, 22, 23, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 40, 41, 42, -1, -1, 45,
- 46, -1, -1, 49, -1, 51, -1, -1, 54, 55,
- 49, -1, 51, -1, -1, 54, 55
-};
-/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
-#line 3 "/stone/jimb/main-98r2/share/bison.simple"
-
-/* Skeleton output parser for bison,
- Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/* As a special exception, when this file is copied by Bison into a
- Bison output file, you may use that output file without restriction.
- This special exception was added by the Free Software Foundation
- in version 1.24 of Bison. */
-
-#ifndef alloca
-#ifdef __GNUC__
-#define alloca __builtin_alloca
-#else /* not GNU C. */
-#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
-#include <alloca.h>
-#else /* not sparc */
-#if defined (MSDOS) && !defined (__TURBOC__)
-#else /* not MSDOS, or __TURBOC__ */
-#if defined(_AIX)
- #pragma alloca
-#else /* not MSDOS, __TURBOC__, or _AIX */
-#ifdef __hpux
-#ifdef __cplusplus
-extern "C" {
-void *alloca (unsigned int);
-};
-#else /* not __cplusplus */
-void *alloca ();
-#endif /* not __cplusplus */
-#endif /* __hpux */
-#endif /* not _AIX */
-#endif /* not MSDOS, or __TURBOC__ */
-#endif /* not sparc. */
-#endif /* not GNU C. */
-#endif /* alloca not defined. */
-
-/* This is the parser code that is written into each bison parser
- when the %semantic_parser declaration is not specified in the grammar.
- It was written by Richard Stallman by simplifying the hairy parser
- used when %semantic_parser is specified. */
-
-/* Note: there must be only one dollar sign in this file.
- It is replaced by the list of actions, each action
- as one case of the switch. */
-
-#define yyerrok (yyerrstatus = 0)
-#define yyclearin (yychar = YYEMPTY)
-#define YYEMPTY -2
-#define YYEOF 0
-#define YYACCEPT return(0)
-#define YYABORT return(1)
-#define YYERROR goto yyerrlab1
-/* Like YYERROR except do call yyerror.
- This remains here temporarily to ease the
- transition to the new meaning of YYERROR, for GCC.
- Once GCC version 2 has supplanted version 1, this can go. */
-#define YYFAIL goto yyerrlab
-#define YYRECOVERING() (!!yyerrstatus)
-#define YYBACKUP(token, value) \
-do \
- if (yychar == YYEMPTY && yylen == 1) \
- { yychar = (token), yylval = (value); \
- yychar1 = YYTRANSLATE (yychar); \
- YYPOPSTACK; \
- goto yybackup; \
- } \
- else \
- { yyerror ("syntax error: cannot back up"); YYERROR; } \
-while (0)
-
-#define YYTERROR 1
-#define YYERRCODE 256
-
-#ifndef YYPURE
-#define YYLEX yylex()
-#endif
-
-#ifdef YYPURE
-#ifdef YYLSP_NEEDED
-#ifdef YYLEX_PARAM
-#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
-#else
-#define YYLEX yylex(&yylval, &yylloc)
-#endif
-#else /* not YYLSP_NEEDED */
-#ifdef YYLEX_PARAM
-#define YYLEX yylex(&yylval, YYLEX_PARAM)
-#else
-#define YYLEX yylex(&yylval)
-#endif
-#endif /* not YYLSP_NEEDED */
-#endif
-
-/* If nonreentrant, generate the variables here */
-
-#ifndef YYPURE
-
-int yychar; /* the lookahead symbol */
-YYSTYPE yylval; /* the semantic value of the */
- /* lookahead symbol */
-
-#ifdef YYLSP_NEEDED
-YYLTYPE yylloc; /* location data for the lookahead */
- /* symbol */
-#endif
-
-int yynerrs; /* number of parse errors so far */
-#endif /* not YYPURE */
-
-#if YYDEBUG != 0
-int yydebug; /* nonzero means print parse trace */
-/* Since this is uninitialized, it does not stop multiple parsers
- from coexisting. */
-#endif
-
-/* YYINITDEPTH indicates the initial size of the parser's stacks */
-
-#ifndef YYINITDEPTH
-#define YYINITDEPTH 200
-#endif
-
-/* YYMAXDEPTH is the maximum size the stacks can grow to
- (effective only if the built-in stack extension method is used). */
-
-#if YYMAXDEPTH == 0
-#undef YYMAXDEPTH
-#endif
-
-#ifndef YYMAXDEPTH
-#define YYMAXDEPTH 10000
-#endif
-
-/* Prevent warning if -Wstrict-prototypes. */
-#ifdef __GNUC__
-int yyparse (void);
-#endif
-
-#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
-#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
-#else /* not GNU C or C++ */
-#ifndef __cplusplus
-
-/* This is the most reliable way to avoid incompatibilities
- in available built-in functions on various systems. */
-static void
-__yy_memcpy (to, from, count)
- char *to;
- char *from;
- int count;
-{
- register char *f = from;
- register char *t = to;
- register int i = count;
-
- while (i-- > 0)
- *t++ = *f++;
-}
-
-#else /* __cplusplus */
-
-/* This is the most reliable way to avoid incompatibilities
- in available built-in functions on various systems. */
-static void
-__yy_memcpy (char *to, char *from, int count)
-{
- register char *f = from;
- register char *t = to;
- register int i = count;
-
- while (i-- > 0)
- *t++ = *f++;
-}
-
-#endif
-#endif
-
-#line 196 "/stone/jimb/main-98r2/share/bison.simple"
-
-/* The user can define YYPARSE_PARAM as the name of an argument to be passed
- into yyparse. The argument should have type void *.
- It should actually point to an object.
- Grammar actions can access the variable by casting it
- to the proper pointer type. */
-
-#ifdef YYPARSE_PARAM
-#ifdef __cplusplus
-#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
-#define YYPARSE_PARAM_DECL
-#else /* not __cplusplus */
-#define YYPARSE_PARAM_ARG YYPARSE_PARAM
-#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
-#endif /* not __cplusplus */
-#else /* not YYPARSE_PARAM */
-#define YYPARSE_PARAM_ARG
-#define YYPARSE_PARAM_DECL
-#endif /* not YYPARSE_PARAM */
-
-int
-yyparse(YYPARSE_PARAM_ARG)
- YYPARSE_PARAM_DECL
-{
- register int yystate;
- register int yyn;
- register short *yyssp;
- register YYSTYPE *yyvsp;
- int yyerrstatus; /* number of tokens to shift before error messages enabled */
- int yychar1 = 0; /* lookahead token as an internal (translated) token number */
-
- short yyssa[YYINITDEPTH]; /* the state stack */
- YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
-
- short *yyss = yyssa; /* refer to the stacks thru separate pointers */
- YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to xreallocate them elsewhere */
-
-#ifdef YYLSP_NEEDED
- YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
- YYLTYPE *yyls = yylsa;
- YYLTYPE *yylsp;
-
-#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
-#else
-#define YYPOPSTACK (yyvsp--, yyssp--)
-#endif
-
- int yystacksize = YYINITDEPTH;
-
-#ifdef YYPURE
- int yychar;
- YYSTYPE yylval;
- int yynerrs;
-#ifdef YYLSP_NEEDED
- YYLTYPE yylloc;
-#endif
-#endif
-
- YYSTYPE yyval; /* the variable used to return */
- /* semantic values from the action */
- /* routines */
-
- int yylen;
-
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Starting parse\n");
-#endif
-
- yystate = 0;
- yyerrstatus = 0;
- yynerrs = 0;
- yychar = YYEMPTY; /* Cause a token to be read. */
-
- /* Initialize stack pointers.
- Waste one element of value and location stack
- so that they stay on the same level as the state stack.
- The wasted elements are never initialized. */
-
- yyssp = yyss - 1;
- yyvsp = yyvs;
-#ifdef YYLSP_NEEDED
- yylsp = yyls;
-#endif
-
-/* Push a new state, which is found in yystate . */
-/* In all cases, when you get here, the value and location stacks
- have just been pushed. so pushing a state here evens the stacks. */
-yynewstate:
-
- *++yyssp = yystate;
-
- if (yyssp >= yyss + yystacksize - 1)
- {
- /* Give user a chance to xreallocate the stack */
- /* Use copies of these so that the &'s don't force the real ones into memory. */
- YYSTYPE *yyvs1 = yyvs;
- short *yyss1 = yyss;
-#ifdef YYLSP_NEEDED
- YYLTYPE *yyls1 = yyls;
-#endif
-
- /* Get the current used size of the three stacks, in elements. */
- int size = yyssp - yyss + 1;
-
-#ifdef yyoverflow
- /* Each stack pointer address is followed by the size of
- the data in use in that stack, in bytes. */
-#ifdef YYLSP_NEEDED
- /* This used to be a conditional around just the two extra args,
- but that might be undefined if yyoverflow is a macro. */
- yyoverflow("parser stack overflow",
- &yyss1, size * sizeof (*yyssp),
- &yyvs1, size * sizeof (*yyvsp),
- &yyls1, size * sizeof (*yylsp),
- &yystacksize);
-#else
- yyoverflow("parser stack overflow",
- &yyss1, size * sizeof (*yyssp),
- &yyvs1, size * sizeof (*yyvsp),
- &yystacksize);
-#endif
-
- yyss = yyss1; yyvs = yyvs1;
-#ifdef YYLSP_NEEDED
- yyls = yyls1;
-#endif
-#else /* no yyoverflow */
- /* Extend the stack our own way. */
- if (yystacksize >= YYMAXDEPTH)
- {
- yyerror("parser stack overflow");
- return 2;
- }
- yystacksize *= 2;
- if (yystacksize > YYMAXDEPTH)
- yystacksize = YYMAXDEPTH;
- yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
- __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
- yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
- __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
-#ifdef YYLSP_NEEDED
- yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
- __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
-#endif
-#endif /* no yyoverflow */
-
- yyssp = yyss + size - 1;
- yyvsp = yyvs + size - 1;
-#ifdef YYLSP_NEEDED
- yylsp = yyls + size - 1;
-#endif
-
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Stack size increased to %d\n", yystacksize);
-#endif
-
- if (yyssp >= yyss + yystacksize - 1)
- YYABORT;
- }
-
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Entering state %d\n", yystate);
-#endif
-
- goto yybackup;
- yybackup:
-
-/* Do appropriate processing given the current state. */
-/* Read a lookahead token if we need one and don't already have one. */
-/* yyresume: */
-
- /* First try to decide what to do without reference to lookahead token. */
-
- yyn = yypact[yystate];
- if (yyn == YYFLAG)
- goto yydefault;
-
- /* Not known => get a lookahead token if don't already have one. */
-
- /* yychar is either YYEMPTY or YYEOF
- or a valid token in external form. */
-
- if (yychar == YYEMPTY)
- {
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Reading a token: ");
-#endif
- yychar = YYLEX;
- }
-
- /* Convert token to internal form (in yychar1) for indexing tables with */
-
- if (yychar <= 0) /* This means end of input. */
- {
- yychar1 = 0;
- yychar = YYEOF; /* Don't call YYLEX any more */
-
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Now at end of input.\n");
-#endif
- }
- else
- {
- yychar1 = YYTRANSLATE(yychar);
-
-#if YYDEBUG != 0
- if (yydebug)
- {
- fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
- /* Give the individual parser a way to print the precise meaning
- of a token, for further debugging info. */
-#ifdef YYPRINT
- YYPRINT (stderr, yychar, yylval);
-#endif
- fprintf (stderr, ")\n");
- }
-#endif
- }
-
- yyn += yychar1;
- if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
- goto yydefault;
-
- yyn = yytable[yyn];
-
- /* yyn is what to do for this token type in this state.
- Negative => reduce, -yyn is rule number.
- Positive => shift, yyn is new state.
- New state is final state => don't bother to shift,
- just return success.
- 0, or most negative number => error. */
-
- if (yyn < 0)
- {
- if (yyn == YYFLAG)
- goto yyerrlab;
- yyn = -yyn;
- goto yyreduce;
- }
- else if (yyn == 0)
- goto yyerrlab;
-
- if (yyn == YYFINAL)
- YYACCEPT;
-
- /* Shift the lookahead token. */
-
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
-#endif
-
- /* Discard the token being shifted unless it is eof. */
- if (yychar != YYEOF)
- yychar = YYEMPTY;
-
- *++yyvsp = yylval;
-#ifdef YYLSP_NEEDED
- *++yylsp = yylloc;
-#endif
-
- /* count tokens shifted since error; after three, turn off error status. */
- if (yyerrstatus) yyerrstatus--;
-
- yystate = yyn;
- goto yynewstate;
-
-/* Do the default action for the current state. */
-yydefault:
-
- yyn = yydefact[yystate];
- if (yyn == 0)
- goto yyerrlab;
-
-/* Do a reduction. yyn is the number of a rule to reduce with. */
-yyreduce:
- yylen = yyr2[yyn];
- if (yylen > 0)
- yyval = yyvsp[1-yylen]; /* implement default value of the action */
-
-#if YYDEBUG != 0
- if (yydebug)
- {
- int i;
-
- fprintf (stderr, "Reducing via rule %d (line %d), ",
- yyn, yyrline[yyn]);
-
- /* Print the symbols being reduced, and their result. */
- for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
- fprintf (stderr, "%s ", yytname[yyrhs[i]]);
- fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
- }
-#endif
-
-
- switch (yyn) {
-
-case 3:
-#line 208 "jv-exp.y"
-{
- write_exp_elt_opcode(OP_TYPE);
- write_exp_elt_type(yyvsp[0].tval);
- write_exp_elt_opcode(OP_TYPE);
- ;
- break;}
-case 6:
-#line 222 "jv-exp.y"
-{
- write_exp_elt_opcode (OP_STRING);
- write_exp_string (yyvsp[0].sval);
- write_exp_elt_opcode (OP_STRING);
- ;
- break;}
-case 7:
-#line 231 "jv-exp.y"
-{ write_exp_elt_opcode (OP_LONG);
- write_exp_elt_type (yyvsp[0].typed_val_int.type);
- write_exp_elt_longcst ((LONGEST)(yyvsp[0].typed_val_int.val));
- write_exp_elt_opcode (OP_LONG); ;
- break;}
-case 8:
-#line 236 "jv-exp.y"
-{ YYSTYPE val;
- parse_number (yyvsp[0].sval.ptr, yyvsp[0].sval.length, 0, &val);
- write_exp_elt_opcode (OP_LONG);
- write_exp_elt_type (val.typed_val_int.type);
- write_exp_elt_longcst ((LONGEST)val.typed_val_int.val);
- write_exp_elt_opcode (OP_LONG);
- ;
- break;}
-case 9:
-#line 244 "jv-exp.y"
-{ write_exp_elt_opcode (OP_DOUBLE);
- write_exp_elt_type (yyvsp[0].typed_val_float.type);
- write_exp_elt_dblcst (yyvsp[0].typed_val_float.dval);
- write_exp_elt_opcode (OP_DOUBLE); ;
- break;}
-case 10:
-#line 249 "jv-exp.y"
-{ write_exp_elt_opcode (OP_LONG);
- write_exp_elt_type (java_boolean_type);
- write_exp_elt_longcst ((LONGEST)yyvsp[0].lval);
- write_exp_elt_opcode (OP_LONG); ;
- break;}
-case 13:
-#line 266 "jv-exp.y"
-{ yyval.tval = java_boolean_type; ;
- break;}
-case 16:
-#line 276 "jv-exp.y"
-{ yyval.tval = java_byte_type; ;
- break;}
-case 17:
-#line 278 "jv-exp.y"
-{ yyval.tval = java_short_type; ;
- break;}
-case 18:
-#line 280 "jv-exp.y"
-{ yyval.tval = java_int_type; ;
- break;}
-case 19:
-#line 282 "jv-exp.y"
-{ yyval.tval = java_long_type; ;
- break;}
-case 20:
-#line 284 "jv-exp.y"
-{ yyval.tval = java_char_type; ;
- break;}
-case 21:
-#line 289 "jv-exp.y"
-{ yyval.tval = java_float_type; ;
- break;}
-case 22:
-#line 291 "jv-exp.y"
-{ yyval.tval = java_double_type; ;
- break;}
-case 23:
-#line 303 "jv-exp.y"
-{ yyval.tval = java_type_from_name (yyvsp[0].sval); ;
- break;}
-case 25:
-#line 312 "jv-exp.y"
-{ yyval.tval = java_array_type (yyvsp[-1].tval, yyvsp[0].lval); ;
- break;}
-case 26:
-#line 314 "jv-exp.y"
-{ yyval.tval = java_array_type (java_type_from_name (yyvsp[-1].sval), yyvsp[0].lval); ;
- break;}
-case 33:
-#line 334 "jv-exp.y"
-{ yyval.sval.length = yyvsp[-2].sval.length + yyvsp[0].sval.length + 1;
- if (yyvsp[-2].sval.ptr + yyvsp[-2].sval.length + 1 == yyvsp[0].sval.ptr
- && yyvsp[-2].sval.ptr[yyvsp[-2].sval.length] == '.')
- yyval.sval.ptr = yyvsp[-2].sval.ptr; /* Optimization. */
- else
- {
- yyval.sval.ptr = (char *) xmalloc (yyval.sval.length + 1);
- make_cleanup (free, yyval.sval.ptr);
- sprintf (yyval.sval.ptr, "%.*s.%.*s",
- yyvsp[-2].sval.length, yyvsp[-2].sval.ptr, yyvsp[0].sval.length, yyvsp[0].sval.ptr);
- } ;
- break;}
-case 35:
-#line 358 "jv-exp.y"
-{ write_exp_elt_opcode (BINOP_COMMA); ;
- break;}
-case 39:
-#line 369 "jv-exp.y"
-{ write_exp_elt_opcode (OP_THIS);
- write_exp_elt_opcode (OP_THIS); ;
- break;}
-case 45:
-#line 377 "jv-exp.y"
-{ write_exp_elt_opcode (OP_ARRAY);
- write_exp_elt_longcst ((LONGEST) 0);
- write_exp_elt_longcst ((LONGEST) yyvsp[0].lval);
- write_exp_elt_opcode (OP_ARRAY); ;
- break;}
-case 46:
-#line 385 "jv-exp.y"
-{ start_arglist (); ;
- break;}
-case 47:
-#line 390 "jv-exp.y"
-{ yyval.lval = end_arglist () - 1; ;
- break;}
-case 48:
-#line 395 "jv-exp.y"
-{ error ("FIXME - ClassInstanceCreationExpression"); ;
- break;}
-case 49:
-#line 400 "jv-exp.y"
-{ arglist_len = 1; ;
- break;}
-case 50:
-#line 402 "jv-exp.y"
-{ arglist_len++; ;
- break;}
-case 51:
-#line 407 "jv-exp.y"
-{ arglist_len = 0; ;
- break;}
-case 53:
-#line 413 "jv-exp.y"
-{ error ("FIXME - ArrayCreatiionExpression"); ;
- break;}
-case 54:
-#line 415 "jv-exp.y"
-{ error ("FIXME - ArrayCreatiionExpression"); ;
- break;}
-case 58:
-#line 429 "jv-exp.y"
-{ yyval.lval = 1; ;
- break;}
-case 59:
-#line 431 "jv-exp.y"
-{ yyval.lval = yyvsp[-2].lval + 1; ;
- break;}
-case 61:
-#line 437 "jv-exp.y"
-{ yyval.lval = 0; ;
- break;}
-case 62:
-#line 442 "jv-exp.y"
-{ push_fieldnames (yyvsp[0].sval); ;
- break;}
-case 63:
-#line 444 "jv-exp.y"
-{ push_fieldnames (yyvsp[0].sval); ;
- break;}
-case 64:
-#line 450 "jv-exp.y"
-{ error ("method invocation not implemented"); ;
- break;}
-case 65:
-#line 452 "jv-exp.y"
-{ error ("method invocation not implemented"); ;
- break;}
-case 66:
-#line 454 "jv-exp.y"
-{ error ("method invocation not implemented"); ;
- break;}
-case 67:
-#line 459 "jv-exp.y"
-{
- /* Emit code for the Name now, then exchange it in the
- expout array with the Expression's code. We could
- introduce a OP_SWAP code or a reversed version of
- BINOP_SUBSCRIPT, but that makes the rest of GDB pay
- for our parsing kludges. */
- struct expression *name_expr;
-
- push_expression_name (yyvsp[-3].sval);
- name_expr = copy_exp (expout, expout_ptr);
- expout_ptr -= name_expr->nelts;
- insert_exp (expout_ptr-length_of_subexp (expout, expout_ptr),
- name_expr);
- free (name_expr);
- write_exp_elt_opcode (BINOP_SUBSCRIPT);
- ;
- break;}
-case 68:
-#line 476 "jv-exp.y"
-{ write_exp_elt_opcode (BINOP_SUBSCRIPT); ;
- break;}
-case 69:
-#line 478 "jv-exp.y"
-{ write_exp_elt_opcode (BINOP_SUBSCRIPT); ;
- break;}
-case 71:
-#line 484 "jv-exp.y"
-{ push_expression_name (yyvsp[0].sval); ;
- break;}
-case 75:
-#line 493 "jv-exp.y"
-{ write_exp_elt_opcode (UNOP_POSTINCREMENT); ;
- break;}
-case 76:
-#line 498 "jv-exp.y"
-{ write_exp_elt_opcode (UNOP_POSTDECREMENT); ;
- break;}
-case 80:
-#line 506 "jv-exp.y"
-{ write_exp_elt_opcode (UNOP_NEG); ;
- break;}
-case 81:
-#line 508 "jv-exp.y"
-{ write_exp_elt_opcode (UNOP_IND); ;
- break;}
-case 83:
-#line 514 "jv-exp.y"
-{ write_exp_elt_opcode (UNOP_PREINCREMENT); ;
- break;}
-case 84:
-#line 519 "jv-exp.y"
-{ write_exp_elt_opcode (UNOP_PREDECREMENT); ;
- break;}
-case 86:
-#line 525 "jv-exp.y"
-{ write_exp_elt_opcode (UNOP_COMPLEMENT); ;
- break;}
-case 87:
-#line 527 "jv-exp.y"
-{ write_exp_elt_opcode (UNOP_LOGICAL_NOT); ;
- break;}
-case 89:
-#line 533 "jv-exp.y"
-{ write_exp_elt_opcode (UNOP_CAST);
- write_exp_elt_type (java_array_type (yyvsp[-3].tval, yyvsp[-2].lval));
- write_exp_elt_opcode (UNOP_CAST); ;
- break;}
-case 90:
-#line 537 "jv-exp.y"
-{
- int exp_size = expout_ptr;
- int last_exp_size = length_of_subexp(expout, expout_ptr);
- struct type *type;
- int i;
- int base = expout_ptr - last_exp_size - 3;
- if (base < 0 || expout->elts[base+2].opcode != OP_TYPE)
- error ("invalid cast expression");
- type = expout->elts[base+1].type;
- /* Remove the 'Expression' and slide the
- UnaryExpressionNotPlusMinus down to replace it. */
- for (i = 0; i < last_exp_size; i++)
- expout->elts[base + i] = expout->elts[base + i + 3];
- expout_ptr -= 3;
- if (TYPE_CODE (type) == TYPE_CODE_STRUCT)
- type = lookup_pointer_type (type);
- write_exp_elt_opcode (UNOP_CAST);
- write_exp_elt_type (type);
- write_exp_elt_opcode (UNOP_CAST);
- ;
- break;}
-case 91:
-#line 558 "jv-exp.y"
-{ write_exp_elt_opcode (UNOP_CAST);
- write_exp_elt_type (java_array_type (java_type_from_name (yyvsp[-3].sval), yyvsp[-2].lval));
- write_exp_elt_opcode (UNOP_CAST); ;
- break;}
-case 93:
-#line 567 "jv-exp.y"
-{ write_exp_elt_opcode (BINOP_MUL); ;
- break;}
-case 94:
-#line 569 "jv-exp.y"
-{ write_exp_elt_opcode (BINOP_DIV); ;
- break;}
-case 95:
-#line 571 "jv-exp.y"
-{ write_exp_elt_opcode (BINOP_REM); ;
- break;}
-case 97:
-#line 577 "jv-exp.y"
-{ write_exp_elt_opcode (BINOP_ADD); ;
- break;}
-case 98:
-#line 579 "jv-exp.y"
-{ write_exp_elt_opcode (BINOP_SUB); ;
- break;}
-case 100:
-#line 585 "jv-exp.y"
-{ write_exp_elt_opcode (BINOP_LSH); ;
- break;}
-case 101:
-#line 587 "jv-exp.y"
-{ write_exp_elt_opcode (BINOP_RSH); ;
- break;}
-case 103:
-#line 594 "jv-exp.y"
-{ write_exp_elt_opcode (BINOP_LESS); ;
- break;}
-case 104:
-#line 596 "jv-exp.y"
-{ write_exp_elt_opcode (BINOP_GTR); ;
- break;}
-case 105:
-#line 598 "jv-exp.y"
-{ write_exp_elt_opcode (BINOP_LEQ); ;
- break;}
-case 106:
-#line 600 "jv-exp.y"
-{ write_exp_elt_opcode (BINOP_GEQ); ;
- break;}
-case 108:
-#line 607 "jv-exp.y"
-{ write_exp_elt_opcode (BINOP_EQUAL); ;
- break;}
-case 109:
-#line 609 "jv-exp.y"
-{ write_exp_elt_opcode (BINOP_NOTEQUAL); ;
- break;}
-case 111:
-#line 615 "jv-exp.y"
-{ write_exp_elt_opcode (BINOP_BITWISE_AND); ;
- break;}
-case 113:
-#line 621 "jv-exp.y"
-{ write_exp_elt_opcode (BINOP_BITWISE_XOR); ;
- break;}
-case 115:
-#line 626 "jv-exp.y"
-{ write_exp_elt_opcode (BINOP_BITWISE_IOR); ;
- break;}
-case 117:
-#line 632 "jv-exp.y"
-{ write_exp_elt_opcode (BINOP_LOGICAL_AND); ;
- break;}
-case 119:
-#line 638 "jv-exp.y"
-{ write_exp_elt_opcode (BINOP_LOGICAL_OR); ;
- break;}
-case 121:
-#line 644 "jv-exp.y"
-{ write_exp_elt_opcode (TERNOP_COND); ;
- break;}
-case 124:
-#line 654 "jv-exp.y"
-{ write_exp_elt_opcode (BINOP_ASSIGN); ;
- break;}
-case 125:
-#line 656 "jv-exp.y"
-{ write_exp_elt_opcode (BINOP_ASSIGN_MODIFY);
- write_exp_elt_opcode (yyvsp[-1].opcode);
- write_exp_elt_opcode (BINOP_ASSIGN_MODIFY); ;
- break;}
-case 126:
-#line 663 "jv-exp.y"
-{ push_expression_name (yyvsp[0].sval); ;
- break;}
-}
- /* the action file gets copied in in place of this dollarsign */
-#line 498 "/stone/jimb/main-98r2/share/bison.simple"
-
- yyvsp -= yylen;
- yyssp -= yylen;
-#ifdef YYLSP_NEEDED
- yylsp -= yylen;
-#endif
-
-#if YYDEBUG != 0
- if (yydebug)
- {
- short *ssp1 = yyss - 1;
- fprintf (stderr, "state stack now");
- while (ssp1 != yyssp)
- fprintf (stderr, " %d", *++ssp1);
- fprintf (stderr, "\n");
- }
-#endif
-
- *++yyvsp = yyval;
-
-#ifdef YYLSP_NEEDED
- yylsp++;
- if (yylen == 0)
- {
- yylsp->first_line = yylloc.first_line;
- yylsp->first_column = yylloc.first_column;
- yylsp->last_line = (yylsp-1)->last_line;
- yylsp->last_column = (yylsp-1)->last_column;
- yylsp->text = 0;
- }
- else
- {
- yylsp->last_line = (yylsp+yylen-1)->last_line;
- yylsp->last_column = (yylsp+yylen-1)->last_column;
- }
-#endif
-
- /* Now "shift" the result of the reduction.
- Determine what state that goes to,
- based on the state we popped back to
- and the rule number reduced by. */
-
- yyn = yyr1[yyn];
-
- yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
- if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
- yystate = yytable[yystate];
- else
- yystate = yydefgoto[yyn - YYNTBASE];
-
- goto yynewstate;
-
-yyerrlab: /* here on detecting error */
-
- if (! yyerrstatus)
- /* If not already recovering from an error, report this error. */
- {
- ++yynerrs;
-
-#ifdef YYERROR_VERBOSE
- yyn = yypact[yystate];
-
- if (yyn > YYFLAG && yyn < YYLAST)
- {
- int size = 0;
- char *msg;
- int x, count;
-
- count = 0;
- /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
- for (x = (yyn < 0 ? -yyn : 0);
- x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- size += strlen(yytname[x]) + 15, count++;
- msg = (char *) xmalloc(size + 15);
- if (msg != 0)
- {
- strcpy(msg, "parse error");
-
- if (count < 5)
- {
- count = 0;
- for (x = (yyn < 0 ? -yyn : 0);
- x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- {
- strcat(msg, count == 0 ? ", expecting `" : " or `");
- strcat(msg, yytname[x]);
- strcat(msg, "'");
- count++;
- }
- }
- yyerror(msg);
- free(msg);
- }
- else
- yyerror ("parse error; also virtual memory exceeded");
- }
- else
-#endif /* YYERROR_VERBOSE */
- yyerror("parse error");
- }
-
- goto yyerrlab1;
-yyerrlab1: /* here on error raised explicitly by an action */
-
- if (yyerrstatus == 3)
- {
- /* if just tried and failed to reuse lookahead token after an error, discard it. */
-
- /* return failure if at end of input */
- if (yychar == YYEOF)
- YYABORT;
-
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
-#endif
-
- yychar = YYEMPTY;
- }
-
- /* Else will try to reuse lookahead token
- after shifting the error token. */
-
- yyerrstatus = 3; /* Each real token shifted decrements this */
-
- goto yyerrhandle;
-
-yyerrdefault: /* current state does not do anything special for the error token. */
-
-#if 0
- /* This is wrong; only states that explicitly want error tokens
- should shift them. */
- yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
- if (yyn) goto yydefault;
-#endif
-
-yyerrpop: /* pop the current state because it cannot handle the error token */
-
- if (yyssp == yyss) YYABORT;
- yyvsp--;
- yystate = *--yyssp;
-#ifdef YYLSP_NEEDED
- yylsp--;
-#endif
-
-#if YYDEBUG != 0
- if (yydebug)
- {
- short *ssp1 = yyss - 1;
- fprintf (stderr, "Error: state stack now");
- while (ssp1 != yyssp)
- fprintf (stderr, " %d", *++ssp1);
- fprintf (stderr, "\n");
- }
-#endif
-
-yyerrhandle:
-
- yyn = yypact[yystate];
- if (yyn == YYFLAG)
- goto yyerrdefault;
-
- yyn += YYTERROR;
- if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
- goto yyerrdefault;
-
- yyn = yytable[yyn];
- if (yyn < 0)
- {
- if (yyn == YYFLAG)
- goto yyerrpop;
- yyn = -yyn;
- goto yyreduce;
- }
- else if (yyn == 0)
- goto yyerrpop;
-
- if (yyn == YYFINAL)
- YYACCEPT;
-
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Shifting error token, ");
-#endif
-
- *++yyvsp = yylval;
-#ifdef YYLSP_NEEDED
- *++yylsp = yylloc;
-#endif
-
- yystate = yyn;
- goto yynewstate;
-}
-#line 675 "jv-exp.y"
-
-/* Take care of parsing a number (anything that starts with a digit).
- Set yylval and return the token type; update lexptr.
- LEN is the number of characters in it. */
-
-/*** Needs some error checking for the float case ***/
-
-static int
-parse_number (p, len, parsed_float, putithere)
- register char *p;
- register int len;
- int parsed_float;
- YYSTYPE *putithere;
-{
- register ULONGEST n = 0;
- ULONGEST limit, limit_div_base;
-
- register int c;
- register int base = input_radix;
-
- struct type *type;
-
- if (parsed_float)
- {
- /* It's a float since it contains a point or an exponent. */
- char c;
- int num = 0; /* number of tokens scanned by scanf */
- char saved_char = p[len];
-
- p[len] = 0; /* null-terminate the token */
- if (sizeof (putithere->typed_val_float.dval) <= sizeof (float))
- num = sscanf (p, "%g%c", (float *) &putithere->typed_val_float.dval, &c);
- else if (sizeof (putithere->typed_val_float.dval) <= sizeof (double))
- num = sscanf (p, "%lg%c", (double *) &putithere->typed_val_float.dval, &c);
- else
- {
-#ifdef SCANF_HAS_LONG_DOUBLE
- num = sscanf (p, "%Lg%c", &putithere->typed_val_float.dval, &c);
-#else
- /* Scan it into a double, then assign it to the long double.
- This at least wins with values representable in the range
- of doubles. */
- double temp;
- num = sscanf (p, "%lg%c", &temp, &c);
- putithere->typed_val_float.dval = temp;
-#endif
- }
- p[len] = saved_char; /* restore the input stream */
- if (num != 1) /* check scanf found ONLY a float ... */
- return ERROR;
- /* See if it has `f' or `d' suffix (float or double). */
-
- c = tolower (p[len - 1]);
-
- if (c == 'f' || c == 'F')
- putithere->typed_val_float.type = builtin_type_float;
- else if (isdigit (c) || c == '.' || c == 'd' || c == 'D')
- putithere->typed_val_float.type = builtin_type_double;
- else
- return ERROR;
-
- return FLOATING_POINT_LITERAL;
- }
-
- /* Handle base-switching prefixes 0x, 0t, 0d, 0 */
- if (p[0] == '0')
- switch (p[1])
- {
- case 'x':
- case 'X':
- if (len >= 3)
- {
- p += 2;
- base = 16;
- len -= 2;
- }
- break;
-
- case 't':
- case 'T':
- case 'd':
- case 'D':
- if (len >= 3)
- {
- p += 2;
- base = 10;
- len -= 2;
- }
- break;
-
- default:
- base = 8;
- break;
- }
-
- c = p[len-1];
- limit = (ULONGEST)0xffffffff;
- if (c == 'l' || c == 'L')
- {
- type = java_long_type;
- len--;
- /* A paranoid calculation of (1<<64)-1. */
- limit = ((limit << 16) << 16) | limit;
- }
- else
- {
- type = java_int_type;
- }
- limit_div_base = limit / (ULONGEST) base;
-
- while (--len >= 0)
- {
- c = *p++;
- if (c >= '0' && c <= '9')
- c -= '0';
- else if (c >= 'A' && c <= 'Z')
- c -= 'A' - 10;
- else if (c >= 'a' && c <= 'z')
- c -= 'a' - 10;
- else
- return ERROR; /* Char not a digit */
- if (c >= base)
- return ERROR;
- if (n > limit_div_base
- || (n *= base) > limit - c)
- error ("Numeric constant too large.");
- n += c;
- }
-
- putithere->typed_val_int.val = n;
- putithere->typed_val_int.type = type;
- return INTEGER_LITERAL;
-}
-
-struct token
-{
- char *operator;
- int token;
- enum exp_opcode opcode;
-};
-
-static const struct token tokentab3[] =
- {
- {">>=", ASSIGN_MODIFY, BINOP_RSH},
- {"<<=", ASSIGN_MODIFY, BINOP_LSH}
- };
-
-static const struct token tokentab2[] =
- {
- {"+=", ASSIGN_MODIFY, BINOP_ADD},
- {"-=", ASSIGN_MODIFY, BINOP_SUB},
- {"*=", ASSIGN_MODIFY, BINOP_MUL},
- {"/=", ASSIGN_MODIFY, BINOP_DIV},
- {"%=", ASSIGN_MODIFY, BINOP_REM},
- {"|=", ASSIGN_MODIFY, BINOP_BITWISE_IOR},
- {"&=", ASSIGN_MODIFY, BINOP_BITWISE_AND},
- {"^=", ASSIGN_MODIFY, BINOP_BITWISE_XOR},
- {"++", INCREMENT, BINOP_END},
- {"--", DECREMENT, BINOP_END},
- {"&&", ANDAND, BINOP_END},
- {"||", OROR, BINOP_END},
- {"<<", LSH, BINOP_END},
- {">>", RSH, BINOP_END},
- {"==", EQUAL, BINOP_END},
- {"!=", NOTEQUAL, BINOP_END},
- {"<=", LEQ, BINOP_END},
- {">=", GEQ, BINOP_END}
- };
-
-/* Read one token, getting characters through lexptr. */
-
-static int
-yylex ()
-{
- int c;
- int namelen;
- unsigned int i;
- char *tokstart;
- char *tokptr;
- int tempbufindex;
- static char *tempbuf;
- static int tempbufsize;
-
- retry:
-
- tokstart = lexptr;
- /* See if it is a special token of length 3. */
- for (i = 0; i < sizeof tokentab3 / sizeof tokentab3[0]; i++)
- if (STREQN (tokstart, tokentab3[i].operator, 3))
- {
- lexptr += 3;
- yylval.opcode = tokentab3[i].opcode;
- return tokentab3[i].token;
- }
-
- /* See if it is a special token of length 2. */
- for (i = 0; i < sizeof tokentab2 / sizeof tokentab2[0]; i++)
- if (STREQN (tokstart, tokentab2[i].operator, 2))
- {
- lexptr += 2;
- yylval.opcode = tokentab2[i].opcode;
- return tokentab2[i].token;
- }
-
- switch (c = *tokstart)
- {
- case 0:
- return 0;
-
- case ' ':
- case '\t':
- case '\n':
- lexptr++;
- goto retry;
-
- case '\'':
- /* We either have a character constant ('0' or '\177' for example)
- or we have a quoted symbol reference ('foo(int,int)' in C++
- for example). */
- lexptr++;
- c = *lexptr++;
- if (c == '\\')
- c = parse_escape (&lexptr);
- else if (c == '\'')
- error ("Empty character constant.");
-
- yylval.typed_val_int.val = c;
- yylval.typed_val_int.type = builtin_type_char;
-
- c = *lexptr++;
- if (c != '\'')
- {
- namelen = skip_quoted (tokstart) - tokstart;
- if (namelen > 2)
- {
- lexptr = tokstart + namelen;
- if (lexptr[-1] != '\'')
- error ("Unmatched single quote.");
- namelen -= 2;
- tokstart++;
- goto tryname;
- }
- error ("Invalid character constant.");
- }
- return INTEGER_LITERAL;
-
- case '(':
- paren_depth++;
- lexptr++;
- return c;
-
- case ')':
- if (paren_depth == 0)
- return 0;
- paren_depth--;
- lexptr++;
- return c;
-
- case ',':
- if (comma_terminates && paren_depth == 0)
- return 0;
- lexptr++;
- return c;
-
- case '.':
- /* Might be a floating point number. */
- if (lexptr[1] < '0' || lexptr[1] > '9')
- goto symbol; /* Nope, must be a symbol. */
- /* FALL THRU into number case. */
-
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- {
- /* It's a number. */
- int got_dot = 0, got_e = 0, toktype;
- register char *p = tokstart;
- int hex = input_radix > 10;
-
- if (c == '0' && (p[1] == 'x' || p[1] == 'X'))
- {
- p += 2;
- hex = 1;
- }
- else if (c == '0' && (p[1]=='t' || p[1]=='T' || p[1]=='d' || p[1]=='D'))
- {
- p += 2;
- hex = 0;
- }
-
- for (;; ++p)
- {
- /* This test includes !hex because 'e' is a valid hex digit
- and thus does not indicate a floating point number when
- the radix is hex. */
- if (!hex && !got_e && (*p == 'e' || *p == 'E'))
- got_dot = got_e = 1;
- /* This test does not include !hex, because a '.' always indicates
- a decimal floating point number regardless of the radix. */
- else if (!got_dot && *p == '.')
- got_dot = 1;
- else if (got_e && (p[-1] == 'e' || p[-1] == 'E')
- && (*p == '-' || *p == '+'))
- /* This is the sign of the exponent, not the end of the
- number. */
- continue;
- /* We will take any letters or digits. parse_number will
- complain if past the radix, or if L or U are not final. */
- else if ((*p < '0' || *p > '9')
- && ((*p < 'a' || *p > 'z')
- && (*p < 'A' || *p > 'Z')))
- break;
- }
- toktype = parse_number (tokstart, p - tokstart, got_dot|got_e, &yylval);
- if (toktype == ERROR)
- {
- char *err_copy = (char *) alloca (p - tokstart + 1);
-
- memcpy (err_copy, tokstart, p - tokstart);
- err_copy[p - tokstart] = 0;
- error ("Invalid number \"%s\".", err_copy);
- }
- lexptr = p;
- return toktype;
- }
-
- case '+':
- case '-':
- case '*':
- case '/':
- case '%':
- case '|':
- case '&':
- case '^':
- case '~':
- case '!':
- case '<':
- case '>':
- case '[':
- case ']':
- case '?':
- case ':':
- case '=':
- case '{':
- case '}':
- symbol:
- lexptr++;
- return c;
-
- case '"':
-
- /* Build the gdb internal form of the input string in tempbuf,
- translating any standard C escape forms seen. Note that the
- buffer is null byte terminated *only* for the convenience of
- debugging gdb itself and printing the buffer contents when
- the buffer contains no embedded nulls. Gdb does not depend
- upon the buffer being null byte terminated, it uses the length
- string instead. This allows gdb to handle C strings (as well
- as strings in other languages) with embedded null bytes */
-
- tokptr = ++tokstart;
- tempbufindex = 0;
-
- do {
- /* Grow the static temp buffer if necessary, including allocating
- the first one on demand. */
- if (tempbufindex + 1 >= tempbufsize)
- {
- tempbuf = (char *) xrealloc (tempbuf, tempbufsize += 64);
- }
- switch (*tokptr)
- {
- case '\0':
- case '"':
- /* Do nothing, loop will terminate. */
- break;
- case '\\':
- tokptr++;
- c = parse_escape (&tokptr);
- if (c == -1)
- {
- continue;
- }
- tempbuf[tempbufindex++] = c;
- break;
- default:
- tempbuf[tempbufindex++] = *tokptr++;
- break;
- }
- } while ((*tokptr != '"') && (*tokptr != '\0'));
- if (*tokptr++ != '"')
- {
- error ("Unterminated string in expression.");
- }
- tempbuf[tempbufindex] = '\0'; /* See note above */
- yylval.sval.ptr = tempbuf;
- yylval.sval.length = tempbufindex;
- lexptr = tokptr;
- return (STRING_LITERAL);
- }
-
- if (!(c == '_' || c == '$'
- || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')))
- /* We must have come across a bad character (e.g. ';'). */
- error ("Invalid character '%c' in expression.", c);
-
- /* It's a name. See how long it is. */
- namelen = 0;
- for (c = tokstart[namelen];
- (c == '_'
- || c == '$'
- || (c >= '0' && c <= '9')
- || (c >= 'a' && c <= 'z')
- || (c >= 'A' && c <= 'Z')
- || c == '<');
- )
- {
- if (c == '<')
- {
- int i = namelen;
- while (tokstart[++i] && tokstart[i] != '>');
- if (tokstart[i] == '>')
- namelen = i;
- }
- c = tokstart[++namelen];
- }
-
- /* The token "if" terminates the expression and is NOT
- removed from the input stream. */
- if (namelen == 2 && tokstart[0] == 'i' && tokstart[1] == 'f')
- {
- return 0;
- }
-
- lexptr += namelen;
-
- tryname:
-
- /* Catch specific keywords. Should be done with a data structure. */
- switch (namelen)
- {
- case 7:
- if (STREQN (tokstart, "boolean", 7))
- return BOOLEAN;
- break;
- case 6:
- if (STREQN (tokstart, "double", 6))
- return DOUBLE;
- break;
- case 5:
- if (STREQN (tokstart, "short", 5))
- return SHORT;
- if (STREQN (tokstart, "false", 5))
- {
- yylval.lval = 0;
- return BOOLEAN_LITERAL;
- }
- if (STREQN (tokstart, "super", 5))
- return SUPER;
- if (STREQN (tokstart, "float", 5))
- return FLOAT;
- break;
- case 4:
- if (STREQN (tokstart, "long", 4))
- return LONG;
- if (STREQN (tokstart, "byte", 4))
- return BYTE;
- if (STREQN (tokstart, "char", 4))
- return CHAR;
- if (STREQN (tokstart, "true", 4))
- {
- yylval.lval = 1;
- return BOOLEAN_LITERAL;
- }
- if (current_language->la_language == language_cplus
- && STREQN (tokstart, "this", 4))
- {
- static const char this_name[] =
- { CPLUS_MARKER, 't', 'h', 'i', 's', '\0' };
-
- if (lookup_symbol (this_name, expression_context_block,
- VAR_NAMESPACE, (int *) NULL,
- (struct symtab **) NULL))
- return THIS;
- }
- break;
- case 3:
- if (STREQN (tokstart, "int", 3))
- return INT;
- if (STREQN (tokstart, "new", 3))
- return NEW;
- break;
- default:
- break;
- }
-
- yylval.sval.ptr = tokstart;
- yylval.sval.length = namelen;
-
- if (*tokstart == '$')
- {
- write_dollar_variable (yylval.sval);
- return VARIABLE;
- }
-
- /* Input names that aren't symbols but ARE valid hex numbers,
- when the input radix permits them, can be names or numbers
- depending on the parse. Note we support radixes > 16 here. */
- if (((tokstart[0] >= 'a' && tokstart[0] < 'a' + input_radix - 10) ||
- (tokstart[0] >= 'A' && tokstart[0] < 'A' + input_radix - 10)))
- {
- YYSTYPE newlval; /* Its value is ignored. */
- int hextype = parse_number (tokstart, namelen, 0, &newlval);
- if (hextype == INTEGER_LITERAL)
- return NAME_OR_INT;
- }
- return IDENTIFIER;
-}
-
-void
-yyerror (msg)
- char *msg;
-{
- error ("A %s in expression, near `%s'.", (msg ? msg : "error"), lexptr);
-}
-
-static struct type *
-java_type_from_name (name)
- struct stoken name;
-
-{
- char *tmp = copy_name (name);
- struct type *typ = java_lookup_class (tmp);
- if (typ == NULL || TYPE_CODE (typ) != TYPE_CODE_STRUCT)
- error ("No class named %s.", tmp);
- return typ;
-}
-
-/* If NAME is a valid variable name in this scope, push it and return 1.
- Otherwise, return 0. */
-
-static int
-push_variable (name)
- struct stoken name;
-
-{
- char *tmp = copy_name (name);
- int is_a_field_of_this = 0;
- struct symbol *sym;
- sym = lookup_symbol (tmp, expression_context_block, VAR_NAMESPACE,
- &is_a_field_of_this, (struct symtab **) NULL);
- if (sym && SYMBOL_CLASS (sym) != LOC_TYPEDEF)
- {
- if (symbol_read_needs_frame (sym))
- {
- if (innermost_block == 0 ||
- contained_in (block_found, innermost_block))
- innermost_block = block_found;
- }
-
- write_exp_elt_opcode (OP_VAR_VALUE);
- /* We want to use the selected frame, not another more inner frame
- which happens to be in the same block. */
- write_exp_elt_block (NULL);
- write_exp_elt_sym (sym);
- write_exp_elt_opcode (OP_VAR_VALUE);
- return 1;
- }
- if (is_a_field_of_this)
- {
- /* it hangs off of `this'. Must not inadvertently convert from a
- method call to data ref. */
- if (innermost_block == 0 ||
- contained_in (block_found, innermost_block))
- innermost_block = block_found;
- write_exp_elt_opcode (OP_THIS);
- write_exp_elt_opcode (OP_THIS);
- write_exp_elt_opcode (STRUCTOP_PTR);
- write_exp_string (name);
- write_exp_elt_opcode (STRUCTOP_PTR);
- return 1;
- }
- return 0;
-}
-
-/* Assuming a reference expression has been pushed, emit the
- STRUCTOP_STRUCT ops to access the field named NAME. If NAME is a
- qualified name (has '.'), generate a field access for each part. */
-
-static void
-push_fieldnames (name)
- struct stoken name;
-{
- int i;
- struct stoken token;
- token.ptr = name.ptr;
- for (i = 0; ; i++)
- {
- if (i == name.length || name.ptr[i] == '.')
- {
- /* token.ptr is start of current field name. */
- token.length = &name.ptr[i] - token.ptr;
- write_exp_elt_opcode (STRUCTOP_STRUCT);
- write_exp_string (token);
- write_exp_elt_opcode (STRUCTOP_STRUCT);
- token.ptr += token.length + 1;
- }
- if (i >= name.length)
- break;
- }
-}
-
-/* Helper routine for push_expression_name.
- Handle a qualified name, where DOT_INDEX is the index of the first '.' */
-
-static void
-push_qualified_expression_name (name, dot_index)
- struct stoken name;
- int dot_index;
-{
- struct stoken token;
- char *tmp;
- struct type *typ;
-
- token.ptr = name.ptr;
- token.length = dot_index;
-
- if (push_variable (token))
- {
- token.ptr = name.ptr + dot_index + 1;
- token.length = name.length - dot_index - 1;
- push_fieldnames (token);
- return;
- }
-
- token.ptr = name.ptr;
- for (;;)
- {
- token.length = dot_index;
- tmp = copy_name (token);
- typ = java_lookup_class (tmp);
- if (typ != NULL)
- {
- if (dot_index == name.length)
- {
- write_exp_elt_opcode(OP_TYPE);
- write_exp_elt_type(typ);
- write_exp_elt_opcode(OP_TYPE);
- return;
- }
- dot_index++; /* Skip '.' */
- name.ptr += dot_index;
- name.length -= dot_index;
- dot_index = 0;
- while (dot_index < name.length && name.ptr[dot_index] != '.')
- dot_index++;
- token.ptr = name.ptr;
- token.length = dot_index;
- write_exp_elt_opcode (OP_SCOPE);
- write_exp_elt_type (typ);
- write_exp_string (token);
- write_exp_elt_opcode (OP_SCOPE);
- if (dot_index < name.length)
- {
- dot_index++;
- name.ptr += dot_index;
- name.length -= dot_index;
- push_fieldnames (name);
- }
- return;
- }
- else if (dot_index >= name.length)
- break;
- dot_index++; /* Skip '.' */
- while (dot_index < name.length && name.ptr[dot_index] != '.')
- dot_index++;
- }
- error ("unknown type `%.*s'", name.length, name.ptr);
-}
-
-/* Handle Name in an expression (or LHS).
- Handle VAR, TYPE, TYPE.FIELD1....FIELDN and VAR.FIELD1....FIELDN. */
-
-static void
-push_expression_name (name)
- struct stoken name;
-{
- char *tmp;
- struct type *typ;
- char *ptr;
- int i;
-
- for (i = 0; i < name.length; i++)
- {
- if (name.ptr[i] == '.')
- {
- /* It's a Qualified Expression Name. */
- push_qualified_expression_name (name, i);
- return;
- }
- }
-
- /* It's a Simple Expression Name. */
-
- if (push_variable (name))
- return;
- tmp = copy_name (name);
- typ = java_lookup_class (tmp);
- if (typ != NULL)
- {
- write_exp_elt_opcode(OP_TYPE);
- write_exp_elt_type(typ);
- write_exp_elt_opcode(OP_TYPE);
- }
- else
- {
- struct minimal_symbol *msymbol;
-
- msymbol = lookup_minimal_symbol (tmp, NULL, NULL);
- if (msymbol != NULL)
- {
- write_exp_msymbol (msymbol,
- lookup_function_type (builtin_type_int),
- builtin_type_int);
- }
- else if (!have_full_symbols () && !have_partial_symbols ())
- error ("No symbol table is loaded. Use the \"file\" command.");
- else
- error ("No symbol \"%s\" in current context.", tmp);
- }
-
-}
-
-
-/* The following two routines, copy_exp and insert_exp, aren't specific to
- Java, so they could go in parse.c, but their only purpose is to support
- the parsing kludges we use in this file, so maybe it's best to isolate
- them here. */
-
-/* Copy the expression whose last element is at index ENDPOS - 1 in EXPR
- into a freshly xmalloc'ed struct expression. Its language_defn is set
- to null. */
-static struct expression *
-copy_exp (expr, endpos)
- struct expression *expr;
- int endpos;
-{
- int len = length_of_subexp (expr, endpos);
- struct expression *new
- = (struct expression *) xmalloc (sizeof (*new) + EXP_ELEM_TO_BYTES (len));
- new->nelts = len;
- memcpy (new->elts, expr->elts + endpos - len, EXP_ELEM_TO_BYTES (len));
- new->language_defn = 0;
-
- return new;
-}
-
-/* Insert the expression NEW into the current expression (expout) at POS. */
-static void
-insert_exp (pos, new)
- int pos;
- struct expression *new;
-{
- int newlen = new->nelts;
-
- /* Grow expout if necessary. In this function's only use at present,
- this should never be necessary. */
- if (expout_ptr + newlen > expout_size)
- {
- expout_size = max (expout_size * 2, expout_ptr + newlen + 10);
- expout = (struct expression *)
- xrealloc ((char *) expout, (sizeof (struct expression)
- + EXP_ELEM_TO_BYTES (expout_size)));
- }
-
- {
- int i;
-
- for (i = expout_ptr - 1; i >= pos; i--)
- expout->elts[i + newlen] = expout->elts[i];
- }
-
- memcpy (expout->elts + pos, new->elts, EXP_ELEM_TO_BYTES (newlen));
- expout_ptr += newlen;
-}
diff --git a/contrib/gdb/gdb/signals.h b/contrib/gdb/gdb/signals.h
deleted file mode 100644
index a1348b6..0000000
--- a/contrib/gdb/gdb/signals.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Signal handler definitions for GDB, the GNU Debugger.
- Copyright (C) 1986, 1989 Free Software Foundation, Inc.
-
-This file is part of GDB.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-
-/* This file is almost the same as including <signal.h> except that it
- eliminates certain signal names when job control is not supported,
- (or, on some systems, when job control is there but doesn't work
- the way GDB expects it to work). */
-/* This has been superceded by the job_control variable in serial.h. */
-
-#include <signal.h>
OpenPOWER on IntegriCloud