diff options
author | Daniel Jacobowitz <drow@false.org> | 2006-03-29 22:58:55 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2006-03-29 22:58:55 +0000 |
commit | f4267320e53ab3885d2b509099528472cc1fef9a (patch) | |
tree | a617b6b58965b92d02e2aceda913a85ae66ae8b0 /gdb | |
parent | 698ba9341ed2a509079635b532aa3593d86aa047 (diff) | |
download | gdb-f4267320e53ab3885d2b509099528472cc1fef9a.zip gdb-f4267320e53ab3885d2b509099528472cc1fef9a.tar.gz gdb-f4267320e53ab3885d2b509099528472cc1fef9a.tar.bz2 |
2006-03-29 Daniel Jacobowitz <dan@codesourcery.com>
* NEWS: Mention the removal of NLM.
2006-03-29 Steve Ellcey <sje@cup.hp.com>
* Makefile.in (nlm): Remove target.
* configure.tgt (i[34567]86-*-netware*): Do not set build_nlm.
* configure.ac: Remove AC_CONFIG_SUBDIRS of nlm.
* configure: Regenerate.
* doc/gdb.texinfo: Remove gdbserve.nlm documentation.
* nlm: Remove directory.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 13 | ||||
-rw-r--r-- | gdb/Makefile.in | 3 | ||||
-rw-r--r-- | gdb/NEWS | 2 | ||||
-rwxr-xr-x | gdb/configure | 10 | ||||
-rw-r--r-- | gdb/configure.ac | 6 | ||||
-rw-r--r-- | gdb/configure.tgt | 4 | ||||
-rw-r--r-- | gdb/doc/gdb.texinfo | 46 | ||||
-rw-r--r-- | gdb/nlm/Makefile.in | 176 | ||||
-rwxr-xr-x | gdb/nlm/configure | 1089 | ||||
-rw-r--r-- | gdb/nlm/configure.in | 55 | ||||
-rw-r--r-- | gdb/nlm/gdbserve.c | 1033 | ||||
-rw-r--r-- | gdb/nlm/gdbserve.def | 42 | ||||
-rw-r--r-- | gdb/nlm/i386.c | 100 | ||||
-rw-r--r-- | gdb/nlm/i386.h | 13 | ||||
-rw-r--r-- | gdb/nlm/ppc.c | 244 | ||||
-rw-r--r-- | gdb/nlm/ppc.h | 165 | ||||
-rw-r--r-- | gdb/nlm/prelude.c | 67 |
17 files changed, 16 insertions, 3052 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7242fd9..69d3ba7 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,18 @@ 2006-03-29 Daniel Jacobowitz <dan@codesourcery.com> + * NEWS: Mention the removal of NLM. + +2006-03-29 Steve Ellcey <sje@cup.hp.com> + + * Makefile.in (nlm): Remove target. + * configure.tgt (i[34567]86-*-netware*): Do not set build_nlm. + * configure.ac: Remove AC_CONFIG_SUBDIRS of nlm. + * configure: Regenerate. + * doc/gdb.texinfo: Remove gdbserve.nlm documentation. + * nlm: Remove directory. + +2006-03-29 Daniel Jacobowitz <dan@codesourcery.com> + * Makefile.in (utils.o): Update. * top.c (in_user_command): New. (command_line_input): Use input_from_terminal_p. diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 5d9f9e5..644e9d9 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -1206,9 +1206,6 @@ $(TUI)$(EXEEXT): tui-main.o libgdb.a $(ADD_DEPS) $(CDEPS) $(TDEPLIBS) -o $(TUI)$(EXEEXT) tui-main.o libgdb.a \ $(TDEPLIBS) $(TUI_LIBRARY) $(CLIBS) $(LOADLIBES) -nlm: force - rootme=`pwd`; export rootme; $(MAKE) $(TARGET_FLAGS_TO_PASS) DO=all DODIRS=nlm subdir_do - # Create a library of the gdb object files and build GDB by linking # against that. # @@ -51,6 +51,8 @@ network sockets or serial ports. The ARM rdi-share module. +The Netware NLM debug server. + *** Changes in GDB 6.4 * New native configurations diff --git a/gdb/configure b/gdb/configure index 869eb4b..3bce08f 100755 --- a/gdb/configure +++ b/gdb/configure @@ -313,7 +313,6 @@ ac_subdirs_all="$ac_subdirs_all doc testsuite" ac_subdirs_all="$ac_subdirs_all gdbtk" ac_subdirs_all="$ac_subdirs_all multi-ice" ac_subdirs_all="$ac_subdirs_all gdbserver" -ac_subdirs_all="$ac_subdirs_all nlm" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os SET_MAKE RANLIB ac_ct_RANLIB ALLOCA USE_NLS MSGFMT GMSGFMT XGETTEXT USE_INCLUDED_LIBINTL CATALOGS CATOBJEXT DATADIRNAME GMOFILES INSTOBJEXT INTLDEPS INTLLIBS INTLOBJS POFILES POSUB INCLUDE_LOCALE_H GT_NO GT_YES MKINSTALLDIRS l localedir PACKAGE subdirs AWK INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S YACC AR ac_ct_AR DLLTOOL ac_ct_DLLTOOL WINDRES ac_ct_WINDRES MIG ac_ct_MIG CONFIG_LDFLAGS TARGET_SYSTEM_ROOT TARGET_SYSTEM_ROOT_DEFINE WARN_CFLAGS WERROR_CFLAGS SER_HARDWIRE WIN32LIBS LIBGUI GUI_CFLAGS_X WIN32LDAPP TCL_VERSION TCL_MAJOR_VERSION TCL_MINOR_VERSION TCL_CC TCL_DEFS TCL_SHLIB_CFLAGS TCL_SHLIB_LD TCL_SHLIB_LD_LIBS TCL_SHLIB_SUFFIX TCL_DL_LIBS TCL_LD_FLAGS TCL_LD_SEARCH_FLAGS TCL_CC_SEARCH_FLAGS TCL_COMPAT_OBJS TCL_RANLIB TCL_BUILD_LIB_SPEC TCL_LIB_SPEC TCL_LIB_VERSIONS_OK TK_VERSION TK_DEFS TK_BUILD_INCLUDES TK_XINCLUDES TK_XLIBSW TK_BUILD_LIB_SPEC TK_LIB_SPEC TCLHDIR TKHDIR ITCLHDIR ITKHDIR ITCL_VERSION ITCL_DEFS ITCL_BUILD_INCLUDES ITCL_BUILD_LIB_SPEC ITCL_LIB_SPEC ITK_VERSION ITK_DEFS ITK_BUILD_INCLUDES ITK_BUILD_LIB_SPEC ITK_LIB_SPEC X_CFLAGS X_LDFLAGS X_LIBS TCL_DEPS TK_DEPS ITCLLIB ITCL_DEPS ITKLIB ITK_DEPS GDBTKLIBS GDBTK_CFLAGS GDBTK_SRC_DIR IGNORE_SIM IGNORE_SIM_OBS ENABLE_CFLAGS PROFILE_CFLAGS CONFIG_OBS CONFIG_DEPS CONFIG_SRCS CONFIG_ALL CONFIG_CLEAN CONFIG_INSTALL CONFIG_UNINSTALL target_subdir frags xm_h tm_h nm_h LIBICONV LIBOBJS LTLIBOBJS' ac_subst_files='host_makefile_frag target_makefile_frag' @@ -21638,15 +21637,6 @@ echo "${ECHO_T}no" >&6 fi fi -# We configure the nlm subdirectory on netware targets, as instructed -# by configure.tgt. -if test "x$build_nlm" = xyes; then - - -subdirs="$subdirs nlm" - -fi - # If hostfile (XM_FILE) and/or targetfile (DEPRECATED_TM_FILE) and/or # nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link # to an empty version. diff --git a/gdb/configure.ac b/gdb/configure.ac index 2725e18..8f66b4d 100644 --- a/gdb/configure.ac +++ b/gdb/configure.ac @@ -1513,12 +1513,6 @@ if test "x$target" = "x$host"; then fi fi -# We configure the nlm subdirectory on netware targets, as instructed -# by configure.tgt. -if test "x$build_nlm" = xyes; then - AC_CONFIG_SUBDIRS(nlm) -fi - # If hostfile (XM_FILE) and/or targetfile (DEPRECATED_TM_FILE) and/or # nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link # to an empty version. diff --git a/gdb/configure.tgt b/gdb/configure.tgt index d305b68..4092fe1 100644 --- a/gdb/configure.tgt +++ b/gdb/configure.tgt @@ -96,9 +96,7 @@ i[34567]86-*-linux*) gdb_target=linux build_gdbserver=yes ;; i[34567]86-*-gnu*) gdb_target=i386gnu ;; -i[34567]86-*-netware*) gdb_target=i386 - build_nlm=yes - ;; +i[34567]86-*-netware*) gdb_target=i386 ;; i[34567]86-*-cygwin*) gdb_target=cygwin ;; i[34567]86-*-*) gdb_target=i386 ;; diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 15dd18d..b50007d 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -12139,7 +12139,6 @@ want to try. @menu * Connecting:: Connecting to a remote target * Server:: Using the gdbserver program -* NetWare:: Using the gdbserve.nlm program * Remote configuration:: Remote configuration * remote stub:: Implementing a remote stub @end menu @@ -12396,51 +12395,6 @@ program is considered running after the connection. @end table -@node NetWare -@section Using the @code{gdbserve.nlm} program - -@kindex gdbserve.nlm -@code{gdbserve.nlm} is a control program for NetWare systems, which -allows you to connect your program with a remote @value{GDBN} via -@code{target remote}. - -@value{GDBN} and @code{gdbserve.nlm} communicate via a serial line, -using the standard @value{GDBN} remote serial protocol. - -@table @emph -@item On the target machine, -you need to have a copy of the program you want to debug. -@code{gdbserve.nlm} does not need your program's symbol table, so you -can strip the program if necessary to save space. @value{GDBN} on the -host system does all the symbol handling. - -To use the server, you must tell it how to communicate with -@value{GDBN}; the name of your program; and the arguments for your -program. The syntax is: - -@smallexample -load gdbserve [ BOARD=@var{board} ] [ PORT=@var{port} ] - [ BAUD=@var{baud} ] @var{program} [ @var{args} @dots{} ] -@end smallexample - -@var{board} and @var{port} specify the serial line; @var{baud} specifies -the baud rate used by the connection. @var{port} and @var{node} default -to 0, @var{baud} defaults to 9600@dmn{bps}. - -For example, to debug Emacs with the argument @samp{foo.txt}and -communicate with @value{GDBN} over serial port number 2 or board 1 -using a 19200@dmn{bps} connection: - -@smallexample -load gdbserve BOARD=1 PORT=2 BAUD=19200 emacs foo.txt -@end smallexample - -@item -On the @value{GDBN} host machine, connect to your target (@pxref{Connecting,, -Connecting to a remote target}). - -@end table - @node Remote configuration @section Remote configuration diff --git a/gdb/nlm/Makefile.in b/gdb/nlm/Makefile.in deleted file mode 100644 index 18a74c4..0000000 --- a/gdb/nlm/Makefile.in +++ /dev/null @@ -1,176 +0,0 @@ -#Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -srcdir = @srcdir@ -VPATH = @srcdir@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -host_alias = @host_alias@ -target_alias = @target_alias@ -program_transform_name = @program_transform_name@ -bindir = @bindir@ -libdir = @libdir@ -tooldir = $(libdir)/$(target_alias) - -datadir = @datadir@ -mandir = @mandir@ -man1dir = $(mandir)/man1 -man2dir = $(mandir)/man2 -man3dir = $(mandir)/man3 -man4dir = $(mandir)/man4 -man5dir = $(mandir)/man5 -man6dir = $(mandir)/man6 -man7dir = $(mandir)/man7 -man8dir = $(mandir)/man8 -man9dir = $(mandir)/man9 -infodir = @infodir@ -htmldir = $(prefix)/html -includedir = @includedir@ - -SHELL = @SHELL@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ - -CC_FOR_TARGET = ` \ - if [ -f ../../gcc/xgcc ] ; then \ - echo ../../gcc/xgcc -B../../gcc/; \ - else \ - t='$(program_transform_name)'; echo gcc | sed -e '' $$t; \ - fi` - -NLMCONV_FOR_TARGET = ` \ - if [ -f ../../binutils/nlmconv ] ; then \ - echo ../../binutils/nlmconv; \ - else \ - t='$(program_transform_name)'; echo nlmconv | sed -e '' $$t; \ - fi` - -# All the includes used for CFLAGS and for lint. -INCLUDE_CFLAGS = -I. -I${srcdir} - -# CFLAGS is specifically reserved for setting from the command line -# when running make. I.E. "make CFLAGS=-Wmissing-prototypes". -CFLAGS = -g -# INTERNAL_CFLAGS is the aggregate of all other *CFLAGS macros. -INTERNAL_CFLAGS = ${CFLAGS} ${INCLUDE_CFLAGS} ${USER_CFLAGS} -LDFLAGS = $(CFLAGS) - -# Perhaps should come from parent Makefile -VERSION = gdbserve-4.12 -DIST=gdb - -# target-dependent makefile fragment come in here. -@target_makefile_frag@ -# End target-dependent makefile fragment - -# All source files that go into linking GDB remote server. - -DEPFILES = $(GDBSERVE_DEPFILES) - -SOURCES = $(ALLDEPFILES) -TAGFILES = $(SOURCES) ${HFILES} ${ALLPARAM} ${POSSLIBS} - -# Prevent Sun make from putting in the machine type. Setting -# TARGET_ARCH to nothing works for SunOS 3, 4.0, but not for 4.1. -.c.o: - ${CC_FOR_TARGET} -c ${INTERNAL_CFLAGS} $< - -.S.o: - ${CC_FOR_TARGET} -c ${INTERNAL_CFLAGS} $< - -all: gdbserve.nlm - -# Traditionally "install" depends on "all". But it may be useful -# not to; for example, if the user has made some trivial change to a -# source file and doesn't care about rebuilding or just wants to save the -# time it takes for make to check that all is up to date. -# install-only is intended to address that need. -install: all install-only -install-only: - $(INSTALL) gdbserve.nlm $(bindir)/gdbserve.nlm - -uninstall: force - rm -f $(bindir)/gdbserve.nlm - -installcheck: -check: -info dvi: -install-info: -clean-info: -html: -install-html: - -gdbserve.nlm: gdbserve.O $(srcdir)/gdbserve.def - ${NLMCONV_FOR_TARGET} -T $(srcdir)/gdbserve.def - -gdbserve.O: prelude.o gdbserve.o $(TDEPFILES) - ${CC_FOR_TARGET} $(LDFLAGS) -r -o gdbserve.O prelude.o gdbserve.o ${TDEPFILES} - -# Put the proper machine-specific files first, so M-. on a machine -# specific routine gets the one for the correct machine. -# The xyzzy stuff below deals with empty DEPFILES -TAGS: ${TAGFILES} - etags `find ${srcdir}/../config -name $(DEPRECATED_TM_FILE) -print` \ - `find ${srcdir}/../config -name ${XM_FILE} -print` \ - `find ${srcdir}/../config -name ${NAT_FILE} -print` \ - `for i in yzzy ${DEPFILES}; do \ - if [ x$$i != xyzzy ]; then \ - echo ${srcdir}/$$i | sed -e 's/\.o$$/\.c/' ; \ - fi; \ - done` \ - ${TAGFILES} -tags: TAGS - -clean: - rm -f *.o ${ADD_FILES} *~ - rm -f gdbserve.O gdbserve.nlm core make.log - -distclean: clean TAGS - rm -f config.log config.cache config.status - rm -f Makefile - -maintainer-clean realclean: clean - rm -f TAGS - rm -f config.log config.cache config.status - rm -f Makefile - -Makefile: Makefile.in config.status @target_makefile_frag_path@ - $(SHELL) config.status - -config.status: configure - $(SHELL) config.status --recheck - -force: - -# GNU Make has an annoying habit of putting *all* the Makefile variables -# into the environment, unless you include this target as a circumvention. -# Rumor is that this will be fixed (and this target can be removed) -# in GNU Make 4.0. -.NOEXPORT: - -# GNU Make 3.63 has a different problem: it keeps tacking command line -# overrides onto the definition of $(MAKE). This variable setting -# will remove them. -MAKEOVERRIDES= - -# This is the end of "Makefile.in". diff --git a/gdb/nlm/configure b/gdb/nlm/configure deleted file mode 100755 index ca1146a..0000000 --- a/gdb/nlm/configure +++ /dev/null @@ -1,1089 +0,0 @@ -#! /bin/sh - -# Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.13 -# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. - -# Defaults: -ac_help= -ac_default_prefix=/usr/local -# Any additions from configure.in: - -# Initialize some variables set by options. -# The variables have the same names as the options, with -# dashes changed to underlines. -build=NONE -cache_file=./config.cache -exec_prefix=NONE -host=NONE -no_create= -nonopt=NONE -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -sitefile= -srcdir= -target=NONE -verbose= -x_includes=NONE -x_libraries=NONE -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -# Initialize some other variables. -subdirs= -MFLAGS= MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} -# Maximum number of lines to put in a shell here document. -ac_max_here_lines=12 - -ac_prev= -for ac_option -do - - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - case "$ac_option" in - -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) ac_optarg= ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case "$ac_option" in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir="$ac_optarg" ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build="$ac_optarg" ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file="$ac_optarg" ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir="$ac_optarg" ;; - - -disable-* | --disable-*) - ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - eval "enable_${ac_feature}=no" ;; - - -enable-* | --enable-*) - ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "enable_${ac_feature}='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix="$ac_optarg" ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he) - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat << EOF -Usage: configure [options] [host] -Options: [defaults in brackets after descriptions] -Configuration: - --cache-file=FILE cache test results in FILE - --help print this message - --no-create do not create output files - --quiet, --silent do not print \`checking...' messages - --site-file=FILE use FILE as the site file - --version print the version of autoconf that created configure -Directory and file names: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [same as prefix] - --bindir=DIR user executables in DIR [EPREFIX/bin] - --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] - --libexecdir=DIR program executables in DIR [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data in DIR - [PREFIX/share] - --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data in DIR - [PREFIX/com] - --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] - --libdir=DIR object code libraries in DIR [EPREFIX/lib] - --includedir=DIR C header files in DIR [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] - --infodir=DIR info documentation in DIR [PREFIX/info] - --mandir=DIR man documentation in DIR [PREFIX/man] - --srcdir=DIR find the sources in DIR [configure dir or ..] - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM - run sed PROGRAM on installed program names -EOF - cat << EOF -Host type: - --build=BUILD configure for building on BUILD [BUILD=HOST] - --host=HOST configure for HOST [guessed] - --target=TARGET configure for TARGET [TARGET=HOST] -Features and packages: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR -EOF - if test -n "$ac_help"; then - echo "--enable and --with options recognized:$ac_help" - fi - exit 0 ;; - - -host | --host | --hos | --ho) - ac_prev=host ;; - -host=* | --host=* | --hos=* | --ho=*) - host="$ac_optarg" ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir="$ac_optarg" ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir="$ac_optarg" ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir="$ac_optarg" ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir="$ac_optarg" ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir="$ac_optarg" ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir="$ac_optarg" ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir="$ac_optarg" ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix="$ac_optarg" ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix="$ac_optarg" ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix="$ac_optarg" ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name="$ac_optarg" ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir="$ac_optarg" ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir="$ac_optarg" ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site="$ac_optarg" ;; - - -site-file | --site-file | --site-fil | --site-fi | --site-f) - ac_prev=sitefile ;; - -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) - sitefile="$ac_optarg" ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir="$ac_optarg" ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir="$ac_optarg" ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target="$ac_optarg" ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.13" - exit 0 ;; - - -with-* | --with-*) - ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "with_${ac_package}='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`echo $ac_option|sed -e 's/-*without-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - eval "with_${ac_package}=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes="$ac_optarg" ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries="$ac_optarg" ;; - - -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } - ;; - - *) - if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then - echo "configure: warning: $ac_option: invalid host type" 1>&2 - fi - if test "x$nonopt" != xNONE; then - { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } - fi - nonopt="$ac_option" - ;; - - esac -done - -if test -n "$ac_prev"; then - { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } -fi - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 6 checking for... messages and results -# 5 compiler messages saved in config.log -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>./config.log - -echo "\ -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. -" 1>&5 - -# Strip out --no-create and --no-recursion so they do not pile up. -# Also quote any args containing shell metacharacters. -ac_configure_args= -for ac_arg -do - case "$ac_arg" in - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) ;; - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ac_configure_args="$ac_configure_args '$ac_arg'" ;; - *) ac_configure_args="$ac_configure_args $ac_arg" ;; - esac -done - -# NLS nuisances. -# Only set these to C if already set. These must not be set unconditionally -# because not all systems understand e.g. LANG=C (notably SCO). -# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! -# Non-C LC_CTYPE values break the ctype check. -if test "${LANG+set}" = set; then LANG=C; export LANG; fi -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi -if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo > confdefs.h - -# A filename unique to this package, relative to the directory that -# configure is in, which we can look for to find out if srcdir is correct. -ac_unique_file=gdbserve.c - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_prog=$0 - ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } - else - { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } - fi -fi -srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` - -# Prefer explicitly selected file to automatically selected ones. -if test -z "$sitefile"; then - if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi - fi -else - CONFIG_SITE="$sitefile" -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - echo "loading site script $ac_site_file" - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - echo "loading cache $cache_file" - . $cache_file -else - echo "creating cache $cache_file" - > $cache_file -fi - -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -ac_exeext= -ac_objext=o -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -else - ac_n= ac_c='\c' ac_t= -fi - - - -ac_aux_dir= -for ac_dir in `cd $srcdir;pwd`/../.. $srcdir/`cd $srcdir;pwd`/../..; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in `cd $srcdir;pwd`/../.. $srcdir/`cd $srcdir;pwd`/../.." 1>&2; exit 1; } -fi -ac_config_guess=$ac_aux_dir/config.guess -ac_config_sub=$ac_aux_dir/config.sub -ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. - - -# Do some error checking and defaulting for the host and target type. -# The inputs are: -# configure --host=HOST --target=TARGET --build=BUILD NONOPT -# -# The rules are: -# 1. You are not allowed to specify --host, --target, and nonopt at the -# same time. -# 2. Host defaults to nonopt. -# 3. If nonopt is not specified, then host defaults to the current host, -# as determined by config.guess. -# 4. Target and build default to nonopt. -# 5. If nonopt is not specified, then target and build default to host. - -# The aliases save the names the user supplied, while $host etc. -# will get canonicalized. -case $host---$target---$nonopt in -NONE---*---* | *---NONE---* | *---*---NONE) ;; -*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;; -esac - - -# Make sure we can run config.sub. -if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : -else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } -fi - -echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:584: checking host system type" >&5 - -host_alias=$host -case "$host_alias" in -NONE) - case $nonopt in - NONE) - if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : - else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } - fi ;; - *) host_alias=$nonopt ;; - esac ;; -esac - -host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` -host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$host" 1>&6 - -echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:605: checking target system type" >&5 - -target_alias=$target -case "$target_alias" in -NONE) - case $nonopt in - NONE) target_alias=$host_alias ;; - *) target_alias=$nonopt ;; - esac ;; -esac - -target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias` -target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$target" 1>&6 - -echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:623: checking build system type" >&5 - -build_alias=$build -case "$build_alias" in -NONE) - case $nonopt in - NONE) build_alias=$host_alias ;; - *) build_alias=$nonopt ;; - esac ;; -esac - -build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` -build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$build" 1>&6 - -test "$host_alias" != "$target_alias" && - test "$program_prefix$program_suffix$program_transform_name" = \ - NONENONEs,x,x, && - program_prefix=${target_alias}- - -if test "$program_transform_name" = s,x,x,; then - program_transform_name= -else - # Double any \ or $. echo might interpret backslashes. - cat <<\EOF_SED > conftestsed -s,\\,\\\\,g; s,\$,$$,g -EOF_SED - program_transform_name="`echo $program_transform_name|sed -f conftestsed`" - rm -f conftestsed -fi -test "$program_prefix" != NONE && - program_transform_name="s,^,${program_prefix},; $program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" - -# sed with no file args requires a program. -test "$program_transform_name" = "" && program_transform_name="s,x,x," - - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# ./install, which can be erroneously created by make from ./install.sh. -echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:677: checking for a BSD compatible install" >&5 -if test -z "$INSTALL"; then -if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" - for ac_dir in $PATH; do - # Account for people who put trailing slashes in PATH elements. - case "$ac_dir/" in - /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - if test -f $ac_dir/$ac_prog; then - if test $ac_prog = install && - grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - else - ac_cv_path_install="$ac_dir/$ac_prog -c" - break 2 - fi - fi - done - ;; - esac - done - IFS="$ac_save_IFS" - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL="$ac_cv_path_install" - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL="$ac_install_sh" - fi -fi -echo "$ac_t""$INSTALL" 1>&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - - -# Map target cpu into the config cpu subdirectory name. -# The default is $target_cpu. -case "${target_cpu}" in -alpha) gdb_target_cpu=alpha ;; -c[12]) gdb_target_cpu=convex ;; -hppa*) gdb_target_cpu=pa ;; -i[34567]86) gdb_target_cpu=i386 ;; -m68*) gdb_target_cpu=m68k ;; -np1) gdb_target_cpu=gould ;; -pn) gdb_target_cpu=gould ;; -pyramid) gdb_target_cpu=pyr ;; -sparc*) gdb_target_cpu=sparc ;; -*) gdb_target_cpu=$target_cpu ;; -esac - -target_makefile_frag=${srcdir}/../config/${gdb_target_cpu}/gdbserve.mt -if ! -f ${target_makefile_frag} ; then - { echo "configure: error: "*** GDBSERVE does not support target ${target}"" 1>&2; exit 1; } -fi - -target_makefile_frag_path=$target_makefile_frag - - - -cpufile=`sed -n ' -s/CPU_FILE *= *\(^ *\)/\1/p -' ${target_makefile_frag} - -files= -links= -rm -f cpu.h -if "${cpufile}" != "" ; then - files="${files} ${cpufile}.h" - links="${links} cpu.h" -fi - - -trap '' 1 2 15 -cat > confcache <<\EOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. -# -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. -# -EOF -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -(set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote substitution - # turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - -e "s/'/'\\\\''/g" \ - -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' - ;; - esac >> confcache -if cmp -s $cache_file confcache; then - : -else - if test -w $cache_file; then - echo "updating cache $cache_file" - cat confcache > $cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Any assignment to VPATH causes Sun make to only execute -# the first set of double-colon rules, so remove it if not needed. -# If there is a colon in the path, we need to keep it. -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' -fi - -trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -cat > conftest.defs <<\EOF -s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g -s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g -s%\[%\\&%g -s%\]%\\&%g -s%\$%$$%g -EOF -DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` -rm -f conftest.defs - - -# Without the "./", some shells look in PATH for config.status. -: ${CONFIG_STATUS=./config.status} - -echo creating $CONFIG_STATUS -rm -f $CONFIG_STATUS -cat > $CONFIG_STATUS <<EOF -#! /bin/sh -# Generated automatically by configure. -# Run this file to recreate the current configuration. -# This directory was configured as follows, -# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# -# $0 $ac_configure_args -# -# Compiler output produced by configure, useful for debugging -# configure, is in ./config.log if it exists. - -ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" -for ac_option -do - case "\$ac_option" in - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" - exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; - -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.13" - exit 0 ;; - -help | --help | --hel | --he | --h) - echo "\$ac_cs_usage"; exit 0 ;; - *) echo "\$ac_cs_usage"; exit 1 ;; - esac -done - -ac_given_srcdir=$srcdir -ac_given_INSTALL="$INSTALL" - -trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 -EOF -cat >> $CONFIG_STATUS <<EOF - -# Protect against being on the right side of a sed subst in config.status. -sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; - s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF -$ac_vpsub -$extrasub -s%@SHELL@%$SHELL%g -s%@CFLAGS@%$CFLAGS%g -s%@CPPFLAGS@%$CPPFLAGS%g -s%@CXXFLAGS@%$CXXFLAGS%g -s%@FFLAGS@%$FFLAGS%g -s%@DEFS@%$DEFS%g -s%@LDFLAGS@%$LDFLAGS%g -s%@LIBS@%$LIBS%g -s%@exec_prefix@%$exec_prefix%g -s%@prefix@%$prefix%g -s%@program_transform_name@%$program_transform_name%g -s%@bindir@%$bindir%g -s%@sbindir@%$sbindir%g -s%@libexecdir@%$libexecdir%g -s%@datadir@%$datadir%g -s%@sysconfdir@%$sysconfdir%g -s%@sharedstatedir@%$sharedstatedir%g -s%@localstatedir@%$localstatedir%g -s%@libdir@%$libdir%g -s%@includedir@%$includedir%g -s%@oldincludedir@%$oldincludedir%g -s%@infodir@%$infodir%g -s%@mandir@%$mandir%g -s%@host@%$host%g -s%@host_alias@%$host_alias%g -s%@host_cpu@%$host_cpu%g -s%@host_vendor@%$host_vendor%g -s%@host_os@%$host_os%g -s%@target@%$target%g -s%@target_alias@%$target_alias%g -s%@target_cpu@%$target_cpu%g -s%@target_vendor@%$target_vendor%g -s%@target_os@%$target_os%g -s%@build@%$build%g -s%@build_alias@%$build_alias%g -s%@build_cpu@%$build_cpu%g -s%@build_vendor@%$build_vendor%g -s%@build_os@%$build_os%g -s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g -s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g -s%@INSTALL_DATA@%$INSTALL_DATA%g -s%@target_makefile_frag_path@%$target_makefile_frag_path%g -/@target_makefile_frag@/r $target_makefile_frag -s%@target_makefile_frag@%%g - -CEOF -EOF - -cat >> $CONFIG_STATUS <<\EOF - -# Split the substitutions into bite-sized pieces for seds with -# small command number limits, like on Digital OSF/1 and HP-UX. -ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. -ac_file=1 # Number of current file. -ac_beg=1 # First line for current file. -ac_end=$ac_max_sed_cmds # Line after last line for current file. -ac_more_lines=: -ac_sed_cmds="" -while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file - else - sed "${ac_end}q" conftest.subs > conftest.s$ac_file - fi - if test ! -s conftest.s$ac_file; then - ac_more_lines=false - rm -f conftest.s$ac_file - else - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f conftest.s$ac_file" - else - ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" - fi - ac_file=`expr $ac_file + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_cmds` - fi -done -if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat -fi -EOF - -cat >> $CONFIG_STATUS <<EOF - -CONFIG_FILES=\${CONFIG_FILES-"Makefile"} -EOF -cat >> $CONFIG_STATUS <<\EOF -for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. - - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" - # A "../" for each directory in $ac_dir_suffix. - ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` - else - ac_dir_suffix= ac_dots= - fi - - case "$ac_given_srcdir" in - .) srcdir=. - if test -z "$ac_dots"; then top_srcdir=. - else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; - /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; - *) # Relative path. - srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" - top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - case "$ac_given_INSTALL" in - [/$]*) INSTALL="$ac_given_INSTALL" ;; - *) INSTALL="$ac_dots$ac_given_INSTALL" ;; - esac - - echo creating "$ac_file" - rm -f "$ac_file" - configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." - case "$ac_file" in - *Makefile*) ac_comsub="1i\\ -# $configure_input" ;; - *) ac_comsub= ;; - esac - - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` - sed -e "$ac_comsub -s%@configure_input@%$configure_input%g -s%@srcdir@%$srcdir%g -s%@top_srcdir@%$top_srcdir%g -s%@INSTALL@%$INSTALL%g -" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file -fi; done -rm -f conftest.s* - -EOF - -cat >> $CONFIG_STATUS <<EOF -ac_sources="$files" -ac_dests="$links" -EOF - -cat >> $CONFIG_STATUS <<\EOF -srcdir=$ac_given_srcdir -while test -n "$ac_sources"; do - set $ac_dests; ac_dest=$1; shift; ac_dests=$* - set $ac_sources; ac_source=$1; shift; ac_sources=$* - - echo "linking $srcdir/$ac_source to $ac_dest" - - if test ! -r $srcdir/$ac_source; then - { echo "configure: error: $srcdir/$ac_source: File not found" 1>&2; exit 1; } - fi - rm -f $ac_dest - - # Make relative symlinks. - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dest_dir=`echo $ac_dest|sed 's%/[^/][^/]*$%%'` - if test "$ac_dest_dir" != "$ac_dest" && test "$ac_dest_dir" != .; then - # The dest file is in a subdirectory. - test ! -d "$ac_dest_dir" && mkdir "$ac_dest_dir" - ac_dest_dir_suffix="/`echo $ac_dest_dir|sed 's%^\./%%'`" - # A "../" for each directory in $ac_dest_dir_suffix. - ac_dots=`echo $ac_dest_dir_suffix|sed 's%/[^/]*%../%g'` - else - ac_dest_dir_suffix= ac_dots= - fi - - case "$srcdir" in - [/$]*) ac_rel_source="$srcdir/$ac_source" ;; - *) ac_rel_source="$ac_dots$srcdir/$ac_source" ;; - esac - - # Make a symlink if possible; otherwise try a hard link. - if ln -s $ac_rel_source $ac_dest 2>/dev/null || - ln $srcdir/$ac_source $ac_dest; then : - else - { echo "configure: error: can not link $ac_dest to $srcdir/$ac_source" 1>&2; exit 1; } - fi -done -EOF -cat >> $CONFIG_STATUS <<EOF - -EOF -cat >> $CONFIG_STATUS <<\EOF - -exit 0 -EOF -chmod +x $CONFIG_STATUS -rm -fr confdefs* $ac_clean_files -test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 - - diff --git a/gdb/nlm/configure.in b/gdb/nlm/configure.in deleted file mode 100644 index ba415aa..0000000 --- a/gdb/nlm/configure.in +++ /dev/null @@ -1,55 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -AC_PREREQ(2.12.1)dnl -AC_INIT(gdbserve.c) - -AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/../..) -AC_CANONICAL_SYSTEM -AC_ARG_PROGRAM - -AC_PROG_INSTALL - -# Map target cpu into the config cpu subdirectory name. -# The default is $target_cpu. -changequote(,)dnl -case "${target_cpu}" in -alpha) gdb_target_cpu=alpha ;; -c[12]) gdb_target_cpu=convex ;; -hppa*) gdb_target_cpu=pa ;; -i[34567]86) gdb_target_cpu=i386 ;; -m68*) gdb_target_cpu=m68k ;; -np1) gdb_target_cpu=gould ;; -pn) gdb_target_cpu=gould ;; -pyramid) gdb_target_cpu=pyr ;; -sparc*) gdb_target_cpu=sparc ;; -*) gdb_target_cpu=$target_cpu ;; -esac -changequote([,])dnl - -target_makefile_frag=${srcdir}/../config/${gdb_target_cpu}/gdbserve.mt -if [ ! -f ${target_makefile_frag} ]; then - AC_MSG_ERROR("*** GDBSERVE does not support target ${target}") -fi - -dnl We have to assign the same value to other variables because autoconf -dnl doesn't provide a mechanism to substitute a replacement keyword with -dnl arbitrary data or pathnames. -dnl -target_makefile_frag_path=$target_makefile_frag -AC_SUBST(target_makefile_frag_path) -AC_SUBST_FILE(target_makefile_frag) - -cpufile=`sed -n ' -s/CPU_FILE[ ]*=[ ]*\([^ ]*\)/\1/p -' ${target_makefile_frag} - -files= -links= -rm -f cpu.h -if [ "${cpufile}" != "" ]; then - files="${files} ${cpufile}.h" - links="${links} cpu.h" -fi - -AC_LINK_FILES($files, $links) -AC_OUTPUT(Makefile) - diff --git a/gdb/nlm/gdbserve.c b/gdb/nlm/gdbserve.c deleted file mode 100644 index 990a3f9..0000000 --- a/gdb/nlm/gdbserve.c +++ /dev/null @@ -1,1033 +0,0 @@ -/* gdbserve.c -- NLM debugging stub for Novell NetWare. - - This is originally based on an m68k software stub written by Glenn - Engel at HP, but has changed quite a bit. It was modified for the - i386 by Jim Kingdon, Cygnus Support. It was modified to run under - NetWare by Ian Lance Taylor, Cygnus Support. - - This code is intended to produce an NLM (a NetWare Loadable Module) - to run under Novell NetWare. To create the NLM, compile this code - into an object file using the NLM SDK on any i386 host, and use the - nlmconv program (available in the GNU binutils) to transform the - resulting object file into an NLM. */ - -/**************************************************************************** - - THIS SOFTWARE IS NOT COPYRIGHTED - - HP offers the following for use in the public domain. HP makes no - warranty with regard to the software or it's performance and the - user accepts the software "AS IS" with all faults. - - HP DISCLAIMS ANY WARRANTIES, EXPRESS OR IMPLIED, WITH REGARD - TO THIS SOFTWARE INCLUDING BUT NOT LIMITED TO THE WARRANTIES - OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - -****************************************************************************/ - -/**************************************************************************** - * - * The following gdb commands are supported: - * - * command function Return value - * - * g return the value of the CPU registers hex data or ENN - * G set the value of the CPU registers OK or ENN - * - * mAA..AA,LLLL Read LLLL bytes at address AA..AA hex data or ENN - * MAA..AA,LLLL: Write LLLL bytes at address AA.AA OK or ENN - * - * c Resume at current address SNN ( signal NN) - * cAA..AA Continue at address AA..AA SNN - * - * s Step one instruction SNN - * sAA..AA Step one instruction from AA..AA SNN - * - * k kill - * - * ? What was the last sigval ? SNN (signal NN) - * - * All commands and responses are sent with a packet which includes a - * checksum. A packet consists of - * - * $<packet info>#<checksum>. - * - * where - * <packet info> :: <characters representing the command or response> - * <checksum> :: < two hex digits computed as modulo 256 sum of <packetinfo>> - * - * When a packet is received, it is first acknowledged with either '+' or '-'. - * '+' indicates a successful transfer. '-' indicates a failed transfer. - * - * Example: - * - * Host: Reply: - * $m0,10#2a +$00010203040506070809101112131415#42 - * - ****************************************************************************/ - -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include <ctype.h> -#include <errno.h> -#include <time.h> - -#ifdef __i386__ -#include <dfs.h> -#include <conio.h> -#include <advanced.h> -#include <debugapi.h> -#include <process.h> -#else -#include <nwtypes.h> -#include <nwdfs.h> -#include <nwconio.h> -#include <nwadv.h> -#include <nwdbgapi.h> -#include <nwthread.h> -#endif - -#include <aio.h> -#include "cpu.h" - - -/****************************************************/ -/* This information is from Novell. It is not in any of the standard - NetWare header files. */ - -struct DBG_LoadDefinitionStructure -{ - void *reserved1[4]; - LONG reserved5; - LONG LDCodeImageOffset; - LONG LDCodeImageLength; - LONG LDDataImageOffset; - LONG LDDataImageLength; - LONG LDUninitializedDataLength; - LONG LDCustomDataOffset; - LONG LDCustomDataSize; - LONG reserved6[2]; - LONG (*LDInitializationProcedure)(void); -}; - -#define LO_NORMAL 0x0000 -#define LO_STARTUP 0x0001 -#define LO_PROTECT 0x0002 -#define LO_DEBUG 0x0004 -#define LO_AUTO_LOAD 0x0008 - -/* Loader returned error codes */ -#define LOAD_COULD_NOT_FIND_FILE 1 -#define LOAD_ERROR_READING_FILE 2 -#define LOAD_NOT_NLM_FILE_FORMAT 3 -#define LOAD_WRONG_NLM_FILE_VERSION 4 -#define LOAD_REENTRANT_INITIALIZE_FAILURE 5 -#define LOAD_CAN_NOT_LOAD_MULTIPLE_COPIES 6 -#define LOAD_ALREADY_IN_PROGRESS 7 -#define LOAD_NOT_ENOUGH_MEMORY 8 -#define LOAD_INITIALIZE_FAILURE 9 -#define LOAD_INCONSISTENT_FILE_FORMAT 10 -#define LOAD_CAN_NOT_LOAD_AT_STARTUP 11 -#define LOAD_AUTO_LOAD_MODULES_NOT_LOADED 12 -#define LOAD_UNRESOLVED_EXTERNAL 13 -#define LOAD_PUBLIC_ALREADY_DEFINED 14 -/****************************************************/ - -/* The main thread ID. */ -static int mainthread; - -/* An error message for the main thread to print. */ -static char *error_message; - -/* The AIO port handle. */ -static int AIOhandle; - -/* BUFMAX defines the maximum number of characters in inbound/outbound - buffers. At least NUMREGBYTES*2 are needed for register packets */ -#define BUFMAX (REGISTER_BYTES * 2 + 16) - -/* remote_debug > 0 prints ill-formed commands in valid packets and - checksum errors. */ -static int remote_debug = 1; - -static const char hexchars[] = "0123456789abcdef"; - -unsigned char breakpoint_insn[] = BREAKPOINT; - -char *mem2hex (void *mem, char *buf, int count, int may_fault); -char *hex2mem (char *buf, void *mem, int count, int may_fault); -extern void set_step_traps (struct StackFrame *); -extern void clear_step_traps (struct StackFrame *); - -static int __main() {}; - -/* Read a character from the serial port. This must busy wait, but - that's OK because we will be the only thread running anyhow. */ - -static int -getDebugChar (void) -{ - int err; - LONG got; - unsigned char ret; - - do - { - err = AIOReadData (AIOhandle, (char *) &ret, 1, &got); - if (err != 0) - { - error_message = "AIOReadData failed"; - ResumeThread (mainthread); - return -1; - } - } - while (got == 0); - - return ret; -} - -/* Write a character to the serial port. Returns 0 on failure, - non-zero on success. */ - -static int -putDebugChar (unsigned char c) -{ - int err; - LONG put; - - put = 0; - while (put < 1) - { - err = AIOWriteData (AIOhandle, (char *) &c, 1, &put); - if (err != 0) - ConsolePrintf ("AIOWriteData: err = %d, put = %d\r\n", err, put); - } - return 1; -} - -/* Turn a hex character into a number. */ - -static int -hex (char ch) -{ - if ((ch >= 'a') && (ch <= 'f')) - return (ch-'a'+10); - if ((ch >= '0') && (ch <= '9')) - return (ch-'0'); - if ((ch >= 'A') && (ch <= 'F')) - return (ch-'A'+10); - return (-1); -} - -/* Scan for the sequence $<data>#<checksum>. Returns 0 on failure, - non-zero on success. */ - -static int -getpacket (char *buffer) -{ - unsigned char checksum; - unsigned char xmitcsum; - int i; - int count; - int ch; - - do - { - /* wait around for the start character, ignore all other characters */ - while ((ch = getDebugChar()) != '$') - if (ch == -1) - return 0; - checksum = 0; - xmitcsum = -1; - - count = 0; - - /* now, read until a # or end of buffer is found */ - while (count < BUFMAX) - { - ch = getDebugChar(); - if (ch == -1) - return 0; - if (ch == '#') - break; - checksum = checksum + ch; - buffer[count] = ch; - count = count + 1; - } - buffer[count] = 0; - - if (ch == '#') - { - ch = getDebugChar (); - if (ch == -1) - return 0; - xmitcsum = hex(ch) << 4; - ch = getDebugChar (); - if (ch == -1) - return 0; - xmitcsum += hex(ch); - - if (checksum != xmitcsum) - { - if (remote_debug) - ConsolePrintf ("bad checksum. My count = 0x%x, sent=0x%x. buf=%s\n", - checksum,xmitcsum,buffer); - /* failed checksum */ - if (! putDebugChar('-')) - return 0; - return 1; - } - else - { - /* successful transfer */ - if (! putDebugChar('+')) - return 0; - /* if a sequence char is present, reply the sequence ID */ - if (buffer[2] == ':') - { - if (! putDebugChar (buffer[0]) - || ! putDebugChar (buffer[1])) - return 0; - /* remove sequence chars from buffer */ - count = strlen(buffer); - for (i=3; i <= count; i++) - buffer[i-3] = buffer[i]; - } - } - } - } - while (checksum != xmitcsum); - - if (remote_debug) - ConsolePrintf ("Received packet \"%s\"\r\n", buffer); - - return 1; -} - -/* Send the packet in buffer. Returns 0 on failure, non-zero on - success. */ - -static int -putpacket (char *buffer) -{ - unsigned char checksum; - int count; - int ch; - - if (remote_debug) - ConsolePrintf ("Sending packet \"%s\"\r\n", buffer); - - /* $<packet info>#<checksum>. */ - do - { - if (! putDebugChar('$')) - return 0; - checksum = 0; - count = 0; - - while (ch=buffer[count]) - { - if (! putDebugChar(ch)) - return 0; - checksum += ch; - count += 1; - } - - if (! putDebugChar('#') - || ! putDebugChar(hexchars[checksum >> 4]) - || ! putDebugChar(hexchars[checksum % 16])) - return 0; - - ch = getDebugChar (); - if (ch == -1) - return 0; - } - while (ch != '+'); - - return 1; -} - -static char remcomInBuffer[BUFMAX]; -static char remcomOutBuffer[BUFMAX]; -static short error; - -static void -debug_error (char *format, char *parm) -{ - if (remote_debug) - { - ConsolePrintf (format, parm); - ConsolePrintf ("\n"); - } -} - -/* This is set if we could get a memory access fault. */ -static int mem_may_fault; - -/* Indicate to caller of mem2hex or hex2mem that there has been an - error. */ -volatile int mem_err = 0; - -#ifndef ALTERNATE_MEM_FUNCS -/* These are separate functions so that they are so short and sweet - that the compiler won't save any registers (if there is a fault - to mem_fault, they won't get restored, so there better not be any - saved). */ - -int -get_char (char *addr) -{ - return *addr; -} - -void -set_char (char *addr, int val) -{ - *addr = val; -} -#endif /* ALTERNATE_MEM_FUNCS */ - -/* convert the memory pointed to by mem into hex, placing result in buf */ -/* return a pointer to the last char put in buf (null) */ -/* If MAY_FAULT is non-zero, then we should set mem_err in response to - a fault; if zero treat a fault like any other fault in the stub. */ - -char * -mem2hex (void *mem, char *buf, int count, int may_fault) -{ - int i; - unsigned char ch; - char *ptr = mem; - - mem_may_fault = may_fault; - for (i = 0; i < count; i++) - { - ch = get_char (ptr++); - if (may_fault && mem_err) - return (buf); - *buf++ = hexchars[ch >> 4]; - *buf++ = hexchars[ch % 16]; - } - *buf = 0; - mem_may_fault = 0; - return(buf); -} - -/* convert the hex array pointed to by buf into binary to be placed in mem */ -/* return a pointer to the character AFTER the last byte written */ - -char * -hex2mem (char *buf, void *mem, int count, int may_fault) -{ - int i; - unsigned char ch; - char *ptr = mem; - - mem_may_fault = may_fault; - for (i=0;i<count;i++) - { - ch = hex(*buf++) << 4; - ch = ch + hex(*buf++); - set_char (ptr++, ch); - if (may_fault && mem_err) - return (ptr); - } - mem_may_fault = 0; - return(mem); -} - -/* This function takes the 386 exception vector and attempts to - translate this number into a unix compatible signal value. */ - -int -computeSignal (int exceptionVector) -{ - int sigval; - switch (exceptionVector) - { - case 0 : sigval = 8; break; /* divide by zero */ - case 1 : sigval = 5; break; /* debug exception */ - case 3 : sigval = 5; break; /* breakpoint */ - case 4 : sigval = 16; break; /* into instruction (overflow) */ - case 5 : sigval = 16; break; /* bound instruction */ - case 6 : sigval = 4; break; /* Invalid opcode */ - case 7 : sigval = 8; break; /* coprocessor not available */ - case 8 : sigval = 7; break; /* double fault */ - case 9 : sigval = 11; break; /* coprocessor segment overrun */ - case 10 : sigval = 11; break; /* Invalid TSS */ - case 11 : sigval = 11; break; /* Segment not present */ - case 12 : sigval = 11; break; /* stack exception */ - case 13 : sigval = 11; break; /* general protection */ - case 14 : sigval = 11; break; /* page fault */ - case 16 : sigval = 7; break; /* coprocessor error */ - default: - sigval = 7; /* "software generated"*/ - } - return (sigval); -} - -/**********************************************/ -/* WHILE WE FIND NICE HEX CHARS, BUILD AN INT */ -/* RETURN NUMBER OF CHARS PROCESSED */ -/**********************************************/ -static int -hexToInt (char **ptr, int *intValue) -{ - int numChars = 0; - int hexValue; - - *intValue = 0; - - while (**ptr) - { - hexValue = hex(**ptr); - if (hexValue >=0) - { - *intValue = (*intValue <<4) | hexValue; - numChars ++; - } - else - break; - - (*ptr)++; - } - - return (numChars); -} - -/* This function does all command processing for interfacing to gdb. - It is called whenever an exception occurs in the module being - debugged. */ - -static LONG -handle_exception (struct StackFrame *frame) -{ - int addr, length; - char *ptr; - static struct DBG_LoadDefinitionStructure *ldinfo = 0; - static unsigned char first_insn[BREAKPOINT_SIZE]; /* The first instruction in the program. */ - -#if 0 - /* According to some documentation from Novell, the bell sometimes - may be ringing at this point. This can be stopped on Netware 4 - systems by calling the undocumented StopBell() function. */ - - StopBell (); -#endif - - if (remote_debug) - { - ConsolePrintf ("vector=%d: %s, pc=%08x, thread=%08x\r\n", - frame->ExceptionNumber, - frame->ExceptionDescription, - frame->ExceptionPC, - GetThreadID ()); - } - - switch (frame->ExceptionNumber) - { - case START_NLM_EVENT: - /* If the NLM just started, we record the module load information - and the thread ID, and set a breakpoint at the first instruction - in the program. */ - - ldinfo = ((struct DBG_LoadDefinitionStructure *) - frame->ExceptionErrorCode); - memcpy (first_insn, ldinfo->LDInitializationProcedure, - BREAKPOINT_SIZE); - memcpy (ldinfo->LDInitializationProcedure, breakpoint_insn, - BREAKPOINT_SIZE); - flush_i_cache (); - return RETURN_TO_PROGRAM; - - case ENTER_DEBUGGER_EVENT: - case KEYBOARD_BREAK_EVENT: - /* Pass some events on to the next debugger, in case it will handle - them. */ - return RETURN_TO_NEXT_DEBUGGER; - - case 3: /* Breakpoint */ - /* After we've reached the initial breakpoint, reset it. */ - if (frame->ExceptionPC - DECR_PC_AFTER_BREAK == (LONG) ldinfo->LDInitializationProcedure - && memcmp (ldinfo->LDInitializationProcedure, breakpoint_insn, - BREAKPOINT_SIZE) == 0) - { - memcpy (ldinfo->LDInitializationProcedure, first_insn, - BREAKPOINT_SIZE); - frame->ExceptionPC -= DECR_PC_AFTER_BREAK; - flush_i_cache (); - } - /* Normal breakpoints end up here */ - do_status (remcomOutBuffer, frame); - break; - - default: - /* At the moment, we don't care about most of the unusual NetWare - exceptions. */ - if (frame->ExceptionNumber > 31) - return RETURN_TO_PROGRAM; - - /* Most machine level exceptions end up here */ - do_status (remcomOutBuffer, frame); - break; - - case 11: /* Segment not present */ - case 13: /* General protection */ - case 14: /* Page fault */ - /* If we get a GP fault, and mem_may_fault is set, and the - instruction pointer is near set_char or get_char, then we caused - the fault ourselves accessing an illegal memory location. */ - if (mem_may_fault - && ((frame->ExceptionPC >= (long) &set_char - && frame->ExceptionPC < (long) &set_char + 50) - || (frame->ExceptionPC >= (long) &get_char - && frame->ExceptionPC < (long) &get_char + 50))) - { - mem_err = 1; - /* Point the instruction pointer at an assembly language stub - which just returns from the function. */ - - frame->ExceptionPC += 4; /* Skip the load or store */ - - /* Keep going. This will act as though it returned from - set_char or get_char. The calling routine will check - mem_err, and do the right thing. */ - return RETURN_TO_PROGRAM; - } - /* Random mem fault, report it */ - do_status (remcomOutBuffer, frame); - break; - - case TERMINATE_NLM_EVENT: - /* There is no way to get the exit status. */ - sprintf (remcomOutBuffer, "W%02x", 0); - break; /* We generate our own status */ - } - - /* FIXME: How do we know that this exception has anything to do with - the program we are debugging? We can check whether the PC is in - the range of the module we are debugging, but that doesn't help - much since an error could occur in a library routine. */ - - clear_step_traps (frame); - - if (! putpacket(remcomOutBuffer)) - return RETURN_TO_NEXT_DEBUGGER; - - if (frame->ExceptionNumber == TERMINATE_NLM_EVENT) - { - ResumeThread (mainthread); - return RETURN_TO_PROGRAM; - } - - while (1) - { - error = 0; - remcomOutBuffer[0] = 0; - if (! getpacket (remcomInBuffer)) - return RETURN_TO_NEXT_DEBUGGER; - switch (remcomInBuffer[0]) - { - case '?': - do_status (remcomOutBuffer, frame); - break; - case 'd': - remote_debug = !(remote_debug); /* toggle debug flag */ - break; - case 'g': - /* return the value of the CPU registers */ - frame_to_registers (frame, remcomOutBuffer); - break; - case 'G': - /* set the value of the CPU registers - return OK */ - registers_to_frame (&remcomInBuffer[1], frame); - strcpy(remcomOutBuffer,"OK"); - break; - - case 'm': - /* mAA..AA,LLLL Read LLLL bytes at address AA..AA */ - /* TRY TO READ %x,%x. IF SUCCEED, SET PTR = 0 */ - ptr = &remcomInBuffer[1]; - if (hexToInt(&ptr,&addr)) - if (*(ptr++) == ',') - if (hexToInt(&ptr,&length)) - { - ptr = 0; - mem_err = 0; - mem2hex((char*) addr, remcomOutBuffer, length, 1); - if (mem_err) - { - strcpy (remcomOutBuffer, "E03"); - debug_error ("memory fault"); - } - } - - if (ptr) - { - strcpy(remcomOutBuffer,"E01"); - debug_error("malformed read memory command: %s",remcomInBuffer); - } - break; - - case 'M': - /* MAA..AA,LLLL: Write LLLL bytes at address AA.AA return OK */ - /* TRY TO READ '%x,%x:'. IF SUCCEED, SET PTR = 0 */ - ptr = &remcomInBuffer[1]; - if (hexToInt(&ptr,&addr)) - if (*(ptr++) == ',') - if (hexToInt(&ptr,&length)) - if (*(ptr++) == ':') - { - mem_err = 0; - hex2mem(ptr, (char*) addr, length, 1); - - if (mem_err) - { - strcpy (remcomOutBuffer, "E03"); - debug_error ("memory fault"); - } - else - { - strcpy(remcomOutBuffer,"OK"); - } - - ptr = 0; - } - if (ptr) - { - strcpy(remcomOutBuffer,"E02"); - debug_error("malformed write memory command: %s",remcomInBuffer); - } - break; - - case 'c': - case 's': - /* cAA..AA Continue at address AA..AA(optional) */ - /* sAA..AA Step one instruction from AA..AA(optional) */ - /* try to read optional parameter, pc unchanged if no parm */ - ptr = &remcomInBuffer[1]; - if (hexToInt(&ptr,&addr)) - { -/* registers[PC_REGNUM].lo = addr;*/ - fprintf (stderr, "Setting PC to 0x%x\n", addr); - while (1); - } - - if (remcomInBuffer[0] == 's') - set_step_traps (frame); - - flush_i_cache (); - return RETURN_TO_PROGRAM; - - case 'k': - /* kill the program */ - KillMe (ldinfo); - ResumeThread (mainthread); - return RETURN_TO_PROGRAM; - - case 'q': /* Query message */ - if (strcmp (&remcomInBuffer[1], "Offsets") == 0) - { - sprintf (remcomOutBuffer, "Text=%x;Data=%x;Bss=%x", - ldinfo->LDCodeImageOffset, - ldinfo->LDDataImageOffset, - ldinfo->LDDataImageOffset + ldinfo->LDDataImageLength); - } - else - sprintf (remcomOutBuffer, "E04, Unknown query %s", &remcomInBuffer[1]); - break; - } - - /* reply to the request */ - if (! putpacket(remcomOutBuffer)) - return RETURN_TO_NEXT_DEBUGGER; - } -} - -char *progname; - -struct bitRate { - BYTE bitRate; - const char *bitRateString; -}; - -struct bitRate bitRateTable[] = -{ - { AIO_BAUD_50 , "50" }, - { AIO_BAUD_75 , "75" }, - { AIO_BAUD_110 , "110" }, - { AIO_BAUD_134p5 , "134.5" }, - { AIO_BAUD_150 , "150" }, - { AIO_BAUD_300 , "300" }, - { AIO_BAUD_600 , "600" }, - { AIO_BAUD_1200 , "1200" }, - { AIO_BAUD_1800 , "1800" }, - { AIO_BAUD_2000 , "2000" }, - { AIO_BAUD_2400 , "2400" }, - { AIO_BAUD_3600 , "3600" }, - { AIO_BAUD_4800 , "4800" }, - { AIO_BAUD_7200 , "7200" }, - { AIO_BAUD_9600 , "9600" }, - { AIO_BAUD_19200 , "19200" }, - { AIO_BAUD_38400 , "38400" }, - { AIO_BAUD_57600 , "57600" }, - { AIO_BAUD_115200, "115200" }, - { -1, NULL } -}; - -char dataBitsTable[] = "5678"; - -char *stopBitsTable[] = { "1", "1.5", "2" }; - -char parity[] = "NOEMS"; - -/* Start up. The main thread opens the named serial I/O port, loads - the named NLM module and then goes to sleep. The serial I/O port - is named as a board number and a port number. It would be more DOS - like to provide a menu of available serial ports, but I don't want - to have to figure out how to do that. */ - -int -main (int argc, char **argv) -{ - int hardware, board, port; - BYTE bitRate; - BYTE dataBits; - BYTE stopBits; - BYTE parityMode; - LONG err; - struct debuggerStructure s; - int cmdindx; - char *cmdlin; - int i; - - /* set progname */ - progname = "gdbserve"; - - /* set default serial line */ - hardware = -1; - board = 0; - port = 0; - - /* set default serial line characteristics */ - bitRate = AIO_BAUD_9600; - dataBits = AIO_DATA_BITS_8; - stopBits = AIO_STOP_BITS_1; - parityMode = AIO_PARITY_NONE; - - cmdindx = 0; - for (argc--, argv++; *argv; argc--, argv++) - { - char *bp; - char *ep; - - if (strnicmp(*argv, "BAUD=", 5) == 0) - { - struct bitRate *brp; - - bp = *argv + 5; - for (brp = bitRateTable; brp->bitRate != (BYTE) -1; brp++) - { - if (strcmp(brp->bitRateString, bp) == 0) - { - bitRate = brp->bitRate; - break; - } - } - - if (brp->bitRateString == NULL) - { - fprintf(stderr, "%s: %s: unknown or unsupported bit rate", - progname, bp); - exit (1); - } - } - else if (strnicmp(*argv, "BOARD=", 6) == 0) - { - bp = *argv + 6; - board = strtol (bp, &ep, 0); - if (ep == bp || *ep != '\0') - { - fprintf (stderr, "%s: %s: expected integer argument\n", - progname, bp); - exit(1); - } - } -#if 1 /* FIXME: this option has been depricated */ - else if (strnicmp(*argv, "NODE=", 5) == 0) - { - bp = *argv + 5; - board = strtol (bp, &ep, 0); - if (ep == bp || *ep != '\0') - { - fprintf (stderr, "%s: %s: expected integer argument\n", - progname, bp); - exit(1); - } - } -#endif - else if (strnicmp(*argv, "PORT=", 5) == 0) - { - bp = *argv + 5; - port = strtol (bp, &ep, 0); - if (ep == bp || *ep != '\0') - { - fprintf (stderr, "%s: %s: expected integer argument\n", - progname, bp); - exit(1); - } - } - else - { - break; - } - - cmdindx++; - } - - if (argc == 0) - { - fprintf (stderr, - "Usage: load %s [options] program [arguments]\n", progname); - exit (1); - } - - err = AIOAcquirePort (&hardware, &board, &port, &AIOhandle); - if (err != AIO_SUCCESS) - { - switch (err) - { - case AIO_PORT_NOT_AVAILABLE: - fprintf (stderr, "Port not available\n"); - break; - - case AIO_BOARD_NUMBER_INVALID: - case AIO_PORT_NUMBER_INVALID: - fprintf (stderr, "No such port\n"); - break; - - default: - fprintf (stderr, "Could not open port: %d\n", err); - break; - } - - exit (1); - } - - err = AIOConfigurePort (AIOhandle, bitRate, dataBits, stopBits, parityMode, - AIO_HARDWARE_FLOW_CONTROL_OFF); - - if (err == AIO_QUALIFIED_SUCCESS) - { - AIOPORTCONFIG portConfig; - - fprintf (stderr, "Port configuration changed!\n"); - - portConfig.returnLength = sizeof(portConfig); - AIOGetPortConfiguration (AIOhandle, &portConfig, NULL); - - fprintf (stderr, - " Bit Rate: %s, Data Bits: %c, Stop Bits: %s, Parity: %c,\ - Flow:%s\n", - bitRateTable[portConfig.bitRate].bitRateString, - dataBitsTable[portConfig.dataBits], - stopBitsTable[portConfig.stopBits], - parity[portConfig.parityMode], - portConfig.flowCtrlMode ? "ON" : "OFF"); - } - else if (err != AIO_SUCCESS) - { - fprintf (stderr, "Could not configure port: %d\n", err); - AIOReleasePort (AIOhandle); - exit (1); - } - - if (AIOSetExternalControl(AIOhandle, AIO_EXTERNAL_CONTROL, - (AIO_EXTCTRL_DTR | AIO_EXTCTRL_RTS)) - != AIO_SUCCESS) - { - LONG extStatus, chgdExtStatus; - - fprintf (stderr, "Could not set desired port controls!\n"); - AIOGetExternalStatus (AIOhandle, &extStatus, &chgdExtStatus); - fprintf (stderr, "Port controls now: %d, %d\n", extStatus, - chgdExtStatus); - } - - /* Register ourselves as an alternate debugger. */ - memset (&s, 0, sizeof s); - s.DDSResourceTag = ((struct ResourceTagStructure *) - AllocateResourceTag (GetNLMHandle (), - (BYTE *)"gdbserver", - DebuggerSignature)); - if (s.DDSResourceTag == 0) - { - fprintf (stderr, "AllocateResourceTag failed\n"); - AIOReleasePort (AIOhandle); - exit (1); - } - s.DDSdebuggerEntry = handle_exception; - s.DDSFlags = TSS_FRAME_BIT; - - err = RegisterDebuggerRTag (&s, AT_FIRST); - if (err != 0) - { - fprintf (stderr, "RegisterDebuggerRTag failed\n"); - AIOReleasePort (AIOhandle); - exit (1); - } - - /* Get the command line we were invoked with, and advance it past - our name and the board and port arguments. */ - cmdlin = getcmd ((char *) NULL); - for (i = 0; i < cmdindx; i++) - { - while (! isspace (*cmdlin)) - ++cmdlin; - while (isspace (*cmdlin)) - ++cmdlin; - } - - /* In case GDB is started before us, ack any packets (presumably - "$?#xx") sitting there. */ - if (! putDebugChar ('+')) - { - fprintf (stderr, "putDebugChar failed\n"); - UnRegisterDebugger (&s); - AIOReleasePort (AIOhandle); - exit (1); - } - - mainthread = GetThreadID (); - - if (remote_debug > 0) - ConsolePrintf ("About to call LoadModule with \"%s\" %08x\r\n", - cmdlin, __GetScreenID (GetCurrentScreen())); - - /* Start up the module to be debugged. */ - err = LoadModule ((struct ScreenStruct *) __GetScreenID (GetCurrentScreen()), - (BYTE *)cmdlin, LO_DEBUG); - if (err != 0) - { - fprintf (stderr, "LoadModule failed: %d\n", err); - UnRegisterDebugger (&s); - AIOReleasePort (AIOhandle); - exit (1); - } - - /* Wait for the debugger to wake us up. */ - if (remote_debug > 0) - ConsolePrintf ("Suspending main thread (%08x)\r\n", mainthread); - SuspendThread (mainthread); - if (remote_debug > 0) - ConsolePrintf ("Resuming main thread (%08x)\r\n", mainthread); - - /* If we are woken up, print an optional error message, deregister - ourselves and exit. */ - if (error_message != NULL) - fprintf (stderr, "%s\n", error_message); - UnRegisterDebugger (&s); - AIOReleasePort (AIOhandle); - exit (0); -} diff --git a/gdb/nlm/gdbserve.def b/gdb/nlm/gdbserve.def deleted file mode 100644 index 588028d..0000000 --- a/gdb/nlm/gdbserve.def +++ /dev/null @@ -1,42 +0,0 @@ -description "GDB debugger stub" -version 1,2 -debug -module clib -screenname "System Console" -input gdbserve.O -output gdbserve.nlm -start _Prelude -exit _Stop -import - AllocateResourceTag - ConsolePrintf - GetCurrentScreen - GetNLMHandle - GetThreadID - KillMe - LoadModule - ReadByteAltDebugger - RegisterDebuggerRTag - ResumeThread - SuspendThread - UnRegisterDebugger - WriteByteAltDebugger - _GetCLibNLMLibHandle - _NWRegisterNLMLibraryUser - _SetupArgv - _StartNLM - _TerminateNLM - __GetScreenID - __get_errno_ptr - exit - fprintf - getcmd - memcmp - memcpy - memset - sprintf - strcmp - strcpy - strlen - strnicmp - strtol diff --git a/gdb/nlm/i386.c b/gdb/nlm/i386.c deleted file mode 100644 index 8fc6b1d..0000000 --- a/gdb/nlm/i386.c +++ /dev/null @@ -1,100 +0,0 @@ -#include <dfs.h> -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include <ctype.h> -#include <time.h> -#include <conio.h> -#include <advanced.h> -#include <debugapi.h> -#include <process.h> -#include <errno.h> -#include "i386.h" - -extern char *mem2hex (void *mem, char *buf, int count, int may_fault); -extern char *hex2mem (char *buf, void *mem, int count, int may_fault); -extern int computeSignal (int exceptionVector); - -void -flush_i_cache (void) -{ -} - -/* Get the registers out of the frame information. */ - -void -frame_to_registers (struct StackFrame *frame, char *regs) -{ - /* Copy EAX -> EDI */ - mem2hex (&frame->ExceptionEAX, ®s[0 * 4 * 2], 4 * 8, 0); - - /* Copy EIP & PS */ - mem2hex (&frame->ExceptionPC, ®s[8 * 4 * 2], 4 * 2, 0); - - /* Copy CS, SS, DS */ - mem2hex (&frame->ExceptionCS, ®s[10 * 4 * 2], 4 * 3, 0); - - /* Copy ES */ - mem2hex (&frame->ExceptionES, ®s[13 * 4 * 2], 4 * 1, 0); - - /* Copy FS & GS */ - mem2hex (&frame->ExceptionFS, ®s[14 * 4 * 2], 4 * 2, 0); -} - -/* Put the registers back into the frame information. */ - -void -registers_to_frame (char *regs, struct StackFrame *frame) -{ - /* Copy EAX -> EDI */ - hex2mem (®s[0 * 4 * 2], &frame->ExceptionEAX, 4 * 8, 0); - - /* Copy EIP & PS */ - hex2mem (®s[8 * 4 * 2], &frame->ExceptionPC, 4 * 2, 0); - - /* Copy CS, SS, DS */ - hex2mem (®s[10 * 4 * 2], &frame->ExceptionCS, 4 * 3, 0); - - /* Copy ES */ - hex2mem (®s[13 * 4 * 2], &frame->ExceptionES, 4 * 1, 0); - - /* Copy FS & GS */ - hex2mem (®s[14 * 4 * 2], &frame->ExceptionFS, 4 * 2, 0); -} - -void -set_step_traps (struct StackFrame *frame) -{ - frame->ExceptionSystemFlags |= 0x100; -} - -void -clear_step_traps (struct StackFrame *frame) -{ - frame->ExceptionSystemFlags &= ~0x100; -} - -void -do_status (char *ptr, struct StackFrame *frame) -{ - int sigval; - - sigval = computeSignal (frame->ExceptionNumber); - - sprintf (ptr, "T%02x", sigval); - ptr += 3; - - sprintf (ptr, "%02x:", PC_REGNUM); - ptr = mem2hex (&frame->ExceptionPC, ptr + 3, 4, 0); - *ptr++ = ';'; - - sprintf (ptr, "%02x:", SP_REGNUM); - ptr = mem2hex (&frame->ExceptionESP, ptr + 3, 4, 0); - *ptr++ = ';'; - - sprintf (ptr, "%02x:", DEPRECATED_FP_REGNUM); - ptr = mem2hex (&frame->ExceptionEBP, ptr + 3, 4, 0); - *ptr++ = ';'; - - *ptr = '\000'; -} diff --git a/gdb/nlm/i386.h b/gdb/nlm/i386.h deleted file mode 100644 index ff97aed..0000000 --- a/gdb/nlm/i386.h +++ /dev/null @@ -1,13 +0,0 @@ -/* Register values. All of these values *MUST* agree with tm.h */ -#define SP_REGNUM 4 /* Contains address of top of stack */ -#define PC_REGNUM 8 /* Contains program counter */ -#define DEPRECATED_FP_REGNUM 5 /* Virtual frame pointer */ -#define NUM_REGS 16 /* Number of machine registers */ -#define REGISTER_BYTES (NUM_REGS * 4) /* Total size of registers array */ - -#define ExceptionPC ExceptionEIP -#define DECR_PC_AFTER_BREAK 1 /* int 3 leaves PC pointing after insn */ -#define BREAKPOINT {0xcc} -#define BREAKPOINT_SIZE (sizeof breakpoint_insn) - -#define StackFrame T_TSS_StackFrame diff --git a/gdb/nlm/ppc.c b/gdb/nlm/ppc.c deleted file mode 100644 index c5850ab..0000000 --- a/gdb/nlm/ppc.c +++ /dev/null @@ -1,244 +0,0 @@ -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include <time.h> -#include <errno.h> - -#include <nwtypes.h> -#include <nwdfs.h> -#include <nwconio.h> -#include <nwadv.h> -#include <nwdbgapi.h> -#include <nwthread.h> -#include "ppc.h" - -extern char *mem2hex (void *mem, char *buf, int count, int may_fault); -extern char *hex2mem (char *buf, void *mem, int count, int may_fault); -extern int computeSignal (int exceptionVector); - -void -flush_i_cache (void) -{ -} - -/* Get the registers out of the frame information. */ - -void -frame_to_registers (struct StackFrame *frame, char *regs) -{ - mem2hex (&frame->ExceptionState.CsavedRegs, ®s[GP0_REGNUM * 4 * 2], 4 * 32, 0); - - mem2hex (&frame->ExceptionState.CSavedFPRegs, ®s[FP0_REGNUM * 4 * 2], 4 * 32, 0); - - mem2hex (&frame->ExceptionPC, ®s[PC_REGNUM * 4 * 2], 4 * 1, 0); - - mem2hex (&frame->ExceptionState.u.SpecialRegistersEnumerated.CsavedSRR1, ®s[CR_REGNUM * 4 * 2], 4 * 1, 0); - mem2hex (&frame->ExceptionState.u.SpecialRegistersEnumerated.CsavedLR, ®s[LR_REGNUM * 4 * 2], 4 * 1, 0); - mem2hex (&frame->ExceptionState.u.SpecialRegistersEnumerated.CsavedCTR, ®s[CTR_REGNUM * 4 * 2], 4 * 1, 0); - mem2hex (&frame->ExceptionState.u.SpecialRegistersEnumerated.CsavedXER, ®s[XER_REGNUM * 4 * 2], 4 * 1, 0); - mem2hex (&frame->ExceptionState.u.SpecialRegistersEnumerated.CsavedMQ, ®s[MQ_REGNUM * 4 * 2], 4 * 1, 0); -} - -/* Put the registers back into the frame information. */ - -void -registers_to_frame (char *regs, struct StackFrame *frame) -{ - hex2mem (®s[GP0_REGNUM * 4 * 2], &frame->ExceptionState.CsavedRegs, 4 * 32, 0); - - hex2mem (®s[FP0_REGNUM * 4 * 2], &frame->ExceptionState.CSavedFPRegs, 4 * 32, 0); - - hex2mem (®s[PC_REGNUM * 4 * 2], &frame->ExceptionPC, 4 * 1, 0); - - hex2mem (®s[CR_REGNUM * 4 * 2], &frame->ExceptionState.u.SpecialRegistersEnumerated.CsavedSRR1, 4 * 1, 0); - hex2mem (®s[LR_REGNUM * 4 * 2], &frame->ExceptionState.u.SpecialRegistersEnumerated.CsavedLR, 4 * 1, 0); - hex2mem (®s[CTR_REGNUM * 4 * 2], &frame->ExceptionState.u.SpecialRegistersEnumerated.CsavedCTR, 4 * 1, 0); - hex2mem (®s[XER_REGNUM * 4 * 2], &frame->ExceptionState.u.SpecialRegistersEnumerated.CsavedXER, 4 * 1, 0); - hex2mem (®s[MQ_REGNUM * 4 * 2], &frame->ExceptionState.u.SpecialRegistersEnumerated.CsavedMQ, 4 * 1, 0); -} - - -extern volatile int mem_err; - -#ifdef ALTERNATE_MEM_FUNCS -extern int ReadByteAltDebugger (char* addr, char *theByte); -extern int WriteByteAltDebugger (char* addr, char theByte); -int -get_char (char *addr) -{ - char c; - - if (!ReadByteAltDebugger (addr, &c)) - mem_err = 1; - - return c; -} - -void -set_char (char *addr, int val) -{ - if (!WriteByteAltDebugger (addr, val)) - mem_err = 1; -} -#endif - -int -mem_write (char *dst, char *src, int len) -{ - while (len-- && !mem_err) - set_char (dst++, *src++); - - return mem_err; -} - -union inst -{ - LONG l; - - struct - { - union - { - struct /* Unconditional branch */ - { - unsigned opcode : 6; /* 18 */ - signed li : 24; - unsigned aa : 1; - unsigned lk : 1; - } b; - struct /* Conditional branch */ - { - unsigned opcode : 6; /* 16 */ - unsigned bo : 5; - unsigned bi : 5; - signed bd : 14; - unsigned aa : 1; - unsigned lk : 1; - } bc; - struct /* Conditional branch to ctr or lr reg */ - { - unsigned opcode : 6; /* 19 */ - unsigned bo : 5; - unsigned bi : 5; - unsigned type : 15; /* 528 = ctr, 16 = lr */ - unsigned lk : 1; - } bclr; - } variant; - } inst; -}; - -static LONG saved_inst; -static LONG *saved_inst_pc = 0; -static LONG saved_target_inst; -static LONG *saved_target_inst_pc = 0; - -void -set_step_traps (struct StackFrame *frame) -{ - union inst inst; - LONG *target; - int opcode; - int ra, rb; - LONG *pc = (LONG *)frame->ExceptionPC; - - inst.l = *pc++; - - opcode = inst.inst.variant.b.opcode; - - target = pc; - - switch (opcode) - { - case 18: /* Unconditional branch */ - - if (inst.inst.variant.b.aa) /* Absolute? */ - target = 0; - target += inst.inst.variant.b.li; - - break; - case 16: /* Conditional branch */ - - if (!inst.inst.variant.bc.aa) /* Absolute? */ - target = 0; - target += inst.inst.variant.bc.bd; - - break; - case 19: /* Cond. branch via ctr or lr reg */ - switch (inst.inst.variant.bclr.type) - { - case 528: /* ctr */ - target = (LONG *)frame->ExceptionState.u.SpecialRegistersEnumerated.CsavedCTR; - break; - case 16: /* lr */ - target = (LONG *)frame->ExceptionState.u.SpecialRegistersEnumerated.CsavedLR; - break; - } - break; - } - - saved_inst = *pc; - mem_write (pc, breakpoint_insn, BREAKPOINT_SIZE); - saved_inst_pc = pc; - - if (target != pc) - { - saved_target_inst = *target; - mem_write (target, breakpoint_insn, BREAKPOINT_SIZE); - saved_target_inst_pc = target; - } -} - -/* Remove step breakpoints. Returns non-zero if pc was at a step breakpoint, - zero otherwise. This routine works even if there were no step breakpoints - set. */ - -int -clear_step_traps (struct StackFrame *frame) -{ - int retcode; - LONG *pc = (LONG *)frame->ExceptionPC; - - if (saved_inst_pc == pc || saved_target_inst_pc == pc) - retcode = 1; - else - retcode = 0; - - if (saved_inst_pc) - { - mem_write (saved_inst_pc, saved_inst, BREAKPOINT_SIZE); - saved_inst_pc = 0; - } - - if (saved_target_inst_pc) - { - mem_write (saved_target_inst_pc, saved_target_inst, BREAKPOINT_SIZE); - saved_target_inst_pc = 0; - } - - return retcode; -} - -void -do_status (char *ptr, struct StackFrame *frame) -{ - int sigval; - - sigval = computeSignal (frame->ExceptionNumber); - - sprintf (ptr, "T%02x", sigval); - ptr += 3; - - sprintf (ptr, "%02x:", PC_REGNUM); - ptr = mem2hex (&frame->ExceptionPC, ptr + 3, 4, 0); - *ptr++ = ';'; - - sprintf (ptr, "%02x:", SP_REGNUM); - ptr = mem2hex (&frame->ExceptionState.CsavedRegs[SP_REGNUM], ptr + 3, 4, 0); - *ptr++ = ';'; - - sprintf (ptr, "%02x:", LR_REGNUM); - ptr = mem2hex (&frame->ExceptionState.CsavedRegs[LR_REGNUM], ptr + 3, 4, 0); - *ptr++ = ';'; - - *ptr = '\000'; -} diff --git a/gdb/nlm/ppc.h b/gdb/nlm/ppc.h deleted file mode 100644 index 84cee6b..0000000 --- a/gdb/nlm/ppc.h +++ /dev/null @@ -1,165 +0,0 @@ -typedef long Long; - -/* The following enum is used to access the special registers in - the saved machine state. */ - -typedef enum -{ - kDc_SavedPC = 0, /* really SRR0 */ - kDc_SavedMSR = 1, /* really SRR1 */ - kDc_SavedCR = 2, - kDc_SavedLR = 3, - kDc_SavedDSISR = 4, - kDc_SavedDAR = 5, - kDc_SavedXER = 6, - kDc_SavedCTR = 7, - kDc_SavedSDR1 = 8, - kDc_SavedRTCU = 9, - kDc_SavedRTCL = 10, - kDc_SavedDEC = 11, - kDc_SavedSR00 = 12, /* The Segement Registers are consecutive */ - kDc_SavedSR01 = 13, /* kDc_SavedSR00 + n is supported */ - kDc_SavedSR02 = 14, - kDc_SavedSR03 = 15, - kDc_SavedSR04 = 16, - kDc_SavedSR05 = 17, - kDc_SavedSR06 = 18, - kDc_SavedSR07 = 19, - kDc_SavedSR08 = 20, - kDc_SavedSR09 = 21, - kDc_SavedSR10 = 22, - kDc_SavedSR11 = 23, - kDc_SavedSR12 = 24, - kDc_SavedSR13 = 25, - kDc_SavedSR14 = 26, - kDc_SavedSR15 = 27, - kDc_SavedFPSCR = 29, - kDc_SavedMQ = 30, - kDc_SavedBAT0U = 31, - kDc_SavedBAT0L = 32, - kDc_SavedBAT1U = 33, - kDc_SavedBAT1L = 34, - kDc_SavedBAT2U = 35, - kDc_SavedBAT2L = 36, - kDc_SavedBAT3U = 37, - kDc_SavedBAT3L = 38, - - kNumberSpecialRegisters = 39 -} Dc_SavedRegisterName; - -/* Access to floating points is not very easy. This allows the number to be - accessed both as a floating number and as a pair of Longs. */ - -typedef union -{ - double asfloat; /* access the variable as a floating number */ - struct - { - Long high; - Long low; - } - asLONG; /* access the variable as two Longs */ -} FloatingPoints; - -/* The following is the standard record for Saving a machine state */ - -struct SavedMachineState -{ - FloatingPoints CSavedFPRegs[32]; /* The floating point registers [0->31] */ - /* ***32bit assumption*** */ - Long CsavedRegs[32]; /* space to save the General Registers */ - /* These are saved 0->31 */ - Long CexReason; - Long SavedDomainID; - union - { /* must be 8-byte aligned, so doubleFPSCR is 8-byte aligned */ - struct - { - Long CsavedSRR0; /* Index 0 - The saved PC */ - Long CsavedSRR1; /* 1 saved MSR */ - Long CsavedCR; /* 2 */ - Long CsavedLR; /* 3 */ - Long CsavedDSISR; /* 4 */ - Long CsavedDAR; /* 5 */ - - Long CsavedXER; /* 6 */ - Long CsavedCTR; /* 7 */ - Long CsavedSDR1; /* 8 */ - Long CsavedRTCU; /* 9 */ - Long CsavedRTCL; /* 10 */ - Long CsavedDEC; /* 11 */ - Long CsavedSR0; /* 12 */ - Long CsavedSR1; /* 13 */ - Long CsavedSR2; /* 14 */ - Long CsavedSR3; /* 15 */ - Long CsavedSR4; /* 16 */ - Long CsavedSR5; /* 17 */ - Long CsavedSR6; /* 18 */ - Long CsavedSR7; /* 19 */ - Long CsavedSR8; /* 20 */ - Long CsavedSR9; /* 21 */ - Long CsavedSR10; /* 22 */ - Long CsavedSR11; /* 23 */ - Long CsavedSR12; /* 24 */ - Long CsavedSR13; /* 25 */ - Long CsavedSR14; /* 26 */ - Long CsavedSR15; /* 27 */ - /* CdoubleFPSCR must be double word aligned */ - Long CdoubleFPSCR; /* 28 this is the upper part of the store and has - no meaning */ - Long CsavedFPSCR; /* 29 */ - Long CsavedMQ; /* 30 */ - Long CsavedBAT0U; /* 31 */ - Long CsavedBAT0L; /* 32 */ - Long CsavedBAT1U; /* 33 */ - Long CsavedBAT1L; /* 34 */ - Long CsavedBAT2U; /* 35 */ - Long CsavedBAT2L; /* 36 */ - Long CsavedBAT3U; /* 37 */ - Long CsavedBAT3L; /* 38 */ - } - SpecialRegistersEnumerated; - - Long SpecialRegistersIndexed[kNumberSpecialRegisters]; - } u; - - Long Padding[3]; /* Needed for quad-word alignment */ -}; - -struct StackFrame -{ - LONG *ExceptionDomainID; - /*ProcessorStructure*/ int *ExceptionProcessorID; - BYTE *ExceptionDescription; - LONG ExceptionFlags; - LONG ExceptionErrorCode; - LONG ExceptionNumber; - struct SavedMachineState ExceptionState; -}; - -/* Register values. All of these values *MUST* agree with tm.h */ -#define GP0_REGNUM 0 /* GPR register 0 */ -#define SP_REGNUM 1 /* Contains address of top of stack */ -#define FP0_REGNUM 32 /* FPR (Floating point) register 0 */ -#define PC_REGNUM 64 /* Contains program counter */ -#define PS_REGNUM 65 /* Processor (or machine) status (%msr) */ -#define CR_REGNUM 66 /* Condition register */ -#define LR_REGNUM 67 /* Link register */ -#define CTR_REGNUM 68 /* Count register */ -#define XER_REGNUM 69 /* Fixed point exception registers */ -#define MQ_REGNUM 70 /* Multiply/quotient register */ -#define NUM_REGS 71 /* Number of machine registers */ -#define REGISTER_BYTES (420) /* Total size of registers array */ - -#define ExceptionPC ExceptionState.u.SpecialRegistersEnumerated.CsavedSRR0 -#define DECR_PC_AFTER_BREAK 0 /* PPCs get this right! */ -#define BREAKPOINT {0x7d, 0x82, 0x10, 0x08} -extern unsigned char breakpoint_insn[]; -#define BREAKPOINT_SIZE 4 - -#if 0 -#define ALTERNATE_MEM_FUNCS /* We need our own get_char/set_char */ -#endif - -extern int get_char (char *addr); -extern void set_char (char *addr, int val); diff --git a/gdb/nlm/prelude.c b/gdb/nlm/prelude.c deleted file mode 100644 index 37e12c8..0000000 --- a/gdb/nlm/prelude.c +++ /dev/null @@ -1,67 +0,0 @@ -/*=========================================================================== -= Novell Standard C Library for NetWare Loadable Modules -= -= Unpublished Copyright (C) 1993 by Novell, Inc. All rights reserved. -= -= No part of this file may be duplicated, revised, translated, localized or -= modified in any manner or compiled, linked or uploaded or downloaded to or -= from any computer system without the prior written consent of Novell, Inc. -============================================================================== -= The object produced by compiling this file is for use by the client of this -= library and is not linked in; Prelude.Obj is therefore one of the files to -= be distributed with CLib.NLM and its headers. -============================================================================== -*/ - -#include <stddef.h> -#if defined(__netware__) && defined(__i386__) -#define TERMINATE_BY_UNLOAD 5 -#else -#include <nwpre.h> -#endif -/*#include "libhooks.h"*/ - -extern int main (int, char **); - -static int NLMID; - - -void _Stop( void ) -{ - _TerminateNLM(NLMID, NULL, TERMINATE_BY_UNLOAD); -} - -int _cstart_( void ) -{ - return _SetupArgv(main); -} - -int _Prelude -( - int NLMHandle, - int initErrorScreenID, - char *commandLine, - char *loadDirectoryPath, - int uninitializedDataLength, - int NLMFileHandle, - int (*readRoutineP)(), - int customDataOffset, - int customDataSize -) -{ - int rc; - - rc = _StartNLM(NLMHandle, - initErrorScreenID, - commandLine, - loadDirectoryPath, - uninitializedDataLength, - NLMFileHandle, - readRoutineP, - customDataOffset, - customDataSize, - &NLMID, - _cstart_); - - return rc; -} |