# Mapping of configurations into GDB host definitions.  This is
# invoked from the autoconf generated configure script.

# This file sets the following shell variables:
#  gdb_host_cpu		generic name of host's CPU
#  gdb_host		name of GDB host definition to use

# Map host cpu into the config cpu subdirectory name.
# The default is $host_cpu.

case "${host_cpu}" in

alpha*)			gdb_host_cpu=alpha ;;
arm*)			gdb_host_cpu=arm ;;
hppa*)			gdb_host_cpu=pa ;;
i[34567]86*)		gdb_host_cpu=i386 ;;
m68*)			gdb_host_cpu=m68k ;;
m88*)			gdb_host_cpu=m88k ;;
mips*)			gdb_host_cpu=mips ;;
powerpc*)		gdb_host_cpu=powerpc ;;
sparcv9 | sparc64)	gdb_host_cpu=sparc ;;
s390*)			gdb_host_cpu=s390 ;;
sh*)			gdb_host_cpu=sh ;;
x86_64*)		gdb_host_cpu=i386 ;;
xscale*)		gdb_host_cpu=arm ;;
m32r*)			gdb_host_cpu=m32r ;;
*)			gdb_host_cpu=$host_cpu ;;

esac

# map host info into gdb names.

case "${host}" in

alpha*-*-osf1*)		gdb_host=alpha-osf1 ;;
alpha*-*-osf2*)		gdb_host=alpha-osf2 ;;
alpha*-*-osf[3456789]*)	gdb_host=alpha-osf3 ;;
alpha*-*-linux*)	gdb_host=alpha-linux ;;
alpha*-*-freebsd*)	gdb_host=fbsd ;;
alpha*-*-netbsd*)	gdb_host=nbsd ;;
alpha*-*-openbsd*)	gdb_host=nbsd ;;

arm*-*-linux*)		gdb_host=linux ;;
arm*-*-netbsdelf*)	gdb_host=nbsdelf ;;
arm*-*-netbsd*)		gdb_host=nbsdaout ;;

hppa*-*-hiux*)		gdb_host=hppahpux ;;
hppa*-*-hpux10.20)	gdb_host=hpux1020 ;;
hppa*64*-*-hpux11*)	gdb_host=hpux11w ;;
hppa*-*-hpux11*)	gdb_host=hpux11 ;;
hppa*-*-hpux*)		gdb_host=hppahpux ;;
hppa*-*-linux*)		gdb_host=linux ;;
hppa*-*-openbsd*)	gdb_host=obsd ;;

i[34567]86-ncr-*)	gdb_host=ncr3000 ;;
i[34567]86-*-dgux*)	gdb_host=i386v4 ;;
i[34567]86-*-freebsd* | i[34567]86-*-kfreebsd*-gnu)
			gdb_host=fbsd ;;
i[34567]86-*-netbsdelf* | i[34567]86-*-knetbsd*-gnu)
			gdb_host=nbsdelf ;;
i[34567]86-*-freebsd*)	gdb_host=fbsd ;;
i[34567]86-*-netbsd*)	gdb_host=nbsdaout ;;
i[34567]86-*-go32*)	gdb_host=go32 ;;
i[34567]86-*-msdosdjgpp*) gdb_host=go32 ;;
i[34567]86-*-linux*)	gdb_host=linux ;;
i[34567]86-*-lynxos*)	gdb_host=i386lynx ;;
i[34567]86-*-gnu*)	gdb_host=i386gnu ;;
i[3456]86-*-nto*) 	gdb_host=nto ;;
i[34567]86-*-openbsd[0-2].* | i[34567]86-*-openbsd3.[0-3])
			gdb_host=obsdaout ;;
i[34567]86-*-openbsd*)	gdb_host=obsd ;;
i[34567]86-*-sco3.2v5*)	gdb_host=i386sco5 ;;
i[34567]86-*-sco3.2v4*)	gdb_host=i386sco4 ;;
i[34567]86-*-sco*)	gdb_host=i386sco ;;
i[34567]86-*-solaris*)	gdb_host=i386sol2 ;;
i[34567]86-*-sysv4.2*)	gdb_host=i386v42mp ;;
i[34567]86-*-sysv4*)	gdb_host=i386v4 ;;
i[34567]86-*-sysv5*)	gdb_host=i386v42mp ;;
i[34567]86-*-unixware2*)	gdb_host=i386v42mp ;;
i[34567]86-*-unixware*)	gdb_host=i386v4 ;;
i[34567]86-*-sysv*)	gdb_host=i386v ;;
i[34567]86-*-isc*)	gdb_host=i386v ;;
i[34567]86-*-cygwin*)	gdb_host=cygwin ;;

ia64-*-aix*)		gdb_host=aix ;;
ia64-*-linux*)		gdb_host=linux ;;

m68*-*-linux*)		gdb_host=linux ;;
m68*-*-netbsdelf*)	gdb_host=nbsdelf ;;
m68*-*-netbsd*)		gdb_host=nbsdaout ;;
m68*-*-openbsd*)	gdb_host=obsd ;;

m88*-*-openbsd*)	gdb_host=obsd ;;

mips-sgi-irix5*)	gdb_host=irix5 ;;
mips-sgi-irix6*)	gdb_host=irix6 ;;
mips*-*-linux*)		gdb_host=linux ;;
mips*-*-netbsd*)	gdb_host=nbsd ;;

ns32k-*-netbsd*)	gdb_host=nbsdaout ;;

powerpc-*-aix3*)	gdb_host=aix ;;
powerpc-*-aix4.[0-2]*)	gdb_host=aix ;;
powerpc-*-aix4.3.[0-1]*)	gdb_host=aix ;;
powerpc-*-aix*)		gdb_host=aix432 ;;
powerpc-*-linux*)	gdb_host=linux ;;
powerpc-*-netbsd*)	gdb_host=nbsd ;;
powerpc-*-openbsd*)	gdb_host=obsd ;;

powerpc64-*-linux*)     gdb_host=ppc64-linux ;;

rs6000-*-lynxos*)	gdb_host=rs6000lynx ;;
rs6000-*-aix4*)		gdb_host=aix4 ;;
rs6000-*-*)		gdb_host=rs6000 ;;

s390*-*-*)		gdb_host=s390 ;;

sh*-*-netbsdelf*)	gdb_host=nbsd ;;

sparc64-*-freebsd*)	gdb_host=fbsd ;;
sparc-*-linux*)		gdb_host=linux ;;
sparc64-*-linux*)	gdb_host=linux64 ;;
sparc-*-netbsdelf*)	gdb_host=nbsdelf ;;
sparc-*-netbsdaout*)	gdb_host=nbsdaout ;;
sparc-*-netbsd*)	gdb_host=nbsdaout ;;
sparc64-*-netbsd*)	gdb_host=nbsd64 ;;
sparc-*-openbsd*)	gdb_host=nbsdelf ;;
sparc64-*-openbsd*)	gdb_host=nbsd64 ;;
sparc-*-solaris2* | sparcv9-*-solaris2* | sparc64-*-solaris2*)
			gdb_host=sol2
			;;

vax-*-netbsdelf*)	gdb_host=nbsdelf ;;
vax-*-netbsd*)		gdb_host=nbsdaout ;;
vax-*-openbsd*)		gdb_host=obsd ;;
vax-*-bsd*)		gdb_host=vaxbsd ;;
vax-*-ultrix2*)		gdb_host=vaxult2 ;;
vax-*-ultrix*)		gdb_host=vaxult ;;

x86_64-*-linux*)	gdb_host=linux64 ;;
x86_64-*-freebsd*)	gdb_host=fbsd64 ;;
x86_64-*-netbsd*)	gdb_host=nbsd64 ;;
x86_64-*-openbsd*)	gdb_host=obsd64 ;;

m32r*-*-linux*)          gdb_host=linux ;;

esac
