dnl Autoconf configure script for GDB, the GNU debugger.
-dnl Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+dnl Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+dnl 2005, 2006
dnl Free Software Foundation, Inc.
dnl
dnl This file is part of GDB.
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program; if not, write to the Free Software
-dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+dnl Foundation, Inc., 51 Franklin Street, Fifth Floor,
+dnl Boston, MA 02110-1301, USA.
dnl Process this file with autoconf to produce a configure script.
AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
AC_CANONICAL_SYSTEM
-# FIXME: kettenis/20030102: The AC_PROG_RANLIB from Autoconf 2.13
-# doesn't support cross-compilation, but the one from Autoconf 2.5x
-# does. Override RANLIB here (i.e. before running AC_PROG_RANLIB) to
-# deal with the lossage. Note that CY_GNU_GETTEXT currently calls
-# AC_PROG_RANLIB. This can be removed when we switch to Autoconf
-# 2.5x.
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-
dnl List of object files and targets accumulated by configure.
CONFIG_OBS=
CONFIG_INSTALL=
CONFIG_UNINSTALL=
-dnl Set up for gettext. PACKAGE is used when we call bindtextdomain.
-
-CY_GNU_GETTEXT
+dnl Set up for gettext.
+ZW_GNU_GETTEXT_SISTER_DIR
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)
-
+if test x"$USE_NLS" = xyes; then
CONFIG_ALL="$CONFIG_ALL all-po"
CONFIG_CLEAN="$CONFIG_CLEAN clean-po"
CONFIG_INSTALL="$CONFIG_INSTALL install-po"
[Global directory for separate debug files. ])
#AC_DEFINE_UNQUOTED(DEBUGDIR, "$debugdir"),
+if test "x$exec_prefix" = xNONE || test "x$exec_prefix" = 'x${prefix}'; then
+ if test "x$prefix" = xNONE; then
+ test_prefix=/usr/local
+ else
+ test_prefix=$prefix
+ fi
+else
+ test_prefix=$exec_prefix
+fi
+case ${debugdir} in
+"${test_prefix}"|"${test_prefix}/"*|\
+'${exec_prefix}'|'${exec_prefix}/'*)
+ AC_DEFINE(DEBUGDIR_RELOCATABLE, 1, [Define if the debug directory should be relocated when GDB is moved.])
+ ;;
+esac
+
AC_CONFIG_SUBDIRS(doc testsuite)
+# Provide defaults for some variables set by the per-host and per-target
+# configuration.
+gdb_host_obs=posix-hdep.o
+
+if test "${target}" = "${host}"; then
+ gdb_native=yes
+else
+ gdb_native=no
+fi
+
. $srcdir/configure.host
. $srcdir/configure.tgt
*)
AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;;
esac],
- [if test -d $srcdir/gdbtk; then
+ [if test -d $srcdir/gdbtk -a -d $srcdir/../itcl; then
enable_gdbtk=yes
else
enable_gdbtk=no
if test x"$enable_libunwind" = xyes; then
AC_CHECK_HEADERS(libunwind.h)
AC_CHECK_HEADERS(libunwind-ia64.h)
- AC_DEFINE(HAVE_LIBUNWIND, 1)
+ AC_DEFINE(HAVE_LIBUNWIND, 1, [Define if libunwind library is being used.])
CONFIG_OBS="$CONFIG_OBS libunwind-frame.o"
CONFIG_DEPS="$CONFIG_DEPS libunwind-frame.o"
CONFIG_SRCS="$CONFIG_SRCS libunwind-frame.c"
go32* | *djgpp*)
ac_cv_search_tgetent="none required"
;;
+ *mingw32*)
+ ac_cv_search_tgetent="none required"
+ CONFIG_OBS="$CONFIG_OBS win32-termcap.o"
+ ;;
esac
# These are the libraries checked by Readline.
AC_MSG_ERROR([no termcap library found])
fi
+AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"],
+ [XML_Parser p = XML_ParserCreate (0);])
+if test "$HAVE_LIBEXPAT" != yes; then
+ AC_MSG_WARN([expat is missing or unusable; some features may be disabled.])
+else
+ save_LIBS=$LIBS
+ LIBS="$LIBS $LIBEXPAT"
+ AC_CHECK_FUNCS(XML_StopParser)
+ LIBS=$save_LIBS
+fi
+
# ------------------------- #
# Checks for header files. #
# ------------------------- #
AC_CHECK_HEADERS(machine/reg.h)
AC_CHECK_HEADERS(poll.h sys/poll.h)
AC_CHECK_HEADERS(proc_service.h thread_db.h gnu/libc-version.h)
+AC_CHECK_HEADERS(signal.h)
AC_CHECK_HEADERS(stddef.h)
AC_CHECK_HEADERS(stdlib.h)
AC_CHECK_HEADERS(stdint.h)
AC_CHECK_HEADERS(sys/filio.h)
AC_CHECK_HEADERS(sys/ioctl.h)
AC_CHECK_HEADERS(sys/param.h)
+AC_CHECK_HEADERS(sys/resource.h)
AC_CHECK_HEADERS(sys/proc.h, [], [],
[#if HAVE_SYS_PARAM_H
# include <sys/param.h>
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
- Solaris 2.[789] when using GCC. ]])
+ [Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
+ Solaris 2.[789] when using GCC. ])
fi ;;
esac
AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h)
# 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
+# Create a header we can use portably to get the standard integer types.
+GCC_HEADER_STDINT(gdb_stdint.h)
# ------------------------- #
# Checks for declarations. #
# ------------------------- #
-gcc_AC_CHECK_DECLS(getopt)
+AC_CHECK_DECLS([free, malloc, realloc])
+AC_CHECK_DECLS([strerror, strstr])
+AC_CHECK_DECLS([getopt, snprintf, vsnprintf])
+
+# ----------------------- #
+# Checks for structures. #
+# ----------------------- #
+
+AC_CHECK_MEMBERS([struct stat.st_blocks])
+AC_CHECK_MEMBERS([struct stat.st_blksize])
# ------------------ #
# Checks for types. #
# ------------------ #
AC_TYPE_SIGNAL
+AC_CHECK_TYPES(socklen_t, [], [],
+[#include <sys/types.h>
+#include <sys/socket.h>
+])
+AC_CHECK_TYPES(uintptr_t, [], [], [#include <stdint.h>])
# ------------------------------------- #
# Checks for compiler characteristics. #
AC_FUNC_MMAP
AC_FUNC_VFORK
AC_CHECK_FUNCS(canonicalize_file_name realpath)
+AC_CHECK_FUNCS(getrusage)
+AC_CHECK_FUNCS(getuid getgid)
AC_CHECK_FUNCS(poll)
AC_CHECK_FUNCS(pread64)
AC_CHECK_FUNCS(sbrk)
#endif
'
# There is no point in checking if we don't have a prototype.
-gcc_AC_CHECK_DECLS(ptrace, , [
+AC_CHECK_DECLS(ptrace, [], [
: ${gdb_cv_func_ptrace_ret='int'}
: ${gdb_cv_func_ptrace_args='int,int,long,long'}
], $gdb_ptrace_headers)
[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
+# Check if <sys/proc.h> defines `struct thread' with a td_pcb member.
+AC_CHECK_MEMBERS([struct thread.td_pcb], [], [],
+[#include <sys/param.h>
+#include <sys/proc.h>
+])
# See if <sys/lwp.h> defines `struct lwp`.
AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp,
# 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,
-[AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_fs;],
-gdb_cv_struct_reg_r_fs=yes, gdb_cv_struct_reg_r_fs=no)])
-if test $gdb_cv_struct_reg_r_fs = yes; then
- AC_DEFINE(HAVE_STRUCT_REG_R_FS)
-fi
-AC_CACHE_CHECK([for r_gs in struct reg], gdb_cv_struct_reg_r_gs,
-[AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_gs;],
-gdb_cv_struct_reg_r_gs=yes, gdb_cv_struct_reg_r_gs=no)])
-if test $gdb_cv_struct_reg_r_gs = yes; then
- AC_DEFINE(HAVE_STRUCT_REG_R_GS)
-fi
+AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [],
+ [#include <machine/reg.h>])
# See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
AC_MSG_CHECKING(for PTRACE_GETREGS)
[gdb_cv_have_ptrace_getregs=no])])
AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
if test $gdb_cv_have_ptrace_getregs = yes; then
- AC_DEFINE(HAVE_PTRACE_GETREGS)
+ AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
+ [Define if sys/ptrace.h defines the PTRACE_GETREGS request.])
fi
# See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
[gdb_cv_have_ptrace_getfpxregs=no])])
AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
if test $gdb_cv_have_ptrace_getfpxregs = yes; then
- AC_DEFINE(HAVE_PTRACE_GETFPXREGS)
+ AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
+ [Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.])
fi
# See if <sys/ptrace.h> provides the PT_GETDBREGS request.
[gdb_cv_have_pt_getdbregs=no])])
AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
if test $gdb_cv_have_pt_getdbregs = yes; then
- AC_DEFINE(HAVE_PT_GETDBREGS)
+ AC_DEFINE(HAVE_PT_GETDBREGS, 1,
+ [Define if sys/ptrace.h defines the PT_GETDBREGS request.])
fi
# See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
[gdb_cv_have_pt_getxmmregs=no])])
AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
if test $gdb_cv_have_pt_getxmmregs = yes; then
- 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(free)
-BFD_NEED_DECLARATION(strerror)
-BFD_NEED_DECLARATION(strdup)
-BFD_NEED_DECLARATION(strstr)
-BFD_NEED_DECLARATION(canonicalize_file_name)
-
-# The following save_state_t checkery is only necessary for HPUX
-# versions earlier than 10.20. When those fade from memory, this
-# could be expunged. --jsm 1999-03-22
-
-AC_MSG_CHECKING(for HPUX save_state structure)
-AC_EGREP_HEADER(save_state_t, machine/save_state.h,
- gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
-AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
- gdb_cv_hpux_sswide=no)
-if test $gdb_cv_hpux_savestate = yes
-then
- AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
+ AC_DEFINE(HAVE_PT_GETXMMREGS, 1,
+ [Define if sys/ptrace.h defines the PT_GETXMMREGS request.])
fi
-if test $gdb_cv_hpux_sswide = yes
-then
- AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
-fi
-AC_MSG_RESULT($gdb_cv_hpux_sswide)
-
-# If we are configured native on GNU/Linux, work around problems with
-# sys/procfs.h
-# Also detect which type of /proc is in use, such as for Unixware or Solaris.
+# Detect which type of /proc is in use, such as for Unixware or Solaris.
if test "${target}" = "${host}"; then
case "${host}" in
- i[[3456]]86-*-linux*)
- AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
- AC_DEFINE(sys_quotactl)
- ;;
- ia64-*-aix*)
- AC_DEFINE(NEW_PROC_API)
- ;;
*-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
- AC_DEFINE(NEW_PROC_API)
+ AC_DEFINE(NEW_PROC_API, 1,
+ [Define if you want to use new multi-fd /proc interface
+ (replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
;;
*-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]])
- AC_DEFINE(NEW_PROC_API)
+ AC_DEFINE(NEW_PROC_API, 1,
+ [Define if you want to use new multi-fd /proc interface
+ (replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
;;
mips-sgi-irix5*)
# Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5.
- AC_DEFINE([_KMEMUSER], 1)
+ AC_DEFINE([_KMEMUSER], 1,
+ [Define to 1 so <sys/proc.h> gets a definition of anon_hdl. Works
+ around a <sys/proc.h> problem on IRIX 5.])
;;
esac
fi
gdb_cv_prfpregset_t_broken=yes)])
AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
if test $gdb_cv_prfpregset_t_broken = yes; then
- AC_DEFINE(PRFPREGSET_T_BROKEN)
+ AC_DEFINE(PRFPREGSET_T_BROKEN, 1,
+ [Define if the prfpregset_t type is broken.])
fi
fi
gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
if test $gdb_cv_have_procfs_piocset = yes; then
- AC_DEFINE(HAVE_PROCFS_PIOCSET)
+ AC_DEFINE(HAVE_PROCFS_PIOCSET, 1,
+ [Define if ioctl argument PIOCSET is available.])
fi
fi
gdb_cv_have_struct_link_map_with_l_members=no)])
AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members)
if test $gdb_cv_have_struct_link_map_with_l_members = yes; then
- AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS)
+ AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS,1,
+ [Define if <link.h> exists and defines struct link_map which has
+ members with an ``l_'' prefix. (For Solaris, SVR4, and
+ SVR4-like systems.)])
fi
dnl Check for struct link_map with lm_ members which are indicative
gdb_cv_have_struct_link_map_with_lm_members=no)])
AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members)
if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then
- AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS)
+ AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS, 1,
+ [Define if <link.h> exists and defines struct link_map which has
+ members with an ``lm_'' prefix. (For SunOS.)])
fi
dnl Check for struct so_map with som_ members which are found on
gdb_cv_have_struct_so_map_with_som_members=no)])
AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members)
if test $gdb_cv_have_struct_so_map_with_som_members = yes; then
- AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS)
+ AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS, 1,
+ [Define if <link.h> exists and defines a struct so_map which has
+ members with an ``som_'' prefix. (Found on older *BSD systems.)])
fi
dnl Check for struct link_map32 type, which allows a 64-bit Solaris
gdb_cv_have_struct_link_map32=no)])
AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
if test $gdb_cv_have_struct_link_map32 = yes; then
- AC_DEFINE(HAVE_STRUCT_LINK_MAP32)
- AC_DEFINE(_SYSCALL32)
+ AC_DEFINE(HAVE_STRUCT_LINK_MAP32, 1,
+ [Define if <sys/link.h> has struct link_map32])
+ AC_DEFINE(_SYSCALL32, 1,
+ [Define if <sys/link.h> has link_map32 (solaris sparc-64 target)])
fi
fi
-dnl See if compiler supports "long long" type.
+# Check if the compiler supports the `long long' type.
-AC_MSG_CHECKING(for long long support in compiler)
-AC_CACHE_VAL(gdb_cv_c_long_long,
-[AC_TRY_COMPILE(, [
- extern long long foo;
- switch (foo & 2) { case 0: return 1; }
-],
-gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
-AC_MSG_RESULT($gdb_cv_c_long_long)
+AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long,
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
+[[extern long long foo;]],
+[[switch (foo & 2) { case 0: return 1; }]])],
+ gdb_cv_c_long_long=yes,
+ gdb_cv_c_long_long=no)])
if test $gdb_cv_c_long_long = yes; then
- AC_DEFINE(CC_HAS_LONG_LONG)
+ AC_DEFINE(CC_HAS_LONG_LONG, 1,
+ [Define to 1 if the compiler supports long long.])
fi
-dnl See if the compiler and runtime support printing long long
+# Check if the compiler and runtime support printing long longs.
-AC_MSG_CHECKING(for long long support in printf)
-AC_CACHE_VAL(gdb_cv_printf_has_long_long,
-[AC_TRY_RUN([
-int main () {
- char buf[32];
+AC_CACHE_CHECK([for long long support in printf],
+ gdb_cv_printf_has_long_long,
+ [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
+[[char buf[32];
long long l = 0;
l = (l << 16) + 0x0123;
l = (l << 16) + 0x4567;
l = (l << 16) + 0x89ab;
l = (l << 16) + 0xcdef;
sprintf (buf, "0x%016llx", l);
- return (strcmp ("0x0123456789abcdef", buf));
-}],
-gdb_cv_printf_has_long_long=yes,
-gdb_cv_printf_has_long_long=no,
-gdb_cv_printf_has_long_long=no)])
+ return (strcmp ("0x0123456789abcdef", buf));]])],
+ gdb_cv_printf_has_long_long=yes,
+ gdb_cv_printf_has_long_long=no,
+ gdb_cv_printf_has_long_long=no)])
if test $gdb_cv_printf_has_long_long = yes; then
- AC_DEFINE(PRINTF_HAS_LONG_LONG)
+ AC_DEFINE(PRINTF_HAS_LONG_LONG, 1,
+ [Define to 1 if the "%ll" format works to print long longs.])
fi
-AC_MSG_RESULT($gdb_cv_printf_has_long_long)
-
-dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
-dnl because autoconf complains about cross-compilation issues. However, this
-dnl code uses the same variables as the macro for compatibility.
-
-AC_MSG_CHECKING(for long double support in compiler)
-AC_CACHE_VAL(ac_cv_c_long_double,
-[AC_TRY_COMPILE(, [long double foo;],
-ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
-AC_MSG_RESULT($ac_cv_c_long_double)
-if test $ac_cv_c_long_double = yes; then
- AC_DEFINE(HAVE_LONG_DOUBLE)
+
+# Check if the compiler supports the `long double' type. We can't use
+# AC_C_LONG_DOUBLE because that one does additional checks on the
+# constants defined in <float.h> that fail on some systems,
+# e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6.
+
+AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double,
+ [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])],
+ gdb_cv_c_long_double=yes,
+ gdb_cv_c_long_double=no)])
+if test $gdb_cv_c_long_double = yes; then
+ AC_DEFINE(HAVE_LONG_DOUBLE, 1,
+ [Define to 1 if the compiler supports long double.])
fi
-dnl See if the compiler and runtime support printing long doubles
+# Check if the compiler and runtime support printing long doubles.
-AC_MSG_CHECKING(for long double support in printf)
-AC_CACHE_VAL(gdb_cv_printf_has_long_double,
-[AC_TRY_RUN([
-int main () {
- char buf[16];
+AC_CACHE_CHECK([for long double support in printf],
+ gdb_cv_printf_has_long_double,
+ [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
+[[char buf[16];
long double f = 3.141592653;
sprintf (buf, "%Lg", f);
- return (strncmp ("3.14159", buf, 7));
-}],
-gdb_cv_printf_has_long_double=yes,
-gdb_cv_printf_has_long_double=no,
-gdb_cv_printf_has_long_double=no)])
+ return (strncmp ("3.14159", buf, 7));]])],
+ gdb_cv_printf_has_long_double=yes,
+ gdb_cv_printf_has_long_double=no,
+ gdb_cv_printf_has_long_double=no)])
if test $gdb_cv_printf_has_long_double = yes; then
- AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
+ AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1,
+ [Define to 1 if the "%Lg" format works to print long doubles.])
fi
-AC_MSG_RESULT($gdb_cv_printf_has_long_double)
-dnl See if the compiler and runtime support scanning long doubles
+# Check if the compiler and runtime support scanning long doubles.
-AC_MSG_CHECKING(for long double support in scanf)
-AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
-[AC_TRY_RUN([
-int main () {
- char *buf = "3.141592653";
+AC_CACHE_CHECK([for long double support in scanf],
+ gdb_cv_scanf_has_long_double,
+ [AC_RUN_IFELSE([AC_LANG_PROGRAM(
+[[#include <stdio.h>]],
+[[char *buf = "3.141592653";
long double f = 0;
sscanf (buf, "%Lg", &f);
- return !(f > 3.14159 && f < 3.14160);
-}],
-gdb_cv_scanf_has_long_double=yes,
-gdb_cv_scanf_has_long_double=no,
-gdb_cv_scanf_has_long_double=no)])
+ return !(f > 3.14159 && f < 3.14160);]])],
+ gdb_cv_scanf_has_long_double=yes,
+ gdb_cv_scanf_has_long_double=no,
+ gdb_cv_scanf_has_long_double=no)])
if test $gdb_cv_scanf_has_long_double = yes; then
- AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
+ AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1,
+ [Define to 1 if the "%Lg" format works to scan long doubles.])
fi
-AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
case ${host_os} in
aix*)
if test -f /usr/include/dce/cma_config.h ; then
if test "$GCC" = "yes" ; then
AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
+ AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT, 1,
+ [Define if you have HPUX threads])
CONFIG_OBS="${CONFIG_OBS} hpux-thread.o"
CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
else
AC_MSG_CHECKING(for Solaris thread debugging library)
if test -f /usr/lib/libthread_db.so.1 ; then
AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_THREAD_DB_LIB)
+ AC_DEFINE(HAVE_THREAD_DB_LIB, 1,
+ [Define if using Solaris thread debugging.])
CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
AC_CHECK_LIB(dl, dlopen)
])
AC_MSG_RESULT($gdb_cv_proc_service_is_old)
if test $gdb_cv_proc_service_is_old = yes; then
- AC_DEFINE(PROC_SERVICE_IS_OLD)
+ AC_DEFINE(PROC_SERVICE_IS_OLD, 1,
+ [Define if <proc_service.h> on solaris uses int instead of
+ size_t, and assorted other type changes.])
fi
else
AC_MSG_RESULT(no)
AC_SUBST(CONFIG_LDFLAGS)
fi
-dnl See if we have a thread_db header file that has TD_NOTALLOC.
+dnl See if we have a thread_db header file that has TD_NOTALLOC and
+dnl other error codes.
if test "x$ac_cv_header_thread_db_h" = "xyes"; then
AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
gdb_cv_thread_db_h_has_td_notalloc,
gdb_cv_thread_db_h_has_td_notalloc=no
)
)
+ AC_CACHE_CHECK([whether <thread_db.h> has TD_VERSION],
+ gdb_cv_thread_db_h_has_td_version,
+ AC_TRY_COMPILE(
+ [#include <thread_db.h>],
+ [int i = TD_VERSION;],
+ gdb_cv_thread_db_h_has_td_version=yes,
+ gdb_cv_thread_db_h_has_td_version=no
+ )
+ )
+ AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTLS],
+ gdb_cv_thread_db_h_has_td_notls,
+ AC_TRY_COMPILE(
+ [#include <thread_db.h>],
+ [int i = TD_NOTLS;],
+ gdb_cv_thread_db_h_has_td_notls=yes,
+ gdb_cv_thread_db_h_has_td_notls=no
+ )
+ )
fi
if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
[Define if <thread_db.h> has the TD_NOTALLOC error code.])
fi
+if test "x$gdb_cv_thread_db_h_has_td_version" = "xyes"; then
+ AC_DEFINE(THREAD_DB_HAS_TD_VERSION, 1,
+ [Define if <thread_db.h> has the TD_VERSION error code.])
+fi
+if test "x$gdb_cv_thread_db_h_has_td_notls" = "xyes"; then
+ AC_DEFINE(THREAD_DB_HAS_TD_NOTLS, 1,
+ [Define if <thread_db.h> has the TD_NOTLS 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
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.])
+ AC_DEFINE(HAVE_TKILL_SYSCALL, 1, [Define if you support the tkill syscall.])
fi
dnl Handle optional features that can be enabled.
TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
- if test "x$exec_prefix" = xNONE; then
- if test "x$prefix" = xNONE; then
- test_prefix=/usr/local
- else
- test_prefix=$prefix
- fi
+ if test "x$prefix" = xNONE; then
+ test_prefix=/usr/local
else
- test_prefix=$exec_prefix
+ test_prefix=$prefix
+ fi
+ if test "x$exec_prefix" = xNONE || test "x$exec_prefix" = 'x${prefix}'; then
+ test_exec_prefix=$test_prefix
+ else
+ test_exec_prefix=$exec_prefix
fi
case ${TARGET_SYSTEM_ROOT} in
"${test_prefix}"|"${test_prefix}/"*|\
+ "${test_exec_prefix}"|"${test_exec_prefix}/"*|\
+ '${prefix}'|'${prefix}/'*|\
'${exec_prefix}'|'${exec_prefix}/'*)
t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
TARGET_SYSTEM_ROOT_DEFINE="$t"
AC_SUBST(TARGET_SYSTEM_ROOT)
AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
-# NOTE: Don't add -Wall or -Wunused, they both include
-# -Wunused-parameter which reports bogus warnings.
-# NOTE: If you add to this list, remember to update
+AC_ARG_ENABLE(werror,
+ [ --enable-werror treat compile warnings as errors],
+ [case "${enableval}" in
+ yes | y) ERROR_ON_WARNING="yes" ;;
+ no | n) ERROR_ON_WARNING="no" ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --enable-werror) ;;
+ esac])
+
+# Enable -Werror by default when using gcc
+if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then
+ ERROR_ON_WARNING=yes
+fi
+
+WERROR_CFLAGS=""
+if test "${ERROR_ON_WARNING}" = yes ; then
+ WERROR_CFLAGS="-Werror"
+fi
+
+# The entries after -Wno-pointer-sign are disabled warnings which may
+# be enabled in the future, which can not currently be used to build
+# GDB.
+# NOTE: If you change this list, remember to update
# gdb/doc/gdbint.texinfo.
-build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
--Wformat -Wparentheses -Wpointer-arith -Wuninitialized -Wformat-nonliteral \
--Wunused-label -Wunused-function"
-# Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
-# -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
-# -Woverloaded-virtual -Winline -Werror"
+build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \
+-Wformat-nonliteral -Wno-pointer-sign \
+-Wno-unused -Wno-switch -Wno-char-subscripts"
+
AC_ARG_ENABLE(build-warnings,
[ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
[case "${enableval}" in
echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
fi])dnl
WARN_CFLAGS=""
-WERROR_CFLAGS=""
if test "x${build_warnings}" != x -a "x$GCC" = xyes
then
AC_MSG_CHECKING(compiler warning flags)
CFLAGS="$saved_CFLAGS"
esac
done
- AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
+ AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS})
fi
AC_SUBST(WARN_CFLAGS)
AC_SUBST(WERROR_CFLAGS)
dnl Figure out which of the many generic ser-*.c files the _host_ supports.
-SER_HARDWIRE="ser-unix.o ser-pipe.o ser-tcp.o"
+SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o"
case ${host} in
*go32* ) SER_HARDWIRE=ser-go32.o ;;
*djgpp* ) SER_HARDWIRE=ser-go32.o ;;
+ *mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;;
esac
AC_SUBST(SER_HARDWIRE)
;;
esac
fi
+
+# The ser-tcp.c module requires sockets.
+case ${host} in
+ *mingw32*)
+ AC_DEFINE(USE_WIN32API, 1,
+ [Define if we should use the Windows API, instead of the
+ POSIX API. On Windows, we use the Windows API when
+ building for MinGW, but the POSIX API when building
+ for Cygwin.])
+ WIN32LIBS="$WIN32LIBS -lws2_32"
+ ;;
+esac
AC_SUBST(WIN32LIBS)
+# Add any host-specific objects to GDB.
+CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
+
LIBGUI="../libgui/src/libgui.a"
GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
AC_SUBST(LIBGUI)
fi
ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
- # Tcl/Tk 8.1 require -fwritable strings. I don't
- # know whether 8.2 will or not, but I bet it will.
- # I don't have to worry about 7.x since we don't support it.
- GDBTK_CFLAGS=""
- if test "$GCC" = "yes"; then
- if test "$TCL_VERSION" != "8.0" ; then
- GDBTK_CFLAGS="-fwritable-strings"
- fi
- fi
# Include some libraries that Tcl and Tk want.
TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
else
IGNORE_SIM=""
IGNORE_SIM_OBS=""
- AC_DEFINE(WITH_SIM)
+ AC_DEFINE(WITH_SIM, 1, [Define if the simulator is being linked in.])
fi
AC_SUBST(IGNORE_SIM)
AC_SUBST(IGNORE_SIM_OBS)
AC_SUBST(target_subdir)
frags=
-if test "${target}" = "${host}"; then
+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}")
' ${host_makefile_frag}`
targetfile=`sed -n '
-s/DEPRECATED_TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
+s/^[ ]*DEPRECATED_TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
' ${target_makefile_frag}`
-if test "${target}" = "${host}"; then
+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 '
AC_CONFIG_SUBDIRS(multi-ice)
fi
-# We only build gdbserver automatically if host and target are the same.
-if test "x$target" = "x$host"; then
+# We only build gdbserver automatically in a native configuration.
+if test "$gdb_native" = "yes"; then
AC_MSG_CHECKING(whether gdbserver is supported on this host)
if test "x$build_gdbserver" = xyes; then
AC_MSG_RESULT(yes)
esac
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}", [hostfile])
fi
AC_SUBST(xm_h)
esac
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}", [targetfile])
fi
AC_SUBST(tm_h)
esac
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}", [nativefile])
fi
AC_SUBST(nm_h)