Rearrange gdb/configure.nat to make it simpler and less redundant
authorSergio Durigan Junior <sergiodj@redhat.com>
Wed, 3 May 2017 01:32:33 +0000 (21:32 -0400)
committerSergio Durigan Junior <sergiodj@redhat.com>
Sat, 6 May 2017 14:10:55 +0000 (10:10 -0400)
The previous commit introduced gdb/configure.nat, but it was just a
copy-and-past (with the necessary adjustments) from the files under
gdb/config/.  We can do better than that.

Instead of using one big 'case' statement that matches the
${gdb_host_cpu} and then match each ${gdb_host}, it is possible to
remove a lof of redundancy by matching the most common ${gdb_host}'s
first, setting the common variables for each, and then proceed to
matching specific ${gdb_host}'s and ${gdb_host_cpu}'s.  In other
words, reverse the order of the 'case's and take advantage of the fact
that a lot of parameters are the same for each host.

This commit was tested on x86_64 without regressions.

gdb/ChangeLog:
2017-05-06  Sergio Durigan Junior  <sergiodj@redhat.com>

  * configure.nat: Rearrange 'case' statements to match
host before cpu.

gdb/ChangeLog
gdb/configure.nat

index 1a526c8..1f2f638 100644 (file)
@@ -1,5 +1,10 @@
 2017-05-06  Sergio Durigan Junior  <sergiodj@redhat.com>
 
+       * configure.nat: Rearrange 'case' statements to match
+       host before cpu.
+
+2017-05-06  Sergio Durigan Junior  <sergiodj@redhat.com>
+
        * Makefile.in: Remove "@host_makefile_frag@".  Add variables
        NAT_FILE, NATDEPFILES, NAT_CDEPS, LOADLIBES, MH_CFLAGS, XM_CLIBS,
        NAT_GENERATED_FILES, HAVE_NATIVE_GCORE_HOST.  Add
index 2d115b5..4bf06c5 100644 (file)
 # - nat_extra_makefile_frag should contain the full path of the file.
 
 
-case ${gdb_host_cpu} in
-  aarch64)
-    case ${gdb_host} in
-      linux)
-       #  Host: AArch64 based machine running GNU/Linux
+# This first case is useful for filling default values for each
+# gdb_host.
+case ${gdb_host} in
+    *linux*)
        NAT_FILE='config/nm-linux.h'
-       NATDEPFILES='inf-ptrace.o fork-child.o aarch64-linux-nat.o aarch32-linux-nat.o \
-               proc-service.o linux-thread-db.o linux-nat.o linux-fork.o \
-               linux-procfs.o linux-ptrace.o linux-osdata.o linux-waitpid.o \
-               linux-personality.o linux-namespaces.o aarch64-linux-hw-point.o \
-               aarch64-linux.o'
-       NAT_CDEPS='$(srcdir)/proc-service.list'
-
-       LOADLIBES='-ldl $(RDYNAMIC)'
-       ;;
-    esac
-    ;;
-  alpha)
-    case ${gdb_host} in
-      alpha-linux)
-       # Host: Little-endian Alpha running Linux
-       NAT_FILE='config/nm-linux.h'
-       NATDEPFILES='inf-ptrace.o alpha-linux-nat.o \
-               fork-child.o proc-service.o linux-thread-db.o \
-               linux-nat.o linux-osdata.o linux-fork.o linux-procfs.o linux-ptrace.o \
-               linux-waitpid.o linux-personality.o linux-namespaces.o'
+       NATDEPFILES='inf-ptrace.o fork-child.o proc-service.o \
+               linux-thread-db.o linux-nat.o linux-osdata.o linux-fork.o \
+               linux-procfs.o linux-ptrace.o linux-waitpid.o \
+               linux-personality.o linux-namespaces.o'
        NAT_CDEPS='$(srcdir)/proc-service.list'
-
-       # The dynamically loaded libthread_db needs access to symbols in the
-       # gdb executable.
        LOADLIBES='-ldl $(RDYNAMIC)'
-
-       # doublest.c currently assumes some properties of FP arithmetic
-       # on the host which require this.
-       MH_CFLAGS='-mieee'
        ;;
-      nbsd)
-       # Host: NetBSD/alpha
-       NATDEPFILES='fork-child.o inf-ptrace.o alpha-bsd-nat.o bsd-kvm.o'
-
+    fbsd*)
+       NATDEPFILES='fork-child.o inf-ptrace.o fbsd-nat.o'
+       HAVE_NATIVE_GCORE_HOST=1
        LOADLIBES='-lkvm'
        ;;
-    esac
-    ;;
-  arm)
-    case ${gdb_host} in
-      linux)
-       # Host: ARM based machine running GNU/Linux
-       NAT_FILE='config/nm-linux.h'
-       NATDEPFILES='inf-ptrace.o fork-child.o arm-linux-nat.o \
-               aarch32-linux-nat.o proc-service.o linux-thread-db.o \
-               linux-nat.o linux-osdata.o linux-fork.o linux-procfs.o linux-ptrace.o \
-               linux-waitpid.o linux-personality.o linux-namespaces.o'
-       NAT_CDEPS='$(srcdir)/proc-service.list'
-
-       LOADLIBES='-ldl $(RDYNAMIC)'
+    nbsd*)
+       NATDEPFILES='fork-child.o inf-ptrace.o'
        ;;
-      nbsdelf)
-       # Host: NetBSD/arm
-       NATDEPFILES='fork-child.o inf-ptrace.o arm-nbsd-nat.o'
+    obsd*)
+       NATDEPFILES='fork-child.o inf-ptrace.o'
        ;;
-    esac
-    ;;
-  i386)
-    case ${gdb_host} in
-      cygwin64)
-       #  Native config information for GDB on PowerPC systems running FreeBSD.
-       NATDEPFILES='x86-nat.o x86-dregs.o windows-nat.o amd64-windows-nat.o'
+    cygwin*)
+       NATDEPFILES='x86-nat.o x86-dregs.o windows-nat.o'
        ;;
-      cygwin)
-       MH_CFLAGS=
-       NATDEPFILES='x86-nat.o x86-dregs.o windows-nat.o i386-windows-nat.o'
-       XM_CLIBS=
+    mingw*)
+       NATDEPFILES='x86-nat.o x86-dregs.o windows-nat.o'
        ;;
-      darwin)
-       # Host: IA86 running Darwin
-       NATDEPFILES='fork-child.o darwin-nat.o \
-            i386-darwin-nat.o x86-nat.o x86-dregs.o amd64-nat.o darwin-nat-info.o'
-       ;;
-      fbsd64)
-       # Host: FreeBSD/amd64
-       NATDEPFILES='fork-child.o inf-ptrace.o \
-               fbsd-nat.o amd64-nat.o amd64-bsd-nat.o amd64-fbsd-nat.o \
-               bsd-kvm.o x86-nat.o x86-dregs.o x86-bsd-nat.o'
-       HAVE_NATIVE_GCORE_HOST=1
-
-       LOADLIBES='-lkvm'
-       ;;
-      fbsd)
-       # Host: FreeBSD/i386
-       NATDEPFILES='fork-child.o inf-ptrace.o \
-               fbsd-nat.o x86-nat.o x86-dregs.o x86-bsd-nat.o i386-bsd-nat.o \
-               i386-fbsd-nat.o bsd-kvm.o'
-       NAT_FILE='nm-fbsd.h'
-       HAVE_NATIVE_GCORE_HOST=1
-
-       LOADLIBES='-lkvm'
-       ;;
-      go32)
-       # Host: Intel x86 running DJGPP
-
-       # We include several header files from config/djgpp
-       MH_CFLAGS='-I$(srcdir)/config/djgpp'
-
-       NATDEPFILES='go32-nat.o x86-nat.o x86-dregs.o'
+esac
 
-       XM_CLIBS='-ldbg'
-       ;;
-      i386gnu)
-       # Host: Intel 386 running the GNU Hurd
-       NATDEPFILES='i386-gnu-nat.o gnu-nat.o \
+# This is where we actually filter by host and host CPU.
+case ${gdb_host} in
+    aix)
+       case ${gdb_host_cpu} in
+           powerpc)
+               # Host: IBM PowerPC running AIX aix-thread.o is not
+               # listed in NATDEPFILES as it is pulled in by
+               # configure.
+               NATDEPFILES='fork-child.o inf-ptrace.o rs6000-nat.o'
+
+               # When compiled with cc, for debugging, this argument
+               # should be passed.  We have no idea who our current
+               # compiler is though, so we skip it.
+               # MH_CFLAGS='-bnodelcsect'
+               ;;
+       esac
+       ;;
+    alpha-linux)
+       case ${gdb_host_cpu} in
+           alpha)
+               # Host: Little-endian Alpha running Linux
+               NATDEPFILES="${NATDEPFILES} alpha-linux-nat.o"
+               # doublest.c currently assumes some properties of FP arithmetic
+               # on the host which require this.
+               MH_CFLAGS='-mieee'
+               ;;
+       esac
+       ;;
+    cygwin)
+       case ${gdb_host_cpu} in
+           i386)
+               # Native config information for GDB on i386
+               # systems running Cygwin.
+               NATDEPFILES="${NATDEPFILES} i386-windows-nat.o"
+               ;;
+       esac
+       ;;
+    cygwin64)
+       case ${gdb_host_cpu} in
+           i386)
+               # Native config information for GDB on amd64
+               # systems running Cygwin.
+               NATDEPFILES="${NATDEPFILES} amd64-windows-nat.o"
+               ;;
+       esac
+       ;;
+    darwin)
+       case ${gdb_host_cpu} in
+           i386)
+               # Host: IA86 running Darwin
+               NATDEPFILES='fork-child.o darwin-nat.o \
+               i386-darwin-nat.o x86-nat.o x86-dregs.o amd64-nat.o \
+               darwin-nat-info.o'
+               ;;
+       esac
+       ;;
+    fbsd)
+       case ${gdb_host_cpu} in
+           i386)
+               # Host: FreeBSD/i386
+               NATDEPFILES="${NATDEPFILES} x86-nat.o x86-dregs.o \
+               x86-bsd-nat.o i386-bsd-nat.o i386-fbsd-nat.o bsd-kvm.o"
+               NAT_FILE='nm-fbsd.h'
+               ;;
+           mips)
+               # Host: FreeBSD/mips
+               NATDEPFILES="${NATDEPFILES} mips-fbsd-nat.o"
+               LOADLIBES=
+               ;;
+           powerpc)
+               # Native config information for GDB on PowerPC
+               # systems running FreeBSD.
+               NATDEPFILES="${NATDEPFILES} ppc-fbsd-nat.o bsd-kvm.o"
+               ;;
+           sparc)
+               # Host: FreeBSD/sparc64
+               NATDEPFILES="${NATDEPFILES} sparc-nat.o sparc64-nat.o \
+               sparc64-fbsd-nat.o bsd-kvm.o"
+               ;;
+       esac
+       ;;
+    fbsd64)
+       case ${gdb_host_cpu} in
+           i386)
+               # Host: FreeBSD/amd64
+               NATDEPFILES="${NATDEPFILES} amd64-nat.o amd64-bsd-nat.o \
+               amd64-fbsd-nat.o bsd-kvm.o x86-nat.o x86-dregs.o x86-bsd-nat.o"
+               ;;
+       esac
+       ;;
+    go32)
+       case ${gdb_host_cpu} in
+           i386)
+               # Host: Intel x86 running DJGPP
+               # We include several header files from config/djgpp
+               MH_CFLAGS='-I$(srcdir)/config/djgpp'
+               NATDEPFILES='go32-nat.o x86-nat.o x86-dregs.o'
+               XM_CLIBS='-ldbg'
+               ;;
+       esac
+       ;;
+    i386gnu)
+       case ${gdb_host_cpu} in
+           i386)
+               # Host: Intel 386 running the GNU Hurd
+               NATDEPFILES='i386-gnu-nat.o gnu-nat.o \
                     x86-nat.o x86-dregs.o fork-child.o \
                     notify_S.o process_reply_S.o msg_reply_S.o \
                     msg_U.o exc_request_U.o exc_request_S.o'
-       HAVE_NATIVE_GCORE_HOST=1
+               HAVE_NATIVE_GCORE_HOST=1
 
-       NAT_FILE='nm-i386gnu.h'
-       MH_CFLAGS='-D_GNU_SOURCE'
+               NAT_FILE='nm-i386gnu.h'
+               MH_CFLAGS='-D_GNU_SOURCE'
 
-       XM_CLIBS='-lshouldbeinlibc'
+               XM_CLIBS='-lshouldbeinlibc'
 
-       nat_extra_makefile_frag="${srcdir}/config/${gdb_host_cpu}/i386gnu.mn"
+               nat_extra_makefile_frag="${srcdir}/config/${gdb_host_cpu}/i386gnu.mn"
+               ;;
+       esac
        ;;
-      i386sol2)
-       # Host: Solaris x86
-       NATDEPFILES='fork-child.o i386-v4-nat.o i386-sol2-nat.o \
+    i386sol2)
+       case ${gdb_host_cpu} in
+           i386)
+               # Host: Solaris x86
+               NATDEPFILES='fork-child.o i386-v4-nat.o i386-sol2-nat.o \
                procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o'
-       HAVE_NATIVE_GCORE_HOST=1
-       ;;
-      linux64)
-       # Host: GNU/Linux x86-64
-       NATDEPFILES='inf-ptrace.o fork-child.o \
-               x86-nat.o x86-dregs.o amd64-nat.o amd64-linux-nat.o \
-               x86-linux-nat.o \
-               linux-nat.o linux-osdata.o \
-               proc-service.o linux-thread-db.o linux-fork.o \
-               linux-procfs.o linux-ptrace.o linux-btrace.o \
-               linux-waitpid.o linux-personality.o x86-linux.o \
-               x86-linux-dregs.o amd64-linux-siginfo.o linux-namespaces.o'
-       NAT_FILE='config/nm-linux.h'
-       NAT_CDEPS='$(srcdir)/proc-service.list'
-
-       # The dynamically loaded libthread_db needs access to symbols in the
-       # gdb executable.
-       LOADLIBES='-ldl $(RDYNAMIC)'
-       ;;
-      linux)
-       # Host: Intel 386 running GNU/Linux.
-       NAT_FILE='config/nm-linux.h'
-       NATDEPFILES='inf-ptrace.o fork-child.o \
-               x86-nat.o x86-dregs.o i386-linux-nat.o x86-linux-nat.o \
-               proc-service.o linux-thread-db.o \
-               linux-nat.o linux-osdata.o linux-fork.o linux-procfs.o linux-ptrace.o \
-               linux-btrace.o linux-waitpid.o linux-personality.o x86-linux.o \
-               x86-linux-dregs.o linux-namespaces.o'
-       NAT_CDEPS='$(srcdir)/proc-service.list'
-
-       # The dynamically loaded libthread_db needs access to symbols in the
-       # gdb executable.
-       LOADLIBES='-ldl $(RDYNAMIC)'
-       ;;
-      mingw64)
-       NATDEPFILES='x86-nat.o x86-dregs.o windows-nat.o amd64-windows-nat.o'
-       ;;
-      mingw)
-       MH_CFLAGS=
-       NATDEPFILES='x86-nat.o x86-dregs.o windows-nat.o i386-windows-nat.o'
-       XM_CLIBS=
-       ;;
-      nbsd64)
-       # Host: NetBSD/amd64
-       NATDEPFILES='fork-child.o inf-ptrace.o \
-               nbsd-nat.o amd64-nat.o x86-bsd-nat.o amd64-bsd-nat.o amd64-nbsd-nat.o'
-       ;;
-      nbsdelf)
-       # Host: NetBSD/i386 ELF
-       NATDEPFILES='fork-child.o inf-ptrace.o \
-               nbsd-nat.o x86-bsd-nat.o i386-bsd-nat.o i386-nbsd-nat.o bsd-kvm.o'
-
-       LOADLIBES='-lkvm'
-       ;;
-      nto)
-       # Host: Intel 386 running QNX.
-       NATDEPFILES='nto-procfs.o'
-       NAT_FILE='config/nm-nto.h'
-       ;;
-      obsd64)
-       # Host: OpenBSD/amd64
-       NATDEPFILES='fork-child.o inf-ptrace.o obsd-nat.o \
-               amd64-nat.o x86-bsd-nat.o amd64-bsd-nat.o amd64-obsd-nat.o bsd-kvm.o'
-
-       LOADLIBES='-lkvm'
-       ;;
-      obsd)
-       # Host: OpenBSD/i386 ELF
-       NATDEPFILES='fork-child.o inf-ptrace.o obsd-nat.o \
-               x86-bsd-nat.o i386-bsd-nat.o i386-obsd-nat.o bsd-kvm.o'
-
-       LOADLIBES='-lkvm'
-       ;;
-      sol2-64)
-       # Host: Solaris x86_64
-       NATDEPFILES='fork-child.o amd64-nat.o i386-v4-nat.o i386-sol2-nat.o \
+               HAVE_NATIVE_GCORE_HOST=1
+               ;;
+       esac
+       ;;
+    linux)
+       case ${gdb_host_cpu} in
+           aarch64)
+               #  Host: AArch64 based machine running GNU/Linux
+               NATDEPFILES="${NATDEPFILES} aarch64-linux-nat.o \
+               aarch32-linux-nat.o aarch64-linux-hw-point.o aarch64-linux.o"
+               ;;
+           arm)
+               # Host: ARM based machine running GNU/Linux
+               NATDEPFILES="${NATDEPFILES} arm-linux-nat.o \
+               aarch32-linux-nat.o"
+               ;;
+           i386)
+               # Host: Intel 386 running GNU/Linux.
+               NATDEPFILES="${NATDEPFILES} x86-nat.o x86-dregs.o \
+               i386-linux-nat.o x86-linux-nat.o linux-btrace.o \
+               x86-linux.o x86-linux-dregs.o"
+               ;;
+           ia64)
+               # Host: Intel IA-64 running GNU/Linux
+               NATDEPFILES="${NATDEPFILES} ia64-linux-nat.o"
+               ;;
+           m32r)
+               # Host: M32R based machine running GNU/Linux
+               NATDEPFILES="${NATDEPFILES} m32r-linux-nat.o"
+               ;;
+           m68k)
+               # Host: Motorola m68k running GNU/Linux.
+               NATDEPFILES="${NATDEPFILES} m68k-linux-nat.o"
+               ;;
+           mips)
+               # Host: Linux/MIPS
+               NATDEPFILES="${NATDEPFILES} mips-linux-nat.o \
+               mips-linux-watch.o"
+               ;;
+           pa)
+               # Host: Hewlett-Packard PA-RISC machine, running Linux
+               NATDEPFILES="${NATDEPFILES} hppa-linux-nat.o"
+               ;;
+           powerpc)
+               # Host: PowerPC, running Linux
+               NATDEPFILES="${NATDEPFILES} ppc-linux-nat.o"
+               ;;
+           s390)
+               # Host: S390, running Linux
+               NATDEPFILES="${NATDEPFILES} s390-linux-nat.o"
+               ;;
+           sparc)
+               # Host: GNU/Linux SPARC
+               NATDEPFILES="${NATDEPFILES} sparc-nat.o sparc-linux-nat.o"
+               ;;
+           tilegx)
+               # Host: Tilera TILE-Gx running GNU/Linux.
+               NATDEPFILES="${NATDEPFILES} tilegx-linux-nat.o"
+               NAT_CDEPS=
+               ;;
+           xtensa)
+               # Host: Xtensa, running GNU/Linux.
+               NATDEPFILES="${NATDEPFILES} xtensa-linux-nat.o"
+               ;;
+       esac
+       ;;
+    linux64)
+       case ${gdb_host_cpu} in
+           i386)
+               # Host: GNU/Linux x86-64
+               NATDEPFILES="${NATDEPFILES} x86-nat.o x86-dregs.o \
+               amd64-nat.o amd64-linux-nat.o x86-linux-nat.o linux-btrace.o \
+               x86-linux.o x86-linux-dregs.o amd64-linux-siginfo.o"
+               ;;
+           sparc)
+               # Host: GNU/Linux UltraSPARC
+               NATDEPFILES="${NATDEPFILES} sparc-nat.o sparc64-nat.o \
+               sparc64-linux-nat.o"
+               ;;
+       esac
+       ;;
+    mingw)
+       case ${gdb_host_cpu} in
+           i386)
+               NATDEPFILES="${NATDEPFILES} i386-windows-nat.o"
+               ;;
+       esac
+       ;;
+    mingw64)
+       case ${gdb_host_cpu} in
+           i386)
+               NATDEPFILES="${NATDEPFILES} amd64-windows-nat.o"
+               ;;
+       esac
+       ;;
+    nbsd)
+       case ${gdb_host_cpu} in
+           alpha)
+               # Host: NetBSD/alpha
+               NATDEPFILES="${NATDEPFILES} alpha-bsd-nat.o bsd-kvm.o"
+               LOADLIBES='-lkvm'
+               ;;
+           mips)
+               # Host: NetBSD/mips
+               NATDEPFILES="${NATDEPFILES} mips-nbsd-nat.o"
+               ;;
+           pa)
+               # Host: NetBSD/hppa
+               NATDEPFILES="${NATDEPFILES} nbsd-nat.o hppa-nbsd-nat.o"
+               ;;
+           powerpc)
+               # Host: NetBSD/powerpc
+               NATDEPFILES="${NATDEPFILES} ppc-nbsd-nat.o bsd-kvm.o"
+               LOADLIBES='-lkvm'
+               ;;
+           sh)
+               # Host: NetBSD/sh
+               NATDEPFILES="${NATDEPFILES} sh-nbsd-nat.o"
+               ;;
+
+       esac
+       ;;
+    nbsd64)
+       case ${gdb_host_cpu} in
+           i386)
+               # Host: NetBSD/amd64
+               NATDEPFILES="${NATDEPFILES} nbsd-nat.o amd64-nat.o \
+               x86-bsd-nat.o amd64-bsd-nat.o amd64-nbsd-nat.o"
+               ;;
+           sparc)
+               # Host: NetBSD/sparc64
+               NATDEPFILES="${NATDEPFILES} sparc64-nbsd-nat.o sparc-nat.o \
+               bsd-kvm.o"
+               ;;
+
+       esac
+       ;;
+    nbdself)
+       case ${gdb_host_cpu} in
+           arm)
+               # Host: NetBSD/arm
+               NATDEPFILES="${NATDEPFILES} arm-nbsd-nat.o"
+               ;;
+           i386)
+               # Host: NetBSD/i386 ELF
+               NATDEPFILES="${NATDEPFILES} nbsd-nat.o x86-bsd-nat.o \
+               i386-bsd-nat.o i386-nbsd-nat.o bsd-kvm.o"
+               LOADLIBES='-lkvm'
+               ;;
+           m68k)
+               # Host: NetBSD/m68k ELF
+               NATDEPFILES="${NATDEPFILES} m68k-bsd-nat.o bsd-kvm.o"
+               LOADLIBES='-lkvm'
+               ;;
+           sparc)
+               # Host: NetBSD/sparc ELF
+               NATDEPFILES="${NATDEPFILES} sparc-nat.o sparc-nbsd-nat.o \
+               bsd-kvm.o"
+               LOADLIBES='-lkvm'
+               ;;
+           vax)
+               # Host: NetBSD/vax ELF
+               NATDEPFILES="${NATDEPFILES} vax-bsd-nat.o bsd-kvm.o"
+               LOADLIBES='-lkvm'
+               ;;
+
+       esac
+       ;;
+    nto)
+       case ${gdb_host_cpu} in
+           i386)
+               # Host: Intel 386 running QNX.
+               NATDEPFILES='nto-procfs.o'
+               NAT_FILE='config/nm-nto.h'
+               ;;
+       esac
+       ;;
+    obsd)
+       case ${gdb_host_cpu} in
+           i386)
+               # Host: OpenBSD/i386 ELF
+               NATDEPFILES="${NATDEPFILES} obsd-nat.o x86-bsd-nat.o \
+               i386-bsd-nat.o i386-obsd-nat.o bsd-kvm.o"
+               LOADLIBES='-lkvm'
+               ;;
+           m68k)
+               # Host: OpenBSD/m68k
+               NATDEPFILES="${NATDEPFILES} m68k-bsd-nat.o bsd-kvm.o"
+               LOADLIBES='-lkvm'
+               ;;
+           m88k)
+               # Host: OpenBSD/m88k
+               NATDEPFILES="${NATDEPFILES} m88k-bsd-nat.o"
+               ;;
+           pa)
+               # Host: OpenBSD/hppa
+               NATDEPFILES="${NATDEPFILES} obsd-nat.o hppa-obsd-nat.o"
+               ;;
+           powerpc)
+               # Host: OpenBSD/powerpc
+               NATDEPFILES="${NATDEPFILES} obsd-nat.o ppc-obsd-nat.o bsd-kvm.o"
+               LOADLIBES='-lkvm'
+               ;;
+           vax)
+               # Host: OpenBSD/vax
+               NATDEPFILES="${NATDEPFILES} vax-bsd-nat.o bsd-kvm.o"
+               LOADLIBES='-lkvm'
+               ;;
+       esac
+       ;;
+    obsd64)
+       case ${gdb_host_cpu} in
+           i386)
+               # Host: OpenBSD/amd64
+               NATDEPFILES="${NATDEPFILES} obsd-nat.o amd64-nat.o \
+               x86-bsd-nat.o amd64-bsd-nat.o amd64-obsd-nat.o bsd-kvm.o"
+               LOADLIBES='-lkvm'
+               ;;
+           mips)
+               # Host: OpenBSD/mips64
+               NATDEPFILES="${NATDEPFILES} obsd-nat.o mips64-obsd-nat.o"
+               ;;
+           sparc)
+               # Host: OpenBSD/sparc64
+               NATDEPFILES="${NATDEPFILES} obsd-nat.o sparc64-obsd-nat.o \
+               sparc-nat.o bsd-kvm.o"
+               LOADLIBES='-lkvm'
+               ;;
+       esac
+       ;;
+    ppc64-linux)
+       case ${gdb_host_cpu} in
+           powerpc)
+               # Host: PowerPC64, running Linux
+               XM_CLIBS=
+               NATDEPFILES="${NATDEPFILES} ppc-linux-nat.o ppc-linux.o"
+               ;;
+       esac
+       ;;
+    sol2)
+       case ${gdb_host_cpu} in
+           sparc)
+               # Host: Solaris SPARC & UltraSPARC
+               NAT_FILE='nm-sol2.h'
+               NATDEPFILES='sparc-sol2-nat.o \
+               fork-child.o \
                procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o'
-       HAVE_NATIVE_GCORE_HOST=1
-       ;;
-    esac
-    ;;
-  ia64)
-    case ${gdb_host} in
-      linux)
-       # Host: Intel IA-64 running GNU/Linux
-       NAT_FILE='config/nm-linux.h'
-       NATDEPFILES='inf-ptrace.o fork-child.o \
-               ia64-linux-nat.o \
-               proc-service.o linux-thread-db.o \
-               linux-nat.o linux-osdata.o linux-fork.o \
-               linux-personality.o \
-               linux-procfs.o linux-ptrace.o linux-waitpid.o \
-               linux-namespaces.o'
-       NAT_CDEPS='$(srcdir)/proc-service.list'
-
-       LOADLIBES='-ldl $(RDYNAMIC)'
-       ;;
-    esac
-    ;;
-  m32r)
-    case ${gdb_host} in
-      linux)
-       # Host: M32R based machine running GNU/Linux
-       NAT_FILE='config/nm-linux.h'
-       NATDEPFILES='inf-ptrace.o fork-child.o                          \
-               m32r-linux-nat.o proc-service.o linux-thread-db.o       \
-               linux-nat.o linux-osdata.o linux-fork.o linux-procfs.o linux-ptrace.o \
-               linux-waitpid.o linux-personality.o linux-namespaces.o'
-       NAT_CDEPS='$(srcdir)/proc-service.list'
-
-       LOADLIBES='-ldl $(RDYNAMIC)'
-       ;;
-    esac
-    ;;
-  m68k)
-    case ${gdb_host} in
-      linux)
-       # Host: Motorola m68k running GNU/Linux.
-       NAT_FILE='config/nm-linux.h'
-       NATDEPFILES='inf-ptrace.o fork-child.o \
-               m68k-linux-nat.o \
-               proc-service.o linux-thread-db.o \
-               linux-nat.o linux-osdata.o linux-fork.o linux-procfs.o linux-ptrace.o \
-               linux-personality.o \
-               linux-waitpid.o linux-namespaces.o'
-       NAT_CDEPS='$(srcdir)/proc-service.list'
-
-       # The dynamically loaded libthread_db needs access to symbols in the
-       # gdb executable.
-       LOADLIBES='-ldl $(RDYNAMIC)'
-       ;;
-      nbsdelf)
-       # Host: NetBSD/m68k ELF
-       NATDEPFILES='m68k-bsd-nat.o bsd-kvm.o fork-child.o inf-ptrace.o'
-
-       LOADLIBES='-lkvm'
-       ;;
-      obsd)
-       # Host: OpenBSD/m68k
-       NATDEPFILES='m68k-bsd-nat.o bsd-kvm.o fork-child.o inf-ptrace.o'
-
-       LOADLIBES='-lkvm'
-       ;;
-    esac
-    ;;
-  m88k)
-    case ${gdb_host} in
-      obsd)
-       # Host: OpenBSD/m88k
-       NATDEPFILES='fork-child.o inf-ptrace.o m88k-bsd-nat.o'
-       ;;
-    esac
-    ;;
-  mips)
-    case ${gdb_host} in
-      fbsd)
-       # Host: FreeBSD/mips
-       NATDEPFILES='fork-child.o inf-ptrace.o fbsd-nat.o mips-fbsd-nat.o'
-       HAVE_NATIVE_GCORE_HOST=1
-       ;;
-      linux)
-       # Host: Linux/MIPS
-       NAT_FILE='config/nm-linux.h'
-       NATDEPFILES='inf-ptrace.o fork-child.o mips-linux-nat.o \
-               linux-thread-db.o proc-service.o \
-               linux-nat.o linux-osdata.o linux-fork.o \
-               linux-procfs.o linux-ptrace.o linux-waitpid.o \
-               linux-personality.o \
-               mips-linux-watch.o linux-namespaces.o'
-       NAT_CDEPS='$(srcdir)/proc-service.list'
-
-       LOADLIBES='-ldl $(RDYNAMIC)'
-       ;;
-      nbsd)
-       # Host: NetBSD/mips
-       NATDEPFILES='fork-child.o inf-ptrace.o mips-nbsd-nat.o'
-       ;;
-      obsd64)
-       # Host: OpenBSD/mips64
-       NATDEPFILES='fork-child.o inf-ptrace.o obsd-nat.o mips64-obsd-nat.o'
-       ;;
-    esac
-    ;;
-  pa)
-    case ${gdb_host} in
-      linux)
-       # Host: Hewlett-Packard PA-RISC machine, running Linux
-       NAT_FILE='config/nm-linux.h'
-       NATDEPFILES='inf-ptrace.o fork-child.o \
-               hppa-linux-nat.o proc-service.o linux-thread-db.o \
-               linux-nat.o linux-osdata.o linux-fork.o \
-               linux-procfs.o linux-ptrace.o linux-waitpid.o \
-               linux-personality.o linux-namespaces.o'
-       NAT_CDEPS='$(srcdir)/proc-service.list'
-
-       LOADLIBES='-ldl $(RDYNAMIC)'
-       ;;
-      nbsd)
-       # Host: NetBSD/hppa
-       NATDEPFILES='fork-child.o inf-ptrace.o nbsd-nat.o hppa-nbsd-nat.o'
-       ;;
-      obsd)
-       # Host: OpenBSD/hppa
-       NATDEPFILES='fork-child.o inf-ptrace.o obsd-nat.o hppa-obsd-nat.o'
-       ;;
-    esac
-    ;;
-  powerpc)
-    case ${gdb_host} in
-      aix)
-       # Host: IBM PowerPC running AIX
-       # aix-thread.o is not listed in NATDEPFILES as it is pulled in by configure.
-       NATDEPFILES='fork-child.o inf-ptrace.o rs6000-nat.o'
-
-       # When compiled with cc, for debugging, this argument should be passed.
-       # We have no idea who our current compiler is though, so we skip it.
-       # MH_CFLAGS='-bnodelcsect'
-       ;;
-      fbsd)
-       #  Native config information for GDB on PowerPC systems running FreeBSD.
-       NATDEPFILES='fbsd-nat.o fork-child.o inf-ptrace.o ppc-fbsd-nat.o bsd-kvm.o'
-       HAVE_NATIVE_GCORE_HOST=1
-
-       LOADLIBES='-lkvm'
-       ;;
-      linux)
-       # Host: PowerPC, running Linux
-       XM_CLIBS=
-
-       NAT_FILE='config/nm-linux.h'
-       NATDEPFILES='inf-ptrace.o fork-child.o \
-               ppc-linux-nat.o proc-service.o linux-thread-db.o \
-               linux-nat.o linux-osdata.o linux-fork.o linux-procfs.o linux-ptrace.o \
-               linux-waitpid.o linux-personality.o linux-namespaces.o'
-       NAT_CDEPS='$(srcdir)/proc-service.list'
-
-       LOADLIBES='-ldl $(RDYNAMIC)'
-       ;;
-      nbsd)
-       # Host: NetBSD/powerpc
-       NATDEPFILES='fork-child.o inf-ptrace.o ppc-nbsd-nat.o bsd-kvm.o'
-
-       LOADLIBES='-lkvm'
-       ;;
-      obsd)
-       # Host: OpenBSD/powerpc
-       NATDEPFILES='fork-child.o inf-ptrace.o obsd-nat.o ppc-obsd-nat.o bsd-kvm.o'
-
-       LOADLIBES='-lkvm'
-       ;;
-      ppc64-linux)
-       # Host: PowerPC64, running Linux
-       XM_CLIBS=
-
-       NAT_FILE='config/nm-linux.h'
-       NATDEPFILES='inf-ptrace.o fork-child.o \
-               ppc-linux-nat.o proc-service.o linux-thread-db.o \
-               linux-nat.o linux-osdata.o linux-fork.o linux-procfs.o linux-ptrace.o \
-               linux-waitpid.o ppc-linux.o linux-personality.o \
-               linux-namespaces.o'
-       NAT_CDEPS='$(srcdir)/proc-service.list'
-
-       # The dynamically loaded libthread_db needs access to symbols in the
-       # gdb executable.
-       LOADLIBES='-ldl $(RDYNAMIC)'
-       ;;
-      spu-linux)
-       # Target: Cell BE (PowerPC64 + SPU)
-       # This implements a 'pseudo-native' GDB running on the
-       # PPU side of the Cell BE and debugging the SPU side.
-
-       NATDEPFILES='spu-linux-nat.o fork-child.o inf-ptrace.o \
+               HAVE_NATIVE_GCORE_HOST=1
+               ;;
+       esac
+       ;;
+    sol2-64)
+       case ${gdb_host_cpu} in
+           i386)
+               # Host: Solaris x86_64
+               NATDEPFILES='fork-child.o amd64-nat.o i386-v4-nat.o i386-sol2-nat.o \
+               procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o'
+               HAVE_NATIVE_GCORE_HOST=1
+               ;;
+       esac
+       ;;
+    spu-linux)
+       case ${gdb_host_cpu} in
+           powerpc)
+               # Target: Cell BE (PowerPC64 + SPU)
+               # This implements a 'pseudo-native' GDB running on the
+               # PPU side of the Cell BE and debugging the SPU side.
+               NAT_FILE=
+               NAT_CDEPS=
+               LOADLIBES=
+               NATDEPFILES='spu-linux-nat.o fork-child.o inf-ptrace.o \
                      linux-procfs.o linux-ptrace.o linux-waitpid.o \
                      linux-personality.o linux-namespaces.o'
+               ;;
+       esac
        ;;
-    esac
-    ;;
-  s390)
-    case ${gdb_host} in
-      linux)
-       # Host: S390, running Linux
-       NAT_FILE='config/nm-linux.h'
-       NATDEPFILES='inf-ptrace.o fork-child.o s390-linux-nat.o \
-               linux-thread-db.o proc-service.o \
-               linux-nat.o linux-osdata.o linux-fork.o linux-procfs.o linux-ptrace.o \
-               linux-personality.o \
-               linux-waitpid.o linux-namespaces.o'
-       NAT_CDEPS='$(srcdir)/proc-service.list'
-       LOADLIBES='-ldl $(RDYNAMIC)'
-       ;;
-    esac
-    ;;
-  sh)
-    case ${gdb_host} in
-      nbsd)
-       # Host: NetBSD/sh
-       NATDEPFILES='fork-child.o inf-ptrace.o sh-nbsd-nat.o'
-       ;;
-    esac
-    ;;
-  sparc)
-    case ${gdb_host} in
-      fbsd)
-       # Host: FreeBSD/sparc64
-       NATDEPFILES='fork-child.o inf-ptrace.o \
-               fbsd-nat.o sparc-nat.o sparc64-nat.o sparc64-fbsd-nat.o \
-               bsd-kvm.o'
-       HAVE_NATIVE_GCORE_HOST=1
-
-       LOADLIBES='-lkvm'
-       ;;
-      linux64)
-       # Host: GNU/Linux UltraSPARC
-       NAT_FILE='config/nm-linux.h'
-       NATDEPFILES='sparc-nat.o sparc64-nat.o sparc64-linux-nat.o \
-               fork-child.o inf-ptrace.o \
-               proc-service.o linux-thread-db.o \
-               linux-nat.o linux-osdata.o linux-fork.o \
-               linux-procfs.o linux-ptrace.o linux-waitpid.o \
-               linux-personality.o linux-namespaces.o'
-       NAT_CDEPS='$(srcdir)/proc-service.list'
-
-       # The dynamically loaded libthread_db needs access to symbols in the
-       # gdb executable.
-       LOADLIBES='-ldl $(RDYNAMIC)'
-       ;;
-      linux)
-       # Host: GNU/Linux SPARC
-       NAT_FILE='config/nm-linux.h'
-       NATDEPFILES='sparc-nat.o sparc-linux-nat.o \
-               fork-child.o inf-ptrace.o \
-               proc-service.o linux-thread-db.o \
-               linux-nat.o linux-osdata.o linux-fork.o \
-               linux-procfs.o linux-ptrace.o linux-waitpid.o \
-               linux-personality.o linux-namespaces.o'
-       NAT_CDEPS='$(srcdir)/proc-service.list'
-
-       # The dynamically loaded libthread_db needs access to symbols in the
-       # gdb executable.
-       LOADLIBES='-ldl $(RDYNAMIC)'
-       ;;
-      nbsd64)
-       # Host: NetBSD/sparc64
-       NATDEPFILES='fork-child.o inf-ptrace.o \
-               sparc64-nbsd-nat.o sparc-nat.o bsd-kvm.o'
-
-       LOADLIBES='-lkvm'
-       ;;
-      nbsdelf)
-       # Host: NetBSD/sparc ELF
-       NATDEPFILES='fork-child.o inf-ptrace.o \
-               sparc-nat.o sparc-nbsd-nat.o bsd-kvm.o'
-
-       LOADLIBES='-lkvm'
-       ;;
-      obsd64)
-       # Host: OpenBSD/sparc64
-       NATDEPFILES='fork-child.o inf-ptrace.o obsd-nat.o \
-               sparc64-obsd-nat.o sparc-nat.o bsd-kvm.o'
-
-       LOADLIBES='-lkvm'
-       ;;
-      sol2)
-       # Host: Solaris SPARC & UltraSPARC
-       NAT_FILE='nm-sol2.h'
-       NATDEPFILES='sparc-sol2-nat.o \
-               fork-child.o \
-               procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o'
-       HAVE_NATIVE_GCORE_HOST=1
-       ;;
-    esac
-    ;;
-  tilegx)
-    case ${gdb_host} in
-      linux)
-       # Host: Tilera TILE-Gx running GNU/Linux.
-       NAT_FILE='config/nm-linux.h'
-       NATDEPFILES='inf-ptrace.o fork-child.o \
-               tilegx-linux-nat.o \
-               proc-service.o linux-thread-db.o \
-               linux-nat.o linux-osdata.o linux-fork.o \
-               linux-procfs.o linux-ptrace.o linux-waitpid.o \
-               linux-personality.o linux-namespaces.o'
-
-       # The dynamically loaded libthread_db needs access to symbols in the
-       # gdb executable.
-       LOADLIBES='-ldl $(RDYNAMIC)'
-       ;;
-    esac
-    ;;
-  vax)
-    case ${gdb_host} in
-      nbsdelf)
-       # Host: NetBSD/vax ELF
-       NATDEPFILES='fork-child.o inf-ptrace.o \
-               vax-bsd-nat.o bsd-kvm.o'
-
-       LOADLIBES='-lkvm'
-       ;;
-      obsd)
-       # Host: OpenBSD/vax
-       NATDEPFILES='fork-child.o inf-ptrace.o \
-               vax-bsd-nat.o bsd-kvm.o'
-
-       LOADLIBES='-lkvm'
-       ;;
-    esac
-    ;;
-  xtensa)
-    case ${gdb_host} in
-      linux)
-       # Host: Xtensa, running GNU/Linux.
-       NAT_FILE='config/nm-linux.h'
-
-       NATDEPFILES='inf-ptrace.o fork-child.o xtensa-linux-nat.o \
-               linux-thread-db.o proc-service.o \
-               linux-nat.o linux-osdata.o linux-fork.o linux-procfs.o linux-ptrace.o \
-               linux-waitpid.o linux-personality.o linux-namespaces.o'
-       NAT_CDEPS='$(srcdir)/proc-service.list'
-
-       LOADLIBES='-ldl $(RDYNAMIC)'
-       ;;
-    esac
-    ;;
 esac