Introduce "gdb/configure.nat" (and delete "gdb/config/*/*.mh" files)

Message ID 20170425202309.15771-1-sergiodj@redhat.com
State New, archived
Headers

Commit Message

Sergio Durigan Junior April 25, 2017, 8:23 p.m. UTC
  Due to my ongoing work to make it possible for gdbserver to start the
inferior using the shell, I had to share the fork_inferior function
under the "nat/" directory.  In order to do that, I created a new file
and put the function there; however, this meant that I now had to
update some of the *.mh files (under "gdb/config") and add the new
file as a dependency to be built natively.  Bleh...

After talking a bit to Pedro about this, the idea came up to write a
new "gdb/configure.nat" file, a la "gdb/configure.tgt", which would
concentrate all of the native settings for each host/system.  I
decided to tackle this issue.

The patch is simple.  All of the previous Makefile variables that were
being declared inside the *.mh files are now inside "gdb/Makefile.in",
and "gdb/configure" is responsible for AC_SUBST'ing them.  The
definitions of these variables were put inside "gdb/configure.nat", so
now they're shell variables.  For excerpts of Makefile code, one must
create a file under "gdb/config/${gdb_cpu_host}" and reference it on
the "NAT_EXTRA_FRAGS_FILE" variable.

It should now be easier to update the native dependencies of hosts in
this single file.

This has been tested on x86_64 without regressions.

gdb/ChangeLog:
yyyy-mm-dd  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_TARGET.  Add
	"@NAT_EXTRA_FRAGS_FILE@".
	(Makefile): Remove dependency on "@frags@".
	($(GNULIB_BUILDDIR)/Makefile): Likewise.
	(data-directory/Makefile): Likewise.
	* config/aarch64/linux.mh: Deleted; moved contents to
	"gdb/configure.nat".
	* config/alpha/alpha-linux.mh: Likewise.
	* config/alpha/nbsd.mh: Likewise.
	* config/arm/linux.mh: Likewise.
	* config/arm/nbsdelf.mh: Likewise.
	* config/i386/cygwin.mh: Likewise.
	* config/i386/cygwin64.mh: Likewise.
	* config/i386/darwin.mh: Likewise.
	* config/i386/fbsd.mh: Likewise.
	* config/i386/fbsd64.mh: Likewise.
	* config/i386/go32.mh: Likewise.
	* config/i386/i386gnu.mh: Likewise.
	* config/i386/i386sol2.mh: Likewise.
	* config/i386/linux.mh: Likewise.
	* config/i386/linux64.mh: Likewise.
	* config/i386/mingw.mh: Likewise.
	* config/i386/mingw64.mh: Likewise.
	* config/i386/nbsd64.mh: Likewise.
	* config/i386/nbsdelf.mh: Likewise.
	* config/i386/nto.mh: Likewise.
	* config/i386/obsd.mh: Likewise.
	* config/i386/obsd64.mh: Likewise.
	* config/i386/sol2-64.mh: Likewise.
	* config/ia64/linux.mh: Likewise.
	* config/m32r/linux.mh: Likewise.
	* config/m68k/linux.mh: Likewise.
	* config/m68k/nbsdelf.mh: Likewise.
	* config/m68k/obsd.mh: Likewise.
	* config/m88k/obsd.mh: Likewise.
	* config/mips/fbsd.mh: Likewise.
	* config/mips/linux.mh: Likewise.
	* config/mips/nbsd.mh: Likewise.
	* config/mips/obsd64.mh: Likewise.
	* config/pa/linux.mh: Likewise.
	* config/pa/nbsd.mh: Likewise.
	* config/pa/obsd.mh: Likewise.
	* config/powerpc/aix.mh: Likewise.
	* config/powerpc/fbsd.mh: Likewise.
	* config/powerpc/linux.mh: Likewise.
	* config/powerpc/nbsd.mh: Likewise.
	* config/powerpc/obsd.mh: Likewise.
	* config/powerpc/ppc64-linux.mh: Likewise.
	* config/powerpc/spu-linux.mh: Likewise.
	* config/s390/linux.mh: Likewise.
	* config/sh/nbsd.mh: Likewise.
	* config/sparc/fbsd.mh: Likewise.
	* config/sparc/linux.mh: Likewise.
	* config/sparc/linux64.mh: Likewise.
	* config/sparc/nbsd64.mh: Likewise.
	* config/sparc/nbsdelf.mh: Likewise.
	* config/sparc/obsd64.mh: Likewise.
	* config/sparc/sol2.mh: Likewise.
	* config/tilegx/linux.mh: Likewise.
	* config/vax/nbsdelf.mh: Likewise.
	* config/vax/obsd.mh: Likewise.
	* config/xtensa/linux.mh: Likewise.
	* config/i386/i386gnu-extra.mh: New file.
	* configure: Regenerate.
	* configure.ac: Rewrite code to use "gdb/configure.nat" instead of
	*.mh files under "gdb/config".
	* configure.nat: New file, with contents from the
	"gdb/config/*/*.mh" files.

gdb/doc/ChangeLog:
yyyy-mm-dd  Sergio Durigan Junior  <sergiodj@redhat.com>

	* Makefile: Remove "@host_makefile_frag".
---
 gdb/Makefile.in                                  |  17 +-
 gdb/config/aarch64/linux.mh                      |  29 --
 gdb/config/alpha/alpha-linux.mh                  |  15 -
 gdb/config/alpha/nbsd.mh                         |   4 -
 gdb/config/arm/linux.mh                          |  10 -
 gdb/config/arm/nbsdelf.mh                        |   2 -
 gdb/config/i386/cygwin.mh                        |   3 -
 gdb/config/i386/cygwin64.mh                      |  20 -
 gdb/config/i386/darwin.mh                        |   4 -
 gdb/config/i386/fbsd.mh                          |   8 -
 gdb/config/i386/fbsd64.mh                        |   7 -
 gdb/config/i386/go32.mh                          |  11 -
 gdb/config/i386/{i386gnu.mh => i386gnu-extra.mh} |  23 +-
 gdb/config/i386/i386sol2.mh                      |   4 -
 gdb/config/i386/linux.mh                         |  14 -
 gdb/config/i386/linux64.mh                       |  15 -
 gdb/config/i386/mingw.mh                         |   3 -
 gdb/config/i386/mingw64.mh                       |   1 -
 gdb/config/i386/nbsd64.mh                        |   3 -
 gdb/config/i386/nbsdelf.mh                       |   5 -
 gdb/config/i386/nto.mh                           |   4 -
 gdb/config/i386/obsd.mh                          |   5 -
 gdb/config/i386/obsd64.mh                        |   5 -
 gdb/config/i386/sol2-64.mh                       |   4 -
 gdb/config/ia64/linux.mh                         |  13 -
 gdb/config/m32r/linux.mh                         |  10 -
 gdb/config/m68k/linux.mh                         |  14 -
 gdb/config/m68k/nbsdelf.mh                       |   4 -
 gdb/config/m68k/obsd.mh                          |   4 -
 gdb/config/m88k/obsd.mh                          |   2 -
 gdb/config/mips/fbsd.mh                          |   3 -
 gdb/config/mips/linux.mh                         |  11 -
 gdb/config/mips/nbsd.mh                          |   2 -
 gdb/config/mips/obsd64.mh                        |   2 -
 gdb/config/pa/linux.mh                           |  10 -
 gdb/config/pa/nbsd.mh                            |   2 -
 gdb/config/pa/obsd.mh                            |   2 -
 gdb/config/powerpc/aix.mh                        |   8 -
 gdb/config/powerpc/fbsd.mh                       |  24 -
 gdb/config/powerpc/linux.mh                      |  12 -
 gdb/config/powerpc/nbsd.mh                       |   4 -
 gdb/config/powerpc/obsd.mh                       |   4 -
 gdb/config/powerpc/ppc64-linux.mh                |  15 -
 gdb/config/powerpc/spu-linux.mh                  |   8 -
 gdb/config/s390/linux.mh                         |   9 -
 gdb/config/sh/nbsd.mh                            |   2 -
 gdb/config/sparc/fbsd.mh                         |   7 -
 gdb/config/sparc/linux.mh                        |  13 -
 gdb/config/sparc/linux64.mh                      |  13 -
 gdb/config/sparc/nbsd64.mh                       |   5 -
 gdb/config/sparc/nbsdelf.mh                      |   5 -
 gdb/config/sparc/obsd64.mh                       |   5 -
 gdb/config/sparc/sol2.mh                         |   6 -
 gdb/config/tilegx/linux.mh                       |  13 -
 gdb/config/vax/nbsdelf.mh                        |   5 -
 gdb/config/vax/obsd.mh                           |   5 -
 gdb/config/xtensa/linux.mh                       |  11 -
 gdb/configure                                    |  34 +-
 gdb/configure.ac                                 |  33 +-
 gdb/configure.nat                                | 591 +++++++++++++++++++++++
 gdb/doc/Makefile.in                              |   3 -
 61 files changed, 637 insertions(+), 493 deletions(-)
 delete mode 100644 gdb/config/aarch64/linux.mh
 delete mode 100644 gdb/config/alpha/alpha-linux.mh
 delete mode 100644 gdb/config/alpha/nbsd.mh
 delete mode 100644 gdb/config/arm/linux.mh
 delete mode 100644 gdb/config/arm/nbsdelf.mh
 delete mode 100644 gdb/config/i386/cygwin.mh
 delete mode 100644 gdb/config/i386/cygwin64.mh
 delete mode 100644 gdb/config/i386/darwin.mh
 delete mode 100644 gdb/config/i386/fbsd.mh
 delete mode 100644 gdb/config/i386/fbsd64.mh
 delete mode 100644 gdb/config/i386/go32.mh
 rename gdb/config/i386/{i386gnu.mh => i386gnu-extra.mh} (58%)
 delete mode 100644 gdb/config/i386/i386sol2.mh
 delete mode 100644 gdb/config/i386/linux.mh
 delete mode 100644 gdb/config/i386/linux64.mh
 delete mode 100644 gdb/config/i386/mingw.mh
 delete mode 100644 gdb/config/i386/mingw64.mh
 delete mode 100644 gdb/config/i386/nbsd64.mh
 delete mode 100644 gdb/config/i386/nbsdelf.mh
 delete mode 100644 gdb/config/i386/nto.mh
 delete mode 100644 gdb/config/i386/obsd.mh
 delete mode 100644 gdb/config/i386/obsd64.mh
 delete mode 100644 gdb/config/i386/sol2-64.mh
 delete mode 100644 gdb/config/ia64/linux.mh
 delete mode 100644 gdb/config/m32r/linux.mh
 delete mode 100644 gdb/config/m68k/linux.mh
 delete mode 100644 gdb/config/m68k/nbsdelf.mh
 delete mode 100644 gdb/config/m68k/obsd.mh
 delete mode 100644 gdb/config/m88k/obsd.mh
 delete mode 100644 gdb/config/mips/fbsd.mh
 delete mode 100644 gdb/config/mips/linux.mh
 delete mode 100644 gdb/config/mips/nbsd.mh
 delete mode 100644 gdb/config/mips/obsd64.mh
 delete mode 100644 gdb/config/pa/linux.mh
 delete mode 100644 gdb/config/pa/nbsd.mh
 delete mode 100644 gdb/config/pa/obsd.mh
 delete mode 100644 gdb/config/powerpc/aix.mh
 delete mode 100644 gdb/config/powerpc/fbsd.mh
 delete mode 100644 gdb/config/powerpc/linux.mh
 delete mode 100644 gdb/config/powerpc/nbsd.mh
 delete mode 100644 gdb/config/powerpc/obsd.mh
 delete mode 100644 gdb/config/powerpc/ppc64-linux.mh
 delete mode 100644 gdb/config/powerpc/spu-linux.mh
 delete mode 100644 gdb/config/s390/linux.mh
 delete mode 100644 gdb/config/sh/nbsd.mh
 delete mode 100644 gdb/config/sparc/fbsd.mh
 delete mode 100644 gdb/config/sparc/linux.mh
 delete mode 100644 gdb/config/sparc/linux64.mh
 delete mode 100644 gdb/config/sparc/nbsd64.mh
 delete mode 100644 gdb/config/sparc/nbsdelf.mh
 delete mode 100644 gdb/config/sparc/obsd64.mh
 delete mode 100644 gdb/config/sparc/sol2.mh
 delete mode 100644 gdb/config/tilegx/linux.mh
 delete mode 100644 gdb/config/vax/nbsdelf.mh
 delete mode 100644 gdb/config/vax/obsd.mh
 delete mode 100644 gdb/config/xtensa/linux.mh
 create mode 100644 gdb/configure.nat
  

Comments

John Baldwin April 25, 2017, 9:08 p.m. UTC | #1
On Tuesday, April 25, 2017 04:23:09 PM Sergio Durigan Junior wrote:
> Due to my ongoing work to make it possible for gdbserver to start the
> inferior using the shell, I had to share the fork_inferior function
> under the "nat/" directory.  In order to do that, I created a new file
> and put the function there; however, this meant that I now had to
> update some of the *.mh files (under "gdb/config") and add the new
> file as a dependency to be built natively.  Bleh...
> 
> After talking a bit to Pedro about this, the idea came up to write a
> new "gdb/configure.nat" file, a la "gdb/configure.tgt", which would
> concentrate all of the native settings for each host/system.  I
> decided to tackle this issue.
> 
> The patch is simple.  All of the previous Makefile variables that were
> being declared inside the *.mh files are now inside "gdb/Makefile.in",
> and "gdb/configure" is responsible for AC_SUBST'ing them.  The
> definitions of these variables were put inside "gdb/configure.nat", so
> now they're shell variables.  For excerpts of Makefile code, one must
> create a file under "gdb/config/${gdb_cpu_host}" and reference it on
> the "NAT_EXTRA_FRAGS_FILE" variable.
> 
> It should now be easier to update the native dependencies of hosts in
> this single file.
> 
> This has been tested on x86_64 without regressions.

The FreeBSD-related bits all look correct to me.  I do think this is easier
to work with than the various *.mh files.
  
Sergio Durigan Junior May 1, 2017, 6:45 p.m. UTC | #2
Ping.

On Tuesday, April 25 2017, I wrote:

> Due to my ongoing work to make it possible for gdbserver to start the
> inferior using the shell, I had to share the fork_inferior function
> under the "nat/" directory.  In order to do that, I created a new file
> and put the function there; however, this meant that I now had to
> update some of the *.mh files (under "gdb/config") and add the new
> file as a dependency to be built natively.  Bleh...
>
> After talking a bit to Pedro about this, the idea came up to write a
> new "gdb/configure.nat" file, a la "gdb/configure.tgt", which would
> concentrate all of the native settings for each host/system.  I
> decided to tackle this issue.
>
> The patch is simple.  All of the previous Makefile variables that were
> being declared inside the *.mh files are now inside "gdb/Makefile.in",
> and "gdb/configure" is responsible for AC_SUBST'ing them.  The
> definitions of these variables were put inside "gdb/configure.nat", so
> now they're shell variables.  For excerpts of Makefile code, one must
> create a file under "gdb/config/${gdb_cpu_host}" and reference it on
> the "NAT_EXTRA_FRAGS_FILE" variable.
>
> It should now be easier to update the native dependencies of hosts in
> this single file.
>
> This has been tested on x86_64 without regressions.
>
> gdb/ChangeLog:
> yyyy-mm-dd  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_TARGET.  Add
> 	"@NAT_EXTRA_FRAGS_FILE@".
> 	(Makefile): Remove dependency on "@frags@".
> 	($(GNULIB_BUILDDIR)/Makefile): Likewise.
> 	(data-directory/Makefile): Likewise.
> 	* config/aarch64/linux.mh: Deleted; moved contents to
> 	"gdb/configure.nat".
> 	* config/alpha/alpha-linux.mh: Likewise.
> 	* config/alpha/nbsd.mh: Likewise.
> 	* config/arm/linux.mh: Likewise.
> 	* config/arm/nbsdelf.mh: Likewise.
> 	* config/i386/cygwin.mh: Likewise.
> 	* config/i386/cygwin64.mh: Likewise.
> 	* config/i386/darwin.mh: Likewise.
> 	* config/i386/fbsd.mh: Likewise.
> 	* config/i386/fbsd64.mh: Likewise.
> 	* config/i386/go32.mh: Likewise.
> 	* config/i386/i386gnu.mh: Likewise.
> 	* config/i386/i386sol2.mh: Likewise.
> 	* config/i386/linux.mh: Likewise.
> 	* config/i386/linux64.mh: Likewise.
> 	* config/i386/mingw.mh: Likewise.
> 	* config/i386/mingw64.mh: Likewise.
> 	* config/i386/nbsd64.mh: Likewise.
> 	* config/i386/nbsdelf.mh: Likewise.
> 	* config/i386/nto.mh: Likewise.
> 	* config/i386/obsd.mh: Likewise.
> 	* config/i386/obsd64.mh: Likewise.
> 	* config/i386/sol2-64.mh: Likewise.
> 	* config/ia64/linux.mh: Likewise.
> 	* config/m32r/linux.mh: Likewise.
> 	* config/m68k/linux.mh: Likewise.
> 	* config/m68k/nbsdelf.mh: Likewise.
> 	* config/m68k/obsd.mh: Likewise.
> 	* config/m88k/obsd.mh: Likewise.
> 	* config/mips/fbsd.mh: Likewise.
> 	* config/mips/linux.mh: Likewise.
> 	* config/mips/nbsd.mh: Likewise.
> 	* config/mips/obsd64.mh: Likewise.
> 	* config/pa/linux.mh: Likewise.
> 	* config/pa/nbsd.mh: Likewise.
> 	* config/pa/obsd.mh: Likewise.
> 	* config/powerpc/aix.mh: Likewise.
> 	* config/powerpc/fbsd.mh: Likewise.
> 	* config/powerpc/linux.mh: Likewise.
> 	* config/powerpc/nbsd.mh: Likewise.
> 	* config/powerpc/obsd.mh: Likewise.
> 	* config/powerpc/ppc64-linux.mh: Likewise.
> 	* config/powerpc/spu-linux.mh: Likewise.
> 	* config/s390/linux.mh: Likewise.
> 	* config/sh/nbsd.mh: Likewise.
> 	* config/sparc/fbsd.mh: Likewise.
> 	* config/sparc/linux.mh: Likewise.
> 	* config/sparc/linux64.mh: Likewise.
> 	* config/sparc/nbsd64.mh: Likewise.
> 	* config/sparc/nbsdelf.mh: Likewise.
> 	* config/sparc/obsd64.mh: Likewise.
> 	* config/sparc/sol2.mh: Likewise.
> 	* config/tilegx/linux.mh: Likewise.
> 	* config/vax/nbsdelf.mh: Likewise.
> 	* config/vax/obsd.mh: Likewise.
> 	* config/xtensa/linux.mh: Likewise.
> 	* config/i386/i386gnu-extra.mh: New file.
> 	* configure: Regenerate.
> 	* configure.ac: Rewrite code to use "gdb/configure.nat" instead of
> 	*.mh files under "gdb/config".
> 	* configure.nat: New file, with contents from the
> 	"gdb/config/*/*.mh" files.
>
> gdb/doc/ChangeLog:
> yyyy-mm-dd  Sergio Durigan Junior  <sergiodj@redhat.com>
>
> 	* Makefile: Remove "@host_makefile_frag".
> ---
>  gdb/Makefile.in                                  |  17 +-
>  gdb/config/aarch64/linux.mh                      |  29 --
>  gdb/config/alpha/alpha-linux.mh                  |  15 -
>  gdb/config/alpha/nbsd.mh                         |   4 -
>  gdb/config/arm/linux.mh                          |  10 -
>  gdb/config/arm/nbsdelf.mh                        |   2 -
>  gdb/config/i386/cygwin.mh                        |   3 -
>  gdb/config/i386/cygwin64.mh                      |  20 -
>  gdb/config/i386/darwin.mh                        |   4 -
>  gdb/config/i386/fbsd.mh                          |   8 -
>  gdb/config/i386/fbsd64.mh                        |   7 -
>  gdb/config/i386/go32.mh                          |  11 -
>  gdb/config/i386/{i386gnu.mh => i386gnu-extra.mh} |  23 +-
>  gdb/config/i386/i386sol2.mh                      |   4 -
>  gdb/config/i386/linux.mh                         |  14 -
>  gdb/config/i386/linux64.mh                       |  15 -
>  gdb/config/i386/mingw.mh                         |   3 -
>  gdb/config/i386/mingw64.mh                       |   1 -
>  gdb/config/i386/nbsd64.mh                        |   3 -
>  gdb/config/i386/nbsdelf.mh                       |   5 -
>  gdb/config/i386/nto.mh                           |   4 -
>  gdb/config/i386/obsd.mh                          |   5 -
>  gdb/config/i386/obsd64.mh                        |   5 -
>  gdb/config/i386/sol2-64.mh                       |   4 -
>  gdb/config/ia64/linux.mh                         |  13 -
>  gdb/config/m32r/linux.mh                         |  10 -
>  gdb/config/m68k/linux.mh                         |  14 -
>  gdb/config/m68k/nbsdelf.mh                       |   4 -
>  gdb/config/m68k/obsd.mh                          |   4 -
>  gdb/config/m88k/obsd.mh                          |   2 -
>  gdb/config/mips/fbsd.mh                          |   3 -
>  gdb/config/mips/linux.mh                         |  11 -
>  gdb/config/mips/nbsd.mh                          |   2 -
>  gdb/config/mips/obsd64.mh                        |   2 -
>  gdb/config/pa/linux.mh                           |  10 -
>  gdb/config/pa/nbsd.mh                            |   2 -
>  gdb/config/pa/obsd.mh                            |   2 -
>  gdb/config/powerpc/aix.mh                        |   8 -
>  gdb/config/powerpc/fbsd.mh                       |  24 -
>  gdb/config/powerpc/linux.mh                      |  12 -
>  gdb/config/powerpc/nbsd.mh                       |   4 -
>  gdb/config/powerpc/obsd.mh                       |   4 -
>  gdb/config/powerpc/ppc64-linux.mh                |  15 -
>  gdb/config/powerpc/spu-linux.mh                  |   8 -
>  gdb/config/s390/linux.mh                         |   9 -
>  gdb/config/sh/nbsd.mh                            |   2 -
>  gdb/config/sparc/fbsd.mh                         |   7 -
>  gdb/config/sparc/linux.mh                        |  13 -
>  gdb/config/sparc/linux64.mh                      |  13 -
>  gdb/config/sparc/nbsd64.mh                       |   5 -
>  gdb/config/sparc/nbsdelf.mh                      |   5 -
>  gdb/config/sparc/obsd64.mh                       |   5 -
>  gdb/config/sparc/sol2.mh                         |   6 -
>  gdb/config/tilegx/linux.mh                       |  13 -
>  gdb/config/vax/nbsdelf.mh                        |   5 -
>  gdb/config/vax/obsd.mh                           |   5 -
>  gdb/config/xtensa/linux.mh                       |  11 -
>  gdb/configure                                    |  34 +-
>  gdb/configure.ac                                 |  33 +-
>  gdb/configure.nat                                | 591 +++++++++++++++++++++++
>  gdb/doc/Makefile.in                              |   3 -
>  61 files changed, 637 insertions(+), 493 deletions(-)
>  delete mode 100644 gdb/config/aarch64/linux.mh
>  delete mode 100644 gdb/config/alpha/alpha-linux.mh
>  delete mode 100644 gdb/config/alpha/nbsd.mh
>  delete mode 100644 gdb/config/arm/linux.mh
>  delete mode 100644 gdb/config/arm/nbsdelf.mh
>  delete mode 100644 gdb/config/i386/cygwin.mh
>  delete mode 100644 gdb/config/i386/cygwin64.mh
>  delete mode 100644 gdb/config/i386/darwin.mh
>  delete mode 100644 gdb/config/i386/fbsd.mh
>  delete mode 100644 gdb/config/i386/fbsd64.mh
>  delete mode 100644 gdb/config/i386/go32.mh
>  rename gdb/config/i386/{i386gnu.mh => i386gnu-extra.mh} (58%)
>  delete mode 100644 gdb/config/i386/i386sol2.mh
>  delete mode 100644 gdb/config/i386/linux.mh
>  delete mode 100644 gdb/config/i386/linux64.mh
>  delete mode 100644 gdb/config/i386/mingw.mh
>  delete mode 100644 gdb/config/i386/mingw64.mh
>  delete mode 100644 gdb/config/i386/nbsd64.mh
>  delete mode 100644 gdb/config/i386/nbsdelf.mh
>  delete mode 100644 gdb/config/i386/nto.mh
>  delete mode 100644 gdb/config/i386/obsd.mh
>  delete mode 100644 gdb/config/i386/obsd64.mh
>  delete mode 100644 gdb/config/i386/sol2-64.mh
>  delete mode 100644 gdb/config/ia64/linux.mh
>  delete mode 100644 gdb/config/m32r/linux.mh
>  delete mode 100644 gdb/config/m68k/linux.mh
>  delete mode 100644 gdb/config/m68k/nbsdelf.mh
>  delete mode 100644 gdb/config/m68k/obsd.mh
>  delete mode 100644 gdb/config/m88k/obsd.mh
>  delete mode 100644 gdb/config/mips/fbsd.mh
>  delete mode 100644 gdb/config/mips/linux.mh
>  delete mode 100644 gdb/config/mips/nbsd.mh
>  delete mode 100644 gdb/config/mips/obsd64.mh
>  delete mode 100644 gdb/config/pa/linux.mh
>  delete mode 100644 gdb/config/pa/nbsd.mh
>  delete mode 100644 gdb/config/pa/obsd.mh
>  delete mode 100644 gdb/config/powerpc/aix.mh
>  delete mode 100644 gdb/config/powerpc/fbsd.mh
>  delete mode 100644 gdb/config/powerpc/linux.mh
>  delete mode 100644 gdb/config/powerpc/nbsd.mh
>  delete mode 100644 gdb/config/powerpc/obsd.mh
>  delete mode 100644 gdb/config/powerpc/ppc64-linux.mh
>  delete mode 100644 gdb/config/powerpc/spu-linux.mh
>  delete mode 100644 gdb/config/s390/linux.mh
>  delete mode 100644 gdb/config/sh/nbsd.mh
>  delete mode 100644 gdb/config/sparc/fbsd.mh
>  delete mode 100644 gdb/config/sparc/linux.mh
>  delete mode 100644 gdb/config/sparc/linux64.mh
>  delete mode 100644 gdb/config/sparc/nbsd64.mh
>  delete mode 100644 gdb/config/sparc/nbsdelf.mh
>  delete mode 100644 gdb/config/sparc/obsd64.mh
>  delete mode 100644 gdb/config/sparc/sol2.mh
>  delete mode 100644 gdb/config/tilegx/linux.mh
>  delete mode 100644 gdb/config/vax/nbsdelf.mh
>  delete mode 100644 gdb/config/vax/obsd.mh
>  delete mode 100644 gdb/config/xtensa/linux.mh
>  create mode 100644 gdb/configure.nat
>
> diff --git a/gdb/Makefile.in b/gdb/Makefile.in
> index b865b7c..ff4c7e1 100644
> --- a/gdb/Makefile.in
> +++ b/gdb/Makefile.in
> @@ -903,7 +903,16 @@ ALL_TARGET_OBS = \
>  	xtensa-tdep.o
>  
>  # Host-dependent makefile fragment comes in here.
> -@host_makefile_frag@
> +NAT_FILE = @NAT_FILE@
> +NATDEPFILES = @NATDEPFILES@
> +NAT_CDEPS = @NAT_CDEPS@
> +LOADLIBES = @LOADLIBES@
> +MH_CFLAGS = @MH_CFLAGS@
> +XM_CLIBS = @XM_CLIBS@
> +NAT_GENERATED_FILES = @NAT_GENERATED_FILES@
> +HAVE_NATIVE_GCORE_TARGET = @HAVE_NATIVE_GCORE_TARGET@
> +
> +@NAT_EXTRA_FRAGS_FILE@
>  # End of host-dependent makefile fragment
>  
>  FLAGS_TO_PASS = \
> @@ -2315,21 +2324,21 @@ subdir_do: force
>  		else true ; fi ; \
>  	done
>  
> -Makefile: Makefile.in config.status @frags@
> +Makefile: Makefile.in config.status
>  	# Regenerate the Makefile and the tm.h / nm.h links.
>  	CONFIG_FILES="Makefile" \
>  	  CONFIG_COMMANDS= \
>  	  CONFIG_HEADERS= \
>  	  $(SHELL) config.status
>  
> -$(GNULIB_BUILDDIR)/Makefile: gnulib/Makefile.in config.status @frags@
> +$(GNULIB_BUILDDIR)/Makefile: gnulib/Makefile.in config.status
>  	@cd $(GNULIB_BUILDDIR); CONFIG_FILES="Makefile" \
>  	  CONFIG_COMMANDS="depfiles" \
>  	  CONFIG_HEADERS= \
>  	  CONFIG_LINKS= \
>  	  $(SHELL) config.status
>  
> -data-directory/Makefile: data-directory/Makefile.in config.status @frags@
> +data-directory/Makefile: data-directory/Makefile.in config.status
>  	CONFIG_FILES="data-directory/Makefile" \
>  	  CONFIG_COMMANDS="depfiles" \
>  	  CONFIG_HEADERS= \
> diff --git a/gdb/config/aarch64/linux.mh b/gdb/config/aarch64/linux.mh
> deleted file mode 100644
> index d184a79..0000000
> --- a/gdb/config/aarch64/linux.mh
> +++ /dev/null
> @@ -1,29 +0,0 @@
> -#  Host: AArch64 based machine running GNU/Linux
> -#
> -#  Copyright (C) 2013-2017 Free Software Foundation, Inc.
> -#  Contributed by ARM Ltd.
> -#
> -#  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/>.
> -
> -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)
> diff --git a/gdb/config/alpha/alpha-linux.mh b/gdb/config/alpha/alpha-linux.mh
> deleted file mode 100644
> index 4991dd2..0000000
> --- a/gdb/config/alpha/alpha-linux.mh
> +++ /dev/null
> @@ -1,15 +0,0 @@
> -# 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
> -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
> diff --git a/gdb/config/alpha/nbsd.mh b/gdb/config/alpha/nbsd.mh
> deleted file mode 100644
> index a46739e..0000000
> --- a/gdb/config/alpha/nbsd.mh
> +++ /dev/null
> @@ -1,4 +0,0 @@
> -# Host: NetBSD/alpha
> -NATDEPFILES= fork-child.o inf-ptrace.o alpha-bsd-nat.o bsd-kvm.o
> -
> -LOADLIBES= -lkvm
> diff --git a/gdb/config/arm/linux.mh b/gdb/config/arm/linux.mh
> deleted file mode 100644
> index 003ca1f..0000000
> --- a/gdb/config/arm/linux.mh
> +++ /dev/null
> @@ -1,10 +0,0 @@
> -# 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)
> diff --git a/gdb/config/arm/nbsdelf.mh b/gdb/config/arm/nbsdelf.mh
> deleted file mode 100644
> index 042b583..0000000
> --- a/gdb/config/arm/nbsdelf.mh
> +++ /dev/null
> @@ -1,2 +0,0 @@
> -# Host: NetBSD/arm
> -NATDEPFILES= fork-child.o inf-ptrace.o arm-nbsd-nat.o
> diff --git a/gdb/config/i386/cygwin.mh b/gdb/config/i386/cygwin.mh
> deleted file mode 100644
> index 09bee12..0000000
> --- a/gdb/config/i386/cygwin.mh
> +++ /dev/null
> @@ -1,3 +0,0 @@
> -MH_CFLAGS=
> -NATDEPFILES= x86-nat.o x86-dregs.o windows-nat.o i386-windows-nat.o
> -XM_CLIBS=
> diff --git a/gdb/config/i386/cygwin64.mh b/gdb/config/i386/cygwin64.mh
> deleted file mode 100644
> index 4f70adc..0000000
> --- a/gdb/config/i386/cygwin64.mh
> +++ /dev/null
> @@ -1,20 +0,0 @@
> -#  Native config information for GDB on PowerPC systems running FreeBSD.
> -#
> -#  Copyright (C) 2013-2017 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/>.  */
> -
> -NATDEPFILES= x86-nat.o x86-dregs.o windows-nat.o amd64-windows-nat.o
> diff --git a/gdb/config/i386/darwin.mh b/gdb/config/i386/darwin.mh
> deleted file mode 100644
> index 16c1558..0000000
> --- a/gdb/config/i386/darwin.mh
> +++ /dev/null
> @@ -1,4 +0,0 @@
> -# 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
> diff --git a/gdb/config/i386/fbsd.mh b/gdb/config/i386/fbsd.mh
> deleted file mode 100644
> index 69e0a8b..0000000
> --- a/gdb/config/i386/fbsd.mh
> +++ /dev/null
> @@ -1,8 +0,0 @@
> -# 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
> diff --git a/gdb/config/i386/fbsd64.mh b/gdb/config/i386/fbsd64.mh
> deleted file mode 100644
> index 461ff9a..0000000
> --- a/gdb/config/i386/fbsd64.mh
> +++ /dev/null
> @@ -1,7 +0,0 @@
> -# 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
> diff --git a/gdb/config/i386/go32.mh b/gdb/config/i386/go32.mh
> deleted file mode 100644
> index f1edfad..0000000
> --- a/gdb/config/i386/go32.mh
> +++ /dev/null
> @@ -1,11 +0,0 @@
> -# 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
> -
> -HOST_IPC=
> -XM_CLIBS= -ldbg
> -
> -
> diff --git a/gdb/config/i386/i386gnu.mh b/gdb/config/i386/i386gnu-extra.mh
> similarity index 58%
> rename from gdb/config/i386/i386gnu.mh
> rename to gdb/config/i386/i386gnu-extra.mh
> index 070497f..1f2d937 100644
> --- a/gdb/config/i386/i386gnu.mh
> +++ b/gdb/config/i386/i386gnu-extra.mh
> @@ -1,21 +1,9 @@
> -# 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
> -
> -NAT_FILE= nm-i386gnu.h
> -MH_CFLAGS = -D_GNU_SOURCE
> -
> -XM_CLIBS = -lshouldbeinlibc
> -
>  # Use our own user stubs for the msg rpcs, so we can make them time out, in
>  # case the program is fucked, or we guess the wrong signal thread.
> -msg-MIGUFLAGS = -D'MSG_IMPORTS=waittime 1000;'
> +msg-MIGUFLAGS=-D'MSG_IMPORTS=waittime 1000;'
>  
>  # ick
> -MIGCOM = $(MIG) -cc cat - /dev/null
> +MIGCOM=$(MIG) -cc cat - /dev/null
>  
>  # Reply servers need special massaging of the code mig generates, to make
>  # them work correctly for error returns in some cases.
> @@ -33,9 +21,4 @@ MIGCOM = $(MIG) -cc cat - /dev/null
>  	| $(MIGCOM) -sheader /dev/null -server /dev/null -user $*_U.c -header $*_U.h
>  
>  # MIG stubs are not yet ready for C++ compilation.
> -%_S.o %_U.o : COMPILE.post += -x c
> -
> -NAT_GENERATED_FILES = notify_S.h notify_S.c \
> -	process_reply_S.h process_reply_S.c \
> -	msg_reply_S.h msg_reply_S.c msg_U.h msg_U.c \
> -	exc_request_U.h exc_request_U.c exc_request_S.h exc_request_S.c
> +%_S.o %_U.o : COMPILE.post +=-x c"
> diff --git a/gdb/config/i386/i386sol2.mh b/gdb/config/i386/i386sol2.mh
> deleted file mode 100644
> index 787a3c1..0000000
> --- a/gdb/config/i386/i386sol2.mh
> +++ /dev/null
> @@ -1,4 +0,0 @@
> -# 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
> diff --git a/gdb/config/i386/linux.mh b/gdb/config/i386/linux.mh
> deleted file mode 100644
> index 421c56f..0000000
> --- a/gdb/config/i386/linux.mh
> +++ /dev/null
> @@ -1,14 +0,0 @@
> -# 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)
> diff --git a/gdb/config/i386/linux64.mh b/gdb/config/i386/linux64.mh
> deleted file mode 100644
> index 42d8df5..0000000
> --- a/gdb/config/i386/linux64.mh
> +++ /dev/null
> @@ -1,15 +0,0 @@
> -# 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)
> diff --git a/gdb/config/i386/mingw.mh b/gdb/config/i386/mingw.mh
> deleted file mode 100644
> index 09bee12..0000000
> --- a/gdb/config/i386/mingw.mh
> +++ /dev/null
> @@ -1,3 +0,0 @@
> -MH_CFLAGS=
> -NATDEPFILES= x86-nat.o x86-dregs.o windows-nat.o i386-windows-nat.o
> -XM_CLIBS=
> diff --git a/gdb/config/i386/mingw64.mh b/gdb/config/i386/mingw64.mh
> deleted file mode 100644
> index 0ee2e2c..0000000
> --- a/gdb/config/i386/mingw64.mh
> +++ /dev/null
> @@ -1 +0,0 @@
> -NATDEPFILES= x86-nat.o x86-dregs.o windows-nat.o amd64-windows-nat.o
> diff --git a/gdb/config/i386/nbsd64.mh b/gdb/config/i386/nbsd64.mh
> deleted file mode 100644
> index 91d21f3..0000000
> --- a/gdb/config/i386/nbsd64.mh
> +++ /dev/null
> @@ -1,3 +0,0 @@
> -# 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
> diff --git a/gdb/config/i386/nbsdelf.mh b/gdb/config/i386/nbsdelf.mh
> deleted file mode 100644
> index 5954b3f..0000000
> --- a/gdb/config/i386/nbsdelf.mh
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -# 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
> diff --git a/gdb/config/i386/nto.mh b/gdb/config/i386/nto.mh
> deleted file mode 100644
> index b9e2f84..0000000
> --- a/gdb/config/i386/nto.mh
> +++ /dev/null
> @@ -1,4 +0,0 @@
> -# Host: Intel 386 running QNX.
> -
> -NATDEPFILES= nto-procfs.o
> -NAT_FILE= config/nm-nto.h
> diff --git a/gdb/config/i386/obsd.mh b/gdb/config/i386/obsd.mh
> deleted file mode 100644
> index fac7282..0000000
> --- a/gdb/config/i386/obsd.mh
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -# 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
> diff --git a/gdb/config/i386/obsd64.mh b/gdb/config/i386/obsd64.mh
> deleted file mode 100644
> index 51deea7..0000000
> --- a/gdb/config/i386/obsd64.mh
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -# 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
> diff --git a/gdb/config/i386/sol2-64.mh b/gdb/config/i386/sol2-64.mh
> deleted file mode 100644
> index 7a3ab73..0000000
> --- a/gdb/config/i386/sol2-64.mh
> +++ /dev/null
> @@ -1,4 +0,0 @@
> -# 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
> diff --git a/gdb/config/ia64/linux.mh b/gdb/config/ia64/linux.mh
> deleted file mode 100644
> index b05f834..0000000
> --- a/gdb/config/ia64/linux.mh
> +++ /dev/null
> @@ -1,13 +0,0 @@
> -# 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)
> diff --git a/gdb/config/m32r/linux.mh b/gdb/config/m32r/linux.mh
> deleted file mode 100644
> index 277d8bd..0000000
> --- a/gdb/config/m32r/linux.mh
> +++ /dev/null
> @@ -1,10 +0,0 @@
> -# 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)
> diff --git a/gdb/config/m68k/linux.mh b/gdb/config/m68k/linux.mh
> deleted file mode 100644
> index 7c1f4ac..0000000
> --- a/gdb/config/m68k/linux.mh
> +++ /dev/null
> @@ -1,14 +0,0 @@
> -# 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)
> diff --git a/gdb/config/m68k/nbsdelf.mh b/gdb/config/m68k/nbsdelf.mh
> deleted file mode 100644
> index 1d00cbc..0000000
> --- a/gdb/config/m68k/nbsdelf.mh
> +++ /dev/null
> @@ -1,4 +0,0 @@
> -# Host: NetBSD/m68k ELF
> -NATDEPFILES= m68k-bsd-nat.o bsd-kvm.o fork-child.o inf-ptrace.o
> -
> -LOADLIBES= -lkvm
> diff --git a/gdb/config/m68k/obsd.mh b/gdb/config/m68k/obsd.mh
> deleted file mode 100644
> index 902a24b..0000000
> --- a/gdb/config/m68k/obsd.mh
> +++ /dev/null
> @@ -1,4 +0,0 @@
> -# Host: OpenBSD/m68k
> -NATDEPFILES= m68k-bsd-nat.o bsd-kvm.o fork-child.o inf-ptrace.o
> -
> -LOADLIBES= -lkvm
> diff --git a/gdb/config/m88k/obsd.mh b/gdb/config/m88k/obsd.mh
> deleted file mode 100644
> index 3c4d8d5..0000000
> --- a/gdb/config/m88k/obsd.mh
> +++ /dev/null
> @@ -1,2 +0,0 @@
> -# Host: OpenBSD/m88k
> -NATDEPFILES= fork-child.o inf-ptrace.o m88k-bsd-nat.o
> diff --git a/gdb/config/mips/fbsd.mh b/gdb/config/mips/fbsd.mh
> deleted file mode 100644
> index f433347..0000000
> --- a/gdb/config/mips/fbsd.mh
> +++ /dev/null
> @@ -1,3 +0,0 @@
> -# Host: FreeBSD/mips
> -NATDEPFILES= fork-child.o inf-ptrace.o fbsd-nat.o mips-fbsd-nat.o
> -HAVE_NATIVE_GCORE_HOST = 1
> diff --git a/gdb/config/mips/linux.mh b/gdb/config/mips/linux.mh
> deleted file mode 100644
> index 11ff903..0000000
> --- a/gdb/config/mips/linux.mh
> +++ /dev/null
> @@ -1,11 +0,0 @@
> -# 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)
> diff --git a/gdb/config/mips/nbsd.mh b/gdb/config/mips/nbsd.mh
> deleted file mode 100644
> index a80da95..0000000
> --- a/gdb/config/mips/nbsd.mh
> +++ /dev/null
> @@ -1,2 +0,0 @@
> -# Host: NetBSD/mips
> -NATDEPFILES= fork-child.o inf-ptrace.o mips-nbsd-nat.o
> diff --git a/gdb/config/mips/obsd64.mh b/gdb/config/mips/obsd64.mh
> deleted file mode 100644
> index 6aeac34..0000000
> --- a/gdb/config/mips/obsd64.mh
> +++ /dev/null
> @@ -1,2 +0,0 @@
> -# Host: OpenBSD/mips64
> -NATDEPFILES= fork-child.o inf-ptrace.o obsd-nat.o mips64-obsd-nat.o
> diff --git a/gdb/config/pa/linux.mh b/gdb/config/pa/linux.mh
> deleted file mode 100644
> index 1b73ecd..0000000
> --- a/gdb/config/pa/linux.mh
> +++ /dev/null
> @@ -1,10 +0,0 @@
> -# 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)
> diff --git a/gdb/config/pa/nbsd.mh b/gdb/config/pa/nbsd.mh
> deleted file mode 100644
> index 791cd9f..0000000
> --- a/gdb/config/pa/nbsd.mh
> +++ /dev/null
> @@ -1,2 +0,0 @@
> -# Host: NetBSD/hppa
> -NATDEPFILES= fork-child.o inf-ptrace.o nbsd-nat.o hppa-nbsd-nat.o
> diff --git a/gdb/config/pa/obsd.mh b/gdb/config/pa/obsd.mh
> deleted file mode 100644
> index 95dd416..0000000
> --- a/gdb/config/pa/obsd.mh
> +++ /dev/null
> @@ -1,2 +0,0 @@
> -# Host: OpenBSD/hppa
> -NATDEPFILES= fork-child.o inf-ptrace.o obsd-nat.o hppa-obsd-nat.o
> diff --git a/gdb/config/powerpc/aix.mh b/gdb/config/powerpc/aix.mh
> deleted file mode 100644
> index 141501d..0000000
> --- a/gdb/config/powerpc/aix.mh
> +++ /dev/null
> @@ -1,8 +0,0 @@
> -# 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
> diff --git a/gdb/config/powerpc/fbsd.mh b/gdb/config/powerpc/fbsd.mh
> deleted file mode 100644
> index 9c2e6b4..0000000
> --- a/gdb/config/powerpc/fbsd.mh
> +++ /dev/null
> @@ -1,24 +0,0 @@
> -#  Native config information for GDB on PowerPC systems running FreeBSD.
> -#
> -#  Copyright (C) 2013-2017 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/>.  */
> -
> -NATDEPFILES= fbsd-nat.o fork-child.o inf-ptrace.o ppc-fbsd-nat.o bsd-kvm.o
> -HAVE_NATIVE_GCORE_HOST = 1
> -
> -LOADLIBES= -lkvm
> -
> diff --git a/gdb/config/powerpc/linux.mh b/gdb/config/powerpc/linux.mh
> deleted file mode 100644
> index f4a52c3..0000000
> --- a/gdb/config/powerpc/linux.mh
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -# 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)
> diff --git a/gdb/config/powerpc/nbsd.mh b/gdb/config/powerpc/nbsd.mh
> deleted file mode 100644
> index f02a0f9..0000000
> --- a/gdb/config/powerpc/nbsd.mh
> +++ /dev/null
> @@ -1,4 +0,0 @@
> -# Host: NetBSD/powerpc
> -NATDEPFILES= fork-child.o inf-ptrace.o ppc-nbsd-nat.o bsd-kvm.o
> -
> -LOADLIBES= -lkvm
> diff --git a/gdb/config/powerpc/obsd.mh b/gdb/config/powerpc/obsd.mh
> deleted file mode 100644
> index 3743254..0000000
> --- a/gdb/config/powerpc/obsd.mh
> +++ /dev/null
> @@ -1,4 +0,0 @@
> -# Host: OpenBSD/powerpc
> -NATDEPFILES= fork-child.o inf-ptrace.o obsd-nat.o ppc-obsd-nat.o bsd-kvm.o
> -
> -LOADLIBES= -lkvm
> diff --git a/gdb/config/powerpc/ppc64-linux.mh b/gdb/config/powerpc/ppc64-linux.mh
> deleted file mode 100644
> index 8681d00..0000000
> --- a/gdb/config/powerpc/ppc64-linux.mh
> +++ /dev/null
> @@ -1,15 +0,0 @@
> -# 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)
> diff --git a/gdb/config/powerpc/spu-linux.mh b/gdb/config/powerpc/spu-linux.mh
> deleted file mode 100644
> index 9205b62..0000000
> --- a/gdb/config/powerpc/spu-linux.mh
> +++ /dev/null
> @@ -1,8 +0,0 @@
> -# 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 \
> -	      linux-procfs.o linux-ptrace.o linux-waitpid.o \
> -	      linux-personality.o linux-namespaces.o
> diff --git a/gdb/config/s390/linux.mh b/gdb/config/s390/linux.mh
> deleted file mode 100644
> index 4a137cd..0000000
> --- a/gdb/config/s390/linux.mh
> +++ /dev/null
> @@ -1,9 +0,0 @@
> -# 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)
> diff --git a/gdb/config/sh/nbsd.mh b/gdb/config/sh/nbsd.mh
> deleted file mode 100644
> index 14d7e8c..0000000
> --- a/gdb/config/sh/nbsd.mh
> +++ /dev/null
> @@ -1,2 +0,0 @@
> -# Host: NetBSD/sh
> -NATDEPFILES= fork-child.o inf-ptrace.o sh-nbsd-nat.o
> diff --git a/gdb/config/sparc/fbsd.mh b/gdb/config/sparc/fbsd.mh
> deleted file mode 100644
> index bdc272c..0000000
> --- a/gdb/config/sparc/fbsd.mh
> +++ /dev/null
> @@ -1,7 +0,0 @@
> -# 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
> diff --git a/gdb/config/sparc/linux.mh b/gdb/config/sparc/linux.mh
> deleted file mode 100644
> index 385f640..0000000
> --- a/gdb/config/sparc/linux.mh
> +++ /dev/null
> @@ -1,13 +0,0 @@
> -# 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)
> diff --git a/gdb/config/sparc/linux64.mh b/gdb/config/sparc/linux64.mh
> deleted file mode 100644
> index 8df0de1..0000000
> --- a/gdb/config/sparc/linux64.mh
> +++ /dev/null
> @@ -1,13 +0,0 @@
> -# 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)
> diff --git a/gdb/config/sparc/nbsd64.mh b/gdb/config/sparc/nbsd64.mh
> deleted file mode 100644
> index aa15b1d..0000000
> --- a/gdb/config/sparc/nbsd64.mh
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -# Host: NetBSD/sparc64
> -NATDEPFILES= fork-child.o inf-ptrace.o \
> -	sparc64-nbsd-nat.o sparc-nat.o bsd-kvm.o
> -
> -LOADLIBES= -lkvm
> diff --git a/gdb/config/sparc/nbsdelf.mh b/gdb/config/sparc/nbsdelf.mh
> deleted file mode 100644
> index 97d07b3..0000000
> --- a/gdb/config/sparc/nbsdelf.mh
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -# Host: NetBSD/sparc ELF
> -NATDEPFILES= fork-child.o inf-ptrace.o \
> -	sparc-nat.o sparc-nbsd-nat.o bsd-kvm.o
> -
> -LOADLIBES= -lkvm
> diff --git a/gdb/config/sparc/obsd64.mh b/gdb/config/sparc/obsd64.mh
> deleted file mode 100644
> index e9f2fb9..0000000
> --- a/gdb/config/sparc/obsd64.mh
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -# 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
> diff --git a/gdb/config/sparc/sol2.mh b/gdb/config/sparc/sol2.mh
> deleted file mode 100644
> index 220c61f..0000000
> --- a/gdb/config/sparc/sol2.mh
> +++ /dev/null
> @@ -1,6 +0,0 @@
> -# 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
> diff --git a/gdb/config/tilegx/linux.mh b/gdb/config/tilegx/linux.mh
> deleted file mode 100644
> index ec648d3..0000000
> --- a/gdb/config/tilegx/linux.mh
> +++ /dev/null
> @@ -1,13 +0,0 @@
> -# 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)
> diff --git a/gdb/config/vax/nbsdelf.mh b/gdb/config/vax/nbsdelf.mh
> deleted file mode 100644
> index bf0f0b9..0000000
> --- a/gdb/config/vax/nbsdelf.mh
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -# Host: NetBSD/vax ELF
> -NATDEPFILES= fork-child.o inf-ptrace.o \
> -	vax-bsd-nat.o bsd-kvm.o
> -
> -LOADLIBES= -lkvm
> diff --git a/gdb/config/vax/obsd.mh b/gdb/config/vax/obsd.mh
> deleted file mode 100644
> index cef99d3..0000000
> --- a/gdb/config/vax/obsd.mh
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -# Host: OpenBSD/vax
> -NATDEPFILES= fork-child.o inf-ptrace.o \
> -	vax-bsd-nat.o bsd-kvm.o
> -
> -LOADLIBES= -lkvm
> diff --git a/gdb/config/xtensa/linux.mh b/gdb/config/xtensa/linux.mh
> deleted file mode 100644
> index d5b8f91..0000000
> --- a/gdb/config/xtensa/linux.mh
> +++ /dev/null
> @@ -1,11 +0,0 @@
> -# 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)
> diff --git a/gdb/configure b/gdb/configure
> index 9f05b4b..f1068ba 100755
> --- a/gdb/configure
> +++ b/gdb/configure
> @@ -598,7 +598,13 @@ GDB_NM_FILE
>  LTLIBBABELTRACE
>  LIBBABELTRACE
>  HAVE_LIBBABELTRACE
> -frags
> +NAT_GENERATED_FILES
> +XM_CLIBS
> +MH_CFLAGS
> +LOADLIBES
> +NAT_CDEPS
> +NATDEPFILES
> +NAT_FILE
>  target_subdir
>  CONFIG_UNINSTALL
>  CONFIG_INSTALL
> @@ -799,7 +805,7 @@ PACKAGE_TARNAME
>  PACKAGE_NAME
>  PATH_SEPARATOR
>  SHELL'
> -ac_subst_files='host_makefile_frag'
> +ac_subst_files='NAT_EXTRA_FRAGS_FILE'
>  ac_user_opts='
>  enable_option_checking
>  enable_maintainer_mode
> @@ -16724,27 +16730,21 @@ if test "${host}" != "${target}"; then
>  fi
>  
>  
> -frags=
> +# Importing nat definitions.
> +NAT_EXTRA_FRAGS_FILE=/dev/null
>  if test "${gdb_native}" = "yes"; then
> -  host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
> -  if test ! -f ${host_makefile_frag}; then
> -    as_fn_error "\"*** Gdb does not support native target ${host}\"" "$LINENO" 5
> -  fi
> -  frags="$frags $host_makefile_frag"
> -else
> -  host_makefile_frag=/dev/null
> +  . ${srcdir}/configure.nat
> +  nativefile=$NAT_FILE
>  fi
>  
>  
>  
>  
> -if test "${gdb_native}" = "yes"; then
> -# We pick this up from the host configuration file (.mh) because we
> -# do not have a native configuration Makefile fragment.
> -nativefile=`sed -n '
> -s/NAT_FILE[ 	]*=[ 	]*\([^ 	]*\)/\1/p
> -' ${host_makefile_frag}`
> -fi
> +
> +
> +
> +
> +
>  
>  
>  if test x"${gdb_osabi}" != x ; then
> diff --git a/gdb/configure.ac b/gdb/configure.ac
> index 50f6f59..f9d8aac 100644
> --- a/gdb/configure.ac
> +++ b/gdb/configure.ac
> @@ -2199,29 +2199,22 @@ if test "${host}" != "${target}"; then
>  fi
>  AC_SUBST(target_subdir)
>  
> -frags=
> +# Importing nat definitions.
> +NAT_EXTRA_FRAGS_FILE=/dev/null
>  if test "${gdb_native}" = "yes"; then
> -  host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
> -  if test ! -f ${host_makefile_frag}; then
> -    AC_MSG_ERROR("*** Gdb does not support native target ${host}")
> -  fi
> -  frags="$frags $host_makefile_frag"
> -else
> -  host_makefile_frag=/dev/null
> +  . ${srcdir}/configure.nat
> +  nativefile=$NAT_FILE
>  fi
>  
> -AC_SUBST_FILE(host_makefile_frag)
> -AC_SUBST(frags)
> -
> -changequote(,)dnl
> -if test "${gdb_native}" = "yes"; then
> -# We pick this up from the host configuration file (.mh) because we
> -# do not have a native configuration Makefile fragment.
> -nativefile=`sed -n '
> -s/NAT_FILE[ 	]*=[ 	]*\([^ 	]*\)/\1/p
> -' ${host_makefile_frag}`
> -fi
> -changequote([,])
> +AC_SUBST(NAT_FILE)
> +AC_SUBST(NATDEPFILES)
> +AC_SUBST(NAT_CDEPS)
> +AC_SUBST(LOADLIBES)
> +AC_SUBST(MH_CFLAGS)
> +AC_SUBST(XM_CLIBS)
> +AC_SUBST(NAT_GENERATED_FILES)
> +AC_SUBST(HAVE_NATIVE_GCORE_TARGET)
> +AC_SUBST_FILE(NAT_EXTRA_FRAGS_FILE)
>  
>  if test x"${gdb_osabi}" != x ; then
>      AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
> diff --git a/gdb/configure.nat b/gdb/configure.nat
> new file mode 100644
> index 0000000..585f94f
> --- /dev/null
> +++ b/gdb/configure.nat
> @@ -0,0 +1,591 @@
> +# Copyright (C) 2013-2017 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/>.
> +
> +# Variables defined here:
> +#
> +# NAT_FILE
> +# NATDEPFILES
> +# NAT_CDEPS
> +# LOADLIBES
> +# MH_CFLAGS
> +# XM_CLIBS
> +# NAT_GENERATED_FILES
> +# HAVE_NATIVE_GCORE_HOST
> +# NAT_EXTRA_FRAGS_FILE
> +#
> +# - To avoid shell expansion of variables, declare them with single
> +#   quotes.
> +#
> +# - NAT_EXTRA_FRAGS_FILE 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
> +	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'
> +	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'
> +
> +	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)'
> +	;;
> +      nbsdelf)
> +	# Host: NetBSD/arm
> +	NATDEPFILES='fork-child.o inf-ptrace.o arm-nbsd-nat.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)
> +	MH_CFLAGS=
> +	NATDEPFILES='x86-nat.o x86-dregs.o windows-nat.o i386-windows-nat.o'
> +	XM_CLIBS=
> +	;;
> +      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'
> +
> +	XM_CLIBS='-ldbg'
> +	;;
> +      i386gnu)
> +	# 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
> +
> +	NAT_FILE='nm-i386gnu.h'
> +	MH_CFLAGS='-D_GNU_SOURCE'
> +
> +	XM_CLIBS='-lshouldbeinlibc'
> +
> +	NAT_EXTRA_FRAGS_FILE="${srcdir}/config/${gdb_host_cpu}/i386gnu-extra.mh"
> +
> +	NAT_GENERATED_FILES='notify_S.h notify_S.c \
> +		process_reply_S.h process_reply_S.c \
> +		msg_reply_S.h msg_reply_S.c msg_U.h msg_U.c \
> +		exc_request_U.h exc_request_U.c exc_request_S.h exc_request_S.c'
> +	;;
> +      i386sol2)
> +	# 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 \
> +		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 \
> +		      linux-procfs.o linux-ptrace.o linux-waitpid.o \
> +		      linux-personality.o linux-namespaces.o'
> +	;;
> +    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
> diff --git a/gdb/doc/Makefile.in b/gdb/doc/Makefile.in
> index 5a58fa7..e0e50c1 100644
> --- a/gdb/doc/Makefile.in
> +++ b/gdb/doc/Makefile.in
> @@ -178,9 +178,6 @@ MAN1S = gdb.1 gdbserver.1 gcore.1
>  MAN5S = gdbinit.5
>  MANS = $(MAN1S) $(MAN5S)
>  
> -# Host-dependent makefile fragment comes in here.
> -@host_makefile_frag@
> -# End of host-dependent makefile fragment
>  HAVE_NATIVE_GCORE_TARGET = @HAVE_NATIVE_GCORE_TARGET@
>  
>  ###
> -- 
> 2.9.3
  
Simon Marchi May 2, 2017, 2:44 a.m. UTC | #3
> +++ b/gdb/configure.nat
> @@ -0,0 +1,591 @@
> +# Copyright (C) 2013-2017 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/>.
> +
> +# Variables defined here:
> +#
> +# NAT_FILE
> +# NATDEPFILES
> +# NAT_CDEPS
> +# LOADLIBES
> +# MH_CFLAGS
> +# XM_CLIBS
> +# NAT_GENERATED_FILES
> +# HAVE_NATIVE_GCORE_HOST
> +# NAT_EXTRA_FRAGS_FILE

Could you document (if you know it) what each variable does?

> +# - To avoid shell expansion of variables, declare them with single
> +#   quotes.
> +#
> +# - NAT_EXTRA_FRAGS_FILE 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
> +	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'

IMO, the interest of having all of this in a single file is to be able 
to factor out common things.  A lot of NATDEPFILES are repeated Would it 
be possible to have a switch on ${gdb_host} at the top level, and 
specify all the files specific to OSes but machine-agnostic?  For 
example, fork-child.o and inf-ptrace.o probably appear in all the linux 
ports.

Thanks,

Simon
  
John Baldwin May 2, 2017, 2:21 p.m. UTC | #4
On Monday, May 01, 2017 10:44:39 PM Simon Marchi wrote:
> > +++ b/gdb/configure.nat
> > @@ -0,0 +1,591 @@
> > +# Copyright (C) 2013-2017 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/>.
> > +
> > +# Variables defined here:
> > +#
> > +# NAT_FILE
> > +# NATDEPFILES
> > +# NAT_CDEPS
> > +# LOADLIBES
> > +# MH_CFLAGS
> > +# XM_CLIBS
> > +# NAT_GENERATED_FILES
> > +# HAVE_NATIVE_GCORE_HOST
> > +# NAT_EXTRA_FRAGS_FILE
> 
> Could you document (if you know it) what each variable does?
> 
> > +# - To avoid shell expansion of variables, declare them with single
> > +#   quotes.
> > +#
> > +# - NAT_EXTRA_FRAGS_FILE 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
> > +	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'
> 
> IMO, the interest of having all of this in a single file is to be able 
> to factor out common things.  A lot of NATDEPFILES are repeated Would it 
> be possible to have a switch on ${gdb_host} at the top level, and 
> specify all the files specific to OSes but machine-agnostic?  For 
> example, fork-child.o and inf-ptrace.o probably appear in all the linux 
> ports.

I had a similar thought about FreeBSD, FWIW.  I wasn't sure if we wanted to
wait for a followup to do that so that for this commit you could directly
compare the old foo.mh file to a new clause in configure.nat as a way to
check for any typos in case there is a regression reported in the future.
You could perhaps include a second patch as a followup in a single series to
add a host clause, but I think the intermediate step as its own commit has
some merit.
  
Simon Marchi May 2, 2017, 5 p.m. UTC | #5
On 17-05-02 10:21 AM, John Baldwin wrote:
> I had a similar thought about FreeBSD, FWIW.  I wasn't sure if we wanted to
> wait for a followup to do that so that for this commit you could directly
> compare the old foo.mh file to a new clause in configure.nat as a way to
> check for any typos in case there is a regression reported in the future.
> You could perhaps include a second patch as a followup in a single series to
> add a host clause, but I think the intermediate step as its own commit has
> some merit.

Yes, I completely agree.
  
Sergio Durigan Junior May 2, 2017, 7:28 p.m. UTC | #6
On Monday, May 01 2017, Simon Marchi wrote:

>> +++ b/gdb/configure.nat
>> @@ -0,0 +1,591 @@
>> +# Copyright (C) 2013-2017 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/>.
>> +
>> +# Variables defined here:
>> +#
>> +# NAT_FILE
>> +# NATDEPFILES
>> +# NAT_CDEPS
>> +# LOADLIBES
>> +# MH_CFLAGS
>> +# XM_CLIBS
>> +# NAT_GENERATED_FILES
>> +# HAVE_NATIVE_GCORE_HOST
>> +# NAT_EXTRA_FRAGS_FILE
>
> Could you document (if you know it) what each variable does?

Sure.  Here's what I know what them.  What do you think?

# Variables defined here:
#
# NAT_FILE - The header file with definitions for this host
#
# NATDEPFILES - The depfiles to be compiled for this host
#
# NAT_CDEPS - Dynamic symbols to be exported for libthread_db
#
# LOADLIBES - Libraries that will be linked against GDB for this host
#
# MH_CFLAGS - Additional CFLAGS for this host
#
# XM_CLIBS - Host-dependent libs to be linked against GDB.
#
# NAT_GENERATED_FILES - Generated files by this host
#
# HAVE_NATIVE_GCORE_HOST - 
#
# NAT_EXTRA_FRAGS_FILE - File containing extra fragments of Makefile
#                        that will be used by this host.
#
# Notes:
#
# - To avoid shell expansion of variables, declare them with single
#   quotes.
#
# - NAT_EXTRA_FRAGS_FILE should contain the full path of the file.

>> +# - To avoid shell expansion of variables, declare them with single
>> +#   quotes.
>> +#
>> +# - NAT_EXTRA_FRAGS_FILE 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
>> +	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'
>
> IMO, the interest of having all of this in a single file is to be able
> to factor out common things.  A lot of NATDEPFILES are repeated Would
> it be possible to have a switch on ${gdb_host} at the top level, and
> specify all the files specific to OSes but machine-agnostic?  For
> example, fork-child.o and inf-ptrace.o probably appear in all the
> linux ports.

Fair point.  I will address what you and Jon mentioned, and resubmit the
patch with the modifications.

Thanks,
  
Simon Marchi May 2, 2017, 8:16 p.m. UTC | #7
On 2017-05-02 15:28, Sergio Durigan Junior wrote:
>>> +# Variables defined here:
>>> +#
>>> +# NAT_FILE
>>> +# NATDEPFILES
>>> +# NAT_CDEPS
>>> +# LOADLIBES
>>> +# MH_CFLAGS
>>> +# XM_CLIBS
>>> +# NAT_GENERATED_FILES
>>> +# HAVE_NATIVE_GCORE_HOST
>>> +# NAT_EXTRA_FRAGS_FILE
>> 
>> Could you document (if you know it) what each variable does?
> 
> Sure.  Here's what I know what them.  What do you think?
> 
> # Variables defined here:
> #
> # NAT_FILE - The header file with definitions for this host

Looks good.

> #
> # NATDEPFILES - The depfiles to be compiled for this host

"depfiles" is not so clear I think.  Perhaps

   NATDEPFILES - Source files required for native debugging on this host.

> #
> # NAT_CDEPS - Dynamic symbols to be exported for libthread_db

Looks good.

> #
> # LOADLIBES - Libraries that will be linked against GDB for this host

Don't we usually say the reverse, the program is linked against the 
libraries?

   LOADLIBES - Libraries against which GDB will be linked for this host.

> #
> # MH_CFLAGS - Additional CFLAGS for this host

Looks good.

> #
> # XM_CLIBS - Host-dependent libs to be linked against GDB.

Same comment about "linked against".

> # NAT_GENERATED_FILES - Generated files by this host

by -> for?

   NAT_GENERATED_FILES - Generated files for this host.

> # HAVE_NATIVE_GCORE_HOST -

I just noticed that this variable is not defined in Makefile.in.  
configure.ac AC_SUBST's _TARGET twice, but not _HOST, so I think you 
confused them.

But to be honest, I am also completely confused by what those two 
variables do.

> # NAT_EXTRA_FRAGS_FILE - Extra Makefile fragmentsFile containing extra 
> fragments of Makefile
> #                        that will be used by this host.

That could be shortened to

   NAT_EXTRA_FRAGS_FILE - Extra Makefile fragments that will be used for 
this host.

Make sure they all end (or don't end) with a period, for consistency.

Perhaps someone could shed some light on the obscure variables names?  
What do the XM_ and MH_ prefixes stand for?  What's the difference 
between XM_CLIBS and LOADLIBES (and why is it called "LIBES"?) ?

>> IMO, the interest of having all of this in a single file is to be able
>> to factor out common things.  A lot of NATDEPFILES are repeated Would
>> it be possible to have a switch on ${gdb_host} at the top level, and
>> specify all the files specific to OSes but machine-agnostic?  For
>> example, fork-child.o and inf-ptrace.o probably appear in all the
>> linux ports.
> 
> Fair point.  I will address what you and Jon mentioned, and resubmit 
> the
> patch with the modifications.

Ok.  But as John mentioned, it's probably better if this patch is a 
simple translation of what's already there, and any "optimization" 
coming in a subsequent patch.  It will be easier to track the changes.

Thanks,

Simon
  
Pedro Alves May 2, 2017, 9:30 p.m. UTC | #8
Let's try to avoid mixing terminology here -- the NAT_ variables should
not be described in terms of "host", but instead in terms
of "native target".  That's why they're called NAT_*.  

Host-dependent variables would be better (at some point, not
in this particular patch) moved/left to configure.host
instead.  Those are supposedly bits that are necessary even if
the native target backend is not included in the build.

If the native target backends of gdb and gdbserver were already fully
shared, then configure.nat would be shared, while gdb/configure.host
would not.

See also:
  https://sourceware.org/gdb/wiki/Internals%20Adding-a-New-Host
  https://sourceware.org/gdb/wiki/Internals%20Native-Debugging

(/me mutters something about wikified internals manual being hard
to search and browse.)

Thanks,
Pedro Alves
  
Sergio Durigan Junior May 2, 2017, 10:17 p.m. UTC | #9
On Tuesday, May 02 2017, Simon Marchi wrote:

> On 2017-05-02 15:28, Sergio Durigan Junior wrote:
>>>> +# Variables defined here:
>>>> +#
>>>> +# NAT_FILE
>>>> +# NATDEPFILES
>>>> +# NAT_CDEPS
>>>> +# LOADLIBES
>>>> +# MH_CFLAGS
>>>> +# XM_CLIBS
>>>> +# NAT_GENERATED_FILES
>>>> +# HAVE_NATIVE_GCORE_HOST
>>>> +# NAT_EXTRA_FRAGS_FILE
>>>
>>> Could you document (if you know it) what each variable does?
>>
>> Sure.  Here's what I know what them.  What do you think?
>>
>> # Variables defined here:
>> #
>> # NAT_FILE - The header file with definitions for this host
>
> Looks good.
>
>> #
>> # NATDEPFILES - The depfiles to be compiled for this host
>
> "depfiles" is not so clear I think.  Perhaps
>
>   NATDEPFILES - Source files required for native debugging on this host.

Adopted.

>> #
>> # NAT_CDEPS - Dynamic symbols to be exported for libthread_db
>
> Looks good.
>
>> #
>> # LOADLIBES - Libraries that will be linked against GDB for this host
>
> Don't we usually say the reverse, the program is linked against the
> libraries?
>
>   LOADLIBES - Libraries against which GDB will be linked for this host.

You're right.  Fixed.

>> #
>> # MH_CFLAGS - Additional CFLAGS for this host
>
> Looks good.
>
>> #
>> # XM_CLIBS - Host-dependent libs to be linked against GDB.
>
> Same comment about "linked against".

Fixed.

>> # NAT_GENERATED_FILES - Generated files by this host
>
> by -> for?
>
>   NAT_GENERATED_FILES - Generated files for this host.

Right, fixed.

>> # HAVE_NATIVE_GCORE_HOST -
>
> I just noticed that this variable is not defined in Makefile.in.
> configure.ac AC_SUBST's _TARGET twice, but not _HOST, so I think you
> confused them.

Yeah, I did confuse.  Fixed on gdb/Makefile.in.

> But to be honest, I am also completely confused by what those two
> variables do.

So, doing a bit of archaeology I found that these flags were added by
b292c7831823605b02a564b0a9274f95141c92ee.  According to the discussions
relevant to this commit
(<https://sourceware.org/ml/gdb-patches/2013-04/msg00321.html>), I see
that these flags serve to signalize whether the gcore script will be
installed or not.

>> # NAT_EXTRA_FRAGS_FILE - Extra Makefile fragmentsFile containing
>> extra fragments of Makefile
>> #                        that will be used by this host.
>
> That could be shortened to
>
>   NAT_EXTRA_FRAGS_FILE - Extra Makefile fragments that will be used
> for this host.

Hm, not sure.  My intention was to make it clear that this variable
needs to contain a filename.  Your proposed description could be
interpreted differently, I'm afraid.

> Make sure they all end (or don't end) with a period, for consistency.

Sure; this was just a quick draft, I fixed the inconsistencies now :-).

> Perhaps someone could shed some light on the obscure variables names?
> What do the XM_ and MH_ prefixes stand for?  What's the difference
> between XM_CLIBS and LOADLIBES (and why is it called "LIBES"?) ?

Good question, I was also wondering that myself :-).

>>> IMO, the interest of having all of this in a single file is to be able
>>> to factor out common things.  A lot of NATDEPFILES are repeated Would
>>> it be possible to have a switch on ${gdb_host} at the top level, and
>>> specify all the files specific to OSes but machine-agnostic?  For
>>> example, fork-child.o and inf-ptrace.o probably appear in all the
>>> linux ports.
>>
>> Fair point.  I will address what you and Jon mentioned, and resubmit
>> the
>> patch with the modifications.
>
> Ok.  But as John mentioned, it's probably better if this patch is a
> simple translation of what's already there, and any "optimization"
> coming in a subsequent patch.  It will be easier to track the changes.

Sure.  I'll send a series of 2 patches, the first one containing the
original patch (+ the proposed modifications by you and Pedro), and the
second one containing the rearrangement to make things clearer.

Cheers,
  
Sergio Durigan Junior May 3, 2017, 3:49 a.m. UTC | #10
Hi there,

Thanks to Simon, Pedro and John, this is the second version of the
patch.  It basically addresses a few typos/grammar mistakes noticed by
Simon, the s/host/native target/ noticed by Pedro, and reorganizes the
code to make things simpler and less redundant, as suggested by both
Simon and John.

Thanks,

Sergio.
  
Sergio Durigan Junior May 5, 2017, 4:29 a.m. UTC | #11
Hi,

Hopefully last iteration addressing all the comments made by Pedro and
John.

Changes from v2:

- Fixed stale comments on Makefile.in.

- s/NAT_EXTRA_FRAGS_FILE/nat_extra_makefile_frag/.

- Fixed typos on i386gnu-extra.mh.

- Move NAT_GENERATED_FILES to i386gnu-extra.mh.

- Fixed nits on comments on configure.{ac,nat}.

- Updated ChangeLog entries.

Thanks,

Sergio.
  

Patch

diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index b865b7c..ff4c7e1 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -903,7 +903,16 @@  ALL_TARGET_OBS = \
 	xtensa-tdep.o
 
 # Host-dependent makefile fragment comes in here.
-@host_makefile_frag@
+NAT_FILE = @NAT_FILE@
+NATDEPFILES = @NATDEPFILES@
+NAT_CDEPS = @NAT_CDEPS@
+LOADLIBES = @LOADLIBES@
+MH_CFLAGS = @MH_CFLAGS@
+XM_CLIBS = @XM_CLIBS@
+NAT_GENERATED_FILES = @NAT_GENERATED_FILES@
+HAVE_NATIVE_GCORE_TARGET = @HAVE_NATIVE_GCORE_TARGET@
+
+@NAT_EXTRA_FRAGS_FILE@
 # End of host-dependent makefile fragment
 
 FLAGS_TO_PASS = \
@@ -2315,21 +2324,21 @@  subdir_do: force
 		else true ; fi ; \
 	done
 
-Makefile: Makefile.in config.status @frags@
+Makefile: Makefile.in config.status
 	# Regenerate the Makefile and the tm.h / nm.h links.
 	CONFIG_FILES="Makefile" \
 	  CONFIG_COMMANDS= \
 	  CONFIG_HEADERS= \
 	  $(SHELL) config.status
 
-$(GNULIB_BUILDDIR)/Makefile: gnulib/Makefile.in config.status @frags@
+$(GNULIB_BUILDDIR)/Makefile: gnulib/Makefile.in config.status
 	@cd $(GNULIB_BUILDDIR); CONFIG_FILES="Makefile" \
 	  CONFIG_COMMANDS="depfiles" \
 	  CONFIG_HEADERS= \
 	  CONFIG_LINKS= \
 	  $(SHELL) config.status
 
-data-directory/Makefile: data-directory/Makefile.in config.status @frags@
+data-directory/Makefile: data-directory/Makefile.in config.status
 	CONFIG_FILES="data-directory/Makefile" \
 	  CONFIG_COMMANDS="depfiles" \
 	  CONFIG_HEADERS= \
diff --git a/gdb/config/aarch64/linux.mh b/gdb/config/aarch64/linux.mh
deleted file mode 100644
index d184a79..0000000
--- a/gdb/config/aarch64/linux.mh
+++ /dev/null
@@ -1,29 +0,0 @@ 
-#  Host: AArch64 based machine running GNU/Linux
-#
-#  Copyright (C) 2013-2017 Free Software Foundation, Inc.
-#  Contributed by ARM Ltd.
-#
-#  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/>.
-
-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)
diff --git a/gdb/config/alpha/alpha-linux.mh b/gdb/config/alpha/alpha-linux.mh
deleted file mode 100644
index 4991dd2..0000000
--- a/gdb/config/alpha/alpha-linux.mh
+++ /dev/null
@@ -1,15 +0,0 @@ 
-# 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
-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
diff --git a/gdb/config/alpha/nbsd.mh b/gdb/config/alpha/nbsd.mh
deleted file mode 100644
index a46739e..0000000
--- a/gdb/config/alpha/nbsd.mh
+++ /dev/null
@@ -1,4 +0,0 @@ 
-# Host: NetBSD/alpha
-NATDEPFILES= fork-child.o inf-ptrace.o alpha-bsd-nat.o bsd-kvm.o
-
-LOADLIBES= -lkvm
diff --git a/gdb/config/arm/linux.mh b/gdb/config/arm/linux.mh
deleted file mode 100644
index 003ca1f..0000000
--- a/gdb/config/arm/linux.mh
+++ /dev/null
@@ -1,10 +0,0 @@ 
-# 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)
diff --git a/gdb/config/arm/nbsdelf.mh b/gdb/config/arm/nbsdelf.mh
deleted file mode 100644
index 042b583..0000000
--- a/gdb/config/arm/nbsdelf.mh
+++ /dev/null
@@ -1,2 +0,0 @@ 
-# Host: NetBSD/arm
-NATDEPFILES= fork-child.o inf-ptrace.o arm-nbsd-nat.o
diff --git a/gdb/config/i386/cygwin.mh b/gdb/config/i386/cygwin.mh
deleted file mode 100644
index 09bee12..0000000
--- a/gdb/config/i386/cygwin.mh
+++ /dev/null
@@ -1,3 +0,0 @@ 
-MH_CFLAGS=
-NATDEPFILES= x86-nat.o x86-dregs.o windows-nat.o i386-windows-nat.o
-XM_CLIBS=
diff --git a/gdb/config/i386/cygwin64.mh b/gdb/config/i386/cygwin64.mh
deleted file mode 100644
index 4f70adc..0000000
--- a/gdb/config/i386/cygwin64.mh
+++ /dev/null
@@ -1,20 +0,0 @@ 
-#  Native config information for GDB on PowerPC systems running FreeBSD.
-#
-#  Copyright (C) 2013-2017 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/>.  */
-
-NATDEPFILES= x86-nat.o x86-dregs.o windows-nat.o amd64-windows-nat.o
diff --git a/gdb/config/i386/darwin.mh b/gdb/config/i386/darwin.mh
deleted file mode 100644
index 16c1558..0000000
--- a/gdb/config/i386/darwin.mh
+++ /dev/null
@@ -1,4 +0,0 @@ 
-# 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
diff --git a/gdb/config/i386/fbsd.mh b/gdb/config/i386/fbsd.mh
deleted file mode 100644
index 69e0a8b..0000000
--- a/gdb/config/i386/fbsd.mh
+++ /dev/null
@@ -1,8 +0,0 @@ 
-# 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
diff --git a/gdb/config/i386/fbsd64.mh b/gdb/config/i386/fbsd64.mh
deleted file mode 100644
index 461ff9a..0000000
--- a/gdb/config/i386/fbsd64.mh
+++ /dev/null
@@ -1,7 +0,0 @@ 
-# 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
diff --git a/gdb/config/i386/go32.mh b/gdb/config/i386/go32.mh
deleted file mode 100644
index f1edfad..0000000
--- a/gdb/config/i386/go32.mh
+++ /dev/null
@@ -1,11 +0,0 @@ 
-# 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
-
-HOST_IPC=
-XM_CLIBS= -ldbg
-
-
diff --git a/gdb/config/i386/i386gnu.mh b/gdb/config/i386/i386gnu-extra.mh
similarity index 58%
rename from gdb/config/i386/i386gnu.mh
rename to gdb/config/i386/i386gnu-extra.mh
index 070497f..1f2d937 100644
--- a/gdb/config/i386/i386gnu.mh
+++ b/gdb/config/i386/i386gnu-extra.mh
@@ -1,21 +1,9 @@ 
-# 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
-
-NAT_FILE= nm-i386gnu.h
-MH_CFLAGS = -D_GNU_SOURCE
-
-XM_CLIBS = -lshouldbeinlibc
-
 # Use our own user stubs for the msg rpcs, so we can make them time out, in
 # case the program is fucked, or we guess the wrong signal thread.
-msg-MIGUFLAGS = -D'MSG_IMPORTS=waittime 1000;'
+msg-MIGUFLAGS=-D'MSG_IMPORTS=waittime 1000;'
 
 # ick
-MIGCOM = $(MIG) -cc cat - /dev/null
+MIGCOM=$(MIG) -cc cat - /dev/null
 
 # Reply servers need special massaging of the code mig generates, to make
 # them work correctly for error returns in some cases.
@@ -33,9 +21,4 @@  MIGCOM = $(MIG) -cc cat - /dev/null
 	| $(MIGCOM) -sheader /dev/null -server /dev/null -user $*_U.c -header $*_U.h
 
 # MIG stubs are not yet ready for C++ compilation.
-%_S.o %_U.o : COMPILE.post += -x c
-
-NAT_GENERATED_FILES = notify_S.h notify_S.c \
-	process_reply_S.h process_reply_S.c \
-	msg_reply_S.h msg_reply_S.c msg_U.h msg_U.c \
-	exc_request_U.h exc_request_U.c exc_request_S.h exc_request_S.c
+%_S.o %_U.o : COMPILE.post +=-x c"
diff --git a/gdb/config/i386/i386sol2.mh b/gdb/config/i386/i386sol2.mh
deleted file mode 100644
index 787a3c1..0000000
--- a/gdb/config/i386/i386sol2.mh
+++ /dev/null
@@ -1,4 +0,0 @@ 
-# 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
diff --git a/gdb/config/i386/linux.mh b/gdb/config/i386/linux.mh
deleted file mode 100644
index 421c56f..0000000
--- a/gdb/config/i386/linux.mh
+++ /dev/null
@@ -1,14 +0,0 @@ 
-# 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)
diff --git a/gdb/config/i386/linux64.mh b/gdb/config/i386/linux64.mh
deleted file mode 100644
index 42d8df5..0000000
--- a/gdb/config/i386/linux64.mh
+++ /dev/null
@@ -1,15 +0,0 @@ 
-# 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)
diff --git a/gdb/config/i386/mingw.mh b/gdb/config/i386/mingw.mh
deleted file mode 100644
index 09bee12..0000000
--- a/gdb/config/i386/mingw.mh
+++ /dev/null
@@ -1,3 +0,0 @@ 
-MH_CFLAGS=
-NATDEPFILES= x86-nat.o x86-dregs.o windows-nat.o i386-windows-nat.o
-XM_CLIBS=
diff --git a/gdb/config/i386/mingw64.mh b/gdb/config/i386/mingw64.mh
deleted file mode 100644
index 0ee2e2c..0000000
--- a/gdb/config/i386/mingw64.mh
+++ /dev/null
@@ -1 +0,0 @@ 
-NATDEPFILES= x86-nat.o x86-dregs.o windows-nat.o amd64-windows-nat.o
diff --git a/gdb/config/i386/nbsd64.mh b/gdb/config/i386/nbsd64.mh
deleted file mode 100644
index 91d21f3..0000000
--- a/gdb/config/i386/nbsd64.mh
+++ /dev/null
@@ -1,3 +0,0 @@ 
-# 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
diff --git a/gdb/config/i386/nbsdelf.mh b/gdb/config/i386/nbsdelf.mh
deleted file mode 100644
index 5954b3f..0000000
--- a/gdb/config/i386/nbsdelf.mh
+++ /dev/null
@@ -1,5 +0,0 @@ 
-# 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
diff --git a/gdb/config/i386/nto.mh b/gdb/config/i386/nto.mh
deleted file mode 100644
index b9e2f84..0000000
--- a/gdb/config/i386/nto.mh
+++ /dev/null
@@ -1,4 +0,0 @@ 
-# Host: Intel 386 running QNX.
-
-NATDEPFILES= nto-procfs.o
-NAT_FILE= config/nm-nto.h
diff --git a/gdb/config/i386/obsd.mh b/gdb/config/i386/obsd.mh
deleted file mode 100644
index fac7282..0000000
--- a/gdb/config/i386/obsd.mh
+++ /dev/null
@@ -1,5 +0,0 @@ 
-# 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
diff --git a/gdb/config/i386/obsd64.mh b/gdb/config/i386/obsd64.mh
deleted file mode 100644
index 51deea7..0000000
--- a/gdb/config/i386/obsd64.mh
+++ /dev/null
@@ -1,5 +0,0 @@ 
-# 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
diff --git a/gdb/config/i386/sol2-64.mh b/gdb/config/i386/sol2-64.mh
deleted file mode 100644
index 7a3ab73..0000000
--- a/gdb/config/i386/sol2-64.mh
+++ /dev/null
@@ -1,4 +0,0 @@ 
-# 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
diff --git a/gdb/config/ia64/linux.mh b/gdb/config/ia64/linux.mh
deleted file mode 100644
index b05f834..0000000
--- a/gdb/config/ia64/linux.mh
+++ /dev/null
@@ -1,13 +0,0 @@ 
-# 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)
diff --git a/gdb/config/m32r/linux.mh b/gdb/config/m32r/linux.mh
deleted file mode 100644
index 277d8bd..0000000
--- a/gdb/config/m32r/linux.mh
+++ /dev/null
@@ -1,10 +0,0 @@ 
-# 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)
diff --git a/gdb/config/m68k/linux.mh b/gdb/config/m68k/linux.mh
deleted file mode 100644
index 7c1f4ac..0000000
--- a/gdb/config/m68k/linux.mh
+++ /dev/null
@@ -1,14 +0,0 @@ 
-# 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)
diff --git a/gdb/config/m68k/nbsdelf.mh b/gdb/config/m68k/nbsdelf.mh
deleted file mode 100644
index 1d00cbc..0000000
--- a/gdb/config/m68k/nbsdelf.mh
+++ /dev/null
@@ -1,4 +0,0 @@ 
-# Host: NetBSD/m68k ELF
-NATDEPFILES= m68k-bsd-nat.o bsd-kvm.o fork-child.o inf-ptrace.o
-
-LOADLIBES= -lkvm
diff --git a/gdb/config/m68k/obsd.mh b/gdb/config/m68k/obsd.mh
deleted file mode 100644
index 902a24b..0000000
--- a/gdb/config/m68k/obsd.mh
+++ /dev/null
@@ -1,4 +0,0 @@ 
-# Host: OpenBSD/m68k
-NATDEPFILES= m68k-bsd-nat.o bsd-kvm.o fork-child.o inf-ptrace.o
-
-LOADLIBES= -lkvm
diff --git a/gdb/config/m88k/obsd.mh b/gdb/config/m88k/obsd.mh
deleted file mode 100644
index 3c4d8d5..0000000
--- a/gdb/config/m88k/obsd.mh
+++ /dev/null
@@ -1,2 +0,0 @@ 
-# Host: OpenBSD/m88k
-NATDEPFILES= fork-child.o inf-ptrace.o m88k-bsd-nat.o
diff --git a/gdb/config/mips/fbsd.mh b/gdb/config/mips/fbsd.mh
deleted file mode 100644
index f433347..0000000
--- a/gdb/config/mips/fbsd.mh
+++ /dev/null
@@ -1,3 +0,0 @@ 
-# Host: FreeBSD/mips
-NATDEPFILES= fork-child.o inf-ptrace.o fbsd-nat.o mips-fbsd-nat.o
-HAVE_NATIVE_GCORE_HOST = 1
diff --git a/gdb/config/mips/linux.mh b/gdb/config/mips/linux.mh
deleted file mode 100644
index 11ff903..0000000
--- a/gdb/config/mips/linux.mh
+++ /dev/null
@@ -1,11 +0,0 @@ 
-# 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)
diff --git a/gdb/config/mips/nbsd.mh b/gdb/config/mips/nbsd.mh
deleted file mode 100644
index a80da95..0000000
--- a/gdb/config/mips/nbsd.mh
+++ /dev/null
@@ -1,2 +0,0 @@ 
-# Host: NetBSD/mips
-NATDEPFILES= fork-child.o inf-ptrace.o mips-nbsd-nat.o
diff --git a/gdb/config/mips/obsd64.mh b/gdb/config/mips/obsd64.mh
deleted file mode 100644
index 6aeac34..0000000
--- a/gdb/config/mips/obsd64.mh
+++ /dev/null
@@ -1,2 +0,0 @@ 
-# Host: OpenBSD/mips64
-NATDEPFILES= fork-child.o inf-ptrace.o obsd-nat.o mips64-obsd-nat.o
diff --git a/gdb/config/pa/linux.mh b/gdb/config/pa/linux.mh
deleted file mode 100644
index 1b73ecd..0000000
--- a/gdb/config/pa/linux.mh
+++ /dev/null
@@ -1,10 +0,0 @@ 
-# 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)
diff --git a/gdb/config/pa/nbsd.mh b/gdb/config/pa/nbsd.mh
deleted file mode 100644
index 791cd9f..0000000
--- a/gdb/config/pa/nbsd.mh
+++ /dev/null
@@ -1,2 +0,0 @@ 
-# Host: NetBSD/hppa
-NATDEPFILES= fork-child.o inf-ptrace.o nbsd-nat.o hppa-nbsd-nat.o
diff --git a/gdb/config/pa/obsd.mh b/gdb/config/pa/obsd.mh
deleted file mode 100644
index 95dd416..0000000
--- a/gdb/config/pa/obsd.mh
+++ /dev/null
@@ -1,2 +0,0 @@ 
-# Host: OpenBSD/hppa
-NATDEPFILES= fork-child.o inf-ptrace.o obsd-nat.o hppa-obsd-nat.o
diff --git a/gdb/config/powerpc/aix.mh b/gdb/config/powerpc/aix.mh
deleted file mode 100644
index 141501d..0000000
--- a/gdb/config/powerpc/aix.mh
+++ /dev/null
@@ -1,8 +0,0 @@ 
-# 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
diff --git a/gdb/config/powerpc/fbsd.mh b/gdb/config/powerpc/fbsd.mh
deleted file mode 100644
index 9c2e6b4..0000000
--- a/gdb/config/powerpc/fbsd.mh
+++ /dev/null
@@ -1,24 +0,0 @@ 
-#  Native config information for GDB on PowerPC systems running FreeBSD.
-#
-#  Copyright (C) 2013-2017 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/>.  */
-
-NATDEPFILES= fbsd-nat.o fork-child.o inf-ptrace.o ppc-fbsd-nat.o bsd-kvm.o
-HAVE_NATIVE_GCORE_HOST = 1
-
-LOADLIBES= -lkvm
-
diff --git a/gdb/config/powerpc/linux.mh b/gdb/config/powerpc/linux.mh
deleted file mode 100644
index f4a52c3..0000000
--- a/gdb/config/powerpc/linux.mh
+++ /dev/null
@@ -1,12 +0,0 @@ 
-# 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)
diff --git a/gdb/config/powerpc/nbsd.mh b/gdb/config/powerpc/nbsd.mh
deleted file mode 100644
index f02a0f9..0000000
--- a/gdb/config/powerpc/nbsd.mh
+++ /dev/null
@@ -1,4 +0,0 @@ 
-# Host: NetBSD/powerpc
-NATDEPFILES= fork-child.o inf-ptrace.o ppc-nbsd-nat.o bsd-kvm.o
-
-LOADLIBES= -lkvm
diff --git a/gdb/config/powerpc/obsd.mh b/gdb/config/powerpc/obsd.mh
deleted file mode 100644
index 3743254..0000000
--- a/gdb/config/powerpc/obsd.mh
+++ /dev/null
@@ -1,4 +0,0 @@ 
-# Host: OpenBSD/powerpc
-NATDEPFILES= fork-child.o inf-ptrace.o obsd-nat.o ppc-obsd-nat.o bsd-kvm.o
-
-LOADLIBES= -lkvm
diff --git a/gdb/config/powerpc/ppc64-linux.mh b/gdb/config/powerpc/ppc64-linux.mh
deleted file mode 100644
index 8681d00..0000000
--- a/gdb/config/powerpc/ppc64-linux.mh
+++ /dev/null
@@ -1,15 +0,0 @@ 
-# 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)
diff --git a/gdb/config/powerpc/spu-linux.mh b/gdb/config/powerpc/spu-linux.mh
deleted file mode 100644
index 9205b62..0000000
--- a/gdb/config/powerpc/spu-linux.mh
+++ /dev/null
@@ -1,8 +0,0 @@ 
-# 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 \
-	      linux-procfs.o linux-ptrace.o linux-waitpid.o \
-	      linux-personality.o linux-namespaces.o
diff --git a/gdb/config/s390/linux.mh b/gdb/config/s390/linux.mh
deleted file mode 100644
index 4a137cd..0000000
--- a/gdb/config/s390/linux.mh
+++ /dev/null
@@ -1,9 +0,0 @@ 
-# 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)
diff --git a/gdb/config/sh/nbsd.mh b/gdb/config/sh/nbsd.mh
deleted file mode 100644
index 14d7e8c..0000000
--- a/gdb/config/sh/nbsd.mh
+++ /dev/null
@@ -1,2 +0,0 @@ 
-# Host: NetBSD/sh
-NATDEPFILES= fork-child.o inf-ptrace.o sh-nbsd-nat.o
diff --git a/gdb/config/sparc/fbsd.mh b/gdb/config/sparc/fbsd.mh
deleted file mode 100644
index bdc272c..0000000
--- a/gdb/config/sparc/fbsd.mh
+++ /dev/null
@@ -1,7 +0,0 @@ 
-# 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
diff --git a/gdb/config/sparc/linux.mh b/gdb/config/sparc/linux.mh
deleted file mode 100644
index 385f640..0000000
--- a/gdb/config/sparc/linux.mh
+++ /dev/null
@@ -1,13 +0,0 @@ 
-# 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)
diff --git a/gdb/config/sparc/linux64.mh b/gdb/config/sparc/linux64.mh
deleted file mode 100644
index 8df0de1..0000000
--- a/gdb/config/sparc/linux64.mh
+++ /dev/null
@@ -1,13 +0,0 @@ 
-# 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)
diff --git a/gdb/config/sparc/nbsd64.mh b/gdb/config/sparc/nbsd64.mh
deleted file mode 100644
index aa15b1d..0000000
--- a/gdb/config/sparc/nbsd64.mh
+++ /dev/null
@@ -1,5 +0,0 @@ 
-# Host: NetBSD/sparc64
-NATDEPFILES= fork-child.o inf-ptrace.o \
-	sparc64-nbsd-nat.o sparc-nat.o bsd-kvm.o
-
-LOADLIBES= -lkvm
diff --git a/gdb/config/sparc/nbsdelf.mh b/gdb/config/sparc/nbsdelf.mh
deleted file mode 100644
index 97d07b3..0000000
--- a/gdb/config/sparc/nbsdelf.mh
+++ /dev/null
@@ -1,5 +0,0 @@ 
-# Host: NetBSD/sparc ELF
-NATDEPFILES= fork-child.o inf-ptrace.o \
-	sparc-nat.o sparc-nbsd-nat.o bsd-kvm.o
-
-LOADLIBES= -lkvm
diff --git a/gdb/config/sparc/obsd64.mh b/gdb/config/sparc/obsd64.mh
deleted file mode 100644
index e9f2fb9..0000000
--- a/gdb/config/sparc/obsd64.mh
+++ /dev/null
@@ -1,5 +0,0 @@ 
-# 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
diff --git a/gdb/config/sparc/sol2.mh b/gdb/config/sparc/sol2.mh
deleted file mode 100644
index 220c61f..0000000
--- a/gdb/config/sparc/sol2.mh
+++ /dev/null
@@ -1,6 +0,0 @@ 
-# 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
diff --git a/gdb/config/tilegx/linux.mh b/gdb/config/tilegx/linux.mh
deleted file mode 100644
index ec648d3..0000000
--- a/gdb/config/tilegx/linux.mh
+++ /dev/null
@@ -1,13 +0,0 @@ 
-# 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)
diff --git a/gdb/config/vax/nbsdelf.mh b/gdb/config/vax/nbsdelf.mh
deleted file mode 100644
index bf0f0b9..0000000
--- a/gdb/config/vax/nbsdelf.mh
+++ /dev/null
@@ -1,5 +0,0 @@ 
-# Host: NetBSD/vax ELF
-NATDEPFILES= fork-child.o inf-ptrace.o \
-	vax-bsd-nat.o bsd-kvm.o
-
-LOADLIBES= -lkvm
diff --git a/gdb/config/vax/obsd.mh b/gdb/config/vax/obsd.mh
deleted file mode 100644
index cef99d3..0000000
--- a/gdb/config/vax/obsd.mh
+++ /dev/null
@@ -1,5 +0,0 @@ 
-# Host: OpenBSD/vax
-NATDEPFILES= fork-child.o inf-ptrace.o \
-	vax-bsd-nat.o bsd-kvm.o
-
-LOADLIBES= -lkvm
diff --git a/gdb/config/xtensa/linux.mh b/gdb/config/xtensa/linux.mh
deleted file mode 100644
index d5b8f91..0000000
--- a/gdb/config/xtensa/linux.mh
+++ /dev/null
@@ -1,11 +0,0 @@ 
-# 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)
diff --git a/gdb/configure b/gdb/configure
index 9f05b4b..f1068ba 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -598,7 +598,13 @@  GDB_NM_FILE
 LTLIBBABELTRACE
 LIBBABELTRACE
 HAVE_LIBBABELTRACE
-frags
+NAT_GENERATED_FILES
+XM_CLIBS
+MH_CFLAGS
+LOADLIBES
+NAT_CDEPS
+NATDEPFILES
+NAT_FILE
 target_subdir
 CONFIG_UNINSTALL
 CONFIG_INSTALL
@@ -799,7 +805,7 @@  PACKAGE_TARNAME
 PACKAGE_NAME
 PATH_SEPARATOR
 SHELL'
-ac_subst_files='host_makefile_frag'
+ac_subst_files='NAT_EXTRA_FRAGS_FILE'
 ac_user_opts='
 enable_option_checking
 enable_maintainer_mode
@@ -16724,27 +16730,21 @@  if test "${host}" != "${target}"; then
 fi
 
 
-frags=
+# Importing nat definitions.
+NAT_EXTRA_FRAGS_FILE=/dev/null
 if test "${gdb_native}" = "yes"; then
-  host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
-  if test ! -f ${host_makefile_frag}; then
-    as_fn_error "\"*** Gdb does not support native target ${host}\"" "$LINENO" 5
-  fi
-  frags="$frags $host_makefile_frag"
-else
-  host_makefile_frag=/dev/null
+  . ${srcdir}/configure.nat
+  nativefile=$NAT_FILE
 fi
 
 
 
 
-if test "${gdb_native}" = "yes"; then
-# We pick this up from the host configuration file (.mh) because we
-# do not have a native configuration Makefile fragment.
-nativefile=`sed -n '
-s/NAT_FILE[ 	]*=[ 	]*\([^ 	]*\)/\1/p
-' ${host_makefile_frag}`
-fi
+
+
+
+
+
 
 
 if test x"${gdb_osabi}" != x ; then
diff --git a/gdb/configure.ac b/gdb/configure.ac
index 50f6f59..f9d8aac 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -2199,29 +2199,22 @@  if test "${host}" != "${target}"; then
 fi
 AC_SUBST(target_subdir)
 
-frags=
+# Importing nat definitions.
+NAT_EXTRA_FRAGS_FILE=/dev/null
 if test "${gdb_native}" = "yes"; then
-  host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
-  if test ! -f ${host_makefile_frag}; then
-    AC_MSG_ERROR("*** Gdb does not support native target ${host}")
-  fi
-  frags="$frags $host_makefile_frag"
-else
-  host_makefile_frag=/dev/null
+  . ${srcdir}/configure.nat
+  nativefile=$NAT_FILE
 fi
 
-AC_SUBST_FILE(host_makefile_frag)
-AC_SUBST(frags)
-
-changequote(,)dnl
-if test "${gdb_native}" = "yes"; then
-# We pick this up from the host configuration file (.mh) because we
-# do not have a native configuration Makefile fragment.
-nativefile=`sed -n '
-s/NAT_FILE[ 	]*=[ 	]*\([^ 	]*\)/\1/p
-' ${host_makefile_frag}`
-fi
-changequote([,])
+AC_SUBST(NAT_FILE)
+AC_SUBST(NATDEPFILES)
+AC_SUBST(NAT_CDEPS)
+AC_SUBST(LOADLIBES)
+AC_SUBST(MH_CFLAGS)
+AC_SUBST(XM_CLIBS)
+AC_SUBST(NAT_GENERATED_FILES)
+AC_SUBST(HAVE_NATIVE_GCORE_TARGET)
+AC_SUBST_FILE(NAT_EXTRA_FRAGS_FILE)
 
 if test x"${gdb_osabi}" != x ; then
     AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
diff --git a/gdb/configure.nat b/gdb/configure.nat
new file mode 100644
index 0000000..585f94f
--- /dev/null
+++ b/gdb/configure.nat
@@ -0,0 +1,591 @@ 
+# Copyright (C) 2013-2017 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/>.
+
+# Variables defined here:
+#
+# NAT_FILE
+# NATDEPFILES
+# NAT_CDEPS
+# LOADLIBES
+# MH_CFLAGS
+# XM_CLIBS
+# NAT_GENERATED_FILES
+# HAVE_NATIVE_GCORE_HOST
+# NAT_EXTRA_FRAGS_FILE
+#
+# - To avoid shell expansion of variables, declare them with single
+#   quotes.
+#
+# - NAT_EXTRA_FRAGS_FILE 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
+	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'
+	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'
+
+	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)'
+	;;
+      nbsdelf)
+	# Host: NetBSD/arm
+	NATDEPFILES='fork-child.o inf-ptrace.o arm-nbsd-nat.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)
+	MH_CFLAGS=
+	NATDEPFILES='x86-nat.o x86-dregs.o windows-nat.o i386-windows-nat.o'
+	XM_CLIBS=
+	;;
+      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'
+
+	XM_CLIBS='-ldbg'
+	;;
+      i386gnu)
+	# 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
+
+	NAT_FILE='nm-i386gnu.h'
+	MH_CFLAGS='-D_GNU_SOURCE'
+
+	XM_CLIBS='-lshouldbeinlibc'
+
+	NAT_EXTRA_FRAGS_FILE="${srcdir}/config/${gdb_host_cpu}/i386gnu-extra.mh"
+
+	NAT_GENERATED_FILES='notify_S.h notify_S.c \
+		process_reply_S.h process_reply_S.c \
+		msg_reply_S.h msg_reply_S.c msg_U.h msg_U.c \
+		exc_request_U.h exc_request_U.c exc_request_S.h exc_request_S.c'
+	;;
+      i386sol2)
+	# 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 \
+		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 \
+		      linux-procfs.o linux-ptrace.o linux-waitpid.o \
+		      linux-personality.o linux-namespaces.o'
+	;;
+    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
diff --git a/gdb/doc/Makefile.in b/gdb/doc/Makefile.in
index 5a58fa7..e0e50c1 100644
--- a/gdb/doc/Makefile.in
+++ b/gdb/doc/Makefile.in
@@ -178,9 +178,6 @@  MAN1S = gdb.1 gdbserver.1 gcore.1
 MAN5S = gdbinit.5
 MANS = $(MAN1S) $(MAN5S)
 
-# Host-dependent makefile fragment comes in here.
-@host_makefile_frag@
-# End of host-dependent makefile fragment
 HAVE_NATIVE_GCORE_TARGET = @HAVE_NATIVE_GCORE_TARGET@
 
 ###