# Mappings from configuration triplets to gdbserver build options.
# This is invoked from the autoconf-generated configure script, to
# produce the appropriate Makefile substitutions.

# This file sets the following shell variables:
#   srv_regobj		The register protocol appropriate for this target.
#   srv_tgtobj		Any other target-specific modules appropriate
#			for this target.
#   srv_hostio_err	The object implementing the hostio_last_error
#			target method.
#   srv_xmlfiles	All XML files which should be available for
#			gdbserver in this configuration.
#   ipa_obj		Any other target-specific modules appropriate
#			for this target's in-process agent.
#
# In addition, on GNU/Linux the following shell variables will be set:
#   srv_linux_regsets	Set to "yes" if ptrace(PTRACE_GETREGS) and friends
#			may be available on this platform;  unset otherwise.
#			They will only be used if <sys/ptrace.h> defines
#			PTRACE_GETREGS.
#   srv_linux_usrregs	Set to "yes" if we can get at registers via
#			PTRACE_PEEKUSR / PTRACE_POKEUSR.

# Default hostio_last_error implementation
srv_hostio_err_objs="hostio-errno.o"

srv_i386_regobj="i386.o i386-avx.o i386-mmx.o"
srv_i386_linux_regobj="i386-linux.o i386-avx-linux.o i386-mmx-linux.o"
srv_amd64_regobj="amd64.o amd64-avx.o x32.o x32-avx.o"
srv_amd64_linux_regobj="amd64-linux.o amd64-avx-linux.o x32-linux.o x32-avx-linux.o"

ipa_i386_linux_regobj=i386-linux-ipa.o
ipa_amd64_linux_regobj=amd64-linux-ipa.o

srv_i386_32bit_xmlfiles="i386/32bit-core.xml i386/32bit-sse.xml i386/32bit-avx.xml"
srv_i386_64bit_xmlfiles="i386/64bit-core.xml i386/64bit-sse.xml i386/64bit-avx.xml i386/x32-core.xml"
srv_i386_xmlfiles="i386/i386.xml i386/i386-avx.xml i386/i386-mmx.xml $srv_i386_32bit_xmlfiles"
srv_amd64_xmlfiles="i386/amd64.xml i386/amd64-avx.xml i386/x32.xml i386/x32-avx.xml $srv_i386_64bit_xmlfiles"
srv_i386_linux_xmlfiles="i386/i386-linux.xml i386/i386-avx-linux.xml i386/i386-mmx-linux.xml i386/32bit-linux.xml $srv_i386_32bit_xmlfiles"
srv_amd64_linux_xmlfiles="i386/amd64-linux.xml i386/amd64-avx-linux.xml i386/64bit-linux.xml i386/x32-linux.xml i386/x32-avx-linux.xml $srv_i386_64bit_xmlfiles"

# Input is taken from the "${target}" variable.

case "${target}" in
  aarch64*-*-linux*)
			srv_regobj="aarch64.o aarch64-without-fpu.o"
			srv_tgtobj="linux-aarch64-low.o"
			srv_tgtobj="${srv_tgtobj} linux-low.o"
			srv_tgtobj="${srv_tgtobj} linux-osdata.o"
			srv_tgtobj="${srv_tgtobj} linux-procfs.o"
			srv_tgtobj="${srv_tgtobj} linux-ptrace.o"
			srv_xmlfiles="aarch64.xml"
			srv_xmlfiles="${srv_xmlfiles} aarch64-core.xml"
			srv_xmlfiles="${srv_xmlfiles} aarch64-fpu.xml"
			srv_xmlfiles="${srv_xmlfiles} aarch64-without-fpu.xml"
			srv_linux_usrregs=yes
			srv_linux_regsets=yes
			srv_linux_thread_db=yes
			;;
  arm*-*-linux*)	srv_regobj="reg-arm.o arm-with-iwmmxt.o"
			srv_regobj="${srv_regobj} arm-with-vfpv2.o"
			srv_regobj="${srv_regobj} arm-with-vfpv3.o"
			srv_regobj="${srv_regobj} arm-with-neon.o"
			srv_tgtobj="linux-low.o linux-osdata.o linux-arm-low.o linux-procfs.o"
			srv_tgtobj="${srv_tgtobj} linux-ptrace.o"
			srv_xmlfiles="arm-with-iwmmxt.xml"
			srv_xmlfiles="${srv_xmlfiles} arm-with-vfpv2.xml"
			srv_xmlfiles="${srv_xmlfiles} arm-with-vfpv3.xml"
			srv_xmlfiles="${srv_xmlfiles} arm-with-neon.xml"
			srv_xmlfiles="${srv_xmlfiles} arm-core.xml"
			srv_xmlfiles="${srv_xmlfiles} xscale-iwmmxt.xml"
			srv_xmlfiles="${srv_xmlfiles} arm-vfpv2.xml"
			srv_xmlfiles="${srv_xmlfiles} arm-vfpv3.xml"
			srv_linux_usrregs=yes
			srv_linux_regsets=yes
			srv_linux_thread_db=yes
			;;
  arm*-*-mingw32ce*)	srv_regobj=reg-arm.o
			srv_tgtobj="win32-low.o win32-arm-low.o"
			srv_tgtobj="${srv_tgtobj} wincecompat.o"
			# hostio_last_error implementation is in win32-low.c
			srv_hostio_err_objs=""
			srv_mingw=yes
			srv_mingwce=yes
			;;
  bfin-*-*linux*)	srv_regobj=reg-bfin.o
			srv_tgtobj="linux-low.o linux-osdata.o linux-bfin-low.o linux-procfs.o"
			srv_tgtobj="${srv_tgtobj} linux-ptrace.o"
			srv_linux_usrregs=yes
			srv_linux_thread_db=yes
			;;
  crisv32-*-linux*)	srv_regobj=reg-crisv32.o
			srv_tgtobj="linux-low.o linux-osdata.o linux-crisv32-low.o linux-procfs.o"
			srv_tgtobj="${srv_tgtobj} linux-ptrace.o"
			srv_linux_regsets=yes
			srv_linux_thread_db=yes
			;;
  cris-*-linux*)	srv_regobj=reg-cris.o
			srv_tgtobj="linux-low.o linux-osdata.o linux-cris-low.o linux-procfs.o"
			srv_tgtobj="${srv_tgtobj} linux-ptrace.o"
			srv_linux_usrregs=yes
			srv_linux_thread_db=yes
			;;
  i[34567]86-*-cygwin*)	srv_regobj="$srv_i386_regobj"
			srv_tgtobj="i386-low.o win32-low.o win32-i386-low.o"
			srv_xmlfiles="$srv_i386_xmlfiles"
			;;
  i[34567]86-*-linux*)	srv_regobj="$srv_i386_linux_regobj"
			srv_xmlfiles="$srv_i386_linux_xmlfiles"
			if test "$gdb_cv_i386_is_x86_64" = yes ; then
			    srv_regobj="$srv_regobj $srv_amd64_linux_regobj"
			    srv_xmlfiles="${srv_xmlfiles} $srv_amd64_linux_xmlfiles"
			fi
			srv_tgtobj="linux-low.o linux-osdata.o linux-x86-low.o i386-low.o i387-fp.o linux-procfs.o"
			srv_tgtobj="${srv_tgtobj} linux-ptrace.o linux-btrace.o"
			srv_linux_usrregs=yes
			srv_linux_regsets=yes
			srv_linux_thread_db=yes
			srv_linux_btrace=yes
			ipa_obj="${ipa_i386_linux_regobj} linux-i386-ipa.o"
			;;
  i[34567]86-*-lynxos*)	srv_regobj="i386.o"
			srv_tgtobj="lynx-low.o lynx-i386-low.o"
			srv_xmlfiles="i386/i386.xml"
			srv_xmlfiles="${srv_xmlfiles} i386/32bit-core.xml"
			srv_xmlfiles="${srv_xmlfiles} i386/32bit-sse.xml"
			srv_lynxos=yes
			;;
  i[34567]86-*-mingw32ce*)
			srv_regobj="$srv_i386_regobj"
			srv_tgtobj="i386-low.o win32-low.o win32-i386-low.o"
			srv_tgtobj="${srv_tgtobj} wincecompat.o"
			srv_xmlfiles="$srv_i386_xmlfiles"
			# hostio_last_error implementation is in win32-low.c
			srv_hostio_err_objs=""
			srv_mingw=yes
			srv_mingwce=yes
			;;
  i[34567]86-*-mingw*)	srv_regobj="$srv_i386_regobj"
			srv_tgtobj="i386-low.o win32-low.o win32-i386-low.o"
			srv_xmlfiles="$srv_i386_xmlfiles"
			srv_mingw=yes
			;;
  i[34567]86-*-nto*)	srv_regobj="$srv_i386_regobj"
			srv_tgtobj="nto-low.o nto-x86-low.o"
			srv_xmlfiles="$srv_i386_xmlfiles"
			srv_qnx="yes"
			;;
  ia64-*-linux*)	srv_regobj=reg-ia64.o
			srv_tgtobj="linux-low.o linux-osdata.o linux-ia64-low.o linux-procfs.o"
			srv_tgtobj="${srv_tgtobj} linux-ptrace.o"
			srv_linux_usrregs=yes
			;;
  m32r*-*-linux*)	srv_regobj=reg-m32r.o
			srv_tgtobj="linux-low.o linux-osdata.o linux-m32r-low.o linux-procfs.o"
			srv_tgtobj="${srv_tgtobj} linux-ptrace.o"
			srv_linux_usrregs=yes
 			srv_linux_thread_db=yes
			;;
  m68*-*-linux*)	if test "$gdb_cv_m68k_is_coldfire" = yes; then
                          srv_regobj=reg-cf.o
                        else
                          srv_regobj=reg-m68k.o
                        fi
			srv_tgtobj="linux-low.o linux-osdata.o linux-m68k-low.o linux-procfs.o"
			srv_tgtobj="${srv_tgtobj} linux-ptrace.o"
			srv_linux_usrregs=yes
			srv_linux_regsets=yes
			srv_linux_thread_db=yes
			;;
  m68*-*-uclinux*)	if test "$gdb_cv_m68k_is_coldfire" = yes; then
                          srv_regobj=reg-cf.o
                        else
                          srv_regobj=reg-m68k.o
                        fi
			srv_tgtobj="linux-low.o linux-osdata.o linux-m68k-low.o linux-procfs.o"
			srv_tgtobj="${srv_tgtobj} linux-ptrace.o"
			srv_linux_usrregs=yes
			srv_linux_regsets=yes
			srv_linux_thread_db=yes
			;;
  mips*-*-linux*)	srv_regobj="mips-linux.o"
			srv_regobj="${srv_regobj} mips-dsp-linux.o"
			srv_regobj="${srv_regobj} mips64-linux.o"
			srv_regobj="${srv_regobj} mips64-dsp-linux.o"
			srv_tgtobj="linux-low.o linux-osdata.o linux-mips-low.o linux-procfs.o"
			srv_tgtobj="${srv_tgtobj} linux-ptrace.o"
			srv_xmlfiles="mips-linux.xml"
			srv_xmlfiles="${srv_xmlfiles} mips-dsp-linux.xml"
			srv_xmlfiles="${srv_xmlfiles} mips-cpu.xml"
			srv_xmlfiles="${srv_xmlfiles} mips-cp0.xml"
			srv_xmlfiles="${srv_xmlfiles} mips-fpu.xml"
			srv_xmlfiles="${srv_xmlfiles} mips-dsp.xml"
			srv_xmlfiles="${srv_xmlfiles} mips64-linux.xml"
			srv_xmlfiles="${srv_xmlfiles} mips64-dsp-linux.xml"
			srv_xmlfiles="${srv_xmlfiles} mips64-cpu.xml"
			srv_xmlfiles="${srv_xmlfiles} mips64-cp0.xml"
			srv_xmlfiles="${srv_xmlfiles} mips64-fpu.xml"
			srv_xmlfiles="${srv_xmlfiles} mips64-dsp.xml"
			srv_linux_regsets=yes
			srv_linux_usrregs=yes
			srv_linux_thread_db=yes
			;;
  powerpc*-*-linux*)	srv_regobj="powerpc-32l.o"
			srv_regobj="${srv_regobj} powerpc-altivec32l.o"
			srv_regobj="${srv_regobj} powerpc-cell32l.o"
			srv_regobj="${srv_regobj} powerpc-vsx32l.o"
			srv_regobj="${srv_regobj} powerpc-isa205-32l.o"
			srv_regobj="${srv_regobj} powerpc-isa205-altivec32l.o"
			srv_regobj="${srv_regobj} powerpc-isa205-vsx32l.o"
			srv_regobj="${srv_regobj} powerpc-e500l.o"
			srv_regobj="${srv_regobj} powerpc-64l.o"
			srv_regobj="${srv_regobj} powerpc-altivec64l.o"
			srv_regobj="${srv_regobj} powerpc-cell64l.o"
			srv_regobj="${srv_regobj} powerpc-vsx64l.o"
			srv_regobj="${srv_regobj} powerpc-isa205-64l.o"
			srv_regobj="${srv_regobj} powerpc-isa205-altivec64l.o"
			srv_regobj="${srv_regobj} powerpc-isa205-vsx64l.o"
			srv_tgtobj="linux-low.o linux-osdata.o linux-ppc-low.o linux-procfs.o"
			srv_tgtobj="${srv_tgtobj} linux-ptrace.o"
			srv_xmlfiles="rs6000/powerpc-32l.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-altivec32l.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-cell32l.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-vsx32l.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-32l.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-altivec32l.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-vsx32l.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/power-altivec.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/power-vsx.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/power-core.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/power-linux.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/power-fpu.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/power-fpu-isa205.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-e500l.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/power-spe.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-64l.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-altivec64l.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-cell64l.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-vsx64l.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-64l.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-altivec64l.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-vsx64l.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/power64-core.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/power64-linux.xml"
			srv_linux_usrregs=yes
			srv_linux_regsets=yes
			srv_linux_thread_db=yes
			;;
  powerpc-*-lynxos*)	srv_regobj="powerpc-32.o"
			srv_tgtobj="lynx-low.o lynx-ppc-low.o"
			srv_xmlfiles="rs6000/powerpc-32.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/power-core.xml"
			srv_xmlfiles="${srv_xmlfiles} rs6000/power-fpu.xml"
			srv_lynxos=yes
			;;
  s390*-*-linux*)	srv_regobj="s390-linux32.o"
			srv_regobj="${srv_regobj} s390-linux32v1.o"
			srv_regobj="${srv_regobj} s390-linux32v2.o"
			srv_regobj="${srv_regobj} s390-linux64.o"
			srv_regobj="${srv_regobj} s390-linux64v1.o"
			srv_regobj="${srv_regobj} s390-linux64v2.o"
			srv_regobj="${srv_regobj} s390x-linux64.o"
			srv_regobj="${srv_regobj} s390x-linux64v1.o"
			srv_regobj="${srv_regobj} s390x-linux64v2.o"
			srv_tgtobj="linux-low.o linux-osdata.o linux-s390-low.o linux-procfs.o"
			srv_tgtobj="${srv_tgtobj} linux-ptrace.o"
			srv_xmlfiles="s390-linux32.xml"
			srv_xmlfiles="${srv_xmlfiles} s390-linux32v1.xml"
			srv_xmlfiles="${srv_xmlfiles} s390-linux32v2.xml"
			srv_xmlfiles="${srv_xmlfiles} s390-linux64.xml"
			srv_xmlfiles="${srv_xmlfiles} s390-linux64v1.xml"
			srv_xmlfiles="${srv_xmlfiles} s390-linux64v2.xml"
			srv_xmlfiles="${srv_xmlfiles} s390x-linux64.xml"
			srv_xmlfiles="${srv_xmlfiles} s390x-linux64v1.xml"
			srv_xmlfiles="${srv_xmlfiles} s390x-linux64v2.xml"
			srv_xmlfiles="${srv_xmlfiles} s390-core32.xml"
			srv_xmlfiles="${srv_xmlfiles} s390-core64.xml"
			srv_xmlfiles="${srv_xmlfiles} s390x-core64.xml"
			srv_xmlfiles="${srv_xmlfiles} s390-acr.xml"
			srv_xmlfiles="${srv_xmlfiles} s390-fpr.xml"
			srv_linux_usrregs=yes
			srv_linux_regsets=yes
			srv_linux_thread_db=yes
			;;
  sh*-*-linux*)		srv_regobj=reg-sh.o
			srv_tgtobj="linux-low.o linux-osdata.o linux-sh-low.o linux-procfs.o"
			srv_tgtobj="${srv_tgtobj} linux-ptrace.o"
			srv_linux_usrregs=yes
			srv_linux_regsets=yes
			srv_linux_thread_db=yes
			;;
  sparc*-*-linux*)	srv_regobj=reg-sparc64.o
			srv_tgtobj="linux-low.o linux-osdata.o linux-sparc-low.o linux-procfs.o"
			srv_tgtobj="${srv_tgtobj} linux-ptrace.o"
			srv_linux_regsets=yes
			srv_linux_thread_db=yes
			;;
  spu*-*-*)		srv_regobj=reg-spu.o
			srv_tgtobj="spu-low.o"
			;;
  tic6x-*-uclinux)	srv_regobj="tic6x-c64xp-linux.o"
			srv_regobj="${srv_regobj} tic6x-c64x-linux.o"
			srv_regobj="${srv_regobj} tic6x-c62x-linux.o"
			srv_xmlfiles="tic6x-c64xp-linux.xml"
			srv_xmlfiles="${srv_xmlfiles} tic6x-c64x-linux.xml"
			srv_xmlfiles="${srv_xmlfiles} tic6x-c62x-linux.xml"
			srv_xmlfiles="${srv_xmlfiles} tic6x-core.xml"
			srv_xmlfiles="${srv_xmlfiles} tic6x-gp.xml"
			srv_xmlfiles="${srv_xmlfiles} tic6x-c6xp.xml"
  			srv_tgtobj="linux-low.o linux-osdata.o linux-tic6x-low.o linux-procfs.o"
			srv_tgtobj="${srv_tgtobj} linux-ptrace.o"
			srv_linux_regsets=yes
			srv_linux_usrregs=yes
			srv_linux_thread_db=yes
			;;
  x86_64-*-linux*)	srv_regobj="$srv_amd64_linux_regobj $srv_i386_linux_regobj"
			srv_tgtobj="linux-low.o linux-osdata.o linux-x86-low.o i386-low.o i387-fp.o linux-procfs.o"
			srv_tgtobj="${srv_tgtobj} linux-ptrace.o linux-btrace.o"
			srv_xmlfiles="$srv_i386_linux_xmlfiles $srv_amd64_linux_xmlfiles"
			srv_linux_usrregs=yes # This is for i386 progs.
			srv_linux_regsets=yes
			srv_linux_thread_db=yes
			srv_linux_btrace=yes
			ipa_obj="${ipa_amd64_linux_regobj} linux-amd64-ipa.o"
			;;
  x86_64-*-mingw*)	srv_regobj="$srv_amd64_regobj"
			srv_tgtobj="i386-low.o i387-fp.o win32-low.o win32-i386-low.o"
			srv_xmlfiles="$srv_i386_xmlfiles $srv_amd64_xmlfiles"
			srv_mingw=yes
			;;
  x86_64-*-cygwin*)	srv_regobj="$srv_amd64_regobj"
			srv_tgtobj="i386-low.o i387-fp.o win32-low.o win32-i386-low.o"
			srv_xmlfiles="$srv_i386_xmlfiles"
			;;

  xtensa*-*-linux*)	srv_regobj=reg-xtensa.o
			srv_tgtobj="linux-low.o linux-osdata.o linux-xtensa-low.o linux-procfs.o"
			srv_tgtobj="${srv_tgtobj} linux-ptrace.o"
			srv_linux_regsets=yes
			;;
  tilegx-*-linux*)	srv_regobj=reg-tilegx.o
			srv_regobj="${srv_regobj} reg-tilegx32.o"
			srv_tgtobj="linux-low.o linux-tile-low.o linux-osdata.o linux-procfs.o"
			srv_tgtobj="${srv_tgtobj} linux-ptrace.o"
			srv_linux_regsets=yes
			srv_linux_thread_db=yes
			;;
  *)			echo "Error: target not supported by gdbserver."
			exit 1
			;;
esac
