diff mbox

Move gdbserver to top level

Message ID 87r1zm6x8s.fsf@tromey.com
State New
Headers show

Commit Message

Tom Tromey Jan. 26, 2020, 3:41 p.m. UTC
>>>>> "Pedro" == Pedro Alves <palves@redhat.com> writes:

Pedro> I think this should have a NEWS entry, given that it affects
Pedro> people building standalone gdbserver today.  Do you have
Pedro> documentation changes queued?

Nope, I've added those now.

>> +// Host modules specific to gdbserver.
>> +dependencies = { module=configure-gdbserver; on=all-intl; };

Pedro> This surprised me, as I don't think gdbserver actually depends on
Pedro> intl currently?  Might still be a good idea to actually enable it,
Pedro> but I was surprised from an "as pure as possible" perspective.

I don't recall (I wrote this patch originally in May of last year), but
maybe I just copied gdb's dependencies.  Anyway, I've dropped them now.

Tom

commit 4c5c9a7a0b64c98f60c2ab79ad705d14ea568d0f
Author: Tom Tromey <tom@tromey.com>
Date:   Sun Dec 15 07:37:06 2019 -0700

    Move gdbserver to top level
    
    This patch moves gdbserver to the top level.
    
    This patch is as close to a pure move as possible -- gdbserver still
    builds its own variant of gnulib and gdbsupport.  Changing this will
    be done in a separate patch.
    
    [v2] Note that, per Simon's review comment, this patch changes the
    tree so that gdbserver is not built for or1k or score.  This makes
    sense, because there is apparently not actually a gdbserver port here.
    
    [v3] This version of the patch also splits out some configury into a
    new file, gdbserver/configure.host, so that the top-level configure
    script can simply rely on it in order to decide whether gdbserver
    should be built.
    
    [v4] This version adds documentation and removes some unnecessary
    top-level dependencies.
    
    Tested by the buildbot.
    
    ChangeLog
    2020-01-26  Tom Tromey  <tom@tromey.com>
    
            * src-release.sh (GDB_SUPPORT_DIRS): Add gdbserver.
            * gdbserver: New directory, moved from gdb/gdbserver.
            * configure.ac (host_tools): Add gdbserver.
            Only build gdbserver on certain systems.
            * Makefile.in, configure: Rebuild.
            * Makefile.def (host_modules, dependencies): Add gdbserver.
            * MAINTAINERS: Add gdbserver.
    
    gdb/ChangeLog
    2020-01-26  Tom Tromey  <tom@tromey.com>
    
            * README: Update gdbserver documentation.
            * gdbserver: Move to top level.
            * configure.tgt (build_gdbserver): Remove.
            * configure.ac: Remove --enable-gdbserver.
            * configure: Rebuild.
            * Makefile.in (distclean): Don't mention gdbserver.
    
    Change-Id: I826b7565b54604711dc7a11edea0499cd51ff39e
diff mbox

Patch

diff --git a/ChangeLog b/ChangeLog
index 582d1f27704..e9e7cc85a3e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@ 
+2020-01-26  Tom Tromey  <tom@tromey.com>
+
+	* src-release.sh (GDB_SUPPORT_DIRS): Add gdbserver.
+	* gdbserver: New directory, moved from gdb/gdbserver.
+	* configure.ac (host_tools): Add gdbserver.
+	Only build gdbserver on certain systems.
+	* Makefile.in, configure: Rebuild.
+	* Makefile.def (host_modules, dependencies): Add gdbserver.
+	* MAINTAINERS: Add gdbserver.
+
 2020-01-19  Simon Marchi  <simon.marchi@polymtl.ca>
 
 	* remote-sim.c (gdbsim_target::wait): Return
diff --git a/MAINTAINERS b/MAINTAINERS
index 805f2e3ac43..5b8a4efbdf6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -41,7 +41,7 @@  config.guess; config.sub; readline/support/config.{sub,guess}
 depcomp; mkinstalldirs
         Send bug reports and patches to bug-automake@gnu.org.
 
-gdb/; gdbsupport/; gnulib/; readline/; sim/; GDB's part of include/
+gdb/; gdbserver/; gdbsupport/; gnulib/; readline/; sim/; GDB's part of include/
 	GDB: http://www.gnu.org/software/gdb/
 	Patches to gdb-patches@sourceware.org.
 	See also gdb/MAINTAINERS and sim/MAINTAINERS.
diff --git a/Makefile.def b/Makefile.def
index 253eb45ef14..72cb133a09a 100644
--- a/Makefile.def
+++ b/Makefile.def
@@ -114,6 +114,7 @@  host_modules= { module= zlib; no_install=true; no_check=true;
 	        extra_configure_flags='@extra_host_zlib_configure_flags@';};
 host_modules= { module= gnulib; };
 host_modules= { module= gdbsupport; };
+host_modules= { module= gdbserver; };
 host_modules= { module= gdb; };
 host_modules= { module= expect; };
 host_modules= { module= guile; };
diff --git a/configure.ac b/configure.ac
index 4bd869a63a9..40669228e3c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,6 @@ 
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
 #   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012,
-#   2014, 2015, 2016, 2019 Free Software Foundation, Inc.
+#   2014, 2015, 2016, 2019, 2020 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -140,7 +140,7 @@  host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktr
 # binutils, gas and ld appear in that order because it makes sense to run
 # "make check" in that particular order.
 # If --enable-gold is used, "gold" may replace "ld".
-host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gprof etc expect dejagnu m4 utils guile fastjar gnattools libcc1 gotools"
+host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gdbserver gprof etc expect dejagnu m4 utils guile fastjar gnattools libcc1 gotools"
 
 # these libraries are built for the target environment, and are built after
 # the host libraries and the host tools (which may be a cross compiler)
@@ -782,6 +782,20 @@  case "${target}" in
     ;;
 esac
 
+# Only allow gdbserver on some systems.
+if test -d ${srcdir}/gdbserver; then
+    if test x$enable_gdbserver = x; then
+        AC_MSG_CHECKING([for gdbserver support])
+	. ${srcdir}/gdbserver/configure.host
+	if test x$build_gdbserver = xyes; then
+	    AC_MSG_RESULT([yes])
+	else
+            noconfigdirs="$noconfigdirs gdbserver"
+	    AC_MSG_RESULT([no])
+        fi
+    fi
+fi
+
 # Disable libgo for some systems where it is known to not work.
 # For testing, you can easily override this with --enable-libgo.
 if test x$enable_libgo = x; then
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b3aa3e03106..cfdf099fed7 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,12 @@ 
+2020-01-26  Tom Tromey  <tom@tromey.com>
+
+	* README: Update gdbserver documentation.
+	* gdbserver: Move to top level.
+	* configure.tgt (build_gdbserver): Remove.
+	* configure.ac: Remove --enable-gdbserver.
+	* configure: Rebuild.
+	* Makefile.in (distclean): Don't mention gdbserver.
+
 2020-01-25  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
 
 	* NEWS: Mention the new option and the set/show commands.
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 45d1586e85e..49fff371337 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -1898,13 +1898,8 @@  clean mostlyclean: $(CONFIG_CLEAN)
 # I believe this is wrong; the makefile standards for distclean just
 # describe removing files; the only sort of "re-create a distribution"
 # functionality described is if the distributed files are unmodified.
-# NB: While GDBSERVER might be configured on native systems, it isn't
-# always included in SUBDIRS.  Remove the gdbserver files explicitly.
 distclean: clean
 	@$(MAKE) $(FLAGS_TO_PASS) DO=distclean "DODIRS=$(CLEANDIRS)" subdir_do
-	rm -f gdbserver/config.status gdbserver/config.log
-	rm -f gdbserver/tm.h gdbserver/xm.h gdbserver/nm.h
-	rm -f gdbserver/Makefile gdbserver/config.cache
 	rm -f nm.h config.status config.h stamp-h b jit-reader.h
 	rm -f gdb-gdb.py gdb-gdb.gdb
 	rm -f y.output yacc.acts yacc.tmp y.tab.h
diff --git a/gdb/README b/gdb/README
index be7fdcb65d8..3895758ece5 100644
--- a/gdb/README
+++ b/gdb/README
@@ -583,12 +583,11 @@  of remote stubs to be used with remote.c.  They are designed to run
 standalone on an m68k, i386, or SPARC cpu and communicate properly
 with the remote.c stub over a serial line.
 
-   The directory gdb/gdbserver/ contains `gdbserver', a program that
+   The directory gdbserver/ contains `gdbserver', a program that
 allows remote debugging for Unix applications.  GDBserver is only
-supported for some native configurations, including Sun 3, Sun 4, and
-Linux.
+supported for some native configurations.
 
-   The file gdb/gdbserver/README includes further notes on GDBserver; in
+   The file gdbserver/README includes further notes on GDBserver; in
 particular, it explains how to build GDBserver for cross-debugging
 (where GDBserver runs on the target machine, which is of a different
 architecture than the host machine running GDB).
diff --git a/gdb/configure.ac b/gdb/configure.ac
index 0ca169101b3..335971fdf66 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -254,7 +254,6 @@  AC_SUBST(HAVE_NATIVE_GCORE_TARGET)
 # For other settings, only the main target counts.
 gdb_sim=
 gdb_osabi=
-build_gdbserver=
 targ=$target; . ${srcdir}/configure.tgt
 
 # Fetch the default architecture and default target vector from BFD.
@@ -2001,33 +2000,6 @@  if test x"${gdb_osabi}" != x ; then
 		       [Define to the default OS ABI for this configuration.])
 fi
 
-AC_ARG_ENABLE(gdbserver,
-AS_HELP_STRING([--enable-gdbserver],
-               [automatically build gdbserver (yes/no/auto, default is auto)]),
-[case "${enableval}" in
-  yes| no|auto) ;;
-  *) AC_MSG_ERROR(bad value ${enableval} for --enable-gdbserver option) ;;
-esac],[enable_gdbserver=auto])
-
-# We only build gdbserver automatically in a native configuration, and
-# only if the user did not explicitly disable its build.
-if test "$gdb_native" = "yes" -a "$enable_gdbserver" != "no"; then
-  AC_MSG_CHECKING(whether gdbserver is supported on this host)
-  if test "x$build_gdbserver" = xyes; then
-    AC_MSG_RESULT(yes)
-    AC_CONFIG_SUBDIRS(gdbserver)
-    gdbserver_build_enabled=yes
-  else
-    AC_MSG_RESULT(no)
-  fi
-fi
-
-# If the user explicitly request the gdbserver to be built, verify that
-# we were in fact able to enable it.
-if test "$enable_gdbserver" = "yes" -a "$gdbserver_build_enabled" != "yes"; then
-  AC_MSG_ERROR(Automatic gdbserver build is not supported for this configuration)
-fi
-
 # Check for babeltrace and babeltrace-ctf
 AC_ARG_WITH(babeltrace,
   AC_HELP_STRING([--with-babeltrace], [include babeltrace support (auto/yes/no)]),
diff --git a/gdb/configure.tgt b/gdb/configure.tgt
index ab4c098c0da..755187dca65 100644
--- a/gdb/configure.tgt
+++ b/gdb/configure.tgt
@@ -5,7 +5,6 @@ 
 #  gdb_target_obs	target-specific object files to use
 #  gdb_sim		simulator library for target
 #  gdb_osabi		default OS ABI to use with target
-#  build_gdbserver	set to "yes" if gdbserver supports target
 #  gdb_have_gcore	set to "true"/"false" if this target can run gcore
 
 # NOTE: Every file added to a gdb_target_obs variable for any target here
@@ -129,7 +128,6 @@  aarch64*-*-linux*)
 			arm-tdep.o arm-linux-tdep.o \
 			glibc-tdep.o linux-tdep.o solib-svr4.o \
 			symfile-mem.o linux-record.o"
-	build_gdbserver=yes
 	;;
 
 alpha*-*-linux*)
@@ -162,13 +160,11 @@  arc*-*-elf32)
 arm*-wince-pe | arm*-*-mingw32ce*)
 	# Target: ARM based machine running Windows CE (win32)
 	gdb_target_obs="arm-wince-tdep.o windows-tdep.o"
-	build_gdbserver=yes
 	;;
 arm*-*-linux*)
 	# Target: ARM based machine running GNU/Linux
 	gdb_target_obs="arch/arm-linux.o arm-linux-tdep.o glibc-tdep.o \
 			solib-svr4.o symfile-mem.o linux-tdep.o linux-record.o"
-	build_gdbserver=yes
 	;;
 arm*-*-freebsd*)
 	# Target: FreeBSD/arm
@@ -202,7 +198,6 @@  bfin-*-*linux*)
 	# Target: Blackfin Linux
 	gdb_target_obs="bfin-tdep.o bfin-linux-tdep.o linux-tdep.o"
 	gdb_sim=../sim/bfin/libsim.a
-	build_gdbserver=yes
 	;;
 bfin-*-*)
 	# Target: Blackfin processor
@@ -285,7 +280,6 @@  i[34567]86-*-nto*)
 	# Target: Intel 386 running qnx6.
 	gdb_target_obs="solib-svr4.o \
 			i386-nto-tdep.o nto-tdep.o"
-	build_gdbserver=yes
 	;;
 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
 	# Target: Solaris x86_64
@@ -303,7 +297,6 @@  i[34567]86-*-linux*)
 	    # Target: GNU/Linux x86-64
 	    gdb_target_obs="amd64-linux-tdep.o ${gdb_target_obs}"
 	fi
-	build_gdbserver=yes
 	;;
 i[34567]86-*-gnu*)
 	# Target: Intel 386 running the GNU Hurd
@@ -312,12 +305,10 @@  i[34567]86-*-gnu*)
 i[34567]86-*-cygwin*)
 	# Target: Intel 386 running win32
 	gdb_target_obs="i386-cygwin-tdep.o windows-tdep.o"
-	build_gdbserver=yes
 	;;
 i[34567]86-*-mingw32*)
 	# Target: Intel 386 running win32
 	gdb_target_obs="i386-cygwin-tdep.o windows-tdep.o"
-	build_gdbserver=yes
 	;;
 i[34567]86-*-go32* | i[34567]86-*-msdosdjgpp*)
 	# Target: i386 running DJGPP/go32.
@@ -328,7 +319,6 @@  ia64-*-linux*)
 	# Target: Intel IA-64 running GNU/Linux
 	gdb_target_obs="ia64-linux-tdep.o linux-tdep.o \
 			solib-svr4.o symfile-mem.o"
-	build_gdbserver=yes
 	;;
 ia64-*-*vms*)
 	# Target: Intel IA-64 running OpenVMS
@@ -359,7 +349,6 @@  m32r*-*-linux*)
 			glibc-tdep.o solib-svr4.o symfile-mem.o \
 			linux-tdep.o"
 	gdb_sim=../sim/m32r/libsim.a
-	build_gdbserver=yes
 	;;
 m32r*-*-*)
 	# Target: Renesas m32r processor
@@ -382,7 +371,6 @@  m68*-*-linux*)
 	# Target: Motorola m68k with a.out and ELF
 	gdb_target_obs="m68k-tdep.o m68k-linux-tdep.o solib-svr4.o \
 			linux-tdep.o glibc-tdep.o symfile-mem.o"
-	build_gdbserver=yes
 	;;
 m68*-*-netbsd* | m68*-*-knetbsd*-gnu)
 	# Target: NetBSD/m68k
@@ -416,7 +404,6 @@  mips*-*-linux*)
 	gdb_target_obs="mips-tdep.o mips-linux-tdep.o glibc-tdep.o \
 			solib-svr4.o symfile-mem.o linux-tdep.o"
 	gdb_sim=../sim/mips/libsim.a
-	build_gdbserver=yes
 	;;
 mips*-*-netbsd* | mips*-*-knetbsd*-gnu)
 	# Target: MIPS running NetBSD
@@ -480,7 +467,6 @@  or1k*-*-linux*)
 	gdb_target_obs="or1k-tdep.o or1k-linux-tdep.o solib-svr4.o \
 			symfile-mem.o glibc-tdep.o linux-tdep.o"
 	gdb_sim=../sim/or1k/libsim.a
-	build_gdbserver=yes
 	;;
 
 or1k-*-* | or1knd-*-*)
@@ -522,7 +508,6 @@  powerpc*-*-linux*)
 			linux-record.o \
 			arch/ppc-linux-common.o"
 	gdb_sim=../sim/ppc/libsim.a
-	build_gdbserver=yes
 	;;
 powerpc-*-lynx*178)
 	# Target: PowerPC running Lynx178.
@@ -541,7 +526,6 @@  s390*-*-linux*)
 	# Target: S390 running Linux
 	gdb_target_obs="s390-linux-tdep.o s390-tdep.o solib-svr4.o \
 			linux-tdep.o linux-record.o symfile-mem.o"
-	build_gdbserver=yes
 	;;
 
 riscv*-*-freebsd*)
@@ -575,7 +559,6 @@  rx-*-elf)
 score-*-*)
 	# Target: S+core embedded system
 	gdb_target_obs="score-tdep.o"
-	build_gdbserver=yes
 	;;
 
 sh*-*-linux*)
@@ -584,7 +567,6 @@  sh*-*-linux*)
 			solib-svr4.o symfile-mem.o \
 			glibc-tdep.o linux-tdep.o"
 	gdb_sim=../sim/sh/libsim.a
-	build_gdbserver=yes
 	;;
 sh*-*-netbsdelf* | sh*-*-knetbsd*-gnu)
 	# Target: NetBSD/sh
@@ -612,7 +594,6 @@  sparc-*-linux*)
 	    gdb_target_obs="sparc64-tdep.o sparc64-sol2-tdep.o \
 			    sparc64-linux-tdep.o ${gdb_target_obs}"
 	fi
-	build_gdbserver=yes
 	;;
 sparc64-*-linux*)
 	# Target: GNU/Linux UltraSPARC
@@ -620,7 +601,6 @@  sparc64-*-linux*)
 			sparc64-linux-tdep.o sparc-tdep.o sparc-sol2-tdep.o \
 			sparc-linux-tdep.o solib-svr4.o linux-tdep.o \
 			ravenscar-thread.o sparc-ravenscar-thread.o"
-	build_gdbserver=yes
 	;;
 sparc*-*-freebsd* | sparc*-*-kfreebsd*-gnu)
 	# Target: FreeBSD/sparc64
@@ -689,7 +669,6 @@  tilegx-*-linux*)
 	# Target: TILE-Gx
 	gdb_target_obs="tilegx-tdep.o tilegx-linux-tdep.o solib-svr4.o \
 			symfile-mem.o glibc-tdep.o linux-tdep.o"
-	build_gdbserver=yes
 	;;
 
 xstormy16-*-*)
@@ -742,7 +721,6 @@  x86_64-*-linux*)
 	gdb_target_obs="amd64-linux-tdep.o ${i386_tobjs}  \
 			i386-linux-tdep.o glibc-tdep.o \
 			solib-svr4.o symfile-mem.o linux-tdep.o linux-record.o"
-	build_gdbserver=yes
 	;;
 x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu)
 	# Target: FreeBSD/amd64
@@ -754,7 +732,6 @@  x86_64-*-mingw* | x86_64-*-cygwin*)
 	gdb_target_obs="amd64-windows-tdep.o \
                         ${i386_tobjs} i386-cygwin-tdep.o \
                         windows-tdep.o"
-	build_gdbserver=yes
         ;;
 x86_64-*-netbsd* | x86_64-*-knetbsd*-gnu)
 	# Target: NetBSD/amd64
@@ -772,7 +749,6 @@  x86_64-*-rtems*)
 xtensa*-*-*linux*)
 	# Target: GNU/Linux Xtensa
 	gdb_target_obs="xtensa-linux-tdep.o symfile-mem.o linux-tdep.o"
-	build_gdbserver=yes
 	;;
 
 esac
diff --git a/gdb/gdbserver/.gitignore b/gdbserver/.gitignore
similarity index 100%
rename from gdb/gdbserver/.gitignore
rename to gdbserver/.gitignore
diff --git a/gdb/gdbserver/ChangeLog b/gdbserver/ChangeLog
similarity index 99%
rename from gdb/gdbserver/ChangeLog
rename to gdbserver/ChangeLog
index aeb9cb6c778..857e17cd187 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdbserver/ChangeLog
@@ -1,3 +1,18 @@ 
+2020-01-26  Tom Tromey  <tom@tromey.com>
+
+	* README: Update build documentation.
+	* configure.host: New file.
+	* configure.ac: Update paths.
+	* configure: Rebuild.
+	* acinclude.m4: Update paths.
+	* Makefile.in: Update include paths.
+	(depcomp, INCLUDE_DIR, INCGNU, INCSUPPORT, INCLUDE_CFLAGS)
+	(SFILES, XML_DIR, n, $(GNULIB_BUILDDIR)/Makefile, config.status)
+	(version-generated.c, stamp-xml, regdat_sh, arch/%-ipa.o)
+	(gdbsupport/%-ipa.o, %-ipa.o, arch/%.o, gdbsupport/%.o, %.o)
+	(%-generated.c): Update paths.
+	* Move entire directory from ../gdb/gdbserver.
+
 2020-01-24  Hannes Domani  <ssbssa@yahoo.de>
 
 	* Makefile.in (install-strip): New target.
diff --git a/gdb/gdbserver/Makefile.in b/gdbserver/Makefile.in
similarity index 85%
rename from gdb/gdbserver/Makefile.in
rename to gdbserver/Makefile.in
index 3922b5231c4..60a52d3412b 100644
--- a/gdb/gdbserver/Makefile.in
+++ b/gdbserver/Makefile.in
@@ -66,7 +66,7 @@  STRIP = @STRIP@
 # Dependency tracking information.
 DEPMODE = @CCDEPMODE@
 DEPDIR = @DEPDIR@
-depcomp = $(SHELL) $(srcdir)/../../depcomp
+depcomp = $(SHELL) $(srcdir)/../depcomp
 
 # Directory containing source files.  Don't clean up the spacing,
 # this exact string is matched for by the "configure" script.
@@ -75,7 +75,7 @@  abs_top_srcdir = @abs_top_srcdir@
 abs_srcdir = @abs_srcdir@
 VPATH = @srcdir@
 
-include $(srcdir)/../silent-rules.mk
+include $(srcdir)/../gdb/silent-rules.mk
 
 # Note that these are overridden by GNU make-specific code below if
 # GNU make is used.  The overrides implement dependency tracking.
@@ -94,7 +94,7 @@  POSTCOMPILE = @true
 CC_LD = $(CXX) $(CXX_DIALECT)
 
 # Where is the "include" directory?  Traditionally ../include or ./include
-INCLUDE_DIR = ${srcdir}/../../include
+INCLUDE_DIR = ${srcdir}/../include
 INCLUDE_DEP = $$(INCLUDE_DIR)
 
 LIBIBERTY_BUILDDIR = build-libiberty-gdbserver
@@ -107,26 +107,26 @@  ustinc = @ustinc@
 # gnulib
 GNULIB_BUILDDIR = build-gnulib-gdbserver
 LIBGNU = $(GNULIB_BUILDDIR)/import/libgnu.a
-INCGNU = -I$(srcdir)/../../gnulib/import -I$(GNULIB_BUILDDIR)/import
+INCGNU = -I$(srcdir)/../gnulib/import -I$(GNULIB_BUILDDIR)/import
 
 # Generated headers in the gnulib directory.  These must be listed
 # so that they are generated before other files are compiled.
 GNULIB_H = $(GNULIB_BUILDDIR)/import/string.h @GNULIB_STDINT_H@
 
-INCSUPPORT = -I$(srcdir)/../.. -I../..
+INCSUPPORT = -I$(srcdir)/.. -I..
 
 # All the includes used for CFLAGS and for lint.
 # -I. for config files.
 # -I${srcdir} for our headers.
-# -I$(srcdir)/../regformats for regdef.h.
+# -I$(srcdir)/../gdb/regformats for regdef.h.
 #
 # We do not include ../target or ../nat in here because headers
 # in those directories should be included with the subdirectory.
 # e.g.: "target/wait.h".
 #
 INCLUDE_CFLAGS = -I. -I${srcdir} \
-	-I$(srcdir)/../regformats -I$(srcdir)/.. -I$(INCLUDE_DIR) \
-	$(INCGNU) $(INCSUPPORT)
+	-I$(srcdir)/../gdb/regformats -I$(srcdir)/.. -I$(INCLUDE_DIR) \
+	-I$(srcdir)/../gdb $(INCGNU) $(INCSUPPORT)
 
 # M{H,T}_CFLAGS, if defined, has host- and target-dependent CFLAGS
 # from the config/ directory.
@@ -202,46 +202,46 @@  SFILES = \
 	$(srcdir)/win32-low.c \
 	$(srcdir)/wincecompat.c \
 	$(srcdir)/x86-low.c \
-	$(srcdir)/../alloc.c \
-	$(srcdir)/../arch/arm.c \
-	$(srcdir)/../arch/arm-get-next-pcs.c \
-	$(srcdir)/../arch/arm-linux.c \
-	$(srcdir)/../arch/ppc-linux-common.c \
-	$(srcdir)/../../gdbsupport/btrace-common.c \
-	$(srcdir)/../../gdbsupport/buffer.c \
-	$(srcdir)/../../gdbsupport/cleanups.c \
-	$(srcdir)/../../gdbsupport/common-debug.c \
-	$(srcdir)/../../gdbsupport/common-exceptions.c \
-	$(srcdir)/../../gdbsupport/common-inferior.c \
-	$(srcdir)/../../gdbsupport/common-regcache.c \
-	$(srcdir)/../../gdbsupport/common-utils.c \
-	$(srcdir)/../../gdbsupport/errors.c \
-	$(srcdir)/../../gdbsupport/environ.c \
-	$(srcdir)/../../gdbsupport/fileio.c \
-	$(srcdir)/../../gdbsupport/filestuff.c \
-	$(srcdir)/../../gdbsupport/job-control.c \
-	$(srcdir)/../../gdbsupport/gdb-dlfcn.c \
-	$(srcdir)/../../gdbsupport/gdb_tilde_expand.c \
-	$(srcdir)/../../gdbsupport/gdb_vecs.c \
-	$(srcdir)/../../gdbsupport/gdb_wait.c \
-	$(srcdir)/../../gdbsupport/netstuff.c \
-	$(srcdir)/../../gdbsupport/new-op.c \
-	$(srcdir)/../../gdbsupport/pathstuff.c \
-	$(srcdir)/../../gdbsupport/print-utils.c \
-	$(srcdir)/../../gdbsupport/ptid.c \
-	$(srcdir)/../../gdbsupport/rsp-low.c \
-	$(srcdir)/../../gdbsupport/safe-strerror.c \
-	$(srcdir)/../../gdbsupport/tdesc.c \
-	$(srcdir)/../../gdbsupport/xml-utils.c \
-	$(srcdir)/../nat/aarch64-sve-linux-ptrace.c \
-	$(srcdir)/../nat/linux-btrace.c \
-	$(srcdir)/../nat/linux-namespaces.c \
-	$(srcdir)/../nat/linux-osdata.c \
-	$(srcdir)/../nat/linux-personality.c \
-	$(srcdir)/../nat/mips-linux-watch.c \
-	$(srcdir)/../nat/ppc-linux.c \
-	$(srcdir)/../nat/fork-inferior.c \
-	$(srcdir)/../target/waitstatus.c
+	$(srcdir)/../gdb/alloc.c \
+	$(srcdir)/../gdb/arch/arm.c \
+	$(srcdir)/../gdb/arch/arm-get-next-pcs.c \
+	$(srcdir)/../gdb/arch/arm-linux.c \
+	$(srcdir)/../gdb/arch/ppc-linux-common.c \
+	$(srcdir)/../gdbsupport/btrace-common.c \
+	$(srcdir)/../gdbsupport/buffer.c \
+	$(srcdir)/../gdbsupport/cleanups.c \
+	$(srcdir)/../gdbsupport/common-debug.c \
+	$(srcdir)/../gdbsupport/common-exceptions.c \
+	$(srcdir)/../gdbsupport/common-inferior.c \
+	$(srcdir)/../gdbsupport/common-regcache.c \
+	$(srcdir)/../gdbsupport/common-utils.c \
+	$(srcdir)/../gdbsupport/errors.c \
+	$(srcdir)/../gdbsupport/environ.c \
+	$(srcdir)/../gdbsupport/fileio.c \
+	$(srcdir)/../gdbsupport/filestuff.c \
+	$(srcdir)/../gdbsupport/job-control.c \
+	$(srcdir)/../gdbsupport/gdb-dlfcn.c \
+	$(srcdir)/../gdbsupport/gdb_tilde_expand.c \
+	$(srcdir)/../gdbsupport/gdb_vecs.c \
+	$(srcdir)/../gdbsupport/gdb_wait.c \
+	$(srcdir)/../gdbsupport/netstuff.c \
+	$(srcdir)/../gdbsupport/new-op.c \
+	$(srcdir)/../gdbsupport/pathstuff.c \
+	$(srcdir)/../gdbsupport/print-utils.c \
+	$(srcdir)/../gdbsupport/ptid.c \
+	$(srcdir)/../gdbsupport/rsp-low.c \
+	$(srcdir)/../gdbsupport/safe-strerror.c \
+	$(srcdir)/../gdbsupport/tdesc.c \
+	$(srcdir)/../gdbsupport/xml-utils.c \
+	$(srcdir)/../gdb/nat/aarch64-sve-linux-ptrace.c \
+	$(srcdir)/../gdb/nat/linux-btrace.c \
+	$(srcdir)/../gdb/nat/linux-namespaces.c \
+	$(srcdir)/../gdb/nat/linux-osdata.c \
+	$(srcdir)/../gdb/nat/linux-personality.c \
+	$(srcdir)/../gdb/nat/mips-linux-watch.c \
+	$(srcdir)/../gdb/nat/ppc-linux.c \
+	$(srcdir)/../gdb/nat/fork-inferior.c \
+	$(srcdir)/../gdb/target/waitstatus.c
 
 DEPFILES = @GDBSERVER_DEPFILES@
 
@@ -322,7 +322,7 @@  XM_CLIBS = @LIBS@
 CDEPS = $(srcdir)/proc-service.list
 
 # XML files to compile in to gdbserver, if any.
-XML_DIR = $(srcdir)/../features
+XML_DIR = $(srcdir)/../gdb/features
 XML_FILES = @srv_xmlfiles@
 XML_BUILTIN = @srv_xmlbuiltin@
 
@@ -388,10 +388,10 @@  install-only:
 	n=`echo gdbserver | sed '$(program_transform_name)'`; \
 	if [ x$$n = x ]; then n=gdbserver; else true; fi; \
 	if [ x"$(IPA_DEPFILES)" != x ]; then \
-		$(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(libdir); \
+		$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(libdir); \
 		$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $(IPA_LIB) $(DESTDIR)$(libdir)/$(IPA_LIB); \
 	fi; \
-	$(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(bindir); \
+	$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(bindir); \
 	$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) gdbserver$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT)
 	# Note that we run install and not install-only, as the latter
 	# is not part of GNU standards and in particular not provided
@@ -522,14 +522,14 @@  stamp-h: config.in config.status
 Makefile: Makefile.in config.status
 	$(SHELL) ./config.status $@
 
-$(GNULIB_BUILDDIR)/Makefile: $(srcdir)/../../gnulib/Makefile.in config.status
+$(GNULIB_BUILDDIR)/Makefile: $(srcdir)/../gnulib/Makefile.in config.status
 	  @cd $(GNULIB_BUILDDIR); CONFIG_FILES="Makefile" \
 	  CONFIG_COMMANDS="depfiles" \
 	  CONFIG_HEADERS= \
 	  CONFIG_LINKS= \
 	  $(SHELL) config.status
 
-config.status: configure configure.srv $(srcdir)/../../bfd/development.sh
+config.status: configure configure.srv $(srcdir)/../bfd/development.sh
 	$(SHELL) ./config.status --recheck
 
 # automatic rebuilding in automake-generated Makefiles requires
@@ -541,8 +541,8 @@  am--refresh:
 
 force:
 
-version-generated.c: Makefile $(srcdir)/../version.in $(srcdir)/../../bfd/version.h $(srcdir)/../../gdbsupport/create-version.sh
-	$(ECHO_GEN) $(SHELL) $(srcdir)/../../gdbsupport/create-version.sh $(srcdir)/.. \
+version-generated.c: Makefile $(srcdir)/../gdb/version.in $(srcdir)/../bfd/version.h $(srcdir)/../gdbsupport/create-version.sh
+	$(ECHO_GEN) $(SHELL) $(srcdir)/../gdbsupport/create-version.sh $(srcdir)/../gdb \
 		$(host_alias) $(target_alias) $@
 
 xml-builtin-generated.c: stamp-xml; @true
@@ -550,7 +550,7 @@  stamp-xml: $(XML_DIR)/feature_to_c.sh Makefile $(XML_FILES)
 	$(SILENCE) rm -f xml-builtin.tmp
 	$(ECHO_GEN_XML_BUILTIN_GENERATED) $(SHELL) $(XML_DIR)/feature_to_c.sh \
 		xml-builtin.tmp $(XML_FILES)
-	$(SILENCE) $(SHELL) $(srcdir)/../../move-if-change xml-builtin.tmp xml-builtin-generated.c
+	$(SILENCE) $(SHELL) $(srcdir)/../move-if-change xml-builtin.tmp xml-builtin-generated.c
 	$(SILENCE) echo stamp > stamp-xml
 
 .PRECIOUS: xml-builtin.c
@@ -566,7 +566,7 @@  stamp-xml: $(XML_DIR)/feature_to_c.sh Makefile $(XML_FILES)
 # will remove them.
 MAKEOVERRIDES =
 
-regdat_sh = $(srcdir)/../regformats/regdat.sh
+regdat_sh = $(srcdir)/../gdb/regformats/regdat.sh
 
 UST_CFLAGS = $(ustinc) -DCONFIG_UST_GDB_INTEGRATION
 
@@ -596,11 +596,11 @@  ax.o: ax.c
 
 # Rules for objects that go in the in-process agent.
 
-arch/%-ipa.o: ../arch/%.c
+arch/%-ipa.o: ../gdb/arch/%.c
 	$(IPAGENT_COMPILE) $<
 	$(POSTCOMPILE)
 
-gdbsupport/%-ipa.o: ../../gdbsupport/%.c
+gdbsupport/%-ipa.o: ../gdbsupport/%.c
 	$(IPAGENT_COMPILE) $<
 	$(POSTCOMPILE)
 
@@ -612,7 +612,7 @@  gdbsupport/%-ipa.o: ../../gdbsupport/%.c
 	$(IPAGENT_COMPILE) $<
 	$(POSTCOMPILE)
 
-%-ipa.o: ../%.c
+%-ipa.o: ../gdb/%.c
 	$(IPAGENT_COMPILE) $<
 	$(POSTCOMPILE)
 
@@ -629,11 +629,11 @@  gdbsupport/%-ipa.o: ../../gdbsupport/%.c
 
 # Rules for objects that go in the gdbserver binary.
 
-arch/%.o: ../arch/%.c
+arch/%.o: ../gdb/arch/%.c
 	$(COMPILE) $<
 	$(POSTCOMPILE)
 
-gdbsupport/%.o: ../../gdbsupport/%.c
+gdbsupport/%.o: ../gdbsupport/%.c
 	$(COMPILE) $<
 	$(POSTCOMPILE)
 
@@ -645,28 +645,28 @@  gdbsupport/%.o: ../../gdbsupport/%.c
 	$(COMPILE) $<
 	$(POSTCOMPILE)
 
-nat/%.o: ../nat/%.c
+nat/%.o: ../gdb/nat/%.c
 	$(COMPILE) $<
 	$(POSTCOMPILE)
 
-target/%.o: ../target/%.c
+target/%.o: ../gdb/target/%.c
 	$(COMPILE) $<
 	$(POSTCOMPILE)
 
-%.o: ../%.c
+%.o: ../gdb/%.c
 	$(COMPILE) $<
 	$(POSTCOMPILE)
 
 # Rules for register format descriptions.  Suffix destination files with
 # -generated to identify and clean them easily.
 
-%-generated.c: ../regformats/%.dat $(regdat_sh)
+%-generated.c: ../gdb/regformats/%.dat $(regdat_sh)
 	$(ECHO_REGDAT) $(SHELL) $(regdat_sh) $< $@
 
-%-generated.c: ../regformats/arm/%.dat $(regdat_sh)
+%-generated.c: ../gdb/regformats/arm/%.dat $(regdat_sh)
 	$(ECHO_REGDAT) $(SHELL) $(regdat_sh) $< $@
 
-%-generated.c: ../regformats/rs6000/%.dat $(regdat_sh)
+%-generated.c: ../gdb/regformats/rs6000/%.dat $(regdat_sh)
 	$(ECHO_REGDAT) $(SHELL) $(regdat_sh) $< $@
 
 #
@@ -711,7 +711,7 @@  all_deps_files = $(foreach dep,$(patsubst %.o,%.Po,$(all_object_files)),\
 -include $(all_deps_files)
 
 # Disable implicit make rules.
-include $(srcdir)/../disable-implicit-rules.mk
+include $(srcdir)/../gdb/disable-implicit-rules.mk
 
 # Do not delete intermediate files (e.g. *-generated.c).
 .SECONDARY:
diff --git a/gdb/gdbserver/README b/gdbserver/README
similarity index 89%
rename from gdb/gdbserver/README
rename to gdbserver/README
index 52a876b24e8..6b8be9669ef 100644
--- a/gdb/gdbserver/README
+++ b/gdbserver/README
@@ -100,27 +100,24 @@  The supported targets as of November 2006 are:
 	spu*-*-*
 	x86_64-*-linux*
 
-Configuring GDBserver you should specify the same machine for host and
-target (which are the machine that GDBserver is going to run on.  This
-is not the same as the machine that GDB is going to run on; building
-GDBserver automatically as part of building a whole tree of tools does
-not currently work if cross-compilation is involved (we don't get the
-right CC in the Makefile, to start with)).
-
-Building GDBserver for your target is very straightforward.  If you build
-GDB natively on a target which GDBserver supports, it will be built
+Building GDBserver for your host is very straightforward.  If you build
+GDB natively on a host which GDBserver supports, it will be built
 automatically when you build GDB.  You can also build just GDBserver:
 
 	% mkdir obj
 	% cd obj
-	% path-to-gdbserver-sources/configure
+	% path-to-toplevel-sources/configure --disable-gdb
 	% make
 
+(If you have a combined binutils+gdb tree, you may want to also
+disable other directories when configuring, e.g., binutils, gas, gold,
+gprof, and ld.)
+
 If you prefer to cross-compile to your target, then you can also build
 GDBserver that way.  In a Bourne shell, for example:
 
 	% export CC=your-cross-compiler
-	% path-to-gdbserver-sources/configure your-target-name
+	% path-to-topevel-sources/configure your-target-name --disable-gdb
 	% make
 
 Using GDBreplay:
diff --git a/gdb/gdbserver/acinclude.m4 b/gdbserver/acinclude.m4
similarity index 63%
rename from gdb/gdbserver/acinclude.m4
rename to gdbserver/acinclude.m4
index eba3a131315..5a284515c82 100644
--- a/gdb/gdbserver/acinclude.m4
+++ b/gdbserver/acinclude.m4
@@ -1,42 +1,42 @@ 
 dnl gdb/gdbserver/configure.in uses BFD_HAVE_SYS_PROCFS_TYPE.
-m4_include(../../bfd/bfd.m4)
+m4_include(../bfd/bfd.m4)
 
-m4_include(../acx_configure_dir.m4)
+m4_include(../gdb/acx_configure_dir.m4)
 
 # This gets AM_GDB_WARNINGS.
-m4_include(../warning.m4)
+m4_include(../gdb/warning.m4)
 
 dnl This gets autoconf bugfixes
-m4_include(../../config/override.m4)
+m4_include(../config/override.m4)
 
 dnl For ACX_PKGVERSION and ACX_BUGURL.
-m4_include(../../config/acx.m4)
+m4_include(../config/acx.m4)
 
-m4_include(../../config/depstand.m4)
-m4_include(../../config/lead-dot.m4)
+m4_include(../config/depstand.m4)
+m4_include(../config/lead-dot.m4)
 
 dnl Needed for common.m4
 dnl For AC_LIB_HAVE_LINKFLAGS.
-m4_include(../../config/lib-ld.m4)
-m4_include(../../config/lib-prefix.m4)
-m4_include(../../config/lib-link.m4)
+m4_include(../config/lib-ld.m4)
+m4_include(../config/lib-prefix.m4)
+m4_include(../config/lib-link.m4)
 dnl codeset.m4 is needed for common.m4, but not for
 dnl anything else in gdbserver.
-m4_include(../../config/codeset.m4)
-m4_include(../../gdbsupport/common.m4)
+m4_include(../config/codeset.m4)
+m4_include(../gdbsupport/common.m4)
 
 dnl For libiberty_INIT.
-m4_include(../libiberty.m4)
+m4_include(../gdb/libiberty.m4)
 
 dnl For GDB_AC_PTRACE.
-m4_include(../ptrace.m4)
+m4_include(../gdb/ptrace.m4)
 
-m4_include(../ax_cxx_compile_stdcxx.m4)
+m4_include(../gdb/ax_cxx_compile_stdcxx.m4)
 
 dnl For GDB_AC_SELFTEST.
-m4_include(../selftest.m4)
+m4_include(../gdb/selftest.m4)
 
-m4_include([../../config/ax_pthread.m4])
+m4_include([../config/ax_pthread.m4])
 
 dnl Check for existence of a type $1 in libthread_db.h
 dnl Based on BFD_HAVE_SYS_PROCFS_TYPE in bfd/bfd.m4.
diff --git a/gdb/gdbserver/aclocal.m4 b/gdbserver/aclocal.m4
similarity index 100%
rename from gdb/gdbserver/aclocal.m4
rename to gdbserver/aclocal.m4
diff --git a/gdb/gdbserver/ax.c b/gdbserver/ax.c
similarity index 100%
rename from gdb/gdbserver/ax.c
rename to gdbserver/ax.c
diff --git a/gdb/gdbserver/ax.h b/gdbserver/ax.h
similarity index 100%
rename from gdb/gdbserver/ax.h
rename to gdbserver/ax.h
diff --git a/gdb/gdbserver/config.in b/gdbserver/config.in
similarity index 100%
rename from gdb/gdbserver/config.in
rename to gdbserver/config.in
diff --git a/gdb/gdbserver/configure b/gdbserver/configure
similarity index 99%
rename from gdb/gdbserver/configure
rename to gdbserver/configure
diff --git a/gdb/gdbserver/configure.ac b/gdbserver/configure.ac
similarity index 98%
rename from gdb/gdbserver/configure.ac
rename to gdbserver/configure.ac
index 03b36dc699a..285a297a1c6 100644
--- a/gdb/gdbserver/configure.ac
+++ b/gdbserver/configure.ac
@@ -44,7 +44,7 @@  AX_CXX_COMPILE_STDCXX(11, , mandatory)
 AC_HEADER_STDC
 
 # Set the 'development' global.
-. $srcdir/../../bfd/development.sh
+. $srcdir/../bfd/development.sh
 
 GDB_AC_SELFTEST([
   srv_selftest_objs="gdbsupport/selftest.o"
@@ -80,10 +80,10 @@  fi
 # gdbserver/.  We need to build gnulib under some other directory not
 # "gnulib", to avoid the problem of both GDB and GDBserver wanting to
 # build it in the same directory, when building in the source dir.
-ACX_CONFIGURE_DIR(["../../gnulib"], ["build-gnulib-gdbserver"],
+ACX_CONFIGURE_DIR(["../gnulib"], ["build-gnulib-gdbserver"],
                   ["$gnulib_extra_configure_args"])
 
-ACX_CONFIGURE_DIR(["../../libiberty"], ["build-libiberty-gdbserver"])
+ACX_CONFIGURE_DIR(["../libiberty"], ["build-libiberty-gdbserver"])
 
 AC_CHECK_HEADERS(termios.h sys/reg.h string.h dnl
 		 sys/procfs.h linux/elf.h dnl
diff --git a/gdbserver/configure.host b/gdbserver/configure.host
new file mode 100644
index 00000000000..86d3a80148d
--- /dev/null
+++ b/gdbserver/configure.host
@@ -0,0 +1,111 @@ 
+# Configure helper for gdbserver
+# Copyright (C) 2000-2020 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 3 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, see <http://www.gnu.org/licenses/>.
+
+# Source this to determine whether gdbserver can be built for a given
+# host.  This will set the variable "build_gdbserver".  The variable
+# "host" must be set before sourcing.
+
+build_gdbserver=
+case "$host" in
+aarch64*-*-linux*)
+	# Target: AArch64 linux
+	build_gdbserver=yes
+	;;
+
+arm*-wince-pe | arm*-*-mingw32ce*)
+	# Target: ARM based machine running Windows CE (win32)
+	build_gdbserver=yes
+	;;
+arm*-*-linux*)
+	# Target: ARM based machine running GNU/Linux
+	build_gdbserver=yes
+	;;
+bfin-*-*linux*)
+	# Target: Blackfin Linux
+	gdb_target_obs="bfin-tdep.o bfin-linux-tdep.o linux-tdep.o"
+	build_gdbserver=yes
+	;;
+i[34567]86-*-nto*)
+	# Target: Intel 386 running qnx6.
+	build_gdbserver=yes
+	;;
+i[34567]86-*-linux*)
+	# Target: Intel 386 running GNU/Linux
+	build_gdbserver=yes
+	;;
+i[34567]86-*-cygwin*)
+	# Target: Intel 386 running win32
+	build_gdbserver=yes
+	;;
+i[34567]86-*-mingw32*)
+	# Target: Intel 386 running win32
+	build_gdbserver=yes
+	;;
+ia64-*-linux*)
+	# Target: Intel IA-64 running GNU/Linux
+	build_gdbserver=yes
+	;;
+m32r*-*-linux*)
+	# Target: Renesas M32R running GNU/Linux
+	build_gdbserver=yes
+	;;
+m68*-*-linux*)
+	# Target: Motorola m68k with a.out and ELF
+	build_gdbserver=yes
+	;;
+mips*-*-linux*)
+	# Target: Linux/MIPS
+	build_gdbserver=yes
+	;;
+powerpc*-*-linux*)
+	# Target: PowerPC running Linux
+	build_gdbserver=yes
+	;;
+s390*-*-linux*)
+	# Target: S390 running Linux
+	build_gdbserver=yes
+	;;
+sh*-*-linux*)
+	# Target: GNU/Linux Super-H
+	build_gdbserver=yes
+	;;
+sparc-*-linux*)
+	# Target: GNU/Linux SPARC
+	build_gdbserver=yes
+	;;
+sparc64-*-linux*)
+	# Target: GNU/Linux UltraSPARC
+	build_gdbserver=yes
+	;;
+tilegx-*-linux*)
+	# Target: TILE-Gx
+	build_gdbserver=yes
+	;;
+x86_64-*-linux*)
+	# Target: GNU/Linux x86-64
+	build_gdbserver=yes
+	;;
+x86_64-*-mingw* | x86_64-*-cygwin*)
+        # Target: MingW/amd64
+	build_gdbserver=yes
+        ;;
+xtensa*-*-*linux*)
+	# Target: GNU/Linux Xtensa
+	build_gdbserver=yes
+	;;
+esac
diff --git a/gdb/gdbserver/configure.srv b/gdbserver/configure.srv
similarity index 100%
rename from gdb/gdbserver/configure.srv
rename to gdbserver/configure.srv
diff --git a/gdb/gdbserver/debug.c b/gdbserver/debug.c
similarity index 100%
rename from gdb/gdbserver/debug.c
rename to gdbserver/debug.c
diff --git a/gdb/gdbserver/debug.h b/gdbserver/debug.h
similarity index 100%
rename from gdb/gdbserver/debug.h
rename to gdbserver/debug.h
diff --git a/gdb/gdbserver/dll.c b/gdbserver/dll.c
similarity index 100%
rename from gdb/gdbserver/dll.c
rename to gdbserver/dll.c
diff --git a/gdb/gdbserver/dll.h b/gdbserver/dll.h
similarity index 100%
rename from gdb/gdbserver/dll.h
rename to gdbserver/dll.h
diff --git a/gdb/gdbserver/event-loop.c b/gdbserver/event-loop.c
similarity index 100%
rename from gdb/gdbserver/event-loop.c
rename to gdbserver/event-loop.c
diff --git a/gdb/gdbserver/event-loop.h b/gdbserver/event-loop.h
similarity index 100%
rename from gdb/gdbserver/event-loop.h
rename to gdbserver/event-loop.h
diff --git a/gdb/gdbserver/fork-child.c b/gdbserver/fork-child.c
similarity index 100%
rename from gdb/gdbserver/fork-child.c
rename to gdbserver/fork-child.c
diff --git a/gdb/gdbserver/gdb_proc_service.h b/gdbserver/gdb_proc_service.h
similarity index 100%
rename from gdb/gdbserver/gdb_proc_service.h
rename to gdbserver/gdb_proc_service.h
diff --git a/gdb/gdbserver/gdbreplay.c b/gdbserver/gdbreplay.c
similarity index 100%
rename from gdb/gdbserver/gdbreplay.c
rename to gdbserver/gdbreplay.c
diff --git a/gdb/gdbserver/gdbthread.h b/gdbserver/gdbthread.h
similarity index 100%
rename from gdb/gdbserver/gdbthread.h
rename to gdbserver/gdbthread.h
diff --git a/gdb/gdbserver/hostio-errno.c b/gdbserver/hostio-errno.c
similarity index 100%
rename from gdb/gdbserver/hostio-errno.c
rename to gdbserver/hostio-errno.c
diff --git a/gdb/gdbserver/hostio.c b/gdbserver/hostio.c
similarity index 100%
rename from gdb/gdbserver/hostio.c
rename to gdbserver/hostio.c
diff --git a/gdb/gdbserver/hostio.h b/gdbserver/hostio.h
similarity index 100%
rename from gdb/gdbserver/hostio.h
rename to gdbserver/hostio.h
diff --git a/gdb/gdbserver/i387-fp.c b/gdbserver/i387-fp.c
similarity index 100%
rename from gdb/gdbserver/i387-fp.c
rename to gdbserver/i387-fp.c
diff --git a/gdb/gdbserver/i387-fp.h b/gdbserver/i387-fp.h
similarity index 100%
rename from gdb/gdbserver/i387-fp.h
rename to gdbserver/i387-fp.h
diff --git a/gdb/gdbserver/inferiors.c b/gdbserver/inferiors.c
similarity index 100%
rename from gdb/gdbserver/inferiors.c
rename to gdbserver/inferiors.c
diff --git a/gdb/gdbserver/inferiors.h b/gdbserver/inferiors.h
similarity index 100%
rename from gdb/gdbserver/inferiors.h
rename to gdbserver/inferiors.h
diff --git a/gdb/gdbserver/linux-aarch32-low.c b/gdbserver/linux-aarch32-low.c
similarity index 100%
rename from gdb/gdbserver/linux-aarch32-low.c
rename to gdbserver/linux-aarch32-low.c
diff --git a/gdb/gdbserver/linux-aarch32-low.h b/gdbserver/linux-aarch32-low.h
similarity index 100%
rename from gdb/gdbserver/linux-aarch32-low.h
rename to gdbserver/linux-aarch32-low.h
diff --git a/gdb/gdbserver/linux-aarch32-tdesc.c b/gdbserver/linux-aarch32-tdesc.c
similarity index 100%
rename from gdb/gdbserver/linux-aarch32-tdesc.c
rename to gdbserver/linux-aarch32-tdesc.c
diff --git a/gdb/gdbserver/linux-aarch32-tdesc.h b/gdbserver/linux-aarch32-tdesc.h
similarity index 100%
rename from gdb/gdbserver/linux-aarch32-tdesc.h
rename to gdbserver/linux-aarch32-tdesc.h
diff --git a/gdb/gdbserver/linux-aarch64-ipa.c b/gdbserver/linux-aarch64-ipa.c
similarity index 100%
rename from gdb/gdbserver/linux-aarch64-ipa.c
rename to gdbserver/linux-aarch64-ipa.c
diff --git a/gdb/gdbserver/linux-aarch64-low.c b/gdbserver/linux-aarch64-low.c
similarity index 100%
rename from gdb/gdbserver/linux-aarch64-low.c
rename to gdbserver/linux-aarch64-low.c
diff --git a/gdb/gdbserver/linux-aarch64-tdesc.c b/gdbserver/linux-aarch64-tdesc.c
similarity index 100%
rename from gdb/gdbserver/linux-aarch64-tdesc.c
rename to gdbserver/linux-aarch64-tdesc.c
diff --git a/gdb/gdbserver/linux-aarch64-tdesc.h b/gdbserver/linux-aarch64-tdesc.h
similarity index 100%
rename from gdb/gdbserver/linux-aarch64-tdesc.h
rename to gdbserver/linux-aarch64-tdesc.h
diff --git a/gdb/gdbserver/linux-amd64-ipa.c b/gdbserver/linux-amd64-ipa.c
similarity index 100%
rename from gdb/gdbserver/linux-amd64-ipa.c
rename to gdbserver/linux-amd64-ipa.c
diff --git a/gdb/gdbserver/linux-arm-low.c b/gdbserver/linux-arm-low.c
similarity index 100%
rename from gdb/gdbserver/linux-arm-low.c
rename to gdbserver/linux-arm-low.c
diff --git a/gdb/gdbserver/linux-arm-tdesc.c b/gdbserver/linux-arm-tdesc.c
similarity index 100%
rename from gdb/gdbserver/linux-arm-tdesc.c
rename to gdbserver/linux-arm-tdesc.c
diff --git a/gdb/gdbserver/linux-arm-tdesc.h b/gdbserver/linux-arm-tdesc.h
similarity index 100%
rename from gdb/gdbserver/linux-arm-tdesc.h
rename to gdbserver/linux-arm-tdesc.h
diff --git a/gdb/gdbserver/linux-bfin-low.c b/gdbserver/linux-bfin-low.c
similarity index 100%
rename from gdb/gdbserver/linux-bfin-low.c
rename to gdbserver/linux-bfin-low.c
diff --git a/gdb/gdbserver/linux-cris-low.c b/gdbserver/linux-cris-low.c
similarity index 100%
rename from gdb/gdbserver/linux-cris-low.c
rename to gdbserver/linux-cris-low.c
diff --git a/gdb/gdbserver/linux-crisv32-low.c b/gdbserver/linux-crisv32-low.c
similarity index 100%
rename from gdb/gdbserver/linux-crisv32-low.c
rename to gdbserver/linux-crisv32-low.c
diff --git a/gdb/gdbserver/linux-i386-ipa.c b/gdbserver/linux-i386-ipa.c
similarity index 100%
rename from gdb/gdbserver/linux-i386-ipa.c
rename to gdbserver/linux-i386-ipa.c
diff --git a/gdb/gdbserver/linux-ia64-low.c b/gdbserver/linux-ia64-low.c
similarity index 100%
rename from gdb/gdbserver/linux-ia64-low.c
rename to gdbserver/linux-ia64-low.c
diff --git a/gdb/gdbserver/linux-low.c b/gdbserver/linux-low.c
similarity index 100%
rename from gdb/gdbserver/linux-low.c
rename to gdbserver/linux-low.c
diff --git a/gdb/gdbserver/linux-low.h b/gdbserver/linux-low.h
similarity index 100%
rename from gdb/gdbserver/linux-low.h
rename to gdbserver/linux-low.h
diff --git a/gdb/gdbserver/linux-m32r-low.c b/gdbserver/linux-m32r-low.c
similarity index 100%
rename from gdb/gdbserver/linux-m32r-low.c
rename to gdbserver/linux-m32r-low.c
diff --git a/gdb/gdbserver/linux-m68k-low.c b/gdbserver/linux-m68k-low.c
similarity index 100%
rename from gdb/gdbserver/linux-m68k-low.c
rename to gdbserver/linux-m68k-low.c
diff --git a/gdb/gdbserver/linux-mips-low.c b/gdbserver/linux-mips-low.c
similarity index 100%
rename from gdb/gdbserver/linux-mips-low.c
rename to gdbserver/linux-mips-low.c
diff --git a/gdb/gdbserver/linux-nios2-low.c b/gdbserver/linux-nios2-low.c
similarity index 100%
rename from gdb/gdbserver/linux-nios2-low.c
rename to gdbserver/linux-nios2-low.c
diff --git a/gdb/gdbserver/linux-ppc-ipa.c b/gdbserver/linux-ppc-ipa.c
similarity index 100%
rename from gdb/gdbserver/linux-ppc-ipa.c
rename to gdbserver/linux-ppc-ipa.c
diff --git a/gdb/gdbserver/linux-ppc-low.c b/gdbserver/linux-ppc-low.c
similarity index 100%
rename from gdb/gdbserver/linux-ppc-low.c
rename to gdbserver/linux-ppc-low.c
diff --git a/gdb/gdbserver/linux-ppc-tdesc-init.h b/gdbserver/linux-ppc-tdesc-init.h
similarity index 100%
rename from gdb/gdbserver/linux-ppc-tdesc-init.h
rename to gdbserver/linux-ppc-tdesc-init.h
diff --git a/gdb/gdbserver/linux-s390-ipa.c b/gdbserver/linux-s390-ipa.c
similarity index 100%
rename from gdb/gdbserver/linux-s390-ipa.c
rename to gdbserver/linux-s390-ipa.c
diff --git a/gdb/gdbserver/linux-s390-low.c b/gdbserver/linux-s390-low.c
similarity index 100%
rename from gdb/gdbserver/linux-s390-low.c
rename to gdbserver/linux-s390-low.c
diff --git a/gdb/gdbserver/linux-s390-tdesc.h b/gdbserver/linux-s390-tdesc.h
similarity index 100%
rename from gdb/gdbserver/linux-s390-tdesc.h
rename to gdbserver/linux-s390-tdesc.h
diff --git a/gdb/gdbserver/linux-sh-low.c b/gdbserver/linux-sh-low.c
similarity index 100%
rename from gdb/gdbserver/linux-sh-low.c
rename to gdbserver/linux-sh-low.c
diff --git a/gdb/gdbserver/linux-sparc-low.c b/gdbserver/linux-sparc-low.c
similarity index 100%
rename from gdb/gdbserver/linux-sparc-low.c
rename to gdbserver/linux-sparc-low.c
diff --git a/gdb/gdbserver/linux-tic6x-low.c b/gdbserver/linux-tic6x-low.c
similarity index 100%
rename from gdb/gdbserver/linux-tic6x-low.c
rename to gdbserver/linux-tic6x-low.c
diff --git a/gdb/gdbserver/linux-tile-low.c b/gdbserver/linux-tile-low.c
similarity index 100%
rename from gdb/gdbserver/linux-tile-low.c
rename to gdbserver/linux-tile-low.c
diff --git a/gdb/gdbserver/linux-x86-low.c b/gdbserver/linux-x86-low.c
similarity index 100%
rename from gdb/gdbserver/linux-x86-low.c
rename to gdbserver/linux-x86-low.c
diff --git a/gdb/gdbserver/linux-x86-tdesc.c b/gdbserver/linux-x86-tdesc.c
similarity index 100%
rename from gdb/gdbserver/linux-x86-tdesc.c
rename to gdbserver/linux-x86-tdesc.c
diff --git a/gdb/gdbserver/linux-x86-tdesc.h b/gdbserver/linux-x86-tdesc.h
similarity index 100%
rename from gdb/gdbserver/linux-x86-tdesc.h
rename to gdbserver/linux-x86-tdesc.h
diff --git a/gdb/gdbserver/linux-xtensa-low.c b/gdbserver/linux-xtensa-low.c
similarity index 100%
rename from gdb/gdbserver/linux-xtensa-low.c
rename to gdbserver/linux-xtensa-low.c
diff --git a/gdb/gdbserver/lynx-i386-low.c b/gdbserver/lynx-i386-low.c
similarity index 100%
rename from gdb/gdbserver/lynx-i386-low.c
rename to gdbserver/lynx-i386-low.c
diff --git a/gdb/gdbserver/lynx-low.c b/gdbserver/lynx-low.c
similarity index 100%
rename from gdb/gdbserver/lynx-low.c
rename to gdbserver/lynx-low.c
diff --git a/gdb/gdbserver/lynx-low.h b/gdbserver/lynx-low.h
similarity index 100%
rename from gdb/gdbserver/lynx-low.h
rename to gdbserver/lynx-low.h
diff --git a/gdb/gdbserver/lynx-ppc-low.c b/gdbserver/lynx-ppc-low.c
similarity index 100%
rename from gdb/gdbserver/lynx-ppc-low.c
rename to gdbserver/lynx-ppc-low.c
diff --git a/gdb/gdbserver/mem-break.c b/gdbserver/mem-break.c
similarity index 100%
rename from gdb/gdbserver/mem-break.c
rename to gdbserver/mem-break.c
diff --git a/gdb/gdbserver/mem-break.h b/gdbserver/mem-break.h
similarity index 100%
rename from gdb/gdbserver/mem-break.h
rename to gdbserver/mem-break.h
diff --git a/gdb/gdbserver/notif.c b/gdbserver/notif.c
similarity index 100%
rename from gdb/gdbserver/notif.c
rename to gdbserver/notif.c
diff --git a/gdb/gdbserver/notif.h b/gdbserver/notif.h
similarity index 100%
rename from gdb/gdbserver/notif.h
rename to gdbserver/notif.h
diff --git a/gdb/gdbserver/nto-low.c b/gdbserver/nto-low.c
similarity index 100%
rename from gdb/gdbserver/nto-low.c
rename to gdbserver/nto-low.c
diff --git a/gdb/gdbserver/nto-low.h b/gdbserver/nto-low.h
similarity index 100%
rename from gdb/gdbserver/nto-low.h
rename to gdbserver/nto-low.h
diff --git a/gdb/gdbserver/nto-x86-low.c b/gdbserver/nto-x86-low.c
similarity index 100%
rename from gdb/gdbserver/nto-x86-low.c
rename to gdbserver/nto-x86-low.c
diff --git a/gdb/gdbserver/proc-service.c b/gdbserver/proc-service.c
similarity index 100%
rename from gdb/gdbserver/proc-service.c
rename to gdbserver/proc-service.c
diff --git a/gdb/gdbserver/proc-service.list b/gdbserver/proc-service.list
similarity index 100%
rename from gdb/gdbserver/proc-service.list
rename to gdbserver/proc-service.list
diff --git a/gdb/gdbserver/regcache.c b/gdbserver/regcache.c
similarity index 100%
rename from gdb/gdbserver/regcache.c
rename to gdbserver/regcache.c
diff --git a/gdb/gdbserver/regcache.h b/gdbserver/regcache.h
similarity index 100%
rename from gdb/gdbserver/regcache.h
rename to gdbserver/regcache.h
diff --git a/gdb/gdbserver/remote-utils.c b/gdbserver/remote-utils.c
similarity index 100%
rename from gdb/gdbserver/remote-utils.c
rename to gdbserver/remote-utils.c
diff --git a/gdb/gdbserver/remote-utils.h b/gdbserver/remote-utils.h
similarity index 100%
rename from gdb/gdbserver/remote-utils.h
rename to gdbserver/remote-utils.h
diff --git a/gdb/gdbserver/server.c b/gdbserver/server.c
similarity index 100%
rename from gdb/gdbserver/server.c
rename to gdbserver/server.c
diff --git a/gdb/gdbserver/server.h b/gdbserver/server.h
similarity index 100%
rename from gdb/gdbserver/server.h
rename to gdbserver/server.h
diff --git a/gdb/gdbserver/symbol.c b/gdbserver/symbol.c
similarity index 100%
rename from gdb/gdbserver/symbol.c
rename to gdbserver/symbol.c
diff --git a/gdb/gdbserver/target.c b/gdbserver/target.c
similarity index 100%
rename from gdb/gdbserver/target.c
rename to gdbserver/target.c
diff --git a/gdb/gdbserver/target.h b/gdbserver/target.h
similarity index 100%
rename from gdb/gdbserver/target.h
rename to gdbserver/target.h
diff --git a/gdb/gdbserver/tdesc.c b/gdbserver/tdesc.c
similarity index 100%
rename from gdb/gdbserver/tdesc.c
rename to gdbserver/tdesc.c
diff --git a/gdb/gdbserver/tdesc.h b/gdbserver/tdesc.h
similarity index 100%
rename from gdb/gdbserver/tdesc.h
rename to gdbserver/tdesc.h
diff --git a/gdb/gdbserver/thread-db.c b/gdbserver/thread-db.c
similarity index 100%
rename from gdb/gdbserver/thread-db.c
rename to gdbserver/thread-db.c
diff --git a/gdb/gdbserver/tracepoint.c b/gdbserver/tracepoint.c
similarity index 100%
rename from gdb/gdbserver/tracepoint.c
rename to gdbserver/tracepoint.c
diff --git a/gdb/gdbserver/tracepoint.h b/gdbserver/tracepoint.h
similarity index 100%
rename from gdb/gdbserver/tracepoint.h
rename to gdbserver/tracepoint.h
diff --git a/gdb/gdbserver/utils.c b/gdbserver/utils.c
similarity index 100%
rename from gdb/gdbserver/utils.c
rename to gdbserver/utils.c
diff --git a/gdb/gdbserver/utils.h b/gdbserver/utils.h
similarity index 100%
rename from gdb/gdbserver/utils.h
rename to gdbserver/utils.h
diff --git a/gdb/gdbserver/win32-arm-low.c b/gdbserver/win32-arm-low.c
similarity index 100%
rename from gdb/gdbserver/win32-arm-low.c
rename to gdbserver/win32-arm-low.c
diff --git a/gdb/gdbserver/win32-i386-low.c b/gdbserver/win32-i386-low.c
similarity index 100%
rename from gdb/gdbserver/win32-i386-low.c
rename to gdbserver/win32-i386-low.c
diff --git a/gdb/gdbserver/win32-low.c b/gdbserver/win32-low.c
similarity index 100%
rename from gdb/gdbserver/win32-low.c
rename to gdbserver/win32-low.c
diff --git a/gdb/gdbserver/win32-low.h b/gdbserver/win32-low.h
similarity index 100%
rename from gdb/gdbserver/win32-low.h
rename to gdbserver/win32-low.h
diff --git a/gdb/gdbserver/wincecompat.c b/gdbserver/wincecompat.c
similarity index 100%
rename from gdb/gdbserver/wincecompat.c
rename to gdbserver/wincecompat.c
diff --git a/gdb/gdbserver/wincecompat.h b/gdbserver/wincecompat.h
similarity index 100%
rename from gdb/gdbserver/wincecompat.h
rename to gdbserver/wincecompat.h
diff --git a/gdb/gdbserver/x86-low.c b/gdbserver/x86-low.c
similarity index 100%
rename from gdb/gdbserver/x86-low.c
rename to gdbserver/x86-low.c
diff --git a/gdb/gdbserver/x86-low.h b/gdbserver/x86-low.h
similarity index 100%
rename from gdb/gdbserver/x86-low.h
rename to gdbserver/x86-low.h
diff --git a/gdb/gdbserver/x86-tdesc.h b/gdbserver/x86-tdesc.h
similarity index 100%
rename from gdb/gdbserver/x86-tdesc.h
rename to gdbserver/x86-tdesc.h
diff --git a/gdb/gdbserver/xtensa-xtregs.c b/gdbserver/xtensa-xtregs.c
similarity index 100%
rename from gdb/gdbserver/xtensa-xtregs.c
rename to gdbserver/xtensa-xtregs.c
diff --git a/src-release.sh b/src-release.sh
index 92e92ac5d77..95f79c5bd7d 100755
--- a/src-release.sh
+++ b/src-release.sh
@@ -1,5 +1,5 @@ 
 #!/usr/bin/env bash
-#   Copyright (C) 1990-2019 Free Software Foundation
+#   Copyright (C) 1990-2020 Free Software Foundation
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -315,7 +315,7 @@  gas_release()
     tar_compress $package $tool "$GAS_SUPPORT_DIRS" "$compressors"
 }
 
-GDB_SUPPORT_DIRS="bfd include libiberty libctf opcodes readline sim intl libdecnumber cpu zlib contrib gnulib gdbsupport"
+GDB_SUPPORT_DIRS="bfd include libiberty libctf opcodes readline sim intl libdecnumber cpu zlib contrib gnulib gdbsupport gdbserver"
 gdb_release()
 {
     compressors=$1