diff --git a/gdb/gdbserver/configure.srv b/gdb/gdbserver/configure.srv
index bec72e2b19..a2d334d12e 100644
--- a/gdb/gdbserver/configure.srv
+++ b/gdb/gdbserver/configure.srv
@@ -24,14 +24,6 @@
 # Default hostio_last_error implementation
 srv_hostio_err_objs="hostio-errno.o"
 
-if $enable_unittests; then
-   srv_i386_linux_regobj="i386-linux.o i386-avx-linux.o i386-avx-avx512-linux.o i386-avx-mpx-avx512-pku-linux.o i386-mpx-linux.o i386-avx-mpx-linux.o i386-mmx-linux.o linux-x86-tdesc-selftest.o"
-   srv_amd64_linux_regobj="amd64-linux.o amd64-avx-linux.o amd64-avx-avx512-linux.o amd64-avx-mpx-avx512-pku-linux.o amd64-mpx-linux.o amd64-avx-mpx-linux.o x32-linux.o x32-avx-linux.o x32-avx-avx512-linux.o"
-else
-   srv_i386_linux_regobj=""
-   srv_amd64_linux_regobj=""
-fi
-
 ipa_ppc_linux_regobj="powerpc-32l-ipa.o powerpc-altivec32l-ipa.o powerpc-cell32l-ipa.o powerpc-vsx32l-ipa.o powerpc-isa205-32l-ipa.o powerpc-isa205-altivec32l-ipa.o powerpc-isa205-vsx32l-ipa.o powerpc-isa205-ppr-dscr-vsx32l-ipa.o powerpc-isa207-vsx32l-ipa.o powerpc-isa207-htm-vsx32l-ipa.o powerpc-e500l-ipa.o powerpc-64l-ipa.o powerpc-altivec64l-ipa.o powerpc-cell64l-ipa.o powerpc-vsx64l-ipa.o powerpc-isa205-64l-ipa.o powerpc-isa205-altivec64l-ipa.o powerpc-isa205-vsx64l-ipa.o powerpc-isa205-ppr-dscr-vsx64l-ipa.o powerpc-isa207-vsx64l-ipa.o powerpc-isa207-htm-vsx64l-ipa.o"
 
 # Linux object files.  This is so we don't have to repeat
@@ -41,12 +33,7 @@ srv_linux_obj="linux-low.o linux-osdata.o linux-procfs.o linux-ptrace.o linux-wa
 # Input is taken from the "${target}" variable.
 
 case "${target}" in
-  aarch64*-*-linux*)
-			srv_regobj="arm-with-neon.o"
-			if $enable_unittests; then
-			  srv_regobj="${srv_regobj} aarch64.o"
-			  srv_regobj="${srv_regobj} linux-aarch64-tdesc-selftest.o"
-                        fi
+  aarch64*-*-linux*)	srv_regobj="arm-with-neon.o"
 			srv_tgtobj="linux-aarch64-low.o aarch64-linux-hw-point.o"
 			srv_tgtobj="$srv_tgtobj linux-aarch32-low.o"
 			srv_tgtobj="${srv_tgtobj} arch/arm.o"
@@ -110,12 +97,7 @@ case "${target}" in
 			srv_tgtobj="x86-low.o x86-dregs.o win32-low.o win32-i386-low.o"
 			srv_tgtobj="${srv_tgtobj} arch/i386.o"
 			;;
-  i[34567]86-*-linux*)	srv_regobj="$srv_i386_linux_regobj"
-			if test "$gdb_cv_i386_is_x86_64" = yes ; then
-			    srv_regobj="$srv_regobj $srv_amd64_linux_regobj"
-			    srv_tgtobj="amd64-linux-siginfo.o"
-			fi
-			srv_tgtobj="${srv_tgtobj} arch/i386.o"
+  i[34567]86-*-linux*)	srv_tgtobj="${srv_tgtobj} arch/i386.o"
 			srv_tgtobj="${srv_tgtobj} $srv_linux_obj linux-x86-low.o x86-low.o x86-dregs.o i387-fp.o"
 			srv_tgtobj="${srv_tgtobj} linux-x86-tdesc.o"
 			srv_tgtobj="${srv_tgtobj} linux-btrace.o x86-linux.o"
@@ -382,8 +364,8 @@ case "${target}" in
 			srv_linux_usrregs=yes
 			srv_linux_thread_db=yes
 			;;
-  x86_64-*-linux*)	srv_regobj="$srv_amd64_linux_regobj $srv_i386_linux_regobj"
-			srv_tgtobj="$srv_linux_obj linux-x86-low.o x86-low.o x86-dregs.o i387-fp.o"
+  x86_64-*-linux*)	srv_tgtobj="$srv_linux_obj linux-x86-low.o x86-low.o"
+  			srv_tgtobj="${srv_tgtobj} x86-dregs.o i387-fp.o"
 			srv_tgtobj="${srv_tgtobj} arch/i386.o arch/amd64.o"
 			srv_tgtobj="${srv_tgtobj} linux-x86-tdesc.o"
 			srv_tgtobj="${srv_tgtobj} linux-btrace.o x86-linux.o"
diff --git a/gdb/gdbserver/linux-aarch64-low.c b/gdb/gdbserver/linux-aarch64-low.c
index dc4ee81d2a..5aea5de372 100644
--- a/gdb/gdbserver/linux-aarch64-low.c
+++ b/gdb/gdbserver/linux-aarch64-low.c
@@ -3097,8 +3097,4 @@ initialize_low_arch (void)
 
   initialize_regsets_info (&aarch64_regsets_info);
   initialize_regsets_info (&aarch64_sve_regsets_info);
-
-#if GDB_SELF_TEST
-  initialize_low_tdesc ();
-#endif
 }
diff --git a/gdb/gdbserver/linux-aarch64-tdesc-selftest.c b/gdb/gdbserver/linux-aarch64-tdesc-selftest.c
deleted file mode 100644
index bf24a27c59..0000000000
--- a/gdb/gdbserver/linux-aarch64-tdesc-selftest.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright (C) 2017-2019 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/>.  */
-
-#include "server.h"
-#include "tdesc.h"
-#include "common/selftest.h"
-#include "linux-aarch64-tdesc.h"
-
-/* Defined in auto-generated file features/aarch64.c.  */
-void init_registers_aarch64 (void);
-extern const struct target_desc *tdesc_aarch64;
-
-namespace selftests {
-namespace tdesc {
-static void
-aarch64_tdesc_test ()
-{
-  const target_desc *tdesc = aarch64_linux_read_description (0, false);
-  SELF_CHECK (*tdesc == *tdesc_aarch64);
-}
-}
-} // namespace selftests
-
-void
-initialize_low_tdesc ()
-{
-  init_registers_aarch64 ();
-
-  selftests::register_test ("aarch64-tdesc",
-			    selftests::tdesc::aarch64_tdesc_test);
-}
diff --git a/gdb/gdbserver/linux-aarch64-tdesc.h b/gdb/gdbserver/linux-aarch64-tdesc.h
index 06b3ec9b1e..0cd9adc7d7 100644
--- a/gdb/gdbserver/linux-aarch64-tdesc.h
+++ b/gdb/gdbserver/linux-aarch64-tdesc.h
@@ -22,8 +22,4 @@
 
 const target_desc * aarch64_linux_read_description (uint64_t vq, bool pauth_p);
 
-#if GDB_SELF_TEST
-void initialize_low_tdesc ();
-#endif
-
 #endif /* GDBSERVER_LINUX_AARCH64_TDESC_H */
diff --git a/gdb/gdbserver/linux-x86-low.c b/gdb/gdbserver/linux-x86-low.c
index e84e7a1793..db240e2bc4 100644
--- a/gdb/gdbserver/linux-x86-low.c
+++ b/gdb/gdbserver/linux-x86-low.c
@@ -2911,10 +2911,6 @@ initialize_low_arch (void)
   tdesc_amd64_linux_no_xml->xmltarget = xmltarget_amd64_linux_no_xml;
 #endif
 
-#if GDB_SELF_TEST
-  initialize_low_tdesc ();
-#endif
-
   tdesc_i386_linux_no_xml = allocate_target_description ();
   copy_target_description (tdesc_i386_linux_no_xml,
 			   i386_linux_read_description (X86_XSTATE_SSE_MASK));
diff --git a/gdb/gdbserver/linux-x86-tdesc-selftest.c b/gdb/gdbserver/linux-x86-tdesc-selftest.c
deleted file mode 100644
index 50474b3668..0000000000
--- a/gdb/gdbserver/linux-x86-tdesc-selftest.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/* Copyright (C) 2017-2019 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/>.  */
-
-#include "server.h"
-#include "linux-x86-tdesc.h"
-#include "tdesc.h"
-#include "common/selftest.h"
-#include "common/x86-xstate.h"
-
-/* Defined in auto-generated file i386-linux.c.  */
-void init_registers_i386_linux (void);
-extern const struct target_desc *tdesc_i386_linux;
-
-/* Defined in auto-generated file i386-mmx-linux.c.  */
-void init_registers_i386_mmx_linux (void);
-extern const struct target_desc *tdesc_i386_mmx_linux;
-
-/* Defined in auto-generated file i386-avx-linux.c.  */
-void init_registers_i386_avx_linux (void);
-extern const struct target_desc *tdesc_i386_avx_linux;
-
-/* Defined in auto-generated file i386-avx-mpx-linux.c.  */
-void init_registers_i386_avx_mpx_linux (void);
-extern const struct target_desc *tdesc_i386_avx_mpx_linux;
-
-/* Defined in auto-generated file i386-avx-avx512-linux.c.  */
-void init_registers_i386_avx_avx512_linux (void);
-extern const struct target_desc *tdesc_i386_avx_avx512_linux;
-
-/* Defined in auto-generated file i386-avx-mpx-avx512-linux.c.  */
-void init_registers_i386_avx_mpx_avx512_pku_linux (void);
-extern const struct target_desc *tdesc_i386_avx_mpx_avx512_pku_linux;
-
-/* Defined in auto-generated file i386-mpx-linux.c.  */
-void init_registers_i386_mpx_linux (void);
-extern const struct target_desc *tdesc_i386_mpx_linux;
-
-#ifdef __x86_64__
-
-/* Defined in auto-generated file amd64-linux.c.  */
-void init_registers_amd64_linux (void);
-extern const struct target_desc *tdesc_amd64_linux;
-
-/* Defined in auto-generated file amd64-avx-linux.c.  */
-void init_registers_amd64_avx_linux (void);
-extern const struct target_desc *tdesc_amd64_avx_linux;
-
-/* Defined in auto-generated file amd64-avx-avx512-linux.c.  */
-void init_registers_amd64_avx_avx512_linux (void);
-extern const struct target_desc *tdesc_amd64_avx_avx512_linux;
-
-/* Defined in auto-generated file amd64-avx-mpx-avx512-pku-linux.c.  */
-void init_registers_amd64_avx_mpx_avx512_pku_linux (void);
-extern const struct target_desc *tdesc_amd64_avx_mpx_avx512_pku_linux;
-
-/* Defined in auto-generated file amd64-avx-mpx-linux.c.  */
-void init_registers_amd64_avx_mpx_linux (void);
-extern const struct target_desc *tdesc_amd64_avx_mpx_linux;
-
-/* Defined in auto-generated file amd64-mpx-linux.c.  */
-void init_registers_amd64_mpx_linux (void);
-extern const struct target_desc *tdesc_amd64_mpx_linux;
-
-/* Defined in auto-generated file x32-linux.c.  */
-void init_registers_x32_linux (void);
-extern const struct target_desc *tdesc_x32_linux;
-
-/* Defined in auto-generated file x32-avx-linux.c.  */
-void init_registers_x32_avx_linux (void);
-extern const struct target_desc *tdesc_x32_avx_linux;
-
-/* Defined in auto-generated file x32-avx-avx512-linux.c.  */
-void init_registers_x32_avx_avx512_linux (void);
-extern const struct target_desc *tdesc_x32_avx_avx512_linux;
-
-#endif
-
-namespace selftests {
-namespace tdesc {
-static void
-i386_tdesc_test ()
-{
-  struct
-  {
-    unsigned int mask;
-    const target_desc *tdesc;
-  } tdesc_tests[] = {
-    { X86_XSTATE_X87, tdesc_i386_mmx_linux },
-    { X86_XSTATE_SSE_MASK, tdesc_i386_linux },
-    { X86_XSTATE_AVX_MASK, tdesc_i386_avx_linux },
-    { X86_XSTATE_MPX_MASK, tdesc_i386_mpx_linux },
-    { X86_XSTATE_AVX_MPX_MASK, tdesc_i386_avx_mpx_linux },
-    { X86_XSTATE_AVX_AVX512_MASK, tdesc_i386_avx_avx512_linux },
-    { X86_XSTATE_AVX_MPX_AVX512_PKU_MASK, tdesc_i386_avx_mpx_avx512_pku_linux }
-  };
-
-  for (auto &elem : tdesc_tests)
-    {
-      const target_desc *tdesc = i386_linux_read_description (elem.mask);
-
-      SELF_CHECK (*tdesc == *elem.tdesc);
-    }
-}
-
-#ifdef __x86_64__
-
-static void
-amd64_tdesc_test ()
-{
-  struct
-  {
-    unsigned int mask;
-    const target_desc *tdesc[2];
-  } tdesc_tests[] = {
-    { X86_XSTATE_SSE_MASK, { tdesc_amd64_linux, tdesc_x32_linux } },
-    { X86_XSTATE_AVX_MASK, { tdesc_amd64_avx_linux, tdesc_x32_avx_linux } },
-    { X86_XSTATE_MPX_MASK, { tdesc_amd64_mpx_linux, tdesc_x32_avx_linux } },
-    { X86_XSTATE_AVX_MPX_MASK, { tdesc_amd64_avx_mpx_linux,
-				 tdesc_x32_avx_linux } },
-    { X86_XSTATE_AVX_AVX512_MASK, { tdesc_amd64_avx_avx512_linux,
-      tdesc_x32_avx_avx512_linux } },
-    { X86_XSTATE_AVX_MPX_AVX512_PKU_MASK,
-      { tdesc_amd64_avx_mpx_avx512_pku_linux,  tdesc_x32_avx_avx512_linux } },
-  };
-
-  for (auto &elem : tdesc_tests)
-    {
-      for (int i = 0; i < 2; i++)
-	{
-	  const target_desc *tdesc = amd64_linux_read_description (elem.mask,
-								   i);
-
-	  SELF_CHECK (*tdesc == *elem.tdesc[i]);
-	}
-    }
-}
-
-#endif
-}
-} // namespace selftests
-
-void
-initialize_low_tdesc ()
-{
-  init_registers_i386_linux ();
-  init_registers_i386_mmx_linux ();
-  init_registers_i386_avx_linux ();
-  init_registers_i386_mpx_linux ();
-  init_registers_i386_avx_mpx_linux ();
-  init_registers_i386_avx_avx512_linux ();
-  init_registers_i386_avx_mpx_avx512_pku_linux ();
-
-  selftests::register_test ("i386-tdesc", selftests::tdesc::i386_tdesc_test);
-
-#ifdef __x86_64__
-  init_registers_x32_linux ();
-  init_registers_x32_avx_linux ();
-  init_registers_x32_avx_avx512_linux ();
-
-  init_registers_amd64_linux ();
-  init_registers_amd64_avx_linux ();
-  init_registers_amd64_mpx_linux ();
-  init_registers_amd64_avx_mpx_linux ();
-  init_registers_amd64_avx_avx512_linux ();
-  init_registers_amd64_avx_mpx_avx512_pku_linux ();
-
-  selftests::register_test ("amd64-tdesc", selftests::tdesc::amd64_tdesc_test);
-#endif
-}
diff --git a/gdb/gdbserver/linux-x86-tdesc.h b/gdb/gdbserver/linux-x86-tdesc.h
index 5f1fb18458..bca9b64bca 100644
--- a/gdb/gdbserver/linux-x86-tdesc.h
+++ b/gdb/gdbserver/linux-x86-tdesc.h
@@ -53,6 +53,4 @@ const struct target_desc *amd64_linux_read_description (uint64_t xcr0,
 
 const struct target_desc *i386_linux_read_description (uint64_t xcr0);
 
-void initialize_low_tdesc ();
-
 #endif /* GDBSERVER_LINUX_X86_TDESC_H */
diff --git a/gdb/testsuite/gdb.server/unittest.exp b/gdb/testsuite/gdb.server/unittest.exp
index ef4a7b5e92..5aa6e4c58f 100644
--- a/gdb/testsuite/gdb.server/unittest.exp
+++ b/gdb/testsuite/gdb.server/unittest.exp
@@ -35,7 +35,7 @@ gdb_expect {
     -i $server_spawn_id
     -re "Ran ($decimal) unit tests, 0 failed" {
 	set num_ran $expect_out(1,string)
-	gdb_assert "$num_ran > 0" $test
+	gdb_assert "$num_ran >= 0" $test
     }
 
     -re "Selftests have been disabled for this build.\r\n$" {
