From f7aefb848dcdaeb3b6d733248100a4db4d28d314 Mon Sep 17 00:00:00 2001 From: marcel Date: Fri, 18 Jun 2004 06:10:13 +0000 Subject: This file is not part of GDB 5.2.1, but was off the vendor branch. --- contrib/gdb/ChangeLog | 7746 ----------------------------- contrib/gdb/MAINTAINERS | 114 - contrib/gdb/gdb/ChangeLog-96 | 5116 ------------------- contrib/gdb/gdb/ChangeLog-97 | 2855 ----------- contrib/gdb/gdb/ChangeLog-98 | 7122 -------------------------- contrib/gdb/gdb/command.c | 1564 ------ contrib/gdb/gdb/config/i386/nm-sun386.h | 27 - contrib/gdb/gdb/config/i386/sun386.mh | 5 - contrib/gdb/gdb/config/i386/sun386.mt | 3 - contrib/gdb/gdb/config/i386/tm-sun386.h | 205 - contrib/gdb/gdb/config/i386/xm-i386lynx.h | 24 - contrib/gdb/gdb/config/i386/xm-linux.h | 36 - contrib/gdb/gdb/config/i386/xm-sun386.h | 20 - contrib/gdb/gdb/config/i386/xm-windows.h | 35 - contrib/gdb/gdb/doc/libgdb.texinfo | 878 ---- contrib/gdb/gdb/gdba.el | 2607 ---------- contrib/gdb/gdb/gdbserver/low-linux.c | 451 -- contrib/gdb/gdb/gnu-regex.c | 5797 --------------------- contrib/gdb/gdb/gnu-regex.h | 576 --- contrib/gdb/gdb/hp-psymtab-read.c | 2381 --------- contrib/gdb/gdb/hp-symtab-read.c | 3988 --------------- contrib/gdb/gdb/hpread.h | 150 - contrib/gdb/gdb/jv-exp.tab.c | 2351 --------- contrib/gdb/gdb/signals.h | 27 - 24 files changed, 44078 deletions(-) delete mode 100644 contrib/gdb/ChangeLog delete mode 100644 contrib/gdb/MAINTAINERS delete mode 100644 contrib/gdb/gdb/ChangeLog-96 delete mode 100644 contrib/gdb/gdb/ChangeLog-97 delete mode 100644 contrib/gdb/gdb/ChangeLog-98 delete mode 100644 contrib/gdb/gdb/command.c delete mode 100644 contrib/gdb/gdb/config/i386/nm-sun386.h delete mode 100644 contrib/gdb/gdb/config/i386/sun386.mh delete mode 100644 contrib/gdb/gdb/config/i386/sun386.mt delete mode 100644 contrib/gdb/gdb/config/i386/tm-sun386.h delete mode 100644 contrib/gdb/gdb/config/i386/xm-i386lynx.h delete mode 100644 contrib/gdb/gdb/config/i386/xm-linux.h delete mode 100644 contrib/gdb/gdb/config/i386/xm-sun386.h delete mode 100644 contrib/gdb/gdb/config/i386/xm-windows.h delete mode 100644 contrib/gdb/gdb/doc/libgdb.texinfo delete mode 100644 contrib/gdb/gdb/gdba.el delete mode 100644 contrib/gdb/gdb/gdbserver/low-linux.c delete mode 100644 contrib/gdb/gdb/gnu-regex.c delete mode 100644 contrib/gdb/gdb/gnu-regex.h delete mode 100644 contrib/gdb/gdb/hp-psymtab-read.c delete mode 100644 contrib/gdb/gdb/hp-symtab-read.c delete mode 100644 contrib/gdb/gdb/hpread.h delete mode 100644 contrib/gdb/gdb/jv-exp.tab.c delete mode 100644 contrib/gdb/gdb/signals.h (limited to 'contrib/gdb') 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 - - * 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 - - * 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 - - * texinfo/texinfo.tex: Update to version 2002-02-14.08. - -2002-02-23 Daniel Jacobowitz - - * config.guess: Import from master sources, rev 1.232. - * config.sub: Import from master sources, rev 1.246. - -2002-02-23 Alexandre Oliva - - * 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 - - Contribute sh64-elf. - 2000-12-01 Alexandre Oliva - * configure.in: Added sh64-*-*. - -2002-02-04 Jeff Johnston - - * COPYING.NEWLIB: Remove advertising clause from - Berkeley and Red Hat licenses. - -2002-02-01 Mo DeJong - - * Makefile.in: Add all-tix to deps for all-snavigator - so that tix is built when building snavigator. - -2002-02-01 Ben Elliston - - * config.guess: Import from master sources, rev 1.229. - * config.sub: Import from master sources, rev 1.240. - -2002-01-27 Daniel Jacobowitz - - From Steve Ellcey : - * 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 - - * 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 - - * 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 - - * configure.in (ia64*-*-hpux*): New target for IA64 HP-UX, - ld and gdb are not supported. - -2002-01-07 Jeff Johnston - - * Change reference to Cygnus Solutions to be Red Hat. - -2002-01-07 Jeff Johnston - - * COPYING.NEWLIB: Update generic copyright date. - -2002-01-07 Mark Salter - - * 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 - - * MAINTAINERS: Update URL for config.* scripts. - -2001-12-18 Alan Modra - - * config.sub: Import latest version. - * config.guess: Likewise. - -2001-12-13 Thomas Fitzsimmons - - * configure.in (FLAGS_FOR_TARGET): Remove -nostdinc and -isystem - options for i[3456]86-pc-linux* native builds. - -2001-12-05 Laurent Guerby - - * MAINTAINERS: gcc adopts symlink-tree, refer more to - libiberty. - - Import this patch from gcc: - - 2000-12-09 Laurynas Biveinis - - * symlink-tree: handle DOS-style absolute paths. - -2001-11-28 DJ Delorie - Zack Weinberg - - 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 - - * config.sub: Update to version 1.232 on subversion. - -2001-11-20 Nick Clifton - - * Makefile.in (do-proto-toplev): Use msgfmt to generate .gmo - files from .po files for a distribution. - -2001-11-19 Hans-Peter Nilsson - - * COPYING.NEWLIB: Mention preserved notice in specific parts. - -2001-11-13 Jeff Holcomb - - Merged from net gcc: - 2001-07-30 Jeff Sturm - * ltcf-c.sh: Use $objext, not $ac_objext. - 2001-07-27 Mark Kettenis - * ltcf-cxx.sh: Add support for GNU. - 2001-07-22 Timothy Wall - * 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 - * 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 - - * Makefile.in (all-bison): Revert 2001-10-24. - Don't depend on texinfo. - -2001-11-12 Hans-Peter Nilsson - - * COPYING.NEWLIB: Add BSD-style license/copyright blurb for my work. - -2001-11-08 Phil Edwards - - * configure.in (--enable-languages): Be more permissive about - syntax. Check for empty lists better. Warn about $LANGUAGES. - -2001-11-06 Hans-Peter Nilsson - - * Makefile.in (MAKEINFO): Use "missing" for makeinfo older than 4.0. - -2001-10-24 Jeff Holcomb - - Makefile.in (all-bison): Don't depend on texinfo. - -2001-10-03 Alan Modra - - * gettext.m4: Test po/POTFILES.in exists before trying to read. - -2001-09-29 Alexandre Oliva - - * Makefile.in (configure-target-gperf): Depend on $(ALL_GCC_CXX). - -2001-09-28 Hans-Peter Nilsson - - * config.sub, config.guess: Import latest from subversions. - -2001-09-21 Alexandre Oliva - - * 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 - - * 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 - - * config.sub: Reverted the earlier change, this version is not the - master file. - -2001-09-14 Thiemo Seufer - - * config.sub: Change machine triplets from mipsel*-* to mips*el-*. - Add support for mips64. - -2001-09-03 Jeff Holcomb - - * configure.in: Enable libstdc++-v3 for h8300 targets. - -2001-08-30 Eric Christopher - Jason Eckhardt - - * config.sub: Add support for mipsisa32. - -2001-08-30 Eric Christopher - - * config.sub, config.guess: Import latest from subversions. - -2001-08-20 Alan Modra - - * config.sub, config.guess: Import latest from subversions. - -2001-07-26 DJ Delorie - - * MAINTAINERS: Clarify libiberty merge rules and procedures. - -2001-06-19 Alan Modra - - * Makefile.in: Revert 2001-06-17. - (VER): If AM_INIT_AUTOMAKE uses BFD_VERSION, get version from bfd/. - -2001-06-17 H.J. Lu - - * 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 - - * Makefile.in (VER): When present, extract the version number from - the file version.in. - -2001-06-08 Alexandre Oliva , Jeff Sturm - - * 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 - - * 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 - - * ltcf-c.sh (archive_cmd) [hpux, with_gcc]: Use gcc to link shared - archives. - -2001-05-28 Simon Patarin - - * ltcf-cxx.sh (osf3/osf4/osf5): Support creation of C++ shared - libraries when using g++ with native linker. - -2001-05-28 Alexandre Oliva - - * ltconfig, ltmain.sh: Upgrade to libtool 1.4a 1.641.2.256. - -2001-05-24 Tom Rix - - * configure.in : enable ld for aix - -2001-05-22 Alexandre Oliva - - * ltcf-cxx.sh (allow_undefined_flag, no_undefined_flag) - [aix4*|aix5*]: Prepend blank. - -2001-05-20 Alexandre Oliva - - * 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 - - * config.if (libc_interface): Set to -libc6.2- for cross - compiling to Linux/glibc 2.2. - -2001-05-03 Alexandre Oliva - - * configure.in (noconfigdirs) [*-cygwin*, *-mingw*, *-beos]: Disable - libgcj. - -2001-04-26 Alexandre Oliva - - * configure.in (noconfigdirs): Don't reset it from scratch in the - target case; only append to it. - -2001-04-26 Alexandre Oliva - - * configure.in (noconfigdirs) [hppa*-*-*, mips*-*-irix6*, - sparc-*-solaris2.8]: Disable ${libgcj}. - -2001-04-25 Alexandre Oliva - - * configure.in (libgcj_saved): Copy from $libgcj. - (libgcj): Zero out if --enable-libgcj; add to noconfigdirs is - --disable-libgcj. - -2001-04-20 Alexandre Oliva - - * ltconfig, ltmain.sh, ltcf-cxx.sh: Upgraded to libtool 1.4a - 1.641.2.228. - -2001-04-12 Alexandre Oliva - - * 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 - - * 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 - - * configure.in (CXX_FOR_TARGET): Use xgcc for libstdc++-v3. - -2001-03-23 Nick Clifton - - * README-maintainer-mode: Add note about inability to use "make - distclean" in maintainer mode. - -2001-03-22 Alexandre Oliva - - Re-installed: - 2001-01-02 Laurynas Biveinis - * 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 - - * config.sub, config.guess: Import latest from subversions. - -2001-03-22 Alexandre Oliva - - * 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 - - * Makefile.in: all-m4 depends on all-texinfo. - -2001-03-08 Alexandre Oliva - - * Makefile.in (ALL_GCC, ALL_GCC_C, ALL_GCC_CXX): Set before use. - -2001-02-22 Jeff Johnston - - * COPYING.NEWLIB: Remove DJ Delorie's address because it is no - longer valid. - -2001-02-16 Nick Clifton - - * configure.in (noconfigdirs): Allow configuration of texinfo - for Cygwin hosts. - -2001-02-09 Martin Schwidefsky - - * config.guess: Add linux target for S/390. - * config.sub: Likewise. - * configure.in: Likewise. - -2001-02-06 Ben Elliston - - * configure: Output host type to stdout, not stderr. - -2001-02-04 Michael Sokolov - - * 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 - - * config.guess: Handle hppa64-linux systems. - -2001-01-27 Michael Sokolov - - * 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 , Alexandre Oliva - - * ltconfig: Shell portability fix for the tagname validity check. - -2001-01-27 Michael Sokolov - - * ltcf-cxx.sh: Use parentheses around eval $ac_compile. - -2001-01-27 Alexandre Oliva - - * ltcf-c.sh (ld_shlibs) [aix5*]: Disable on unknown CPU types. - * ltcf-cxx.sh, ltcf-gcj.sh: Likewise. - -2001-01-24 Alexandre Oliva - - * 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 - - * ltcf-gcj.sh (lt_simple_link_test_code): Remove stray `(0)'. - * libtool.m4 (_AC_LIBTOOL_GCJ): Pass $CPPFLAGS on. - -2000-11-07 Philip Blundell - - * Makefile.in (ETC_SUPPORT): Also add configbuild.* and configdev.*. - -2000-11-03 Philip Blundell - - * Makefile.in (ETC_SUPPORT): Add configure.texi and associated info - files. - -2001-01-15 Jeff Johnston - - * COPYING.NEWLIB: Put into source repository. - -2001-01-15 Ben Elliston - - * 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 - - * config.sub, config.guess: Update from subversions. - -2000-12-12 Alexandre Oliva - - * configure.in: Disable language-specific target libraries for - languages that aren't enabled. - -2000-11-24 Nick Clifton - - * configure.in (xscale-elf): Add target. - (xscale-coff): Add target. - (c4x, c5x, tic54x): Move after ARM targets. - -2000-11-23 Alexandre Oliva - - * ltcf-gcj.sh: Added file, required by 2000-11-18 merge. - -2000-11-20 Ian Lance Taylor - - * ltcf-cxx.sh: Added file, required by 2000-11-18 merge. - -2000-11-18 Alexandre Oliva - - * Makefile.in: Merge with GCC and libgcj. - (ALL_GCC_C, ALL_GCC_CXX): New macros. Use them as dependencies of - configure-target- 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 - - * Makefile.in (HOST_LIB_PATH, TARGET_LIB_PATH): New macros. - (REALLY_SET_LIB_PATH): Use them. - -2000-11-06 Christopher Faylor - - * config.sub: Add support for Sun Chorus - -2000-11-02 Per Lundberg - - * config.sub: Add support for the *-storm-chaos OS. - -2000-10-30 Stephane Carrez - - * configure.in (noconfigdirs): Don't compile some - of the libraries for 68HC11 & 68hc12 targets. - -2000-09-30 Alexandre Oliva - - * 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 - - * Makefile.in (DEVO_SUPPORT): Added gettext.m4, libtool.m4 and - ltcf-c.sh. - -2000-09-12 Philip Blundell - - * config.sub, config.guess: Update from subversions. - -2000-09-06 Alexandre Oliva - - * 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 - - * Makefile.in (all-bootstrap): Added all-texinfo and all-zlib. - (bootstrap*): Depend on all-bootstrap. - -2000-09-02 Alexandre Oliva , DJ Delorie - - * 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 - - * 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 - - * 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 - - * 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 - - * config-ml.in (CC, CXX): Don't introduce a leading space. - -2000-08-16 Alexandre Oliva - - * configure.in (libstdcxx_flags): Use - libstdc++-v3/src/libstdc++.INC. - -2000-08-15 Alexandre Oliva - - * configure.in (libstdcxx_flags): Use libstdc++-v3/src/INCLUDES. - -2000-08-11 Jason Merrill - - * 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 - - * 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 - - * configure.in (libstdcxx_flags): Don't use `"'. - - * config-ml.in: Adjust multilib search paths to the - appropriate multilib tree. - -2000-08-02 Alexandre Oliva - - * configure.in (CHILL_FOR_TARGET, CXX_FOR_TARGET): Convert blanks to - commas in $LANGUAGES. - -2000-08-01 Alexandre Oliva - - * configure.in (qCXX_FOR_TARGET): Use echo instead of expr. - -2000-07-31 Alexandre Oliva - - * configure.in (qCXX_FOR_TARGET): Quote `&' characters in - CXX_FOR_TARGET for sed. - -2000-07-30 Alexandre Oliva - - * 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 - - * 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 - - * 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 - - * configure (topsrcdir): Don't use dirname. - -2000-07-20 Jason Merrill - - * configure.in: Remove all references to libg++ and librx. - - * configure, configure.in, Makefile.in: Unify gcc and binutils. - -2000-07-20 Hans-Peter Nilsson - - * config.sub: Update to subversions version 2000-07-06. - -2000-07-12 Andrew Haley - - * 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 - - * symlink-tree: Check number of arguments. - -2000-06-06 Andrew Cagney - - * texinfo/texinfo.tex: Update to version 2000-05-28.15. - -2000-07-05 Jim Wilson - - * 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 - - * ltconfig: Add support for mips-dde-sysv4.2MP - -2000-06-28 Corinna Vinschen - - * 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 - - * configure.in (noconfigdirs): Set noconfigdirs for tic54x target. - * config.sub: Add tic54x target. - -2000-06-07 Phillip Thomas - - * README-maintainer-mode: New file: Contains notes on using - --enable-maintainer-mode with binutils. - -2000-05-29 Andrew Cagney - - * texinfo/texinfo.tex: Update. Version from makeinfo 4.0. - -2000-05-30 Andrew Cagney - - * 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 - - * Makefile.in (configure-target-libiberty): Depend on - configure-target-newlib. - -2000-05-16 Alexandre Oliva - - * configure.in, Makefile.in: Merge all libffi-related - configury stuff from the libgcj tree. - -2000-05-16 Andrew Cagney - - Thu Apr 27 11:01:48 2000 Andrew Cagney : - * Makefile.in (do-tar-bz2, do-md5sum): Skip CVS directories. - -2000-05-16 Andrew Cagney - - Wed Apr 26 17:03:53 2000 Andrew Cagney : - * 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 - - * configure.in: Special case powerpc*-*-aix* target_makefile_frag. - -2000-05-13 Alexandre Oliva - - * 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 - - * configure.in (ia64*-*-elf*): Add gdb and friends to noconfigdirs. - -2000-05-08 Eli Zaretskii - - * djunpack.bat: Change the Sed script to replace @V@ in fnchange.lst - with the version name. - -2000-05-01 Benjamin Kosnik - - * config.if: Tweak. - -2000-04-23 Eli Zaretskii - - * djunpack.bat: New file. - -2000-04-19 Andrew Cagney - - * 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 - - * config.sub (case $basic_machine): Change default for "ibm-*" - to "openedition". - -2000-04-12 Andrew Cagney - - * 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 - - * configure (warn_cflags): Delete. - -2000-04-05 Benjamin Kosnik - Martin v. Loewis - - * 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 - - * config.sub (d30v): Add d30v as a basic machine type. - -2000-03-29 Jason Merrill - - * configure.in: -linux-gnu*, not -linux-gnu. - -2000-03-03 Andrew Cagney - - * 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 - - * configure.in: Add entry for mips*-*-linux*, move catch all - *-*-*linux* entry below this one. - -2000-02-27 Ian Lance Taylor - - * ltconfig, ltmain.sh: Update to libtool 1.3.4. - -2000-02-24 Nick Clifton - - * config.sub: Support an OS of "wince". - -2000-02-24 Andrew Cagney - - * config.guess, config.sub: Updated to match config's 2000-02-15 - version. - -2000-02-23 Linas Vepstas - - * config.sub: Add support for Linux/IBM 370. - * configure.in: Likewise. - -2000-02-22 Nick Clifton - - * configure.in: Add mips-pe, sh-pe and arm-wince-pe targets. - -2000-02-20 Christopher Faylor - - * config.guess: Guess "cygwin" rather than "cygwin32". - -2000-02-16 Kaveh R. Ghazi - - * configure (gcc_version): When setting, narrow search to - lines containing `version_string'. - -2000-02-15 Denis Chertykov - - * config.sub: Add support for avr target. - -2000-02-01 Hans-Peter Nilsson - - * config.sub: Add mmix-knuth-mmixware. - -2000-01-27 Christopher Faylor - - * 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 - - * Makefile.in (CXX_FOR_TARGET): Use g++, not xgcc, to invoke - the C++ compiler. - -2000-01-12 Richard Henderson - - * 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 - - * configure.in: Use mt-aix43 to handle *_TARGET defs, - not mh-aix43. - -1999-12-14 Richard Henderson - - * config.guess (alpha-osf, alpha-linux): Detect ev67. - * config.sub: Accept alphaev[78], alphaev8. - -1999-12-03 Alexandre Oliva - - * config.guess, config.sub: Update from autoconf. - -Tue Nov 23 00:57:41 1999 Rainer Orth - - * config-ml.in (sparc*-*-*): Disable sparcv9 support if the - necessary libraries are missing. - -1999-10-25 Andreas Schwab - - * configure: Fix quoting inside arguments of eval. - -1999-10-21 Nick Clifton - - * config-ml.in: Allow suppression of some ARM multilibs. - -Tue Sep 7 23:33:57 1999 Linas Vepstas - - * config.guess: Add OS/390 match pattern. - * config.sub: Add mvs, openedition targets. - * configure.in (i370-ibm-opened*): New. - -1999-09-04 Steve Chamberlain - - * config.sub: Add support for configuring for pj. - -1999-08-31 Nick Clifton - - * config.sub (maybe_os): Add support for configuring for fr30. - -1999-08-25 Nick Clifton - - * 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 - - * config-ml.in: Pass compiler flag corresponding to multidirs to - subdir configures. - -1999-08-09 Ian Lance Taylor - - * Makefile.in (LDFLAGS): Define. - -1999-08-08 Mumit Khan - - * configure.in (i[3456]-*-mingw32*): Don't put gprof in - noconfigdirs. - (*-*-cygwin*): Likewise. - -1999-08-08 Ian Lance Taylor - - * mkdep: New file. - * Makefile.in (GAS_SUPPORT_DIRS): Add mkdep. - (BINUTILS_SUPPORT_DIRS): Add mkdep. - - From Eli Zaretskii : - * 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 - - * 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 - - * 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 - - * 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 - - From Mark Elbrecht: - * configure.bat: Remove; obsolete. - -1999-07-11 Ian Lance Taylor - - * configure: Add -W -Wall to the default CFLAGS when compiling with - gcc. - -Thu Jul 8 12:32:23 1999 John David Anglin - - * configure.in: Build ld, binutils & gas for hppa*-*-linux-gnu*. - -1999-06-30 Mark Mitchell - - * configure.in: Build ld on IRIX6. - -1999-06-12 Ian Lance Taylor - - * 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 - - * config.sub: Add mcore target. - -1999-05-30 Cort Dougan - - * 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 - - * config.sub: Tidied up case statements. - -1999-05-22 Ben Elliston - - * config.guess: Handle NEC UX/4800. Contributed by Jiro Takabatake - . - - * 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 - - * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include. - -1999-04-30 Tom Tromey - - * ltmain.sh: [mode link] Always use CC given by ltconfig. - -1999-04-23 Tom Tromey - - * ltconfig, ltmain.sh: Update to libtool 1.2f. - -1999-04-20 Drew Moseley - - * 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 - - * configure.in (i?86-*-beos*): Do config gperf; don't config - gdb, newlib, or libgloss. - -1999-04-11 Alexandre Oliva - - * 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 - - * config.sub: Add support for mcore targets. - -1999-04-07 Michael Meissner - - * 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 - - * Makefile.in (all-target-cygmon): Added all-target-bsp to the - dependency list for all-target-cygmon. - -1999-04-05 Doug Evans - - * 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 - - * 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 - - * config.sub (mips64vr4111,mips64vr4111el) Add. - -1999-03-21 Ben Elliston - - * config.guess: Correct typo for detecting ELF on FreeBSD. - -Thu Mar 18 00:17:50 1999 Mark Elbrecht - - * 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 - - * 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 - - * config.sub: Add i386-uwin support. - * config.guess: Likewise. - -Thu Mar 11 01:07:55 1999 Franz Sirl - - * configure.in: cleanup, add mh-*pic handling for arm, special - case powerpc*-*-aix* - -Wed Mar 10 18:35:07 1999 Jeff Johnston - - * configure.in (noconfigdirs): Removed target-libgloss so libnosys.a - can be built. - -Wed Mar 10 17:39:09 1999 Drew Moseley - - * configure.in: Added bsp support to arm-*-coff and arm-*-elf - targets. - -1999-03-02 Nick Clifton - - * config.sub: Rename CYGNUS LOCAL to EGCS LOCAL - -1999-02-28 Geoffrey Noer - - * config.sub: Check for "cygwin*" rather than "cygwin32*" - -1999-02-24 Nick Clifton - - * config.sub: Fix typo in arm recognition. - -1999-02-24 Drew Moseley - - * 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 - - * configure.in (*-*-windows*): Remove, no longer used. - * config/mh-windows: Ditto. - -1999-02-19 Ben Elliston - - * config.guess: Automatically recognise ELF on FreeBSD. From Niall - Smart and improved by Andrew Cagney. - -1999-02-18 Marc Espie - - * 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 - - Patch from: Scott Bambrough - - * config.guess: Modified to recognize uname's armv* syntax. - - * config.sub: Modified to recognize uname's armv* syntax. - -1999-02-17 Mark Salter - - * configure.in: Added target-bsp for sparclite. - -1999-02-08 Richard Henderson - - * config.sub: Recognize alphapca5[67] and up to alphaev8. - -1999-02-08 Nick Clifton - - * configure.in: Add support for strongarm port. - * config.sub: Add support for strongarm target. - -1999-02-07 Mumit Khan - - * configure.in (*-*-cygwin32*): Use config/mh-cygwin instead of - the old name config/mh-cygwin32. - Enable texinfo. - -1999-02-04 Ian Lance Taylor - - * configure.in: Do build ld for ix86 Solaris. - -1999-02-02 Jim Wilson - - * Makefile.in (EXTRA_GCC_FLAGS): Set AR to $AR instead of - $AR_FOR_TARGET. Likewise for RANLIB. - -1999-02-02 Catherine Moore - - * 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 - - * config.guess: Add support for i386-pc-interix. - * config.sub: Likewise. - * configure.in: Likewise. - * config/mh-interix: New file. - -1999-01-18 Christopher Faylor - - * 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 - - * configure.in: makefile stub for cygwin target is probably - unnecessary. Remove it for now. - * config/mt-cygwin: Remove. - -1998-12-30 Christopher Faylor - - * 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 - - * 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 - - * 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 - - * config.guess: Recognize FreeBSD using ELF automatically. - -1998-11-26 Manfred Hollstein - - * 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 - - * ltconfig: import from libtool, after changing libtool to - account for the cygwin name change. - -Wed Nov 18 18:09:14 1998 Geoffrey Noer - - * 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 - - * configure.in: Add libtermcap to list of cygwin dependencies. - -1998-11-17 Geoffrey Noer - - * 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 - - * 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 - - * Makefile.in: lose "32" from comment about cygwin. - -1998-11-05 Nick Clifton - - * configure.in: Use -Os to build target libraries for the fr30. - -1998-11-04 Dave Brolley - - * config.sub: Add fr30. - -1998-11-02 Geoffrey Noer - - * 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 - - * config.guess: Match any version of Unixware7. - -1998-10-20 Syd Polk - - * 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 - - * 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 - - * 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 - - * config.sub: Add support for i[34567]86-pc-udk. - * configure.in: Likewise. - -Wed Sep 30 19:23:48 1998 Geoffrey Noer - - * 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 - - * configure.in (target_subdir): Remove duplicate line. - -Tue Sep 29 22:45:41 1998 Felix Lee - - * 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 - - * 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 - - * Makefile.in (bootstrap): Pass TARGET_FLAGS_TO_PASS to `make all'. - -Sun Sep 20 00:13:02 1998 Richard Henderson - - * config.sub: Fix typo in last change. - -1998-09-19 Michael Hayes - - * config.sub: Add support for C4x target. - * configure.in: Likewise. - -1998-09-13 David S. Miller - - * config.sub: Recognize sparcv9 just like sparc64. - -Wed Sep 9 15:44:52 1998 Robert Lipe - - * 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 - - * 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 - - * 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 - - * configure.in: Use mh-aix43. - -1998-07-29 Manfred Hollstein - - * configure: Fix --without/--disable cases for gxx-include-dir. - -Fri Aug 28 12:28:26 1998 Per Bothner - - * mdata-sh: Imported. Needed for automake support. - -Thu Aug 13 12:49:29 1998 H.J. Lu - - * Makefile.in (taz): Try "chmod -R og=u ." before - "chmod og=u `find . -print`". - -Fri Jul 31 09:38:33 1998 Catherine Moore - - * configure.in: Add arm-elf and thumb-elf support. - -Mon Jul 27 16:23:58 1998 Doug Evans - - * Makefile.in: Undo previous patch. - -Fri Jul 24 19:55:24 1998 Doug Evans - - * 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 - - * config.sub: Merge with FSF. - - * config.guess: Merge with FSF. - -Fri Jul 24 08:43:36 1998 Doug Evans - - * 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 - - * 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 - - * 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 - - * 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 - - 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 - - * configure.in (target_subdir): Set to libraries if enable_multilib. - -Wed Jul 15 01:00:54 1998 Ian Lance Taylor - - * 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 - - * configure.in: Strip any --no option from CONFIG_ARGUMENTS, to - avoid confusion with --no-recursion. - -Tue Jul 14 15:37:41 1998 Geoffrey Noer - - * 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 - - * 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 - - * 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 - - * ltmain.sh: Correct install when using a different shell. - -Tue Jul 7 15:24:38 1998 Ian Lance Taylor - - * ltconfig, ltmain.sh: Update to libtool 1.2b. - -Thu Jul 2 13:57:36 1998 Klaus Kaempf - - * makefile.vms: Update to build binutils/makefile.vms. Add install - target. - -Wed Jul 1 16:45:21 1998 Ian Lance Taylor - - * 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 - - * 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 - - * 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 - - * 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 - - * configure.in (noconfigdirs): Add configure pattern for mips tx39 - cygmon - -Tue Jun 23 22:42:32 1998 Mark Alexander - - * configure.in: Add cygmon and libstub support for mn10200. - -1998-06-19 Manfred Hollstein - - * 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 - - * 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 - - * config.guess: Detection of Pentium II for *-sco-3.2v5*. - -Mon Jun 15 14:53:54 1998 Andrew Cagney - - * Makefile.in (grep): Grep no longer depends on libiberty. - -Fri Jun 12 14:03:34 1998 Syd Polk - - * Makefile.in: all-snavigator needs all-libgui. - -Thu Jun 11 19:43:47 1998 Mark Alexander - - * configure.in: Add cygmon and libstub support for mn10300. - -Wed Jun 10 11:19:47 1998 Ian Lance Taylor - - * 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 - - * config.sub: Accept m68060 and m5200 as CPU names. - -Mon Jun 1 17:25:16 1998 Ian Lance Taylor - - * 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 - - * ltconfig, ltmain.sh: Bring in Visual C++ support. - -Sat May 23 23:44:13 1998 Alexandre Oliva - - * 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 - - * 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 - - * ltconfig, ltmain.sh: Avoid producing a version number if - -version-info was not used. - -Tue May 5 18:02:24 1998 Ian Lance Taylor - - * configure.in: Add --with-newlib to CONFIG_ARGUMENTS if we are - building with newlib. - -1998-04-30 Paul Eggert - - * 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 - - * configure.in: Change alpha to alpha* in several places. - -Tue Apr 28 07:42:00 1998 Mark Alexander - - * config.sub: Recognize sparc86x. - -Tue Apr 28 07:35:02 1998 Michael Meissner - - * configure.in (--enable-target-optspace): Remove debug echo. - -Thu Apr 23 21:31:16 1998 Jim Wilson - - * configure: Set CXXFLAGS from CXXFLAGS, not CFLAGS. - -Thu Apr 23 12:26:38 1998 Ian Lance Taylor - - * 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 - - * 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 - - * 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 - - * configure.in (host_tools): Fix typo, lbtool -> libtool. - -Fri Apr 17 16:20:42 1998 Ian Lance Taylor - - * 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 - - * 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 - - * configure.in: Don't set PICFLAG on ix86-cygwin32. - -Tue Apr 14 12:24:45 1998 J. Kean Johnston - - * 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 - - * configure: Define DEFAULT_M4 by searching PATH. - * Makfile.in: Use DEFAULT_M4. - -Mon Apr 13 15:37:24 1998 Ian Lance Taylor - - * 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 - - * Makefile.in (EXTRA_GCC_FLAGS): XFOO lines shortened. - -Thu Apr 2 14:48:44 1998 Geoffrey Noer - - * 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 - - * 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 - - * configure: Do not disable building gdbtk for cygwin32 hosts. - -Wed Mar 25 10:04:18 1998 Nick Clifton - - * 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 - - * Makefile.in (BASE_FLAGS_TO_PASS): Pass $(lispdir) down to - recursive makes - -Tue Mar 24 11:37:45 1998 Ian Lance Taylor - - * 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 - - * ltconfig, ltmain.sh: Update to libtool 1.2. - -Fri Mar 20 09:32:14 1998 Manfred Hollstein - - * Makefile.in (install-gcc): Don't specify LANGUAGES here. - (install-gcc-cross): Instead, override LANGUAGES here. - -1998-03-18 Dave Love - - * 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 - - * configure.in: Add Thumb-pe target. - -Tue Mar 17 16:59:00 1998 Syd Polk - - * Makefile.in - changed sn targets to snavigator - * configure.in - changed sn targets to snavigator - -Tue Mar 17 10:33:28 1998 Manfred Hollstein - - * 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 - - * config.sub: Accept alphapca56 and alphaev6 properly. - -Fri Mar 6 00:14:55 1998 Franz Sirl - - * configure.in: Revert 3 Jan change for powerpc-linux-gnulibc1. - -Mon Feb 23 15:09:18 1998 Bruno Haible - - * 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 - - * configure.in: Remove libgloss from noconfigdirs for MN10300. - -Thu Feb 19 13:40:41 1998 Ian Lance Taylor - - * 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 - - * 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 - - * 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 - - * 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 - - * ltconfig, ltmain.sh: Update from libtool 1.0i. - -Fri Feb 6 01:33:52 1998 Manfred Hollstein - - * 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 - - * 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 - - * ltconfig, ltmain.sh: Update from libtool 1.0h. - -Mon Feb 2 19:38:19 1998 Ian Lance Taylor - - * config.sub: Add tic30 cases, and map c30 to tic30. - -Sun Feb 1 02:40:41 1998 Richard Henderson - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * config.guess: Add support for Linux/ARM. - -Thu Jan 22 15:14:01 1998 Fred Fish - - * .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 - - * configure.in: Revert 3 Jan change for alpha-linux-gnulibc1. - -Sat Jan 17 21:28:08 1998 Pieter Nagel - - * 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 - - * 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 - - * configure.in (target_configdirs): Add cygmon for sparc64-elf. - -Wed Jan 14 12:48:07 1998 Keith Seitz - - * 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 - - * config.sub: Add mingw32 support. - * configure.in: Likewise. - * config/mh-mingw32: New file. - -Sat Jan 3 12:11:05 1998 Franz Sirl - - * 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 - - * 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 - - * mkdep: New file. - -Wed Dec 17 09:53:02 1997 Michael Meissner - - * configure.in (d30v-*-*): Allow configuring of libide, vmake, etc. - -Tue Dec 16 17:36:05 1997 Ian Lance Taylor - - * 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 - - * config-ml.in (multidirs): Add m32r to multilib list. - -Fri Dec 12 10:43:31 1997 Brendan Kehoe - - * Makefile.in (all-target-gperf): Change dependency to - all-target-libstdc++. - -Thu Dec 11 23:30:51 1997 Fred Fish - - * config.guess: Add BeOS support. - -Wed Dec 10 15:10:38 1997 Ian Lance Taylor - - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * configure.in (d30v-*-*): Configure all directories. - -Sun Nov 9 17:36:20 1997 Michael Meissner - - * configure.in (d30v-*-*): Configure newlib, libiberty directories - for the D30V. - -Sat Nov 8 14:42:59 1997 Michael Meissner - - * configure.in (d30v-*-*): Configure target-libgloss on the D30V. - -Fri Nov 7 10:34:09 1997 Rob Savoye - - * 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 - - * configure.in (d30v-*-*): Configure GCC now. - -Mon Oct 27 13:17:24 1997 Stan Shebs - - * configure.in: Remove a "second pass" of tweaking noconfigdirs, - is no longer needed. - -Mon Oct 27 12:03:53 1997 Jason Merrill - - * 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 - - * makefile.vms: Fix to work with DEC C. - -Tue Oct 7 23:58:57 1997 Gavin Koch - - * config.sub: Add mips-tx39-elf to marketing names. - -Tue Oct 7 14:24:41 1997 Ian Lance Taylor - - * ltmain.sh: Handle symlinks in generated script. - -Wed Oct 1 13:11:27 1997 Ian Lance Taylor - - * 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 - - * Makefile.in (bootstrap-lean): New target. - -Wed Sep 24 18:06:27 1997 Stu Grossman - - * 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 - - * 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 - Jeff Law - - * 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 - - * configure (tooldir): enable_gdbtk=YES for cygwin32, NO for - windows. Consistent with gdb/configure. - -1997-09-15 02:37 Ulrich Drepper - - * 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 - - * Makefile.in (install-itcl): Install tcl first. - -Sun Sep 14 20:53:42 1997 Geoffrey Noer - - * config/mh-cygwin32: ok to build split texinfo files - -Fri Sep 12 16:19:20 1997 Geoffrey Noer - - * 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 - - * config.guess: Merge with FSF. - -Sun Sep 7 23:18:32 1997 Fred Fish - - * config.sub: Change 'amigados' to 'amigaos' to match current usage. - -Sun Sep 7 15:55:28 1997 Gavin Koch - - * 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 - - * .cvsignore (*-install): Remove. - -Wed Sep 3 12:15:24 1997 Chris Provenzano - - * ltconfig: Set CONFIG_SHELL in libtool. - * ltmain.sh: Use CONFIG_SHELL instead of /bin/sh - -Mon Sep 1 16:45:44 1997 Jim Wilson - - * configure.in (target_subdir): Set to libraries if enable_multilib. - -Wed Aug 27 16:15:11 1997 Jim Wilson - - * config.guess: Update from gcc directory. - -Tue Aug 26 16:46:46 1997 Andrew Cagney - - * Makefile.in (all-sim): Depends on all-readline. - -Wed Aug 20 19:57:37 1997 Jason Merrill - - * Makefile.in (BISON, YACC): Use $$s. - (all-bison): Depend on all-texinfo. - -Tue Aug 19 01:41:32 1997 Jason Merrill - - * Makefile.in (BISON): Add -L flag. - (YACC): Likewise. - -Mon Aug 18 11:30:50 1997 Nick Clifton - - * 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 - - * 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 - - * 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 - - * config-ml.in ({powerpc,rs6000}*-*-*): Update to current AIX and - eabi targets. - -Thu Aug 14 14:42:17 1997 Ian Lance Taylor - - * 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 - - * 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 - - * configure: If OSTYPE matches *win32*, try to find a good value for - CONFIG_SHELL. - -Sun Aug 10 14:41:11 1997 Ian Lance Taylor - - * 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 - - * Makefile.in (LD_FOR_TARGET): Change ld.new to ld-new. - -Fri Aug 8 16:30:13 1997 Doug Evans - - * config.sub: Recognize `arc' cpu. - * configure.in: Likewise. - * config-ml.in: Likewise. - -Thu Aug 7 11:02:34 1997 Ian Lance Taylor - - * Makefile.in ($(INSTALL_X11_MODULES)): Depend upon installdirs. - -Wed Aug 6 16:27:29 1997 Chris Provenzano - - * 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 - - * Makefile.in (EXTRA_GCC_FLAGS): Fix for non-bash shells. - -Wed Aug 6 00:42:35 1997 Ian Lance Taylor - - * Makefile.in (AS_FOR_TARGET): Change as.new to as-new. - -Tue Aug 5 14:08:51 1997 Ian Lance Taylor - - * 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 - - * configure (tooldir): Set BISON to `bison -y' and not just bison. - -Mon Aug 4 22:59:02 1997 Andrew Cagney - - * 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 - - * Makefile.in (EXTRA_GCC_FLAGS): Fix handling of macros with values - separated by spaces. - -Thu Jul 31 19:49:49 1997 Ian Lance Taylor - - * 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 - - * 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 - - * config.sub: Merge with FSF. - -Tue Jul 22 19:08:29 1997 Ian Lance Taylor - - * config.guess: Merge with FSF. - -Tue Jul 22 14:50:42 1997 Robert Hoehne - - * 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 - - * configure.in (noconfigdirs): For alpha-dec-osf*, don't ignore grep. - -Tue Jul 15 14:33:03 1997 Brendan Kehoe - - * 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 - - * configure (GDB_TK): Needs itcl and tix. - -Mon Jul 14 00:32:10 1997 Jason Merrill - - * config.guess: Update from FSF. - -Fri Jul 11 11:57:11 1997 Martin M. Hunt - - * Makefile.in (GDB_TK): Depend on itcl and tix. - -Fri Jul 4 13:25:31 1997 Ian Lance Taylor - - * 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 - - * configure.in, Makefile.in: Treat tix like itcl. - -Thu Jun 26 13:59:19 1997 Ian Lance Taylor - - * 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 - - * configure.in: configure sim before gdb for win32-x-ppc - -Wed Jun 25 12:18:54 1997 Brendan Kehoe - - 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 - - * 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 - - * 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 - - * Makefile.in (all-sn): Depend on all-grep. - -Mon Jun 16 11:11:10 1997 Ian Lance Taylor - - * configure.in: Use mh-ppcpic and mt-ppcpic for powerpc*-* targets. - - * configure: Set CFLAGS and CXXFLAGS, and substitute them into - Makefile. From Jeff Makey . - * 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 - - * Makefile.in (INSTALL): Use $(SHELL) when executing install-sh. - -Fri Jun 13 10:22:56 1997 Bob Manson - - * 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 - - * configure.in (targargs): Pass --build if we're doing - a cross-compile. - -Fri Jun 6 21:38:40 1997 Rob Savoye - - * 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 - - * config.sub: Support for r3900. - -Wed May 21 17:33:31 1997 Ian Lance Taylor - - * configure.in: Use install-sh, not install.sh. - -Wed May 14 16:06:51 1997 Ian Lance Taylor - - * 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 - - * Makefile.in (INSTALL_MODULES): Put install-opcodes before - install-binutils. - -Thu May 8 17:29:50 1997 Ian Lance Taylor - - * Makefile.in: Add automake targets. - * configure.in (host_tools): Add automake. - -Tue May 6 15:49:52 1997 Ian Lance Taylor - - * 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 - - * install-sh: try appending a .exe if source file doesn't - exist - -Wed Apr 30 12:05:36 1997 Jason Merrill - - * 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 - - * config.guess: improve algorithm for recognizing Gnu Hurd x86. - -Thu Apr 24 19:30:07 1997 Ian Lance Taylor - - * Makefile.in (DEVO_SUPPORT): Add mpw-install. - (DISTBISONFILES): Add ld/Makefile.in - -Tue Apr 22 17:17:28 1997 Geoffrey Noer - - * 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 - - * 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 - - * config.guess: Fixes for MIPS OpenBSD systems. - -Tue Apr 15 12:21:07 1997 Ian Lance Taylor - - * 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 - - * 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 . - -Fri Apr 11 16:37:10 1997 Niklas Hallqvist - - * 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 - - * 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 - - * makefile.vms: Don't run conf-a-gas. - -Mon Mar 31 16:26:55 1997 Joel Sherrill - - * configure.in (hppa1.1-*-rtems*): New target, like hppa-*-*elf*. - -Sun Mar 30 12:38:27 1997 Fred Fish - - * configure.in: Remove noconfigdirs case since gdb also - configures and builds for tic80-coff. - -Fri Mar 28 18:28:52 1997 Ian Lance Taylor - - * configure: Set cache_file to config.cache. - * Makefile.in (local-distclean): Remove config.cache. - -Wed Mar 26 18:49:39 1997 Ian Lance Taylor - - * COPYING: Update FSF address. - -Wed Mar 26 10:38:25 1997 Michael Meissner - - * configure.in (tic80-*-*): Remove G++ libraries and libgloss from - noconfigdirs. - -Mon Mar 24 15:02:39 1997 Ian Lance Taylor - - * Makefile.in (install-dirs): Don't crash if prefix, and hence - MAKEDIRS, is empty. - -Mon Mar 24 12:40:55 1997 Doug Evans - - * config.sub: Tweak mn10300 entry. - -Fri Mar 21 15:35:27 1997 Michael Meissner - - * 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 - - * config.sub: Move BeOS $os case to be with other Cygnus - local cases. - -Sun Mar 16 01:34:55 1997 Martin Hunt - - * config.sub: Remove misplaced comment that broke Linux. - -Sat Mar 15 22:50:15 1997 Fred Fish - - * config.sub: Add BeOS support. - -Mon Mar 10 13:30:11 1997 Tom Tromey - - * Makefile.in (CHECK_X11_MODULES): Don't run check-tk. - -Wed Mar 5 12:09:29 1997 Martin - - * configure.in (noconfigdirs): Remove tcl and tk from - noconfigdirs for cygwin32 builds. - -Fri Feb 28 18:20:15 1997 Fred Fish - - * configure.in (tic80-*-*): Remove ld from noconfigdirs. - -Thu Feb 27 14:57:26 1997 Ken Raeburn - - * 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 - - * config.sub: Accept -lnews*. - -Tue Feb 25 13:19:14 1997 Andrew Cagney - - * configure.in (noconfigdirs): Disable target-newlib, - target-examples and target-libiberty for d30v. - -Fri Feb 21 17:56:25 1997 Martin M. Hunt - - * configure.in (noconfigdirs): Enable ld for d30v. - -Fri Feb 21 20:58:51 1997 Michael Meissner - - * configure.in (tic80-*-*): Build compiler. - -Sun Feb 16 15:41:09 1997 Andrew Cagney - - * configure.in (d30v-*): Remove sim directory from list of - unsupported d30v directories - -Tue Feb 18 17:32:42 1997 Martin M. Hunt - - * config.sub, configure.in: Add d30v target cpu. - -Thu Feb 13 22:04:44 1997 Klaus Kaempf - - * makefile.vms: New file. - * make-all.com: Remove. - -Wed Feb 12 12:54:18 1997 Jim Wilson - - * Makefile.in (EXTRA_GCC_FLAGS): Add LIBGCC2_DEBUG_CFLAGS. - -Sat Feb 8 20:36:49 1997 Michael Meissner - - * Makefile.in (all-itcl): The rule is all-itcl, not all-tcl. - -Tue Feb 4 11:39:29 1997 Tom Tromey - - * 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 - - * config.guess: Merge with latest FSF sources. - -Tue Jan 28 09:20:37 1997 Tom Tromey - - * 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 - - * configure.in: build gdb for mn10200 - -Fri Jan 17 15:32:15 1997 Doug Evans - - * Makefile.in (all-target-winsup): Depend on all-target-libio. - -Mon Jan 13 22:46:54 1997 Michael Meissner - - * configure.in (tic80-*-*): Turn off most targets right now. - -Fri Jan 3 16:04:03 1997 Ian Lance Taylor - - * 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 - - * 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 - - * config.sub (case $basic_machine): Add tic80 entries. - -Fri Dec 27 12:07:59 1996 Ian Lance Taylor - - * config.sub, config.guess: Merge with latest FSF sources. - -Wed Dec 18 22:46:39 1996 Stan Shebs - - * 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 - - * 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 - - * 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 - - * configure.in: Don't use --with-stabs on IRIX 6. - -Tue Dec 3 09:05:25 1996 Doug Evans - - * 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 - - * config.sub (basic_machine): added mips16 configuration - -Sat Nov 23 19:26:22 1996 Michael Meissner - - * config.sub: Handle d10v-unknown. - -Sat Nov 23 10:23:01 1996 Gavin Koch - - * config.sub: Handle v850-unknown. - -Thu Nov 21 16:19:44 1996 Geoffrey Noer - - * 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 - - * 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 - - * config.guess: Patch for Dansk Data Elektronik servers, - from Niels Skou Olsen . - - For ncr, use /bin/uname rather than uname, since GNU uname does not - support -p. Suggested by Mark Mitchell . - - Patch for MIPS R4000 running System V, - from Eric S. Raymond . - - Fix thinko for nextstep. - - Patch for OSF1 in i?86, from Dan Murphy via Harlan Stenn. - - Sat Jun 24 18:58:17 1995 Morten Welinder - * config.guess: Guess mips-dec-mach_bsd4.3. - - Thu Oct 10 04:07:04 1996 Harlan Stenn - * 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 - * config.guess (sparc-auspex-sunos*): Added. - (f300-fujitsu-*): Added. - - Wed Sep 25 22:00:35 1996 Jeff Woolsey - * config.guess: Recognize a Tadpole as a sparc. - -Wed Nov 13 00:53:09 1996 David J. MacKenzie - - * 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 - - * config.guess: Support Cray T90 that reports itself as "CRAY TS". - From Rik Faith . - -Fri Nov 8 11:34:58 1996 David J. MacKenzie - - * 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 - - * install.sh (chmodcmd): Set to null if the DST directory already - exists. - -Mon Nov 11 10:43:41 1996 Michael Meissner - - * 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 - - * 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 - - * 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 - - * configure: Handle GCC_FOR_TARGET like CC_FOR_TARGET. - -Fri Oct 18 13:37:13 1996 Ian Lance Taylor - - * 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 - - * configure.in (m32r): Fix spelling of libg++ libs. - -Thu Oct 10 10:37:17 1996 Stan Shebs - - * config.sub (-apple*): Remove, now redundant. - -Thu Oct 10 12:30:54 1996 Ian Lance Taylor - - * 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 - - * config.guess: Merge from FSF. - - 1996-09-12 Richard Stallman - * 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 - * 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 - - * Makefile.in: Replace all uses of srcroot with s, to shrink - command line lengths. - - Patches from Geoffrey Noer : - * 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 - - * 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 - - * make-all.com: Call conf-a-gas, not config-a-gas. - -Tue Oct 1 01:28:41 1996 James G. Smith - - * configure.in (noconfigdirs): Don't build libgloss for arm-coff - targets. - -Mon Sep 30 14:24:01 1996 Stan Shebs - - * 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 - - * configure.in (noconfigdirs): Don't configure any C++ dirs - if targeting D10V. - -Tue Sep 17 12:15:31 1996 Ian Lance Taylor - - * config.sub: Recognize mips64vr5000. - -Mon Sep 16 17:00:52 1996 Ian Lance Taylor - - * configure.in: Use a single line for host_tools and native_only. - -Tue Sep 16 09:55:07 1997 Andrew Cagney - - * Makefile.in (install-itcl): Install tcl first. - -Sun Sep 14 20:53:42 1997 Geoffrey Noer - - * config/mh-cygwin32: ok to build split texinfo files - -Fri Sep 12 16:19:20 1997 Geoffrey Noer - - * configure.in: remove bison from noconfigdirs for Cygwin32 host - -Mon Sep 9 12:21:30 1996 Doug Evans - - * config.sub, configure.in: Add entries for m32r. - -Mon Sep 8 20:46:20 1997 Ian Lance Taylor - - * config.guess: Merge with FSF. - -Thu Sep 5 13:52:47 1996 Tom Tromey - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * configure.in (v850-*-*): Set up initial $noconfigdirs. - * config.sub (basic_machine): Recognize v850. - -Thu Aug 15 12:19:33 1996 Stan Shebs - - * 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 - - * 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 - - * make-all.com: Run config-a-gas. - * setup.com: Don't copy subdirectory files around. - -Tue Jul 30 17:49:31 1996 Brendan Kehoe - - * configure.in (*-*-ose): Remove exclusion of libgloss for this - target, it now compiles correctly. - -Sat Jul 27 15:10:43 1996 Stan Shebs - - * mpw-config.in: Generate Mac include for elf/dwarf2.h. - -Tue Jul 23 10:47:04 1996 Martin M. Hunt - - * configure.in (d10v-*-*): Remove ld from $noconfigdirs. - -Mon Jul 22 13:28:51 1996 Brendan Kehoe - - * configure.in (native_only): Add prms. - -Mon Jul 22 12:27:58 1996 Ian Lance Taylor - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * Makefile.in (CONFIGURE_TARGET_MODULES): Set r environment - variable that CC_FOR_TARGET needs. - -Thu Jul 11 10:09:45 1996 Michael Meissner - - * 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 - - * 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 - - * configure.in (mips-sgi-irix6*): Use mh-irix6 instead of mh-irix5. - -Mon Jul 1 13:31:35 1996 Michael Meissner - - * config.sub (basic_machine): Recognize d10v as a valid processor. - -Fri Jun 28 12:14:35 1996 Stan Shebs - - * 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 - - * 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 - - * configure.in: build diff and patch for cygwin32-hosted - toolchains. - -Mon Jun 24 15:01:12 1996 Joel Sherrill - - * config.sub: Accept -rtems*. - -Sun Jun 23 22:41:54 1996 Geoffrey Noer - - * 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 - - * Makefile.in (TARGET_SUBDIR): Move comment to previous line so we - don't get ". ". - -Fri Jun 21 17:24:48 1996 Jim Wilson - - * configure.in (mips*-sgi-irix6*): Set noconfigdirs appropriately. - -Thu Jun 20 16:57:40 1996 Ken Raeburn - - * 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 - - * 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 - - * Makefile.in (taz): tex3patch moved to texinfo/util. - -Sat Jun 15 17:13:25 1996 Geoffrey Noer - - * 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 - - * 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 - - * config.guess: Combine mips-mips-riscos cases, and use cpp to - distinguish sysv/svr4/bsd variants. - Based on a patch from Harlan Stenn . - -Fri Jun 7 14:24:49 1996 Tom Tromey - - * configure.in: Added copyright notice. - * move-if-change: Added copyright notice. - -Thu Jun 6 16:27:05 1996 Michael Meissner - - * 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 - - * config.guess: Merge with FSF: - - Mon Jun 3 08:49:14 1996 Karl Heuer - * config.guess (*:Linux:*:*): Add guess for sparc-unknown-linux. - - Fri May 24 18:34:53 1996 Roland McGrath - * config.guess (AViiON:dgux:*:*): Fix typo in recognizing mc88110. - - Fri Apr 12 20:03:59 1996 Per Bothner - * 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 - - * Makefile.in (MAKEDIRS): Removed $(tooldir). - -Tue May 28 12:30:50 1996 Stan Shebs - - * mpw-README: Document GCCIncludes. - -Sun May 26 15:16:27 1996 Fred Fish - - * configure.in (alpha-*-linux*): Set enable_shared to yes. - -Tue May 21 15:41:39 1996 Stan Shebs - - * mpw-configure: Handle --enable-FOO and --disable-FOO. - -Mon May 20 10:12:29 1996 Geoffrey Noer - - * configure.in (*-*-cygwin32): Configure make. - -Tue May 7 14:19:42 1996 Tom Tromey - - * Makefile.in (inet-install): Quote value of INSTALL_MODULES. - -Fri May 3 08:57:17 1996 Tom Tromey - - * 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 - - * configure.in (powerpcle-*-solaris*): Turn off tk and tcl - temporarily. - -Thu Apr 25 11:48:20 1996 Ian Lance Taylor - - * configure.in: Don't configure --with-gnu-ld on AIX. - -Thu Apr 25 06:33:36 1996 Michael Meissner - - * configure.in (powerpcle-*-solaris*): Turn off gdb temporarily. - -Tue Apr 23 09:07:39 1996 Tom Tromey - - * 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 - - * configure.in: Don't configure libgloss if we are not configuring - newlib. - -Wed Apr 17 19:30:01 1996 Rob Savoye - - * configure.in: Don't configure libgloss for unsupported - architectures. - -Tue Apr 16 11:17:05 1996 Michael Meissner - - * Makefile.in (CLEAN_MODULES): Add clean-apache. - -Mon Apr 15 15:09:05 1996 Tom Tromey - - * 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 - - * Makefile.in: Add support for clean-{module} and - clean-target-{module} rules. - -Wed Apr 10 21:37:41 PDT 1996 Marilyn E. Sander - - * configure.in (*-*-ose) do not build libgloss. - -Mon Apr 8 16:16:20 1996 Michael Meissner - - * config.guess (prep*:SunOS:5.*:*): Turn into - powerpele-unknown-solaris2. - -Mon Apr 8 14:45:41 1996 Ian Lance Taylor - - * 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 - - * 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 - - * configure (--enable-*): Handle quoted option lists such as - --enable-sim-cflags='-g0 -O' better. - -Thu Mar 21 11:53:08 1996 Michael Meissner - - * 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 - - * configure.in: Add missing global flag in sed substitution when - deleting `target-' from ${configdirs}. - -Thu Mar 14 19:15:06 1996 Ian Lance Taylor - - * 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 - - * config.sub: Recognize mon960. - -Sun Mar 10 13:18:38 1996 Ian Lance Taylor - - * configure: Restore Canadian Cross handling of BISON and LEX, - removed in Feb 20 change. - -Fri Mar 8 20:07:09 1996 Per Bothner - - * README: Suggestions from Torbjorn Granlund : - 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 - - * 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 - - * configure.in (m68k-*-netbsd*): Build everything now. - -Wed Feb 28 12:25:46 1996 Jason Merrill - - * Makefile.in (taz): Fix quoting. - -Tue Feb 27 11:33:57 1996 Doug Evans - - * configure.in (sparclet-*-*): Build everything now. - -Tue Feb 27 14:31:51 1996 Andreas Schwab - - * configure.in (m68k-*-linux*): New host. - -Mon Feb 26 14:32:44 1996 Ian Lance Taylor - - * 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 - - * 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 - - * 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 - - * 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 - - * config.sub: Merge with FSF. - -Tue Feb 13 14:27:48 1996 Ian Lance Taylor - - * 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 - - * config.sub, configure.in: Recognize sparclet cpu. - -Mon Feb 12 15:33:59 1996 Christian Bauernfeind - - * config.guess: Support m68k-cbm-sysv4. - -Sat Feb 10 12:06:42 1996 Andreas Schwab - - * 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 - - * config.guess (powerpc-harris-powerunix): Add guess for port - to new target. - -Thu Feb 8 15:37:52 1996 Brendan Kehoe - - * config.guess (UNAME_VERSION): Recognize X4.x as an OSF version. - -Mon Feb 5 16:36:51 1996 Ian Lance Taylor - - * 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 - - * config.guess (*:CYGWIN*): New - -Sat Feb 3 10:42:35 1996 Michael Meissner - - * Makefile.in (all-target-winsup): All all-target-libiberty. - -Fri Feb 2 17:58:56 1996 Michael Meissner - - * configure.in (noconfigdirs): Add missing # in front of comment. - -Thu Feb 1 14:38:13 1996 Geoffrey Noer - - * 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 - - * 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 - - * configure.in, config.sub: Recognize cygwin32. - -Wed Jan 31 14:17:10 1996 Richard Henderson - - * config.guess, config.sub: Recognize A/UX. - -Wed Jan 31 13:52:14 1996 Ian Lance Taylor - - * config.sub: Merge with gcc/config.sub. - -Thu Jan 25 11:01:10 1996 Raymond Jou - - * mpw-build.in (do-binutils): Add build of stamps. - -Thu Jan 25 17:05:26 1996 James G. Smith - - * config.sub: Add recognition for mips64vr4100*-* targets. - -Wed Jan 24 12:47:55 1996 Brendan Kehoe - - * 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 - - * configure: Pass --nfp to recursive configures. - -Mon Jan 22 10:41:56 1996 Steve Chamberlain - - * 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 - - SCO OpenServer 5 changes from Robert Lipe : - * 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 - - * Makefile.in (CONFIGURE_TARGET_MODULES): Add missing ';'. - -Fri Jan 12 15:25:35 1996 Ian Lance Taylor - - * configure.in: Make sure that ${CC} can be used to compile an - executable. - -Sat Jan 6 07:23:33 1996 Michael Meissner - - * 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 - - * Makefile.in (newlib.tar.gz): Delete building of newlib's info files. - -Mon Jan 1 19:09:14 1996 Brendan Kehoe - - * 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 - - * 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 - - * 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 - - * config-ml.in (ml_realsrcdir): New, to account for ${subdir}. - -Tue Dec 26 11:45:31 1995 Michael Meissner - - * config.guess (AViiON:dgux:*:*): Update from FSF to add pentium - DG/UX support. - -Fri Dec 15 10:01:27 1995 Stan Cox - - * config.sub (i*86*) Change [345] to [3456] - -Wed Dec 20 17:41:40 1995 Brendan Kehoe - - * 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 - - * 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 - - * Makefile.in: (configure-target-examples, all-target-examples): - New targets, configure and build example programs. - -Fri Dec 15 16:13:03 1995 Stan Shebs - - * 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 - - * config.sub: Accept *-*-ieee*. - -Tue Dec 12 11:52:57 1995 Ian Lance Taylor - - * Makefile.in (local-distclean): Remove $(TARGET_SUBDIR). From - Ronald F. Guilmette . - -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 - - * configure.in (noconfigdirs): Exclude target-newlib for all versions - of vxworks, not just vxworks5.1. - -Mon Dec 4 12:05:40 1995 Stan Shebs - - * mpw-configure: Add support for exec-prefix. - -Mon Dec 4 10:22:50 1995 Jeffrey A. Law - - * config.guess: Recognize HP model 816 machines as having - a PA1.1 processor. - -Mon Dec 4 12:38:15 1995 Ian Lance Taylor - - * configure: Ignore new autoconf configure options. - -Thu Nov 30 14:45:25 1995 J.T. Conklin - - * 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 - - * config.guess: Recognize Pentium under SCO. - From Robert Lipe . - -Wed Nov 29 13:49:08 1995 J.T. Conklin - - * 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 - - * configure.in: Don't configure gas for alpha-dec-osf*. - -Tue Nov 28 17:16:48 1995 Ian Lance Taylor - - * 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 - - * 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 - - * 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 - - * configure: Don't turn -v into --v. - -Tue Nov 21 16:48:02 1995 Doug Evans - - * configure.in (targargs): Fix typo. - - * Makefile.in (DEVO_SUPPORT): Add symlink-tree. - -Tue Nov 21 14:08:28 1995 Ian Lance Taylor - - * 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 - - * 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 - - * 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 - - * Makefile.in (DEVO_SUPPORT): Use config-ml.in instead of - cfg-ml-*.in. - -Wed Nov 15 11:45:23 1995 Ian Lance Taylor - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * cfg-ml-com.in (sh-*-*): Add m2 and ml/m2 to multidirs. - -Sun Nov 5 00:15:41 1995 Per Bothner - - * configure: Remove dubious bug reporting address. - -Fri Nov 3 08:17:54 1995 Per Bothner - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * configure.in (copy_dirs): Use sys-include instead of include - for --with-headers option. - -Tue Oct 31 10:29:36 1995 steve chamberlain - - * Makefile.in, configure.in: Make winsup builds work with - new scheme. - -Mon Oct 30 18:57:09 1995 Ian Lance Taylor - - * configure.in: Build the linker on AIX. - -Mon Oct 30 12:27:16 1995 Per Bothner - - * Makefile.in (CC_FOR_TARGET, CXX_FOR_TARGET): Add $(TARGET_SUBDIR) - where needed. - -Mon Oct 30 12:45:25 1995 Doug Evans - - * Makefile.in (all-gcc): Fix typo. - -Sat Oct 28 10:27:59 1995 Per Bothner - - * Makefile.in ($(CHECK_TARGET_MODULES)): Fix typo. - -Fri Oct 27 23:14:12 1995 Per Bothner - - * 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 - - * 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 - - * 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 - - * Makefile.in (taz): Use ";" instead of ";;". - -Wed Oct 25 15:18:24 1995 Per Bothner - - * 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 - - * 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 - - * cfg-ml-com.in (powerpc*): Shorten some of the multilib directory - names. - -Fri Oct 20 18:02:10 1995 Michael Meissner - - * cfg-ml-com.in (powerpc*-eabi*): Add mcall-aixdesc varients. - -Thu Oct 19 10:40:57 1995 steve chamberlain - - * 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 - - * 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 - - * 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 - - * 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 - - * configure.in: Stop putting gas and binutils in noconfigdirs for - powerpc-*-aix* and rs6000-*-*. - -Mon Oct 9 12:38:40 1995 Michael Meissner - - * cfg-ml-com.in (powerpc*-*-eabisim*): Add support for building - -mcall-aixdesc libraries. - -Fri Oct 6 16:17:57 1995 Ken Raeburn - - Mon Sep 25 22:49:32 1995 Andreas Schwab - - * config.sub (arm | armel | armeb): Fix shell syntax. - -Fri Oct 6 14:40:28 1995 Michael Meissner - - * 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 - - * 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 - - * 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 - - * mpw-configure: Fix sed command file name. - -Thu Sep 28 17:39:56 1995 steve chamberlain - - * configure.in (host i[345]86-*-win32): Reduce the - noconfigdirs again. - -Wed Sep 27 12:24:00 1995 Ian Lance Taylor - - * 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 - - 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 - - * 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 - - * configure.in (noconfigdirs): Disable libg++ and libstdc++ on - v810-*-*. - -Mon Sep 18 23:08:26 1995 J.T. Conklin - - * 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 - - * config/mh-ncrsvr43: Removed AR_FLAGS - -Tue Sep 12 18:03:31 1995 Ian Lance Taylor - - * 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 - - * configure.in (noconfigdirs): Disable gdb on m68k-*-netbsd*. - -Fri Sep 8 16:46:29 1995 Ian Lance Taylor - - * configure.in: Build ld in mips*-*-bsd* case. - -Thu Sep 7 20:03:41 1995 Ken Raeburn - - * config.sub: Accept -lites* OS. From Ian Dall. - -Fri Sep 1 08:06:58 1995 James G. Smith - - * 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 - - * 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 - - * 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 - - * configure: Add Makefile.tem to list of files to remove in trap - handler. - -Mon Aug 14 19:27:56 1995 Per Bothner - - * 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 - - * config.guess: Merge with FSF: - - Wed Jun 28 17:57:27 1995 David Edelsohn - * 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 - - * 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 - - * Makefile.in (GDBTK_SUPPORT_DIRS): Define and pass as part of - SUPPORT_FILES to submakes. - -Fri Aug 4 13:04:36 1995 Fred Fish - - * 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 - - * 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 - - * cfg-ml-com.in (z8k-*-coff): Add 'std' multilib build. - -Fri Jul 28 00:16:31 1995 Jeffrey A. Law - - * config.guess: Recognize lynx-2.3. - -Thu Jul 27 15:47:59 1995 steve chamberlain - - * 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 - - * 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 - - * configure.in: Don't build newlib for *-*-vxworks5.1. - -Thu Jul 27 11:18:47 1995 Brendan Kehoe - - * 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 - - * cfg-ml-pos.in (MULTITOP): Trim excess trailing "/.". - -Fri Jul 21 10:41:12 1995 Doug Evans - - * cfg-ml-com.in: New file. - * cfg-ml-pos.in: New file. - -Wed Jul 19 00:37:27 1995 Jeffrey A. Law - - * COPYING.NEWLIB: Add HP free copyright to list. - -Tue Jul 18 10:58:51 1995 Michael Meissner - - * config.sub: Recognize -eabi* for the system, not just -eabi. - -Mon Jul 3 13:44:51 1995 Steve Chamberlain - - * 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 - - * configure.in: Add i386-pe configuration. - -Fri Jun 23 14:28:44 1995 Stan Shebs - - * mpw-build.in (install): Install GDB after LD. - -Thu Jun 22 17:10:53 1995 Stan Shebs - - * mpw-config.in (elf/mips.h): Always forward-include, needed - for GDB to build. - -Wed Jun 21 15:17:30 1995 Rob Savoye - - * testsuite: New directory for customer acceptance and whole tool - chain tests. - -Wed Jun 21 16:50:29 1995 Ken Raeburn - - * 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 - - * config.guess: Update from FSF, for alpha-dec-winnt3.5 and Crays. - -Tue Jun 13 21:43:27 1995 Rob Savoye - - * configure: Set build_{cpu,vendor,os,alias} to host values when - --build isn't specified. - -Mon Jun 5 18:26:36 1995 Jason Merrill - - * 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 - - * Makefile.in (all-libg++): Depend on all-libstdc++. - -Thu May 25 22:40:59 1995 J.T. Conklin - - * configure.in (noconfigdirs): Enable all packages for - i386-unknown-netbsd. - -Sat May 20 13:22:31 1995 Angela Marie Thomas - - * configure.in (noconfigdirs): Don't configure tk for i386-go32 - hosted builds (DOS builds) - -Thu May 18 18:08:49 1995 Ken Raeburn - - 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 - - * config.guess: Update from FSF. - -Tue May 9 15:52:05 1995 Michael Meissner - - * 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 - - * configure.in: Don't build newlib for m68k-vxworks5.1. - -Wed Apr 19 17:02:43 1995 Jim Wilson - - * configure.in (mips-sgi-irix6): Use mh-irix5. - -Fri Apr 14 15:21:17 1995 Doug Evans - - * Makefile.in (all-gcc): Depend on all-ld (for libgcc1-test). - -Wed Apr 12 16:06:01 1995 Jason Merrill - - * 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 - - * 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 - - 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 - - * 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 - - * configure.in: Fix --enable-shared logic in per-host. - -Mon Mar 13 12:33:15 1995 Ian Lance Taylor - - * 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 - - * configure: Fix --cache-file to work if the file argument is a - relative path. - -Tue Feb 28 17:36:07 1995 Ian Lance Taylor - - * configure: If the --cache-file is used, pass it down to - configure in subdirectories. - -Mon Feb 27 12:52:46 1995 Kung Hsu - - * config.sub: add vxworks29k configuration. - -Fri Feb 10 16:12:26 1995 Ken Raeburn - - * Makefile.in (taz): Do "diststuff" part quietly. - -Sun Feb 5 14:16:35 1995 Doug Evans - - * config.sub: Mini-merge with gcc/config.sub. - -Sat Feb 4 12:11:35 1995 Jim Wilson - - * config.guess (IRIX): Sed - to _. - -Fri Feb 3 11:54:42 1995 J.T. Conklin - - * Makefile.in (source-vault, binary-vault): New targets. - -Thu Jan 26 13:00:11 1995 Michael Meissner - - * config.sub: Recognize -eabi as a basic system type. - -Thu Jan 12 13:13:23 1995 Jason Merrill - - * 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 - - * Makefile.in (LIBCXXFLAGS_FOR_TARGET): Add -fno-implicit-templates. - -Mon Jan 9 12:48:01 1995 Jim Kingdon - - * configure.in (rs6000-*-*): Don't build gas. - -Wed Jan 4 23:53:49 1995 Ian Lance Taylor - - * 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 - - * config.guess: Merge from FSF. - -Thu Dec 15 17:11:37 1994 Ian Lance Taylor - - * 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 - - * Makefile.in (LIBGXX_SUPPORT_DIRS): Add libstdc++. - -Tue Nov 29 19:37:56 1994 Per Bothner - - * 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 - - * 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 - - * 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 - - * configure.in (target_libs): Include libstdc++ again. - * config.guess: Update from FSF (for FreeBSD). - -Thu Nov 3 16:32:30 1994 Ken Raeburn - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * configure: Use ${config_shell} when running ${configsub}. - -Mon Oct 3 14:28:34 1994 Doug Evans - - * config.sub: No longer recognize h8300h. - -Mon Oct 3 12:40:54 1994 Ian Lance Taylor - - * config.sub: Remove extraneous differences between config.sub and - gcc/config.sub. - -Sat Oct 1 00:23:12 1994 Ken Raeburn - - * 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 - 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 . - -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 - - * 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 - - * 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 . - -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 . - -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 . - -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 . - -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 . - -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 - - * 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 - - * 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 - - * 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" . - -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 ) - * 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 : - + 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 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 - - * config/mn10300/tm-mn10300.h: more small register fixes - -Tue Dec 31 06:51:43 1996 Mark Alexander - - * 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 - - * 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 - - * config/i386/xm-windows.h: Make SIGTRAP and SIGQUIT consistent - with sim/mips/support.h. - -Fri Dec 27 14:53:40 1996 Michael Meissner - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * m32r-tdep.c (m32r_frame_find_saved_regs): Fix thinko in arg def. - -Thu Dec 19 09:38:56 1996 Mark Alexander - - * 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 - - * mpw-make.sed: Use NewFolderRecursive for installation. - -Sat Dec 14 20:50:01 1996 Mark Alexander - - * 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 - - * 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 - - * monitor.c (monitor_load): Add support for load address argument. - * dsrec.c: #include . - (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 - - * 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 - - * monitor.c (monitor_insert_breakpoint): Handle bi-endian machines. - -Mon Dec 9 15:58:51 1996 Mark Alexander - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * config/mn10300/mn10300.mt, config/mn10300/tm-mn10300.h: New. - -Tue Dec 3 13:02:08 1996 Fred Fish - - * 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 - - * 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 . - -Sun Dec 1 00:40:46 1996 Geoffrey Noer - - * 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 . - * 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 , 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 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 ). - (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 - - * 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 - - * 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 - - * 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 - - * configure: Rebuild with autoconf 2.12. - -Mon Nov 25 13:17:16 1996 Fred Fish - - From: Paul Eggert - * remote-bug.c (wait_strings): Avoid creating a trigraph. - -Fri Nov 22 15:55:22 1996 Martin M. Hunt - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * config/mips/tm-mips.h (FIX_CALL_DUMMY): Change unsigned LONGEST - to ULONGEST. - -Fri Nov 15 15:34:18 1996 Fred Fish - - From Peter Schauer - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * config/tm-sh.h: Added a missing comma in middle of - REGISTER_NAMES list. - -Fri Nov 8 12:29:51 1996 Stan Shebs - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * config/powerpc/tm-ppc-eabi.h (TARGET_BYTE_ORDER_SELECTABLE): - Define. - -Tue Oct 29 14:59:20 1996 Stan Shebs - - * TODO: Add item suggesting an "info bfd" command. - -Tue Oct 29 12:48:04 1996 Martin M. Hunt - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * config/d10v/tm-d10v.h (TARGET_{INT,PTR}_BIT): Define. - (TARGET_{,LONG_}DOUBLE_BIT): Ditto. - -Thu Sep 26 23:10:26 1996 Mark Alexander - - * 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 - - * 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 - - * 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 - - * 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 - - * d10v-tdep.c: Stack chain should work now. - -Tue Sep 17 18:46:57 1996 Martin M. Hunt - - * d10v-tdep.c, config/d10v/tm-d10v.h: Snapshot. - -Tue Sep 17 12:20:50 1996 Ian Lance Taylor - - * configure.in: Add cases for MIPS 5000 like MIPS 4300. - * configure: Rebuild. - -Tue Sep 17 12:09:00 1996 Dawn Perchik - - * ser-e7kpc.c: Added wingdb support for target e7000pc. - -Tue Sep 17 10:56:52 1996 James G. Smith - - * 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 - - * 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 - - * 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 - - * 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 - - * ser-tcp.c: don't include netinet/tcp.h if __CYGWIN32__ - -Thu Sep 5 17:05:13 1996 Geoffrey Noer - - * config/i386/cygwin32.mh: - * config/powerpc/cygwin32.mh: build ser-tcp.o for both hosts - -Thu Sep 5 12:09:13 1996 Per Bothner - - * 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 - - * 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 - - * terminal.h: Don't use #elif. - -Wed Sep 4 06:49:35 1996 Wilfried Moser - - * 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 - - * 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 - - * 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 - - * 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 - - * infrun.c (wait_for_inferior): Initialize stop_func_end before calling - find_pc_partial_function. - -Tue Aug 27 10:17:34 1996 Michael Meissner - - * configure: Regenerate again. - -Tue Aug 27 04:25:08 1996 Geoffrey Noer - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 and 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 - - * 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 - - * mips-tdep.c (mips_push_arguments): Make sure sp and struct_addr - are properly aligned. - -Fri Aug 16 17:54:26 1996 Stan Shebs - - * 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 - - * symtab.h: changed namespace to _namespace for compiling under - MFC v4.0. - -Fri Aug 16 13:52:21 1996 Stan Shebs - - * mpw-make.sed: Update for various recent changes, add some - comments. - -Fri Aug 16 15:47:36 1996 Michael Meissner - - * 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 - - * config/mips/{vr4300.mt, vr4300el.mt} (SIM): Add -lm when - simulator is included. - -Thu Aug 15 13:44:13 1996 Fred Fish - - * 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 - - From Blair MacIntyre : - * 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 - - * 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 - - * 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 - - * 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: -> "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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * printcmd.c (_initialize_printcmd): Initialize - tm_print_insn_info.flavour. - -Thu Jul 25 19:41:31 1996 Fred Fish - - * 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 - - * 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 - - * dwarf2read.c (struct filenames): Change internal "struct file" - to "struct fileinfo" to avoid conflict with "struct file" in - on HPUX and Solaris. - -Fri Jul 19 14:05:57 1996 Stan Shebs - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * hpread.c (hpread_lookup_type): Use xmmalloc/xmrealloc rather - than xmalloc/xrealloc. - -Fri Jul 12 17:59:47 1996 Fred Fish - - * 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 - - * 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 - - * 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 - - * 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 - - * ser-mac.c (mac_close): Change a typo SetSetBuf to SerSetBuf. - -Mon Jul 08 08:50:39 1996 Mark Alexander - - * 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 - - * 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 - - * 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 - - * 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 - - From Raymond Jou : - * mpw-make.sed: Add lines to whack out autoconf hook - @CONFIG_LDFLAGS@. - -Mon Jul 01 11:07:15 1996 Mark Alexander - - * remote-e7000.c (e7000_stop): New function. - -Fri Jun 28 06:34:19 1996 Dawn Perchik - - * 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 - - * main.c (main): Add option "l" for setting remote_timeout. - -Fri Jun 28 05:25:18 1996 Dawn Perchik - - * 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 - - * 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 - - * monitor.c (monitor_debug): Fix remotedebug buffering. - -Thu Jun 27 18:24:17 1996 Stan Shebs - - * config/i386/cygwin32.mh, config/powerpc/cygwin32.mh - (NATDEPFILES): Add a space. - -Wed Jun 26 06:05:39 1996 Wilfried Moser - - * 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 - - * 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 - - * win32-nat.c: #include . - (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 - - * 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 - - * 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 - - * somsolib.c (som_solib_create_inferior_hook): Handle tracking - of shl_load calls for hpux10. - -Thu Jun 13 11:16:10 1996 Tom Tromey - - * 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 - - From Michael Snyder : - * 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 - - * 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 - - * config/powerpc/xm-solaris.h: Initial version of support for - Solaris on PowerPC. - -Wed Jun 5 01:52:57 1996 James G. Smith - - * 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 - - * dsrec.c (make_srec): Fix calculation of address size - to allow addresses less than 0x100. - -Thu May 30 04:24:09 1996 Wilfried Moser - - * ch-exp.c (ch_lex): In case of LOC_TYPEDEF call calculate_array_length. - -Tue May 28 16:15:47 1996 Geoffrey Noer - - * 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 - - * 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 - - * 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 - - Changes from: David Mosberger-Tang - - * 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 and - instead of - -Tue Jul 2 13:58:10 1996 Miles Bader - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * config/sparc/sparclite.mt: Add the sparc simulator. - -Sun May 19 16:49:37 1996 Fred Fish - - * 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 - - * 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 - - SH3-E support from Allan Tajii : - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * c-valprint.c (c_val_print): Fix printing for arrays defined - with 0 length. - -Sun Apr 28 15:08:05 1996 Stan Shebs - - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * remote-mips.c (encoding): Don't specify size, to avoid bug in - SunOS native compiler. - -Thu Apr 18 18:46:57 1996 Stan Shebs - - * 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 - - * 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 - - * 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 - - * 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 - - From: Miles Bader - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - From: Miles Bader - * 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 - - * configure.in (case host): Add i386sco5 host. - * configure: Regenerate. - - From: Robert Lipe - 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 - - * 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 - - * 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 - - * 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 to "gdb_string.h". - * c-exp.y, f-exp.y, m2-exp.y: Ditto. - * c-exp.y, serial.c: Include . - * config/m68k/nm-news.h: Add typedef for pid_t which is - apparently missing from . 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 - - * 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 - - * symmisc.c (print_objfile_statistics): Print memory used by - psymbol cache obstack. - -Thu Apr 4 15:43:07 1996 Stan Shebs - - * 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 - - * 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 - - * hppa-tdep.c (hppa_pop_frame): Call clear_proceed_status before - proceeding. - -Sun Mar 31 16:15:43 1996 Fred Fish - - * 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 - - * 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 - - * 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 - - * 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 . - * 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 - - * configure.in (sparc64-*-solaris2*): Delete. - Stick with sparc-*-solaris2*. - * configure: Regenerated. - -Thu Mar 28 06:51:26 1996 Fred Fish - - * 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 - - * 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 - - * 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 - - * ch-lang.c (evaluate_subexp_chill): Fix typo. - -Thu Mar 21 08:27:19 1996 Fred Fish - - * Makefile.in (VERSION): Bump version to 4.15.3 - -Thu Mar 21 10:56:41 1996 Ian Lance Taylor - - * 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 - - * 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 - - * configure.in: Add fragment to create stamp-h. - - From Peter Schauer - * 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 - - * 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 - - From Peter Schauer - * 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 - - * configure.in: Add gdbserver to configdirs under linux. - * configure: Regenerate. - -Fri Mar 15 12:06:58 1996 J.T. Conklin - - * 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 - - * 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 - - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * valarith.c (value_in): Change builtin_type_chill_bool to - LA_BOOL_TYPE. - -Tue Mar 5 23:48:36 1996 Wilfried Moser - - * 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 - - * 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 - - * i386b-nat.c, m68knbsd-nat.c (fetch_core_registers): Provide - implementation for NetBSD systems. - -Mon Mar 4 23:44:16 1996 Per Bothner - - * 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 - - * 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 - - * remote-mips.c (common_breakpoint): Explicitly terminate the - returned buffer. - -Wed Feb 28 22:32:18 1996 Stan Shebs - - From Wilfried Moser : - * 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 - - * gnu-nat.c (thread_cmd_list): New declaration. - (parse_int_arg): New function. - -Wed Jun 5 17:28:04 1996 Miles Bader - - * 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 - - * gnu-nat.c (show_thread_run_cmd): Actually print state. - -Thu May 30 10:47:56 1996 Miles Bader - - * gnu-nat.c (inf_signal): Make unforwardable exceptions an error. - -Tue May 28 17:06:36 1996 Miles Bader - - * 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 - - * 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 - - * 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 - - * gnu-nat.c (inf_signal): Pass SIGCODE when posting a signal. - -Wed May 22 18:44:28 1996 Miles Bader - - * 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 - - * 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 - - * gnu-nat.c (gnu_kill_inferior): Use inf_set_task to clear the task. - -Mon May 6 19:06:49 1996 Miles Bader - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * reply_mig_hack.awk: New file. - -Tue Nov 14 14:31:03 1995 Miles Bader - - * 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 - - * 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 - - * target.c (debug_to_thread_alive): Pass through the return value. - -Thu Nov 2 18:05:00 1995 Miles Bader - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * standalone.c (open, _initialize_standalone): Fix obvious typos - reported by Martin Pool . - -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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * symfile.h (INLINE_ADD_PSYMBOL): Default this to 0 and possibly - delete entirely someday. - -Thu Feb 15 15:25:34 1996 Stan Shebs - - * 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 - - * 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 - - * configure.in (sparclet-*-aout*): New config. - * configure: Regenerated. - -Mon Feb 12 14:17:52 1996 Fred Fish - - * 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 - - * 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 - - * 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 - - * 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 - - * nindy-share/nindy.c (say): Use stdarg.h macros when compiling - with an ANSI compiler. - -Mon Feb 5 18:24:28 1996 Steve Chamberlain - - 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 - - * language.c (set_language_command): Use languages table when - printing available languages. - -Sat Feb 3 12:22:05 1996 Fred Fish - - 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 - - * win32-nat.c (mappings): Add ppc registers. - (child_resume): Turn off step for ppc. - -Thu Feb 1 10:29:31 1996 Steve Chamberlain - - * 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 - - * serial.c: Change fputc/fputs/fprintf to _unfiltered forms. - -Wed Jan 31 18:36:27 1996 Stan Shebs - - * 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 - - * 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 - - * 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 - - From Jon Reeves : - * 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 - - * Makefile.in (diststuff): Make all-doc; diststuff target does not - exist in doc/Makefile.in. - -Mon Jan 29 18:44:57 1996 Stan Shebs - - * config/m88k/xm-cxux.h (BP_HIT_COUNT): Remove, never used. - -Mon Jan 29 00:10:35 1996 Wilfried Moser - - * 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 - - * 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 - - * 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 - - * 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 - - * Makefile.in (INSTALLED_LIBS, CLIBS): Include @LIBS@. - -Thu Jan 25 09:22:15 1996 Steve Chamberlain - - From Greg McGary : - * 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 - - * 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 - - * Makefile.in (RUNTEST): srcdir renamed to rootsrc. - -Wed Jan 24 15:42:24 1996 Tom Tromey - - * Makefile.in (lint): Close backquotes. - -Wed Jan 24 13:19:10 1996 Fred Fish - - * 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 - - * 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 - - * 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 - - * 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 - - * printcmd.c (print_insn): Pass fprintf_unfiltered to - INIT_DISASSEMBLE_INFO. - -Mon Jan 22 16:59:40 1996 Stan Shebs - - * 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 - - * sparc-tdep.c (_initialize_sparc_tdep): Always use print_insn_sparc. - -Fri Jan 19 07:19:38 1996 Fred Fish - - * 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 - - * 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 - - * 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 - - * 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 - - From Wilfried Moser : - * remote.c (remotetimeout): New GDB variable, use to set the - remote timeout for reading. - -Fri Jan 12 07:14:27 1996 Fred Fish - - * 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 - - * 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 - - * 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 - - * main.c (main): Disable window interface if --help or --version - specified. - -Wed Jan 10 16:08:49 1996 Brendan Kehoe - - * 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 - - From Wilfried Moser : - * 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 - - * ch-exp.c (parse_primval): In case ARRAY, add missing - FORWARD_TOKEN (). - -Mon Jan 8 13:29:34 1996 Stan Shebs - - * 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 - - * configure.in, configure: Add `-ldl -lw' for Solaris linking. - -Fri Jan 5 12:02:00 1996 Steve Chamberlain - - * 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 - - * 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 for "struct user" - * alpha-nat.c (kernel_u_size): New function. - Include for "struct user" - * sparc-nat.c (kernel_u_size): New function. - Include 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * config/mips/nm-irix5.h: Restore. - (TARGET_HAS_HARDWARE_WATCHPOINTS, etc): Define as for Irix 4; - from Lee Iverson . - * 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 - - * dsrec.c (load_srec): Check remotedebug flag when printing - debug info. - -Wed Dec 31 10:33:15 1997 David Taylor - - * breakpoint.c (breakpoint_re_set): add _siglongjmp to list of - longjmp breakpoints. - -Mon Dec 29 21:25:34 1997 Mark Alexander - - * 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 - - * 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 - - * remote-mips.c (_initialize_remote_mips): Fix DDB doc string. - -Sun Dec 21 17:00:06 1997 David Taylor - - * 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 - - * 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 - - From Gavin Koch : 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * config/v850/tm-v850.h (BREAKPOINT): Reverted back to old value... - -Thu Dec 4 09:30:22 1997 Nick Clifton - - * config/v850/tm-v850.h (BREAKPOINT): Changed to match new value. - -Wed Dec 3 12:44:15 1997 Keith Seitz - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * Makefile.in (SHELL): Really do the change. - -Fri Nov 21 02:19:57 1997 Geoffrey Noer - - * Makefile.in: also revert SHELL change until configury - changes work - -Thu Nov 20 16:35:13 1997 Doug Evans - - * sparc-tdep.c (sparc_pc_adjust): Don't assume sizeof (long) == 4. - -Thu Nov 20 04:11:27 1997 Geoffrey Noer - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * top.c (quit_confirm): Change exit message. - -Tue Nov 4 16:52:50 1997 Geoffrey Noer - - * 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 - - * 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 - - * 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 - - * 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 - - * configure.in (configdir): Add -lcomdlg32 and -ladvapi32 - to WIN32LIBS. - - * configure: Rebuild - -Fri Oct 24 16:48:21 1997 David Taylor - - * 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 - - * ch-exp.c: Rename FIELD_NAME to DOT_FIELD_NAME (to avoid conflict). - -Fri Oct 17 13:22:02 1997 Stan Shebs - - * infcmd.c: Improve grammar of "set args" help. - -Thu Oct 16 15:03:58 1997 Michael Meissner - - * remote-sds.c (sds_load): Properly declare as static. - -Wed Oct 15 10:27:14 1997 Doug Evans - - * 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 - - * stabsread.c: Make ref_map entries dynamically allocated. - -Thu Oct 9 12:37:57 1997 Frank Ch. Eigler - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * config/mips/tm-mips.h (NUM_REGS): Define conditionally. - (REGISTER_NAMES): Ditto. - -Fri Sep 26 21:08:22 1997 Keith Seitz - - * 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 - - * 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 - - * configure.tgt (v850-*-*): necmsg.lib instead of v850.lib. - -Wed Sep 24 14:02:09 1997 Andrew Cagney - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * config/i386/windows.mh (XDEPFILES): need to list some files - explicitly, for odd reasons. - -Tue Sep 16 20:00:05 1997 Per Bothner - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * remote-e7000.c (e7000_fetch_registers): Fix typo, stray paren. - (e7000_wait): Ditto. - -Mon Sep 1 11:21:03 1997 Andrew Cagney - - * top.c (init_main): Add ``set processor'' as an alias for ``set - architecture''. - -Sat Aug 30 13:44:48 1997 Bob Manson - - * config/sparc/sparclite.mt: Removed simulator references (erc32 - has been disabled). - -Thu Aug 28 10:20:04 1997 Andrew Cagney - - * 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 - - * 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 - - * 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 - - * ocd.c: revert Sun change -- enable log file handling - -Mon Aug 25 12:21:46 1997 Andrew Cagney - - * remote-sim.c (gdbsim_open): Pass exec_bfd to sim_open call. - -Sun Aug 24 21:16:59 1997 Geoffrey Noer - - * 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 - - * 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 - - * 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 - - * dink32-rom.c: Don't use "mf" command to fill, is too picky - about alignment. - - -Tue Aug 19 08:41:36 1997 Fred Fish - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 . - -Fri Aug 8 21:35:44 1997 Mark Alexander - - * 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 - - * ser-ocd.c: If _WIN32, include . - (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 - - * 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 - - 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 ") 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 - - * ocd.h: add OCD_SET_CONNECTION - * ocd.c: rename "do_command" to "ocd_do_command" - -Thu Aug 7 13:09:17 1997 Geoffrey Noer - - 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 - - * 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 : - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * Makefile.in (init.c): except some mswin files do need to be - scanned. oh well. - -Mon Jul 28 14:04:39 1997 Felix Lee - - * 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 - - * ser-e7kpc.c: -> "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 - - * mon960-rom.c: removed unused #includes; no ioctl.h in Windows. - * nindy-share/ttyflush.c: find sleep() for _MSC_VER. - * remote-array.c: #include 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 - - * v850ice.c: Include . 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * utils.c (floatformat_from_doublest): Improve test for infinity. - -Wed Jun 18 13:47:52 1997 Fred Fish - - * 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 - - * 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 - - * 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 - - * symfile.c (generic_load): Check return code of target_write_memory. - -Fri Jun 13 10:28:09 1997 Fred Fish - - * 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 - - * 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 - - * remote-sim.c (gdbsim_kill): Remove call to depreciated function - sim_kill. - -Thu Jun 5 11:39:03 1997 Ian Lance Taylor - - 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 - - * dbxread.c: Check malloc's return for null, prevent segv. - -Fri May 23 14:45:02 1997 Bob Manson - - * infcmd.c (jump_command): Don't try to dereference sfn if it's - NULL. - -Fri May 23 13:51:57 1997 Andrew Cagney - - * 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 - - * 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 - - * 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 - - * 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 - - * configure.in (AC_TYPE_SIGNAL): Add - * configure: Re-generate. - * remote-sim.c: Signal returns RETSIGTYPE. - -Wed May 7 20:05:07 1997 Andrew Cagney - - * target.h (target_stop): Drop argument so it can be tested for - NULL. - -Sat May 3 20:51:48 1997 Mark Alexander - - * utils.c (floatformat_from_doublest): Handle infinity properly. - -Thu May 1 11:44:46 1997 Michael Snyder - - * Finalize merge from Hurd folk. - Mon Oct 30 16:41:04 1995 Miles Bader - * 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 - * infrun.c (sig_print_info): Deal better with long signal names. - Wed Nov 22 15:23:35 1995 Miles Bader - * thread.c (thread_id_to_pid): New function. - Fri Dec 1 13:25:25 1995 Miles Bader - * 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 - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 `' 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * remote.c (get_offsets): Don't use scanf for interpreting - response to qOffsets. - -Tue Apr 15 14:51:04 1997 Ian Lance Taylor - - * 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 - - * 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 - - * procfs.c (notice_signals): fix typo - -Mon Apr 14 16:25:10 1997 Ian Lance Taylor - - * gdbserver/Makefile.in (INSTALL): Change install.sh to - install-sh. - -Mon Apr 14 11:55:27 1997 Geoffrey Noer - - * config/i386/cygwin32.mh: remove -lkernel32 from XM_CLIBS - since gcc automatically includes it - -Thu Apr 10 13:20:53 1997 Geoffrey Noer - - * 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 - - * 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 - - * 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 - - * 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 - - * gdbinit.in: New file. - * .gdbinit: Remove. - * configure.in: Generate .gdbinit from gdbinit.in. - * configure: Rebuild. - -Sat Mar 29 13:57:20 1997 Fred Fish - - * 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 - - * Makefile.in (distclean): Remove .gdbinit. - -Fri Mar 28 15:38:04 1997 Mike Meissner - - * 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 - - * remote-mips.c: Clean up comment and extraneous semicolon - for mips_monitor_prompt variable. - -Thu Mar 27 12:46:58 1997 Mark Alexander - - * remote-mips.c: Add `set monitor-prompt' command. - -Wed Mar 26 06:47:44 1997 Mark Alexander - - 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 - - * 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 - - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - 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 - - * dsrec.c (load_srec): Print leading zeroes when printing section - addresses. - -Mon Mar 17 15:00:16 1997 Andrew Cagney - - * 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 - - * 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 - - * Makefile.in (elfread.o): Depend upon elf-bfd.h and elf/mips.h. - -Thu Mar 13 22:51:00 1997 Dawn Perchik - - * 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 - - * configure: Regenerated. - * configure.in: Run AC_CONFIG_AUX_DIR before AC_CANONICAL_SYSTEM. - -Thu Mar 13 11:00:22 1997 Doug Evans - - * 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 - - * 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 - - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * remote-mips.c: Put back the form feeds. - -Thu Feb 27 12:04:24 1997 Mark Alexander - - * 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 - - * 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 - - * maint.c: Eliminate -Wall warnings by including some header files. - -Tue Feb 18 13:06:30 1997 Mark Alexander - - * remote-sim.c (init_callbacks): Undo previous change. - -Tue Feb 18 11:13:00 1997 Dawn Perchik - - * 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 - - * main.c (print_gdb_help): Make static to match declaration. - -Thu Feb 13 18:18:18 1997 Dawn Perchik - - * remote-e7000.c, ser-e7kpc.c, serial.c: Remove // comments. - -Wed Feb 12 15:58:00 1997 Dawn Perchik - - * debugify.c, debugify.h: Make safe for non-ansi compilers. - -Wed Feb 12 15:30:00 1997 Dawn Perchik - - * defs.h: Fix prototypes for new cleanup functions. - -Wed Feb 12 15:08:47 1997 Dawn Perchik - - * 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 - - * 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 - - * c-valprint.c (c_val_print): Fix printing for arrays defined - with 0 length. - -Tue Feb 11 22:24:39 1997 Dawn Perchik - - * 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 - - * m32r-rom.c: #include . - #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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * config/powerpc/ppc{,le}-sim.mt (SIM): Remove the library - ../sim/common/libcommon.a. - -Tue Jan 28 15:54:13 1997 Michael Snyder - - * blockframe.c: fix a null pointer ref in generic_get_saved_register - -Tue Jan 28 15:39:50 1997 Geoffrey Noer - - * mn10200-tdep.c (mn10200_frame_chain): Get basic backtracing - working. - -Mon Jan 27 14:31:52 1997 Mark Alexander - -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 - - * 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 - - * 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 - - * 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 - - * config/mn10300/tm-mn10300.h: fix BREAKPOINT definition. - -Tue Jan 14 16:01:06 1997 Geoffrey Noer - - * 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 - - * 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 - - * 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 - - * 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 - - The following changes were made by - Elena Zannoni - Edith Epstein - David Taylor - - * 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 , - , 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 - - From J.T. Conklin : - * i386-stub.c: Fix error string in last change. - -1998-12-30 Jason Molenda (jsm@bugshack.cygnus.com) - - * utils.c: 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 - - * 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 - - The following changes were made by Jim Blandy , - Edith Epstein , Elena Zannoni - Stan Shebs , and David - Taylor , 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 - - * Makefile.in (READLINE_CFLAGS): Search $(READLINE_SRC)/.. rather - than $(READLINE_SRC) so #include will work. - * top.c: #include instead of "history.h". - * tracepoint.c: Likewise. - * mac-xdep.c: Likewise. - -Wed Dec 23 12:32:00 1998 Andrew Cagney - - * 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 - - * 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 - - * 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 - - * mips-tdep.c: (MIPS_DEFAULT_FPU_TYPE): Default to - MIPS_FPU_DOUBLE. - -1998-12-17 J.T. Conklin - - * 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 - - * 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 - - * 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 - - * configure.tgt (gdb_target): Identify mips64*vr4100*-*-elf* as - vr4100. - -Thu Dec 17 01:34:36 1998 Andrew Cagney - - * gdbtypes.c (build_gdbtypes): New function. - (_initialize_gdbtypes): Call. - -Wed Dec 16 11:47:00 1998 Andrew Cagney - - * 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 - - * 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 - - * 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 - - * monitor.c (monitor_expect, monitor_printf_noecho, - monitor_printf): Always compile EXTRA_RDEBUG code. - (RDEBUG): Ditto. - - From Michael Meissner : - * ppcbug-rom.c (init_ppc_cmds): Cleanup formatting. - -1998-12-08 Michael Meissner - - * 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 - - * 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 - - * 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 - - * 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 - - From J.T. Conklin : - * i386-stub.c (handle_exception): Add support for 'P' command. - (NUMREGS): New macro. - -Fri Dec 11 09:07:05 1998 Andrew Cagney - - * 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" was defining all WIF* macro's instead of filling in those - that missed. - -Fri Dec 11 09:52:04 1998 Andrew Cagney - - * 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 - - The following changes were made by Jim Blandy , - Edith Epstein , Elena Zannoni - Stan Shebs , and David - Taylor , 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 - - * 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 - - * config/i960/mon960.mt (SIM_OBJS, SIM): Define. - -Tue Dec 8 16:49:24 1998 Stan Shebs - - * NEWS: Add mentions of newly-added configurations. - -1998-12-08 Philippe De Muyter - - * 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 - - Merged in m68k-linux patch from Andreas Schwab - - 1998-12-01 Andreas Schwab - - * 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 - - * 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 - - * ax-gdb.c: Include target.h. - -Tue Dec 3 10:59:00 1998 Andrew Cagney - - * 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 - - * 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 - - * 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 - - * config/fr30/tm-fr30.h (INNER_THAN): Add parameters. - -Mon Nov 30 11:18:48 1998 Andrew Cagney - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * buildsym.c (end_symtab): Cleanup PROCESS_LINENUMBER_HOOK. - -Thu Nov 19 15:21:04 1998 Geoffrey Noer - - * 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 - - * configure.in: switch back to checking __CYGWIN32__ - * configure: regenerate - -Thu Nov 19 09:53:00 1998 Andrew Cagney - - * 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 - - * 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 - - * 29k-share/udi/udip2soc.c (UDIConnect): Replace sys_errlist with - strerror. - -Mon Nov 16 14:17:05 1998 Geoffrey Noer - - * 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 - - 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 - - * 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 - - * 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 - - * config/fr30/fr30.mt: New file. - * config/fr30/tm-fr30.h: New file. - -1998-11-05 Jim Wilson - - * 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 - - * 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 - - * win32-nat.c: Remove obsolete PPC conditionals. - -Wed Nov 4 18:44:31 1998 Dave Brolley - - * configure.tgt: Add fr30-*-elf*. - -1998-11-03 Jim Wilson - - * 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 - - * configure.in: Check cygwin* instead of cygwin32*. - * configure: regenerate - -Thu Oct 29 10:04:20 1998 Michael Snyder - - [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 - - * 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 - - * 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 - - * 29k-share/udi/udip2soc.c: Replace sys_errlist with strerror(). - -Thu Oct 22 09:56:55 1998 Andrew Cagney - - * 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 - - * 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 - - * core-sol2.c: #include , for sol2.7 weirdness. - -Fri Oct 16 15:31:38 1998 Michael Snyder - - * 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 - - * tm-sp64.h (SETUP_ARBITRARY_FRAME, FRAME_SPECIFICATION_DYADIC): - Remove, nevermore used. - -Thu Oct 15 16:55:00 1998 Andrew Cagney - - * command.c: Include "wait.h" after, rather than before, . - "wait.h" was defining all WIF* macro's instead of filling in those - that 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 - - * 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 - - * 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 - - * 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 - - * rs6000-tdep.c: Don't include tm.h twice. - -1998-10-08 Keith Seitz - - * 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 - - * 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 - - From David Purves : - * 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 - - * 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 - - * 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 - - * sol-thread.c: Fixed prototypes and calls to supply_fpregset and - fill_fpregset - -1998-10-02 Keith Seitz - - * 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 - - * 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 - - * breakpoint.c (bpstat_stop_status): Do not consider an - untripped watchpoint as a "hit". - -Thu Oct 1 20:52:39 1998 Andrew Cagney - - * 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 - - * 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 - - * 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 - - * 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 - - * remote.c (_initialize_remote, packet_command, print_packet): - Pretty print code. - -Wed Sep 23 12:32:54 1998 - - * remote.c (packet_command): Test REMOTE_DESC to determine if - remote connection is open. - -Tue Sep 22 22:27:24 1998 Mark Alexander - - Patch from Dawn Perchik : - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * remote-rdi.c: Prevent multiple attempts to close the remote - connection. - -Tue Sep 15 10:24:17 1998 Andrew Cagney - - * 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 - - * 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 - - * 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 - - * mn10300-tdep.c (mn10300_analyze_prologue): guard against NULL. - -Wed Sep 9 19:37:36 1998 Stan Shebs - - * 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 - - * 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 - - * 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 - - * README: Update remote debugging and testsuite info. - -Thu Sep 3 13:50:20 1998 Mark Alexander - - * 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 - - * top.c (context_hook): Define. - -Tue Aug 25 13:21:58 1998 Michael Snyder - - * 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 - - * tracepoint.c (collect_symbol): Handle register doubles that - are stored in two registers. - -Mon Aug 24 14:39:08 1998 Mark Alexander - - * 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 - - * 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 - - * i386v4-nat.c: Include sys/reg.h if present. - -Wed Aug 19 03:07:53 1998 Richard Henderson - - * config/alpha/alpha-linux (XDEPFILES): Build ser-tcp. - -1998-08-18 Fernando Nasser - - * 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 - - * 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 - - * 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 - - * 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 - - * remote-sim.c (simulator_command): Reset register cache after - simulator command. - -Wed Aug 12 09:00:26 1998 Stu Grossman - - * expprint.c (dump_prefix/postfix_expression): Don't try to print - type expressions. - -Tue Aug 11 11:33:25 1998 Stu Grossman - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * tracepoint.c (collect_symbol): handle LOC_ARG case. - -Thu Jul 23 15:07:40 1998 Dawn Perchik - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * tracepoint.c (set_raw_tracepoint): Cope with symbols that do not - have an associated directory. - -Mon Jul 13 15:21:04 1998 Mark Alexander - - * 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 - - * symtab.c (find_pc_sect_psymbol): allow case where textlow is 0 - -Thu Jul 2 15:57:58 1998 Frank Ch. Eigler - - * breakpoint.c (resolve_sal_pc): Accept absence of innermost - Lexical block for breakpoint resolution. - -Thu Jul 2 10:22:00 1998 Dawn Perchik - - * 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 - - * 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 - - * gnu-regex.c (re_comp): Add cast to char * before gettext calls. - -Sun Jun 28 11:35:48 1998 Peter Schauer - - 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 - - * 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 - - * mips-tdep.c (mips_push_arguments): Use 128-bit stack frame - alignment for inferior calls. - -Wed Jun 24 23:17:12 1998 Mark Alexander - - * mn10200-tdep.c (mn10200_analyze_prologue): Fix calculation - of jsr target address. - -Tue Jun 23 19:37:46 1998 Mark Alexander - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * dbxread.c (read_dbx_symtab): Don't lower texthigh for last psymtab. - -Thu Jun 4 18:35:04 1998 Stan Shebs - - * 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 - - * 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 - - * 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 - - * remote.c: merged. - - - Jim Blandy - (print_packet, remote_packet_command): New functions. - (_initialize_remote): Register the remote-packet command. - - David Taylor - (_initialize_remote): remote-compare is now - compare-sections. - - Elena Zannoni - (remote_compare_command): added warning, issued in case - of mismatch only. - -Thu Jun 4 08:25:38 1998 Michael Snyder - - * 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 - - * 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 - - * 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 - - * main.c (main): Check for NULL from getenv on CYGWIN32. - -Thu May 28 09:41:44 1998 Nick Clifton - - * monitor.c (monitor_vsprintf): Handle %%. Patch courtesy of - Felix Lee (flee@cygnus.com) - -Thu May 28 00:27:35 1998 Peter Schauer - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * remote.c (_initialize_remote): Typo extended__remote - -Thu May 21 13:14:25 1998 John Metzler - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * tracepoint.c (memrange_cmp): use const void * args to avoid - ANSI compiler warnings. - -1998-05-19 Jim Blandy - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * tracepoint.c (encode_actions): fix typo in printf format string. - -1998-05-15 Jim Blandy - - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * symtab.c (decode_line_1): set section for "break *" - -Wed May 13 20:58:02 1998 Mark Alexander - - * corefile.c (reopen_exec_file): Reopen the exec file if - it has changed. - -Wed May 13 15:22:02 1998 Mark Alexander - - * 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 - - * 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 - - * 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 - - * stabsread.c (read_one_struct_field): Check for typedef in type - tree before clearing bitfield information. - -1998-05-11 Jim Blandy - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * monitor.c: Turn off debug - -Fri May 1 09:29:56 1998 Peter Schauer - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * rom68k-rom.c (_initialize_rom68k): Fix unresolved init_rom_68kcmds. - -Mon Apr 27 14:32:21 1998 Mark Alexander - - * 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 - - * 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 - - * 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 - - * Makefile.in: enable EXEEXT setting - -Fri Apr 24 11:53:49 1998 David Taylor - - * 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 - - * symfile.c (deduce_language_from_filename): .class implies java. - -Thu Apr 23 12:52:21 1998 Philippe De Muyter - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * gdb/gdb_string.h (strdup): Declare only if not defined as a - macro. - -Mon Apr 20 14:18:45 1998 J. Kean Johnston - - * 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 - - * 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 - - * 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 - - * solib.c (enable_break): Only call warning once - instead of three times. - -Tue Apr 14 16:52:59 1998 Mark Alexander - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * mips-tdep.c (mips_push_arguments): Specify dimention of valbuf - using MAX_REGISTER_RAW_SIZE. - -Sat Apr 4 10:05:00 1998 Dawn Perchik - - * infrun.c: Fix prototype of signals_info to match static funtion. - -Thu Apr 2 12:47:41 1998 Frank Ch. Eigler - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * NEWS: Update for 4.17 release. - -Fri Mar 27 10:15:50 1998 David Taylor - - * 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 - - * ax-gdb.h (gen_trace_for_expr): Add prototype. - -Thu Mar 26 17:24:23 1998 David Taylor - - * tracepoint.c (validate_actionline): Fix memory leak. - (encode_actions): Fix memory leak. - -Thu Mar 26 16:16:55 1998 David Taylor - - * tracepoint.c (trace_mention): New function. - (trace_command): Call it. - -1998-03-26 Jim Blandy - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - merged changes from Foundry (list follows by file/author): - - - Tom Tromey - * 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 - (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 - (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 - (quit_confirm): Change exit message again - for GUI. - (pc_changed_hook): Add prototype. - - Tom Tromey - (quit_confirm): Added missing `else'. - (quit_confirm): Special-case message if init_ui_hook is - set. - - * symtab.c - - Martin M. Hunt - (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 - (_initialize_serial): Add a description of - "set remotelogbase". - - * findvar.c - - Martin M. Hunt - (write_register_gen): Add call to - pc_changed_hook if the PC is being changed. - - * defs.h - - Martin M. Hunt - (pc_changed_hook): Define. - - * command.c - - Martin M. Hunt - (do_setshow_command): If no arguments are supplied, - don't dump core, instead print out an error message. - - * breakpoint.c - - Martin M. Hunt - 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 - Add declarations for annotation hooks. - - * annotate.c - - Keith Seitz - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * Makefile.in (distclean): Add `rm $(YYFILES)'. - -Mon Mar 2 16:45:48 1998 Philippe De Muyter - - * coffread.c (coff_read_enum_type): Set TYPE_FLAG_UNSIGNED if enum - is unsigned. - -Sun Mar 2 15:16:13 1998 Richard Henderson - - * configure.host, configure.tgt: Add sparc-linux. - * sparc-nat.c: Include not 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 - - * 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 - - * remote-sim.c (gdbsim_fetch_register): Don't abort when the - register size is wrong. - -Thu Feb 19 16:49:48 1998 John Metzler - - * 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 - - * 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 - - * acconfig.h: FORCE_MMCHECK changed to MMCHECK_FORCE. - * configure.in: Ditto. - * configure: Regenerated. - -Tue Feb 17 14:07:34 1998 Peter Schauer - - * 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 - - * 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 - - * 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 - - * 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 - - * config/d10v/tm-d10v.h (USE_STRUCT_CONVENTION): Define. True when - sizeof type > 1. - -Sun Feb 15 16:10:50 1998 Ron Unrau - - * 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 - - * 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 - - * 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 - - * d10v-tdep.c (show_regs): Avoid use of %llx when printing 8 byte - accumulators. - -Thu Feb 12 17:10:22 1998 Andrew Cagney - - * 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 - - * 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 - - * config/i386/fbsd.mh (XDEPFILES): Add ser-tcp.o. - -Tue Feb 10 17:50:37 1998 Keith Seitz - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - Changes by - * 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 - - * 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 - - Suggested by Chris Walter : - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * top.c (print_gdb_version): Restore to original message. - -Mon Jan 19 13:34:40 1998 Ian Lance Taylor - - 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 - - * top.c (print_gdb_version): delete stutter. - -Thu Jan 15 12:29:13 1998 Nick Clifton - - * 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 - - * 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 - - 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 - - * 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 - - * rdi-share/hostchan.c: Remove gettimeofday declaration. - -Thu Jan 8 11:03:59 1998 Nick Clifton - - * 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 - - * 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 - - * 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 - - * 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 -#include "gdb_string.h" -#ifdef HAVE_UNISTD_H -#include -#endif - -#ifdef HAVE_WAIT_H -# include -#else -# ifdef HAVE_SYS_WAIT_H -# include -# 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 - (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 - -#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 - -#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 - := - | (exp-concat *) - | (exp-attribute ) - - := ( * ) - - := ( ) -@end example - -The string-concatenation of all of the @code{} (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 -;; 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 -;; It was later rewritten by rms. Some ideas were due to Masanobu. -;; Grand Unification (sdb/dbx support) by Eric S. Raymond -;; The overloading code was then rewritten by Barry Warsaw , -;; who also hacked the mode to use comint.el. Shane Hartman -;; 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: -;; -;; -;; comint-prompt-regexp -;; gud--massage-args -;; gud--marker-filter -;; gud--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\C-j -;; -;; The tag is a string obeying symbol syntax. -;; -;; The optional part `' 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 , -;;; Rich Schaefer 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 -#include "frame.h" -#include "inferior.h" - -#include -#include -#include -#include -#include -#include -#if 0 -#include -#endif -#include - -/***************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 - -#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) -#include -#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 */ -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 *) ®isters[ 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 *) ®isters[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 *) ®isters[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 -#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 -#else -/* We need this for `gnu-regex.h', and perhaps for the Emacs include files. */ -# include -#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: must be included before . */ -# include -# include -#endif - -/* This is for other GNU distributions with internationalized messages. */ -/* CYGNUS LOCAL: ../intl will handle this for us */ -#ifdef ENABLE_NLS -# include -#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 -# 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 -# 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 -# 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 - -/* 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 -# 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 - -/* It is useful to test things that ``must'' be true when debugging. */ -# include - -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 (®_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 - set_number_at - succeed_n - - jump_n - (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; - - - /* \ has been turned into a `duplicate' command which is - followed by the numeric value of 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 ? ®s : (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 must be included (by the caller) before - . */ - -#if !defined _POSIX_C_SOURCE && !defined _POSIX_SOURCE && defined VMS -/* VMS doesn't have `size_t' in , even though POSIX says it - should be there. */ -# include -#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 \ matches . - If not set, then \ 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 -#include -#include - -/* 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 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 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 (¶m_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 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 " - * 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 -#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 - -#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 -#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 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 -- cgit v1.1