2004-09-03 Andrew Cagney <cagney@gnu.org>
[platform/upstream/binutils.git] / gdb / configure.in
index eb946f3..02a0945 100644 (file)
@@ -1,5 +1,5 @@
 dnl Autoconf configure script for GDB, the GNU debugger.
 dnl Autoconf configure script for GDB, the GNU debugger.
-dnl Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+dnl Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
 dnl Free Software Foundation, Inc.
 dnl
 dnl This file is part of GDB.
 dnl Free Software Foundation, Inc.
 dnl
 dnl This file is part of GDB.
@@ -42,10 +42,70 @@ AC_CANONICAL_SYSTEM
 # 2.5x.
 AC_CHECK_TOOL(RANLIB, ranlib, :)
 
 # 2.5x.
 AC_CHECK_TOOL(RANLIB, ranlib, :)
 
+dnl List of object files and targets accumulated by configure.
+
+CONFIG_OBS=
+CONFIG_DEPS=
+CONFIG_SRCS=
+ENABLE_CFLAGS=
+
+CONFIG_ALL=
+CONFIG_CLEAN=
+CONFIG_INSTALL=
+CONFIG_UNINSTALL=
+
 dnl Set up for gettext.  PACKAGE is used when we call bindtextdomain.
 dnl Set up for gettext.  PACKAGE is used when we call bindtextdomain.
-ALL_LINGUAS=
+
 CY_GNU_GETTEXT
 CY_GNU_GETTEXT
-AC_DEFINE(PACKAGE, "gdb", [Name of this package. ])
+
+localedir='${datadir}/locale'
+AC_SUBST(localedir)
+
+if test "x$POSUB" != x; then
+
+  dnl Lifted from GCC's config/gettext.m4.
+  AC_MSG_CHECKING(for catalogs to be installed)
+  # Look for .po and .gmo files in the source directory.
+  CATALOGS=  AC_SUBST(CATALOGS)
+  XLINGUAS=
+  for cat in $srcdir/po/*.gmo $srcdir/po/*.po; do
+    # If there aren't any .gmo files the shell will give us the
+    # literal string "../path/to/srcdir/po/*.gmo" which has to be
+    # weeded out.
+    case "$cat" in *\**)
+      continue;;
+    esac
+    # The quadruple backslash is collapsed to a double backslash
+    # by the backticks, then collapsed again by the double quotes,
+    # leaving us with one backslash in the sed expression (right
+    # before the dot that mustn't act as a wildcard).
+    cat=`echo $cat | sed -e "s!$srcdir/!!" -e "s!\\\\.po!.gmo!"`
+    lang=`echo $cat | sed -e 's!po/!!' -e "s!\\\\.gmo!!"`
+    # The user is allowed to set LINGUAS to a list of languages to
+    # install catalogs for.  If it's empty that means "all of them."
+    if test "x$LINGUAS" = x; then
+      CATALOGS="$CATALOGS $cat"
+      XLINGUAS="$XLINGUAS $lang"
+    else
+      case "$LINGUAS" in *$lang*)
+        CATALOGS="$CATALOGS $cat"
+        XLINGUAS="$XLINGUAS $lang"
+        ;;
+      esac
+    fi
+  done
+  LINGUAS="$XLINGUAS"
+  AC_MSG_RESULT($LINGUAS)
+
+   CONFIG_ALL="$CONFIG_ALL all-po"
+   CONFIG_CLEAN="$CONFIG_CLEAN clean-po"                  
+   CONFIG_INSTALL="$CONFIG_INSTALL install-po"
+   CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po"
+fi
+
+PACKAGE=gdb
+AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ])
+AC_SUBST(PACKAGE)
 
 debugdir=${libdir}/debug
         
 
 debugdir=${libdir}/debug
         
@@ -57,19 +117,6 @@ AC_DEFINE_DIR(DEBUGDIR, debugdir,
               [Global directory for separate debug files. ])
 #AC_DEFINE_UNQUOTED(DEBUGDIR, "$debugdir"),
 
               [Global directory for separate debug files. ])
 #AC_DEFINE_UNQUOTED(DEBUGDIR, "$debugdir"),
 
-dnl List of object files added by configure.
-
-CONFIG_OBS=
-CONFIG_LIB_OBS=
-CONFIG_DEPS=
-CONFIG_SRCS=
-CONFIG_INITS=
-ENABLE_CFLAGS=
-CONFIG_ALL=
-CONFIG_CLEAN=
-CONFIG_INSTALL=
-CONFIG_UNINSTALL=
-
 AC_CONFIG_SUBDIRS(doc testsuite)
 configdirs=
 
 AC_CONFIG_SUBDIRS(doc testsuite)
 configdirs=
 
@@ -114,12 +161,7 @@ if test x"$enable_gdbcli" = xyes; then
     CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)"
     CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)"
     CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)"
     CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)"
     CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)"
     CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)"
-    CONFIG_INITS="$CONFIG_INITS \$(SUBDIR_CLI_INITS)"
     ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)"
     ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)"
-    CONFIG_ALL="$CONFIG_ALL \$(SUBDIR_CLI_ALL)"
-    CONFIG_CLEAN="$CONFIG_CLEAN \$(SUBDIR_CLI_CLEAN)"
-    CONFIG_INSTALL="$CONFIG_INSTALL \$(SUBDIR_CLI_INSTALL)"
-    CONFIG_UNINSTALL="$CONFIG_UNINSTALL \$(SUBDIR_CLI_UNINSTALL)"
   fi
 fi
 
   fi
 fi
 
@@ -138,12 +180,7 @@ if test x"$enable_gdbmi" = xyes; then
     CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)"
     CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)"
     CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)"
     CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)"
     CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)"
     CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)"
-    CONFIG_INITS="$CONFIG_INITS \$(SUBDIR_MI_INITS)"
     ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)"
     ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)"
-    CONFIG_ALL="$CONFIG_ALL \$(SUBDIR_MI_ALL)"
-    CONFIG_CLEAN="$CONFIG_CLEAN \$(SUBDIR_MI_CLEAN)"
-    CONFIG_INSTALL="$CONFIG_INSTALL \$(SUBDIR_MI_INSTALL)"
-    CONFIG_UNINSTALL="$CONFIG_UNINSTALL \$(SUBDIR_MI_UNINSTALL)"
   fi
 fi
 
   fi
 fi
 
@@ -155,19 +192,20 @@ AC_ARG_ENABLE(tui,
       ;;
     *)
       AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
       ;;
     *)
       AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
-  esac])
+  esac],enable_tui=yes)
 if test x"$enable_tui" = xyes; then
   if test -d $srcdir/tui; then
 if test x"$enable_tui" = xyes; then
   if test -d $srcdir/tui; then
-    CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
-    CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
-    CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
-    CONFIG_INITS="$CONFIG_INITS \$(SUBDIR_TUI_INITS)"
-    ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
-    CONFIG_ALL="$CONFIG_ALL \$(SUBDIR_TUI_ALL)"
-    CONFIG_CLEAN="$CONFIG_CLEAN \$(SUBDIR_TUI_CLEAN)"
-    CONFIG_INSTALL="$CONFIG_INSTALL \$(SUBDIR_TUI_INSTALL)"
-    CONFIG_UNINSTALL="$CONFIG_UNINSTALL \$(SUBDIR_TUI_UNINSTALL)"
-    need_curses=yes
+    if test "$ac_cv_search_initscr" != no -a "$ac_cv_search_wborder" != no; then
+      CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
+      CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
+      CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
+      CONFIG_INITS="$CONFIG_INITS \$(SUBDIR_TUI_INITS)"
+      ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
+      CONFIG_ALL="${CONFIG_ALL} all-tui"
+      CONFIG_CLEAN="${CONFIG_CLEAN} clean-tui"
+      CONFIG_INSTALL="${CONFIG_INSTALL} install-tui"
+      CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-tui"
+    fi
   fi
 fi
 
   fi
 fi
 
@@ -192,6 +230,30 @@ case $host_os in
     enable_gdbtk=no ;;
 esac
 
     enable_gdbtk=no ;;
 esac
 
+# Libunwind support.
+AC_ARG_WITH(libunwind,
+[  --with-libunwind            Use libunwind frame unwinding support],
+[case "${withval}" in
+  yes)  enable_libunwind=yes ;;
+  no)   enable_libunwind=no ;;
+  *)    AC_MSG_ERROR(bad value ${withval} for GDB with-libunwind option) ;;
+esac],[
+  AC_CHECK_HEADERS(libunwind.h)
+  AC_CHECK_HEADERS(libunwind-ia64.h)
+  if test x"$ac_cv_header_libunwind_h" = xyes -a x"$ac_cv_header_libunwind_ia64_h" = xyes; then
+    enable_libunwind=yes;
+  fi
+])
+   
+if test x"$enable_libunwind" = xyes; then
+  AC_CHECK_HEADERS(libunwind.h)
+  AC_CHECK_HEADERS(libunwind-ia64.h)
+  AC_DEFINE(HAVE_LIBUNWIND, 1)
+  CONFIG_OBS="$CONFIG_OBS libunwind-frame.o"
+  CONFIG_DEPS="$CONFIG_DEPS libunwind-frame.o"
+  CONFIG_SRCS="$CONFIG_SRCS libunwind-frame.c"
+fi
+
 # Profiling support.
 AC_ARG_ENABLE(profiling,
 [  --enable-profiling      enable profiling of GDB],
 # Profiling support.
 AC_ARG_ENABLE(profiling,
 [  --enable-profiling      enable profiling of GDB],
@@ -264,25 +326,15 @@ AC_CHECK_LIB(m, main)
 AC_CHECK_FUNC(wctype, [],
   [AC_CHECK_LIB(w, wctype)])
 
 AC_CHECK_FUNC(wctype, [],
   [AC_CHECK_LIB(w, wctype)])
 
+# Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
+AC_SEARCH_LIBS(gethostbyname, nsl)
+
 # Some systems (e.g. Solaris) have `socketpair' in libsocket.
 AC_SEARCH_LIBS(socketpair, socket)
 
 # Since GDB uses Readline, we need termcap functionality, so we need
 # to find a library that provides that.  When GDB is configured with
 # Some systems (e.g. Solaris) have `socketpair' in libsocket.
 AC_SEARCH_LIBS(socketpair, socket)
 
 # Since GDB uses Readline, we need termcap functionality, so we need
 # to find a library that provides that.  When GDB is configured with
-# --enable-tui, we need full curses functionality.
-#
-# FIXME: kettenis/20030102: We seem to prefer HP curses (Hcurses) over
-# Xcurses on HP-UX; see the `-D__HP_CURSES' in the relevant host
-# Makefile fragments.  That's why we need to have `Hcurses' before
-# `curses'.  I don't see why we should use HP curses if a more
-# standard curses is available, except that according to HP's
-# documentation one needs to compile `-D_XOPEN_SOURCE_EXTENDED' on
-# HP-UX 10.10 and 10.20.
-
-if test "$need_curses" = yes; then
-  AC_SEARCH_LIBS(initscr, [ncurses Hcurses curses], [],
-    [AC_MSG_ERROR([no curses library found])])
-fi
+# the TUI, we need full curses functionality.
 
 case $host_os in
   cygwin*)
 
 case $host_os in
   cygwin*)
@@ -290,8 +342,7 @@ case $host_os in
       LIBS="../libtermcap/libtermcap.a $LIBS"
       ac_cv_search_tgetent="../libtermcap/libtermcap.a"
     fi ;;
       LIBS="../libtermcap/libtermcap.a $LIBS"
       ac_cv_search_tgetent="../libtermcap/libtermcap.a"
     fi ;;
-  go32*)
-    # ??? Is this really true?
+  go32* | *djgpp*)
     ac_cv_search_tgetent="none required"
     ;;
   aix*)
     ac_cv_search_tgetent="none required"
     ;;
   aix*)
@@ -309,6 +360,32 @@ if test "$ac_cv_search_tgetent" = no; then
   AC_MSG_ERROR([no termcap library found])
 fi
 
   AC_MSG_ERROR([no termcap library found])
 fi
 
+# FIXME: kettenis/20030102: We seem to prefer HP curses (Hcurses) over
+# Xcurses on HP-UX; see the `-D__HP_CURSES' in the relevant host
+# Makefile fragments.  That's why we need to have `Hcurses' before
+# `curses'.  I don't see why we should use HP curses if a more
+# standard curses is available, except that according to HP's
+# documentation one needs to compile `-D_XOPEN_SOURCE_EXTENDED' on
+# HP-UX 10.10 and 10.20.
+
+# FIXME: ncurses does not work on native alphaev68-dec-osf5.1,
+# and probably other platforms.  AC_SEARCH_LIBS finds the library
+# in a place such as /usr/local/lib/libncurses.a, but does not
+# do anything to look for the matching include files.
+# -- chastain 2004-05-01
+
+AC_SEARCH_LIBS(initscr, [ncurses Hcurses cursesX curses pdcurses], [],
+  [AC_MSG_WARN([no curses library found])])
+
+# Check whether the wborder function is provided by the curses
+# library detected above.  In certain implementations such as
+# the HP/UX Hcurses for instance, this function is provided by an
+# additional library.  So if we did not find this function inside
+# the curses library, try some alternate libraries we know might
+# provide it.
+AC_SEARCH_LIBS(wborder, [cur_colr], [],
+    [AC_MSG_WARN([wborder function not found, tui will be disabled])])
+
 # ------------------------- #
 # Checks for header files.  #
 # ------------------------- #
 # ------------------------- #
 # Checks for header files.  #
 # ------------------------- #
@@ -317,9 +394,10 @@ AC_HEADER_DIRENT
 AC_HEADER_STAT
 AC_HEADER_STDC
 AC_CHECK_HEADERS(link.h)
 AC_HEADER_STAT
 AC_HEADER_STDC
 AC_CHECK_HEADERS(link.h)
+AC_CHECK_HEADERS(machine/reg.h)
 AC_CHECK_HEADERS(nlist.h)
 AC_CHECK_HEADERS(poll.h sys/poll.h)
 AC_CHECK_HEADERS(nlist.h)
 AC_CHECK_HEADERS(poll.h sys/poll.h)
-AC_CHECK_HEADERS(proc_service.h thread_db.h)
+AC_CHECK_HEADERS(proc_service.h thread_db.h gnu/libc-version.h)
 AC_CHECK_HEADERS(stddef.h)
 AC_CHECK_HEADERS(stdlib.h)
 AC_CHECK_HEADERS(stdint.h)
 AC_CHECK_HEADERS(stddef.h)
 AC_CHECK_HEADERS(stdlib.h)
 AC_CHECK_HEADERS(stdint.h)
@@ -335,28 +413,48 @@ AC_CHECK_HEADERS(sys/ptrace.h ptrace.h)
 AC_CHECK_HEADERS(sys/reg.h sys/debugreg.h)
 AC_CHECK_HEADERS(sys/select.h)
 AC_CHECK_HEADERS(sys/syscall.h)
 AC_CHECK_HEADERS(sys/reg.h sys/debugreg.h)
 AC_CHECK_HEADERS(sys/select.h)
 AC_CHECK_HEADERS(sys/syscall.h)
+AC_CHECK_HEADERS(sys/types.h)
 AC_CHECK_HEADERS(sys/user.h)
 AC_CHECK_HEADERS(sys/wait.h wait.h)
 AC_CHECK_HEADERS(termios.h termio.h sgtty.h)
 AC_CHECK_HEADERS(unistd.h)
 
 AC_CHECK_HEADERS(sys/user.h)
 AC_CHECK_HEADERS(sys/wait.h wait.h)
 AC_CHECK_HEADERS(termios.h termio.h sgtty.h)
 AC_CHECK_HEADERS(unistd.h)
 
-# On Solaris 2.[78], we need to define _MSE_INT_H to avoid a clash
+# On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash
 # between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
 # think that we don't have <curses.h> if we're using GCC.
 case $host_os in
 # between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
 # think that we don't have <curses.h> if we're using GCC.
 case $host_os in
-  solaris2.[[78]])
+  solaris2.[[789]])
     if test "$GCC" = yes; then
       AC_DEFINE(_MSE_INT_H, 1,
         [[Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
     if test "$GCC" = yes; then
       AC_DEFINE(_MSE_INT_H, 1,
         [[Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
-   Solaris 2.[78] when using GCC. ]])
+   Solaris 2.[789] when using GCC. ]])
     fi ;;
 esac
     fi ;;
 esac
-AC_CHECK_HEADERS(curses.h ncurses.h term.h)
+AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h term.h)
 
 # FIXME: kettenis/20030102: In most cases we include these
 # unconditionally, so what's the point in checking these?
 AC_CHECK_HEADERS(ctype.h time.h)
 
 
 # FIXME: kettenis/20030102: In most cases we include these
 # unconditionally, so what's the point in checking these?
 AC_CHECK_HEADERS(ctype.h time.h)
 
+dnl Check for struct stat with an st_blocks member
+AC_MSG_CHECKING(for member st_blocks in struct stat)
+AC_CACHE_VAL(gdb_cv_have_struct_stat_with_st_blocks_member,
+  [AC_TRY_COMPILE([#include <sys/types.h>
+#include <sys/stat.h>],
+                  [struct stat st; (void) st.st_blocks;],
+                  gdb_cv_have_struct_stat_with_st_blocks_member=yes,
+                  gdb_cv_have_struct_stat_with_st_blocks_member=no)])
+AC_MSG_RESULT($gdb_cv_have_struct_stat_with_st_blocks_member)
+if test $gdb_cv_have_struct_stat_with_st_blocks_member = yes; then
+  AC_DEFINE(HAVE_STRUCT_STAT_ST_BLOCKS)
+fi
+
+# ------------------------- #
+# Checks for declarations.  #
+# ------------------------- #
+
+gcc_AC_CHECK_DECLS(getopt)
+
 # ------------------ #
 # Checks for types.  #
 # ------------------ #
 # ------------------ #
 # Checks for types.  #
 # ------------------ #
@@ -384,6 +482,71 @@ AC_CHECK_FUNCS(sbrk)
 AC_CHECK_FUNCS(setpgid setpgrp)
 AC_CHECK_FUNCS(sigaction sigprocmask sigsetmask)
 AC_CHECK_FUNCS(socketpair)
 AC_CHECK_FUNCS(setpgid setpgrp)
 AC_CHECK_FUNCS(sigaction sigprocmask sigsetmask)
 AC_CHECK_FUNCS(socketpair)
+AC_CHECK_FUNCS(syscall)
+AC_CHECK_FUNCS(ttrace)
+
+# Check the return and argument types of ptrace.  No canned test for
+# this, so roll our own.
+gdb_ptrace_headers='
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#if HAVE_SYS_PTRACE_H
+# include <sys/ptrace.h>
+#endif
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+'
+# There is no point in checking if we don't have a prototype.
+gcc_AC_CHECK_DECLS(ptrace, , [
+  : ${gdb_cv_func_ptrace_ret='int'}
+  : ${gdb_cv_func_ptrace_args='int,int,long,long'}
+], $gdb_ptrace_headers)
+# Check return type.
+AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret,
+  AC_TRY_COMPILE($gdb_ptrace_headers,
+    [extern int ptrace ();],
+    gdb_cv_func_ptrace_ret='int',
+    gdb_cv_func_ptrace_ret='long'))
+AC_DEFINE_UNQUOTED(PTRACE_TYPE_RET, $gdb_cv_func_ptrace_ret,
+  [Define as the return type of ptrace.])
+# Check argument types.
+AC_CACHE_CHECK([types of arguments for ptrace], gdb_cv_func_ptrace_args, [
+for gdb_arg1 in 'int' 'long'; do
+ for gdb_arg2 in 'pid_t' 'int' 'long'; do
+  for gdb_arg3 in 'int *' 'caddr_t' 'int' 'long'; do
+   for gdb_arg4 in 'int' 'long'; do
+     AC_TRY_COMPILE($gdb_ptrace_headers, [
+extern $gdb_cv_func_ptrace_ret
+  ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4);
+], [gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4";
+    break 4;])
+    for gdb_arg5 in 'int *' 'int' 'long'; do
+     AC_TRY_COMPILE($gdb_ptrace_headers, [
+extern $gdb_cv_func_ptrace_ret
+  ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4, $gdb_arg5);
+], [
+gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4,$gdb_arg5";
+    break 5;])
+    done
+   done
+  done
+ done
+done
+# Provide a safe default value.
+: ${gdb_cv_func_ptrace_args='int,int,long,long'}
+])
+ac_save_IFS=$IFS; IFS=','
+set dummy `echo "$gdb_cv_func_ptrace_args" | sed 's/\*/\*/g'`
+IFS=$ac_save_IFS
+shift
+AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG3, $[3],
+  [Define to the type of arg 3 for ptrace.])
+if test -n "$[5]"; then
+  AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG5, $[5],
+    [Define to the type of arg 5 for ptrace.])
+fi
 
 dnl AC_FUNC_SETPGRP does not work when cross compiling
 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
 
 dnl AC_FUNC_SETPGRP does not work when cross compiling
 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
@@ -446,6 +609,36 @@ if test "$gdb_with_regex" = yes; then
     [Define to 1 if the regex included in libiberty should be used.])
 fi
 
     [Define to 1 if the regex included in libiberty should be used.])
 fi
 
+# See if <sys/proc.h> defines `struct thread' with a td_pcb member.
+AC_CACHE_CHECK([for td_pcb in struct thread], gdb_cv_struct_thread_td_pcb,
+[AC_TRY_COMPILE([#include <sys/param.h>
+#include <sys/proc.h>], [struct thread td; td.td_pcb;],
+gdb_cv_struct_thread_td_pcb=yes, gdb_cv_struct_thread_td_pcb=no)])
+if test $gdb_cv_struct_thread_td_pcb = yes; then
+  AC_DEFINE(HAVE_STRUCT_THREAD_TD_PCB, 1,
+            [Define to 1 if your system has td_pcb in struct thread.])
+fi
+
+# See if <sys/lwp.h> defines `struct lwp`.
+AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp,
+[AC_TRY_COMPILE([#include <sys/param.h>
+#include <sys/lwp.h>], [struct lwp l;],
+gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)])
+if test $gdb_cv_struct_lwp = yes; then
+  AC_DEFINE(HAVE_STRUCT_LWP, 1,
+            [Define to 1 if your system has struct lwp.])
+fi
+
+# See if <machine/reg.h> degines `struct reg'.
+AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg,
+[AC_TRY_COMPILE([#include <sys/types.h>
+#include <machine/reg.h>], [struct reg r;],
+gdb_cv_struct_reg=yes, gdb_cv_struct_reg=no)])
+if test $gdb_cv_struct_reg = yes; then
+  AC_DEFINE(HAVE_STRUCT_REG, 1,
+            [Define to 1 if your system has struct reg in <machine/reg.h>.])
+fi
+
 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
 AC_CACHE_CHECK([for r_fs in struct reg], gdb_cv_struct_reg_r_fs,
 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
 AC_CACHE_CHECK([for r_fs in struct reg], gdb_cv_struct_reg_r_fs,
@@ -511,6 +704,17 @@ if test $gdb_cv_have_pt_getxmmregs = yes; then
   AC_DEFINE(HAVE_PT_GETXMMREGS)
 fi
 
   AC_DEFINE(HAVE_PT_GETXMMREGS)
 fi
 
+# See if stdint.h provides the uintptr_t type.
+# Autoconf 2.5X has an improved AC_CHECK_TYPE which will simplify this.
+AC_CACHE_CHECK([for uintptr_t in stdint.h], gdb_cv_have_uintptr_t,
+  [AC_TRY_COMPILE(
+    [#include <stdint.h>],
+    [uintptr_t foo = 0;],
+    gdb_cv_have_uintptr_t=yes,
+    gdb_cv_have_uintptr_t=no)])
+if test $gdb_cv_have_uintptr_t = yes; then
+  AC_DEFINE(HAVE_UINTPTR_T, 1, [Define if <stdint.h> provides the uintptr_t type.])
+fi
 
 BFD_NEED_DECLARATION(malloc)
 BFD_NEED_DECLARATION(realloc)
 
 BFD_NEED_DECLARATION(malloc)
 BFD_NEED_DECLARATION(realloc)
@@ -556,9 +760,13 @@ if test "${target}" = "${host}"; then
   *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
       AC_DEFINE(NEW_PROC_API)
       ;;
   *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
       AC_DEFINE(NEW_PROC_API)
       ;;
-  *-*-solaris2.[[678]])
+  *-*-solaris2.[[6789]])
       AC_DEFINE(NEW_PROC_API)
       ;;
       AC_DEFINE(NEW_PROC_API)
       ;;
+  mips-sgi-irix5*)
+      # Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5.
+      AC_DEFINE([_KMEMUSER], 1)
+      ;;
   esac
 fi
 
   esac
 fi
 
@@ -789,6 +997,7 @@ aix*)
 
     LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
     AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
 
     LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
     AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
+    LDFLAGS="${SAVE_LDFLAGS}"
   ])
   CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
   ;;
   ])
   CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
   ;;
@@ -809,7 +1018,7 @@ if test ${build} = ${host} -a ${host} = ${target} ; then
          if test "$GCC" = "yes" ; then
             AC_MSG_RESULT(yes)
             AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
          if test "$GCC" = "yes" ; then
             AC_MSG_RESULT(yes)
             AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
-            CONFIG_LIB_OBS="${CONFIG_LIB_OBS} hpux-thread.o"
+            CONFIG_OBS="${CONFIG_OBS} hpux-thread.o"
             CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
          else
             AC_MSG_RESULT(no (suppressed because you are not using GCC))
             CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
          else
             AC_MSG_RESULT(no (suppressed because you are not using GCC))
@@ -827,7 +1036,7 @@ if test ${build} = ${host} -a ${host} = ${target} ; then
       if test -f /usr/lib/libthread_db.so.1 ; then
          AC_MSG_RESULT(yes)
          AC_DEFINE(HAVE_THREAD_DB_LIB)
       if test -f /usr/lib/libthread_db.so.1 ; then
          AC_MSG_RESULT(yes)
          AC_DEFINE(HAVE_THREAD_DB_LIB)
-         CONFIG_LIB_OBS="${CONFIG_LIB_OBS} sol-thread.o"
+         CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
          CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
          AC_CHECK_LIB(dl, dlopen)
          if test "$GCC" = "yes" ; then
          CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
          AC_CHECK_LIB(dl, dlopen)
          if test "$GCC" = "yes" ; then
@@ -874,7 +1083,7 @@ if test ${build} = ${host} -a ${host} = ${target} ; then
       AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
       if test $gdb_cv_have_aix_thread_debug = yes; then
          CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
       AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
       if test $gdb_cv_have_aix_thread_debug = yes; then
          CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
-         CONFIG_LIB_OBS="${CONFIG_LIB_OBS} aix-thread.o"
+         CONFIG_OBS="${CONFIG_OBS} aix-thread.o"
          CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
       fi
       ;;
          CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
       fi
       ;;
@@ -899,13 +1108,31 @@ if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
             [Define if <thread_db.h> has the TD_NOTALLOC error code.])
 fi
 
             [Define if <thread_db.h> has the TD_NOTALLOC error code.])
 fi
 
+dnl See if we have a sys/syscall header file that has __NR_tkill.
+if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then
+   AC_CACHE_CHECK([whether <sys/syscall.h> has __NR_tkill],
+                  gdb_cv_sys_syscall_h_has_tkill,
+     AC_TRY_COMPILE(
+       [#include <sys/syscall.h>],
+       [int i = __NR_tkill;],
+       gdb_cv_sys_syscall_h_has_tkill=yes,
+       gdb_cv_sys_syscall_h_has_tkill=no
+     )
+   )
+fi
+dnl See if we can issue tkill syscall.
+if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes" && test "x$ac_cv_func_syscall" = "xyes"; then
+  AC_DEFINE(HAVE_TKILL_SYSCALL, 1,
+            [Define if we can use the tkill syscall.])
+fi
+
 dnl Handle optional features that can be enabled.
 
 AC_ARG_WITH(sysroot,
 [  --with-sysroot[=DIR] Search for usr/lib et al within DIR.],
 [
  case ${with_sysroot} in
 dnl Handle optional features that can be enabled.
 
 AC_ARG_WITH(sysroot,
 [  --with-sysroot[=DIR] Search for usr/lib et al within DIR.],
 [
  case ${with_sysroot} in
- yes) AC_ERROR(with-sysroot must specify path) ;;
+ yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
  *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
  esac
 
  *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
  esac
 
@@ -921,7 +1148,8 @@ AC_ARG_WITH(sysroot,
   test_prefix=$exec_prefix
  fi
  case ${TARGET_SYSTEM_ROOT} in
   test_prefix=$exec_prefix
  fi
  case ${TARGET_SYSTEM_ROOT} in
- ${test_prefix}*)
+ "${test_prefix}"|"${test_prefix}/"*|\
+ '${exec_prefix}'|'${exec_prefix}/'*)
    t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
    TARGET_SYSTEM_ROOT_DEFINE="$t"
    ;;
    t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
    TARGET_SYSTEM_ROOT_DEFINE="$t"
    ;;
@@ -938,9 +1166,10 @@ AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
 # NOTE: If you add to this list, remember to update
 # gdb/doc/gdbint.texinfo.
 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
 # NOTE: If you add to this list, remember to update
 # gdb/doc/gdbint.texinfo.
 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
--Wformat -Wparentheses -Wpointer-arith -Wuninitialized"
+-Wformat -Wparentheses -Wpointer-arith -Wuninitialized -Wformat-nonliteral \
+-Wunused-label -Wunused-function"
 # Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
 # Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
-# -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
+# -Wunused-function -Wunused-variable -Wunused-value
 # -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual
 # -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
 # -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
 # -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual
 # -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
 # -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
@@ -995,26 +1224,6 @@ fi
 AC_SUBST(WARN_CFLAGS)
 AC_SUBST(WERROR_CFLAGS)
 
 AC_SUBST(WARN_CFLAGS)
 AC_SUBST(WERROR_CFLAGS)
 
-MMALLOC_CFLAGS=
-MMALLOC=
-AC_SUBST(MMALLOC_CFLAGS)
-AC_SUBST(MMALLOC)
-
-AC_ARG_WITH(mmalloc,
-[  --with-mmalloc          Use memory mapped malloc package],
-[case "${withval}" in
-  yes)  want_mmalloc=true ;;
-  no)   want_mmalloc=false;;
-  *)    AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
-esac],[want_mmalloc=false])dnl
-
-if test x$want_mmalloc = xtrue; then
-   AC_DEFINE(USE_MMALLOC)
-   AC_DEFINE(MMCHECK_FORCE)
-   MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
-   MMALLOC='../mmalloc/libmmalloc.a'
-fi
-
 # In the Cygwin environment, we need some additional flags.
 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
 [AC_EGREP_CPP(lose, [
 # In the Cygwin environment, we need some additional flags.
 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
 [AC_EGREP_CPP(lose, [
@@ -1051,7 +1260,14 @@ WIN32LDAPP=
 AC_SUBST(WIN32LIBS)
 AC_SUBST(WIN32LDAPP)
 
 AC_SUBST(WIN32LIBS)
 AC_SUBST(WIN32LDAPP)
 
-configdir="unix"
+case "${host}" in
+*-*-cygwin*)
+    configdir="win"
+    ;;
+*)
+    configdir="unix"
+    ;;
+esac
 
 GDBTKLIBS=
 if test "${enable_gdbtk}" = "yes"; then
 
 GDBTKLIBS=
 if test "${enable_gdbtk}" = "yes"; then
@@ -1070,14 +1286,7 @@ if test "${enable_gdbtk}" = "yes"; then
 
        # now look for Tcl library stuff
 
 
        # now look for Tcl library stuff
 
-       case "${host}" in
-       *-*-cygwin*)
-           tcldir=../tcl/win/
-           ;;
-       *)
-           tcldir=../tcl/unix/
-           ;;
-       esac
+       tcldir="../tcl/${configdir}/"
 
        TCL_DEPS="${tcldir}${TCL_LIB_FILE}"
 
 
        TCL_DEPS="${tcldir}${TCL_LIB_FILE}"
 
@@ -1093,14 +1302,7 @@ if test "${enable_gdbtk}" = "yes"; then
 
           # now look for Tk library stuff
 
 
           # now look for Tk library stuff
 
-          case "${host}" in
-          *-*-cygwin*)
-              tkdir=../tk/win/
-              ;;
-          *)
-              tkdir=../tk/unix/
-              ;;
-          esac
+          tkdir="../tk/${configdir}/"
 
           TK_DEPS="${tkdir}${TK_LIB_FILE}"
 
 
           TK_DEPS="${tkdir}${TK_LIB_FILE}"
 
@@ -1147,11 +1349,10 @@ if test "${enable_gdbtk}" = "yes"; then
            CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
            CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
            CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
            CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
            CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
            CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
-           CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_GDBTK_INITS)"
-          CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
-          CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_GDBTK_CLEAN)"
-          CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
-          CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
+          CONFIG_ALL="${CONFIG_ALL} all-gdbtk"
+          CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk"
+          CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk"
+          CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk"
 
           if test x$gdb_cv_os_cygwin = xyes; then
              WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
 
           if test x$gdb_cv_os_cygwin = xyes; then
              WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
@@ -1217,15 +1418,18 @@ AC_SUBST(ENABLE_CFLAGS)
 AC_SUBST(PROFILE_CFLAGS)
 
 AC_SUBST(CONFIG_OBS)
 AC_SUBST(PROFILE_CFLAGS)
 
 AC_SUBST(CONFIG_OBS)
-AC_SUBST(CONFIG_LIB_OBS)
 AC_SUBST(CONFIG_DEPS)
 AC_SUBST(CONFIG_SRCS)
 AC_SUBST(CONFIG_DEPS)
 AC_SUBST(CONFIG_SRCS)
-AC_SUBST(CONFIG_INITS)
 AC_SUBST(CONFIG_ALL)
 AC_SUBST(CONFIG_CLEAN)
 AC_SUBST(CONFIG_INSTALL)
 AC_SUBST(CONFIG_UNINSTALL)
 
 AC_SUBST(CONFIG_ALL)
 AC_SUBST(CONFIG_CLEAN)
 AC_SUBST(CONFIG_INSTALL)
 AC_SUBST(CONFIG_UNINSTALL)
 
+# List of host floatformats.
+AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat])
+AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat])
+AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat])
+
 # target_subdir is used by the testsuite to find the target libraries.
 target_subdir=
 if test "${host}" != "${target}"; then
 # target_subdir is used by the testsuite to find the target libraries.
 target_subdir=
 if test "${host}" != "${target}"; then
@@ -1266,10 +1470,6 @@ targetfile=`sed -n '
 s/TM_FILE[     ]*=[    ]*\([^  ]*\)/\1/p
 ' ${target_makefile_frag}`
 
 s/TM_FILE[     ]*=[    ]*\([^  ]*\)/\1/p
 ' ${target_makefile_frag}`
 
-GDB_MULTI_ARCH=`sed -n '
-s/GDB_MULTI_ARCH[      ]*=[    ]*\([^  ]*\)[   ]*/\1/p
-' ${target_makefile_frag}`
-
 if test "${target}" = "${host}"; then
 # We pick this up from the host configuration file (.mh) because we
 # do not have a native configuration Makefile fragment.
 if test "${target}" = "${host}"; then
 # We pick this up from the host configuration file (.mh) because we
 # do not have a native configuration Makefile fragment.
@@ -1279,33 +1479,6 @@ s/NAT_FILE[      ]*=[    ]*\([^  ]*\)/\1/p
 fi
 changequote([,])
 
 fi
 changequote([,])
 
-# New targets should just set gdb_multi_arch=yes in configure.tgt.
-# Old targets being converted can either do that or set GDB_MULTI_ARCH
-# in the target specific makefile frag.  Eventually gdb_multi_arch=yes
-# will be the default.
-if test x"${GDB_MULTI_ARCH}" = x ; then
-    case "${gdb_multi_arch}" in
-    yes ) GDB_MULTI_ARCH=GDB_MULTI_ARCH_PURE ;;
-    no ) GDB_MULTI_ARCH=0 ;;
-    0|1|2 ) GDB_MULTI_ARCH=${gdb_multi_arch} ;;
-    esac
-fi
-if test x"${GDB_MULTI_ARCH}" != x ; then
-    AC_DEFINE_UNQUOTED(GDB_MULTI_ARCH, ${GDB_MULTI_ARCH})
-fi
-# Warn the user when they use an old practice
-case "${GDB_MULTI_ARCH}" in
-    "" ) ;;
-    0 | GDB_MULTI_ARCH_PARTIAL | 1 | GDB_MULTI_ARCH_TM | 2 )
-       AC_MSG_WARN("GDB: Target is not pure multi-arch") ;;
-    GDB_MULTI_ARCH_PURE )
-       if test x"${targetfile}" != x ; then
-           AC_MSG_WARN("GDB: Ignoring TM_FILE in ${target_makefile_frag}")
-           targetfile=""
-       fi ;;
-    *)  AC_MSG_ERROR("GDB: Unknown GDB_MULTI_ARCH value ${GDB_MULTI_ARCH}");;
-esac
-
 if test x"${gdb_osabi}" != x ; then
     AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
                       [Define to the default OS ABI for this configuration.])
 if test x"${gdb_osabi}" != x ; then
     AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
                       [Define to the default OS ABI for this configuration.])
@@ -1347,10 +1520,13 @@ rm -f xm.h
 xm_h=""
 if test "${hostfile}" != ""; then
     xm_h=xm.h
 xm_h=""
 if test "${hostfile}" != ""; then
     xm_h=xm.h
-    GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}"
+    case "${hostfile}" in
+      xm-*.h ) GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}" ;;
+      * ) GDB_XM_FILE="${hostfile}"
+    esac
     files="${files} ${GDB_XM_FILE}"
     links="${links} xm.h"
     files="${files} ${GDB_XM_FILE}"
     links="${links} xm.h"
-    AC_DEFINE_UNQUOTED(GDB_XM_FILE, ${GDB_XM_FILE})
+    AC_DEFINE_UNQUOTED(GDB_XM_FILE, "${GDB_XM_FILE}")
 fi
 AC_SUBST(xm_h)
 
 fi
 AC_SUBST(xm_h)
 
@@ -1358,10 +1534,13 @@ rm -f tm.h
 tm_h=""
 if test "${targetfile}" != ""; then
     tm_h=tm.h
 tm_h=""
 if test "${targetfile}" != ""; then
     tm_h=tm.h
-    GDB_TM_FILE="config/${gdb_target_cpu}/${targetfile}"
+    case "${targetfile}" in
+      tm-*.h ) GDB_TM_FILE="config/${gdb_target_cpu}/${targetfile}" ;;
+      * ) GDB_TM_FILE="${targetfile}"
+    esac
     files="${files} ${GDB_TM_FILE}"
     links="${links} tm.h"
     files="${files} ${GDB_TM_FILE}"
     links="${links} tm.h"
-    AC_DEFINE_UNQUOTED(GDB_TM_FILE, ${GDB_TM_FILE})
+    AC_DEFINE_UNQUOTED(GDB_TM_FILE, "${GDB_TM_FILE}")
 fi
 AC_SUBST(tm_h)
 
 fi
 AC_SUBST(tm_h)
 
@@ -1369,10 +1548,13 @@ rm -f nm.h
 nm_h=""
 if test "${nativefile}" != ""; then
     nm_h=nm.h
 nm_h=""
 if test "${nativefile}" != ""; then
     nm_h=nm.h
-    GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}"
+    case "${nativefile}" in
+      nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;;
+      * ) GDB_NM_FILE="${nativefile}"
+    esac
     files="${files} ${GDB_NM_FILE}"
     links="${links} nm.h"
     files="${files} ${GDB_NM_FILE}"
     links="${links} nm.h"
-    AC_DEFINE_UNQUOTED(GDB_NM_FILE, ${GDB_NM_FILE})
+    AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}")
 fi
 AC_SUBST(nm_h)
 
 fi
 AC_SUBST(nm_h)