Merge in irix support.

This commit is contained in:
Stu Grossman 1991-08-31 00:31:30 +00:00
parent bceb2dded1
commit 625453dcfd
5 changed files with 341 additions and 128 deletions

View File

@ -132,7 +132,7 @@ CDEPS = ${XM_CDEPS} ${TM_CDEPS} ${BFD_LIB} ${LIBIBERTY} ${RL_LIB}
ADD_FILES = ${REGEX} ${ALLOCA} ${GNU_MALLOC} ${XM_ADD_FILES} ${TM_ADD_FILES}
ADD_DEPS = ${REGEX1} ${ALLOCA1} ${GNU_MALLOC} ${XM_ADD_FILES} ${TM_ADD_FILES}
VERSION = 4.0
VERSION = 4.0.1
DIST=gdb
LINT=/usr/5bin/lint
@ -226,7 +226,7 @@ TESTS = testbpt.c testfun.c testrec.c testreg.c testregs.c
# tdesc-lib removed from the list due to Motorola copyrights...gnu@cygnus.com
OTHERS = Makefile.in depend alldeps.mak \
createtags munch configure configure.in config.sub \
ChangeLog ChangeLog-3.x \
ChangeLog ChangeLog-3.x refcard.ps \
README TODO TAGS WHATS.NEW Projects \
.gdbinit COPYING expread.tab.c \
copying.c Convex.notes copying.awk \
@ -278,7 +278,7 @@ install: gdb
mv $(bindir)/gdb.new $(bindir)/gdb
$(M_INSTALL)
init.c: $(srcdir)/munch $(MUNCH_DEFINE) $(OBS) $(TSOBS)
init.c: $(srcdir)/munch $(OBS) $(TSOBS)
$(srcdir)/munch ${MUNCH_DEFINE} $(OBS) $(TSOBS) > init.c
gdb: $(OBS) $(TSOBS) ${ADD_DEPS} ${CDEPS} init.o
@ -633,6 +633,12 @@ cplus-dem.o : cplus-dem.c
${CC} -c ${CFLAGS} -Dnounderscore \
`echo ${srcdir}/cplus-dem.c | sed 's,^\./,,'`
# 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:
# This is the end of "Makefile.in". When built into "Makefile"
# by the configure script, two things are added below this point:
# alldeps.mak -- defintions of all files that are used in

408
gdb/configure vendored
View File

@ -55,6 +55,7 @@ hostsubdir=
Makefile=Makefile
Makefile_in=Makefile.in
norecurse=
recursing=
removing=
srcdir=
srctrigger=
@ -92,6 +93,9 @@ do
-norecurse | +no*)
norecurse=true
;;
-recursing)
recursing=true
;;
-rm | +r*)
removing=${arg}
;;
@ -118,7 +122,7 @@ do
-* | +*)
(echo ;
echo "Unrecognized option: \"${arg}\"". ;
echo) 2>&1
echo) 1>&2
fatal=true
;;
*)
@ -134,7 +138,6 @@ done
if [ -n "${verbose}" ] ; then
echo `pwd`/configure $*
echo targets=\"${targets}\"
fi
# process host and target only if not rebuilding configure itself or removing.
@ -143,7 +146,7 @@ if [ -z "${template}" -a -z "${removing}" -a -z "${fatal}" ] ; then
if [ -z "${hosts}" ] ; then
(echo ;
echo "configure: No HOST specified." ;
echo) 2>&1
echo) 1>&2
fatal=true
fi
fi
@ -166,7 +169,7 @@ if [ -n "${fatal}" -o "${hosts}" = "help" ] ; then
echo ;
echo "Where HOST and TARGET are something like \"vax\", \"sun3\", \"encore\", etc." ;
echo "Asking for more than one \"+target\" implies \"+subdirs\". Any other" ;
echo "options given will apply to all targets.") 2>&1
echo "options given will apply to all targets.") 1>&2
if [ -r config.status ] ; then
cat config.status
@ -184,7 +187,7 @@ srctrigger=main.c
# are we rebuilding config itself?
if [ -n "${template}" ] ; then
if [ ! -r ${template} ] ; then
echo '***' "Can't find template ${template}." 2>&1
echo '***' "Can't find template ${template}." 1>&2
exit 1
fi
@ -205,12 +208,12 @@ if [ -n "${template}" ] ; then
if [ -r configure.in ] ; then
if [ -z "`grep '^# per\-host:' configure.in`" ] ; then
echo '***' `pwd`/configure.in has no "per-host:" line. 2>&1
echo '***' `pwd`/configure.in has no "per-host:" line. 1>&2
exit 1
fi
if [ -z "`grep '^# per\-target:' configure.in`" ] ; then
echo '***' `pwd`/configure.in has no "per-target:" line. 2>&1
echo '***' `pwd`/configure.in has no "per-target:" line. 1>&2
exit 1
fi
@ -248,6 +251,17 @@ if [ -n "${template}" ] ; then
echo Rebuilt configure in `pwd`
fi
# Now update config.sub from the template directory.
if echo "$template" | grep -s 'configure$' ; then
cp `echo "$template" | sed s/configure$/config.sub/` ./config.sub.new
# mv config.sub config.sub.old
mv config.sub.new config.sub
if [ -n "${verbose}" ] ; then
echo Rebuilt config.sub in `pwd`
fi
fi
if [ -z "${norecurse}" ] ; then
# If template is relative path, make it absolute for recursing.
if echo "${template}" | grep -s '^/' ; then
@ -275,7 +289,9 @@ if [ -n "${template}" ] ; then
echo Warning: No configure script in `pwd`/$i
fi
else
echo Warning: directory $i is missing.
if [ -n "${verbose}" ] ; then
echo Warning: directory $i is missing.
fi
fi
done
done
@ -297,45 +313,254 @@ for host in ${hosts} ; do
defaulttargets=true
fi
result=`/bin/sh ./config.sub ${host}`
host_cpu=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'`
host_vendor=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'`
host_os=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'`
host=${host_cpu}-${host_vendor}-${host_os}
host_makefile_frag=config/hmake-${host}
#### configure.in per-host parts come in here.
if [ ! -f xconfig/${host} ]; then
echo "No such host ${host}"
# map host info into gdb names.
case "${host_cpu}" in
m68k)
case "${host_vendor}" in
att) gdb_host=3b1 ;;
altos)
case "${host_os}" in
gas) gdb_host=altosgas ;;
*) gdb_host=altos ;;
esac
;;
hp)
case ${host_os} in
hpux) gdb_host=hp300hpux ;;
bsd) gdb_host=hp300bsd ;;
esac
;;
isi) gdb_host=isi ;;
sony) gdb_host=news ;;
sun)
case "${host_os}" in
sunos3) gdb_host=sun3os3 ;;
sunos4) gdb_host=sun3os4 ;;
*) gdb_host=sun3 ;;
esac
;;
esac
;;
m68000)
case "${host_vendor}" in
sun)
case "${host_os}" in
sunos3) gdb_host=sun2os3 ;;
sunos4) gdb_host=sun2os4 ;;
*) gdb_host=sun2 ;;
esac
esac
;;
sparc)
case "${host_os}" in
sunos3) gdb_host=sun4os3 ;;
sunos4) gdb_host=sun4os4 ;;
*) gdb_host=sun4 ;;
esac
;;
m68030)
case "${host_vendor}" in
sony) gdb_host=news1000 ;;
esac
;;
mips)
case "${host_vendor}" in
sony) gdb_host=bigmips ;;
dec) gdb_host=dec3100 ;;
little) gdb_host=littlemips ;;
sgi) gdb_host=irix3 ;;
esac
;;
i386)
case "${host_vendor}" in
sun) gdb_host=sun386 ;;
sco) gdb_host=i386sco ;;
sequent) gdb_host=symmetry ;;
*)
case "${host_os}" in
sysv) gdb_host=i386v ;;
sysv32) gdb_host=i386v32 ;;
esac
;;
esac
;;
c1 | c2) gdb_host=convex ;;
ns32k)
case "${host_vendor}" in
umax) gdb_host=umax ;;
esac
;;
arm | vax | m88k | merlin | none | np1 | pn | pyramid | tahoe) gdb_host=${host_cpu} ;;
### unhandled hosts
#altosgas
#i386v-g
#i386v32-g
esac
if [ ! -f xconfig/${gdb_host} ]; then
echo '***' "Gdb does not support host ${host}" 1>&2
exit 1
fi
# We really shouldn't depend on there being a space after XM_FILE= ...
hostfile=`awk '$1 == "XM_FILE=" { print $2 }' <xconfig/$host`
hostfile=`awk '$1 == "XM_FILE=" { print $2 }' <xconfig/${gdb_host}`
## end of per-host part.
for target in ${targets} ; do
if [ -n "${verbose}" ] ; then
echo " target=\"${target}\""
fi
result=`/bin/sh ./config.sub ${target}`
target_cpu=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'`
target_vendor=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'`
target_os=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'`
target=${target_cpu}-${target_vendor}-${target_os}
target_makefile_frag=config/tmake-${target}
#### configure.in per-target parts come in here.
if [ ! -f tconfig/${target} ]; then
echo "No such target ${target}"
case "${target_cpu}" in
m68k)
case "${target_vendor}" in
att) gdb_target=3b1 ;;
altos) gdb_target=altos ;;
hp)
case "${target_os}" in
bsd) gdb_target=hp300bsd ;;
hpux) gdb_target=hp300hpux ;;
esac
;;
sun)
case "${target_os}" in
sunos3) gdb_target=sun3os3 ;;
sunos4) gdb_target=sun3os4 ;;
*) gdb_target=sun3 ;;
esac
;;
wrs) gdb_target=vxworks68 ;;
isi) gdb_target=isi ;;
sony) gdb_target=news ;;
esac
;;
m68000)
case "${target_vendor}" in
sun)
case "${target_os}" in
sunos3) gdb_target=sun2os3 ;;
sunos4) gdb_target=sun2os4 ;;
*) gdb_target=sun2 ;;
esac
esac
;;
m68030)
case "${target_vendor}" in
sony) gdb_target=news1000 ;;
esac
;;
none | tahoe | vax | np1 | pn | np1 | pn | pyramid | merlin | m88k)
gdb_target=${target_cpu} ;;
a29k) gdb_target=am29k ;;
arm) gdb_target=${target_cpu} ;;
mips)
case "${target_vendor}" in
sony) gdb_target=bigmips ;;
dec) gdb_target=dec3100 ;;
little) gdb_target=littlemips ;;
sgi) gdb_target=irix3 ;;
esac
;;
c1 | c2) gdb_target=convex ;;
sparc)
case "${target_vendor}" in
sun)
case "${target_os}" in
sunos3) gdb_target=sun4os3 ;;
sunos4) gdb_target=sun4os4 ;;
*) gdb_target=sun4 ;;
esac
;;
esac
;;
i386)
case "${target_vendor}" in
sco) gdb_target=i386sco ;;
sun) gdb_target=sun386 ;;
sequent) gdb_target=symmetry ;;
coff) gdb_target=i386v ;;
aout) gdb_target=i386v ;;
*)
case "${target_os}" in
sysv) gdb_target=i386v ;;
sysv32) gdb_target=i386v32 ;;
esac
esac
;;
i960)
case "${target_vendor}" in
bout | wrs) gdb_target=vxworks960 ;;
coff | intel) gdb_target=nindy960 ;;
esac
;;
ns32k)
case "${target_vendor}" in
utek) gdb_target=umax ;;
esac
;;
### unhandled targets
# altosgas
# i386v-g
# i386v32-g
esac
if [ ! -f tconfig/${gdb_target} ]; then
echo '***' "Gdb does not support target ${target}" 1>&2
exit 1
fi
if [ -z "${removing}" ] ; then
cat xconfig/${host} tconfig/${target} | awk '$1 == "#msg" {
cat xconfig/${gdb_host} tconfig/${gdb_target} | awk '$1 == "#msg" {
print substr($0,6)}'
fi
# We really shouldn't depend on there being a space after TM_FILE= ...
targetfile=`awk '$1 == "TM_FILE=" { print $2 }' <tconfig/$target`
targetfile=`awk '$1 == "TM_FILE=" { print $2 }' <tconfig/${gdb_target}`
host_makefile_frag=xconfig/${host}
target_makefile_frag=tconfig/${target}
host_makefile_frag=xconfig/${gdb_host}
target_makefile_frag=tconfig/${gdb_target}
# If hostfile (XM_FILE) and/or targetfile (TM_FILE) is not set in the
# ?config/* file, we don't make the corresponding links. But we have
@ -378,7 +603,7 @@ fi
if [ -n "${subdirs}" ] ; then
# check for existing status before allowing forced subdirs.
if [ -f ${Makefile} ] ; then
echo '***' "${Makefile} already exists in source directory. `pwd` not configured." 2>&1
echo '***' "${Makefile} already exists in source directory. `pwd` not configured." 1>&2
exit 1
fi
@ -403,7 +628,7 @@ fi
else
# if not subdir builds, then make sure none exist.
if [ -n "`(ls .) 2>&1 | grep Host-`" ] ; then
echo '***' "Configured subdirs exist. `pwd` not configured." 2>&1
echo '***' "Configured subdirs exist. `pwd` not configured." 1>&2
exit 1
fi
fi
@ -419,12 +644,12 @@ fi
if [ -n "${srctrigger}" -a ! -r ${srcdir}/${srctrigger} ] ; then
if [ -z "${srcdirdefaulted}" ] ; then
echo '***' "${progname}: Can't find ${srcname} sources in `pwd`/${srcdir}" 2>&1
echo '***' "${progname}: Can't find ${srcname} sources in `pwd`/${srcdir}" 1>&2
else
echo '***' "${progname}: Can't find ${srcname} sources in `pwd`/. or `pwd`/.." 2>&1
echo '***' "${progname}: Can't find ${srcname} sources in `pwd`/. or `pwd`/.." 1>&2
fi
echo '***' \(At least ${srctrigger} is missing.\) 2>&1
echo '***' \(At least ${srctrigger} is missing.\) 1>&2
exit 1
fi
@ -438,8 +663,8 @@ fi
set ${links}; link=$1; shift; links=$*
if [ ! -r ${srcdir}/${file} ] ; then
echo '***' "${progname}: cannot create a link \"${link}\"," 2>&1
echo '***' "since the file \"${file}\" does not exist." 2>&1
echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2
echo '***' "since the file \"${file}\" does not exist." 1>&2
exit 1
fi
@ -449,7 +674,7 @@ fi
${symbolic_link} ${srcdir}/${file} ${link} 2>/dev/null || ${hard_link} ${srcdir}/${file} ${link}
if [ ! -r ${link} ] ; then
echo '***' "${progname}: unable to link \"${link}\" to \"${srcdir}/${file}\"." 2>&1
echo '***' "${progname}: unable to link \"${link}\" to \"${srcdir}/${file}\"." 1>&2
exit 1
fi
@ -548,7 +773,7 @@ fi
andusing=${using}
fi
if [ -n "${verbose}" ] ; then
if [ -n "${verbose}" -o -z "${recursing}" ] ; then
echo "Created \"${Makefile}\"" in `pwd`${andusing}.
fi
@ -578,6 +803,26 @@ cat ${srcdir}/alldeps.mak ${srcdir}/depend >>Makefile
originaldir=`pwd`
cd ${srcdir}
fi
# If there are subdirectories, then recurse.
if [ -z "${norecurse}" -a -n "${configdirs}" ] ; then
for configdir in ${configdirs} ; do
if [ -n "${verbose}" ] ; then
echo Configuring ${configdir}...
fi
if [ -d ${configdir} ] ; then
(cd ${configdir} ;
./configure -recursing ${host} +target=${target} \
${verbose} ${subdirs} ${removing} +destdir=${destdir}) \
| sed 's/^/ /'
else
if [ -n "${verbose}" ] ; then
echo Warning: directory \"${configdir}\" is missing.
fi
fi
done
fi
done # for each target
# Now build a Makefile for this host.
@ -597,100 +842,23 @@ E!O!F
fi
done # for each host
# If there are subdirectories, then recurse.
if [ -n "${norecurse}" -o -z "${configdirs}" ] ; then exit 0 ; fi
# configdirs is not null
for configdir in ${configdirs} ; do
if [ -n "${verbose}" ] ; then
echo Configuring ${configdir}...
fi
specifics=
commons=
if [ -n "${defaulttargets}" ] ; then
for host in ${hosts} ; do
if [ -d ${configdir}.${host} ] ; then
newspecifics="${specifics} ${host}"
specifics=${newspecifics}
else
newcommons="${commons} ${host}"
commons=${newcommons}
fi # if target specific
done # for each host
if [ -n "${commons}" ] ; then
if [ -d ${configdir} ] ; then
(cd ${configdir} ;
./configure ${commons} ${verbose} ${subdirs} ${removing} +destdir=${destdir}) \
| sed 's/^/ /'
else
echo Warning: directory \"${configdir}\" is missing.
fi
fi # if any common hosts
if [ -n "${specifics}" ] ; then
for host in ${specifics} ; do
if [ -n "${verbose} ] ; then
echo Configuring target specific directory ${configdir}.${host}...
fi
(cd ${configdir}.${host} ;
./configure ${host} ${verbose} ${subdirs} ${removing} +destdir=${destdir}) \
| sed 's/^/ /'
done # for host in specifics
fi # if there are any specifics
else
for target in ${targets} ; do
if [ -d ${configdir}.${target} ] ; then
newspecifics="${specifics} ${target}"
specifics=${newspecifics}
else
newcommons="${commons} +target=${target}"
commons=${newcommons}
fi
done # check for target specific dir override
if [ -n "${verbose}" ] ; then
echo " "commons=\"${commons}\"
echo " "specifics=\"${specifics}\"
fi # if verbose
if [ -n "${commons}" ] ; then
if [ -d ${configdir} ] ; then
(cd ${configdir} ;
./configure ${hosts} ${verbose} ${subdirs} ${removing} \
${commons} +destdir=${destdir}) \
| sed 's/^/ /'
else
echo Warning: directory \"${configdir}\" is missing.
fi
fi # if any commons
if [ -n "${specifics}" ] ; then
for target in ${specifics} ; do
if [ -n "${verbose} ] ; then
echo Configuring target specific directory ${configdir}.${target}...
fi
(cd ${configdir}.${target} ;
./configure ${hosts} ${verbose} ${subdirs} ${removing} \
"+target=${target}" +destdir=${destdir}) \
| sed 's/^/ /'
done
fi # if any specifics
fi # not default targets
done
exit 0
#
# $Log$
# Revision 1.16 1991/08/20 04:56:36 rich
# Revision 1.19 1991/08/31 00:23:49 grossman
# Merge in irix support.
#
# Revision 1.18 1991/08/23 04:50:17 rich
# Minor config polish.
#
# Revision 1.22 1991/08/23 03:31:43 rich
# Minor polish & config mapping.
#
# Revision 1.30 1991/08/22 07:15:51 rich
# Three part names, etc.
#
# Revision 1.29 1991/08/20 04:56:51 rich
# revisiting error messages
#
# Revision 1.28 1991/08/16 19:22:17 rich

View File

@ -65,6 +65,7 @@ mips)
sony) gdb_host=bigmips ;;
dec) gdb_host=dec3100 ;;
little) gdb_host=littlemips ;;
sgi) gdb_host=irix3 ;;
esac
;;
@ -161,6 +162,7 @@ mips)
sony) gdb_target=bigmips ;;
dec) gdb_target=dec3100 ;;
little) gdb_target=littlemips ;;
sgi) gdb_target=irix3 ;;
esac
;;

View File

@ -27,10 +27,15 @@ static void EXFUN((*old_free_hook), (PTR ptr));
static PTR EXFUN((*old_malloc_hook), (size_t size));
static PTR EXFUN((*old_realloc_hook), (PTR ptr, size_t size));
#ifdef sgi
#define ABORT_RETURNS int
#else
#define ABORT_RETURNS void
#endif
/* Function to call when something awful happens. */
extern void abort();
static void EXFUN((*abortfunc), (void)) = (void (*)()) abort;
extern ABORT_RETURNS abort();
static ABORT_RETURNS EXFUN((*abortfunc), (void)) = abort;
/* Arbitrary magical numbers. */
#define MAGICWORD 0xfedabeeb
@ -42,7 +47,7 @@ struct hdr
unsigned int magic; /* Magic number to check header integrity. */
};
static void
static ABORT_RETURNS
DEFUN(checkhdr, (hdr), CONST struct hdr *hdr)
{
if (hdr->magic != MAGICWORD || ((char *) &hdr[1])[hdr->size] != MAGICBYTE)
@ -99,7 +104,7 @@ DEFUN(reallochook, (ptr, size), PTR ptr AND size_t size)
}
void
DEFUN(mcheck, (func), void EXFUN((*func), (void)))
DEFUN(mcheck, (func), ABORT_RETURNS EXFUN((*func), (void)))
{
static int mcheck_used = 0;

View File

@ -20,7 +20,11 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include <stdio.h>
#ifdef sgi
#include <sys/inst.h>
#else
#include <mips/inst.h>
#endif
#include "defs.h"
#include "param.h"
#include "frame.h"
@ -44,6 +48,31 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include <sys/file.h>
#include <sys/stat.h>
/* For now we stub this out; sgi format is super-hairy (and completely
different in the new release) */
#ifdef sgi
void
fetch_core_registers ()
{
return;
}
void
fetch_inferior_registers ()
{
return;
}
store_inferior_registers (regno)
int regno;
{
return;
}
#else
/* Get all registers from the inferior */
void
@ -72,9 +101,10 @@ fetch_inferior_registers ()
If REGNO is -1, do this for all registers.
Otherwise, REGNO specifies which register (so we can save time). */
void
store_inferior_registers (regno)
int regno;
{
{
register unsigned int regaddr;
char buf[80];
@ -110,6 +140,8 @@ store_inferior_registers (regno)
}
}
#endif /* sgi */
#if 0
void
fetch_core_registers ()