| Index: gdb/configure.ac
|
| diff --git a/gdb/configure.ac b/gdb/configure.ac
|
| index 15c4f163cbf7e2e46c46dd3b500e361f4e1d5dab..7c37f25edbb2b3959a004be490e1f23cb24d6361 100644
|
| --- a/gdb/configure.ac
|
| +++ b/gdb/configure.ac
|
| @@ -1,5 +1,5 @@
|
| dnl Autoconf configure script for GDB, the GNU debugger.
|
| -dnl Copyright (C) 1995-2012 Free Software Foundation, Inc.
|
| +dnl Copyright (C) 1995-2013 Free Software Foundation, Inc.
|
| dnl
|
| dnl This file is part of GDB.
|
| dnl
|
| @@ -23,10 +23,8 @@ AC_INIT(main.c)
|
| AC_CONFIG_HEADER(config.h:config.in)
|
| AM_MAINTAINER_MODE
|
|
|
| -# Provide more thorough testing by -lmcheck.
|
| -# Set it to 'true' for development snapshots, 'false' for releases or
|
| -# pre-releases.
|
| -development=false
|
| +# Set the 'development' global.
|
| +. $srcdir/development.sh
|
|
|
| AC_PROG_CC
|
| AC_USE_SYSTEM_EXTENSIONS
|
| @@ -203,6 +201,7 @@ fi
|
|
|
| TARGET_OBS=
|
| all_targets=
|
| +HAVE_NATIVE_GCORE_TARGET=
|
|
|
| for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
|
| do
|
| @@ -236,6 +235,12 @@ do
|
| if test x${want64} = xfalse; then
|
| . ${srcdir}/../bfd/config.bfd
|
| fi
|
| +
|
| + # Check whether this target is native and supports gcore.
|
| + if test $gdb_native = yes -a "$targ_alias" = "$target_alias" \
|
| + && $gdb_have_gcore; then
|
| + HAVE_NATIVE_GCORE_TARGET=1
|
| + fi
|
| fi
|
| done
|
|
|
| @@ -264,6 +269,7 @@ if test x${all_targets} = xtrue; then
|
| fi
|
|
|
| AC_SUBST(TARGET_OBS)
|
| +AC_SUBST(HAVE_NATIVE_GCORE_TARGET)
|
|
|
| # For other settings, only the main target counts.
|
| gdb_sim=
|
| @@ -478,8 +484,15 @@ AC_CHECK_TOOL(AR, ar)
|
| AC_CHECK_TOOL(DLLTOOL, dlltool)
|
| AC_CHECK_TOOL(WINDRES, windres)
|
|
|
| -# Needed for GNU/Hurd.
|
| -AC_CHECK_TOOL(MIG, mig)
|
| +case $host_os in
|
| + gnu*)
|
| + # Needed for GNU Hurd hosts.
|
| + AC_CHECK_TOOL(MIG, mig)
|
| + if test x"$MIG" = x; then
|
| + AC_MSG_ERROR([MIG not found but required for $host hosts])
|
| + fi
|
| + ;;
|
| +esac
|
|
|
| # ---------------------- #
|
| # Checks for libraries. #
|
| @@ -645,11 +658,6 @@ AC_SUBST(READLINE_DEPS)
|
| AC_SUBST(READLINE_CFLAGS)
|
| AC_SUBST(READLINE_TEXI_INCFLAG)
|
|
|
| -dnl -lmcheck provides cheap enough memory mangling for debugging purposes.
|
| -if $development; then
|
| - AC_CHECK_LIB(mcheck, main)
|
| -fi
|
| -
|
| # Generate jit-reader.h
|
|
|
| # This is typedeffed to GDB_CORE_ADDR in jit-reader.h
|
| @@ -704,6 +712,10 @@ else
|
| fi
|
| fi
|
|
|
| +# --------------------- #
|
| +# Check for libpython. #
|
| +# --------------------- #
|
| +
|
| dnl Utility to simplify finding libpython.
|
| dnl $1 = pythonX.Y
|
| dnl $2 = the shell variable to assign the result to
|
| @@ -994,12 +1006,43 @@ if test "${have_libpython}" != no; then
|
| # unilaterally defined, and that in turn causes _SGIAPI to evaluate
|
| # to false. So, we work around this issue by defining siginfo ourself
|
| # though the command-line.
|
| + #
|
| + # On x64 Windows, Python's include headers, and pyconfig.h in
|
| + # particular, rely on MS_WIN64 macro to detect that it's a 64bit
|
| + # version of Windows. Unfortunately, MS_WIN64 is only defined if
|
| + # _MSC_VER, a Microsoft-specific macro, is defined. So, when
|
| + # building on x64 Windows with GCC, we define MS_WIN64 ourselves.
|
| + # The issue was reported to the Python community, but still isn't
|
| + # solved as of 2012-10-02 (http://bugs.python.org/issue4709).
|
| +
|
| case "$gdb_host" in
|
| irix*) if test "${GCC}" = yes; then
|
| CPPFLAGS="$CPPFLAGS -Dsiginfo=__siginfo"
|
| fi
|
| ;;
|
| + mingw64)
|
| + if test "${GCC}" = yes; then
|
| + CPPFLAGS="$CPPFLAGS -DMS_WIN64"
|
| + fi
|
| + ;;
|
| esac
|
| +
|
| + # Note that "python -m threading" cannot be used to check for
|
| + # threading support due to a bug in Python 2.7.3
|
| + # (http://bugs.python.org/issue15567).
|
| + AC_MSG_CHECKING(whether python supports threads)
|
| + saved_CPPFLAGS="${CPPFLAGS}"
|
| + CPPFLAGS="${PYTHON_CPPFLAGS}"
|
| + # Note that the test is reversed so that python_has_threads=yes on
|
| + # unexpected failures.
|
| + AC_PREPROC_IFELSE(AC_LANG_SOURCE([[
|
| +#include <Python.h>
|
| +#ifdef WITH_THREAD
|
| +# error
|
| +#endif
|
| + ]]), [python_has_threads=no], [python_has_threads=yes])
|
| + AC_MSG_RESULT(${python_has_threads})
|
| + CPPFLAGS="${saved_CPPFLAGS}"
|
| else
|
| # Even if Python support is not compiled in, we need to have these files
|
| # included.
|
| @@ -1011,33 +1054,43 @@ AC_SUBST(PYTHON_CFLAGS)
|
| AC_SUBST(PYTHON_CPPFLAGS)
|
| AC_SUBST(PYTHON_LIBS)
|
|
|
| +# --------------------- #
|
| +# Check for libmcheck. #
|
| +# --------------------- #
|
| +
|
| +# Enable -lmcheck by default (it provides cheap-enough memory mangling),
|
| +# but turn it off if Python is enabled with threads, since -lmcheck is
|
| +# not thread safe (http://sourceware.org/bugzilla/show_bug.cgi?id=9939),
|
| +# and for releases.
|
| +if test \( "${have_libpython}" = "no" -o "${python_has_threads}" = "no" \) \
|
| + && $development; then
|
| + libmcheck_default=yes
|
| +else
|
| + libmcheck_default=no
|
| +fi
|
| +GDB_AC_LIBMCHECK(${libmcheck_default})
|
| +
|
| +if test "$ENABLE_LIBMCHECK" = "yes" \
|
| + -a "${have_libpython}" != "no" \
|
| + -a "${python_has_threads}" = "yes" ; then
|
| + AC_MSG_WARN(--enable-libmcheck may lead to spurious crashes if threads are used in python)
|
| +fi
|
| +
|
| # ------------------------- #
|
| # Checks for header files. #
|
| # ------------------------- #
|
|
|
| -AC_HEADER_DIRENT
|
| -AC_HEADER_STAT
|
| AC_HEADER_STDC
|
| # elf_hp.h is for HP/UX 64-bit shared library support.
|
| -# FIXME: kettenis/20030102: In most cases we include these (ctype.h, time.h)
|
| -# unconditionally, so what's the point in checking these?
|
| AC_CHECK_HEADERS([nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \
|
| - thread_db.h signal.h stddef.h \
|
| - stdlib.h string.h memory.h strings.h sys/fault.h \
|
| + thread_db.h \
|
| + sys/fault.h \
|
| sys/file.h sys/filio.h sys/ioctl.h sys/param.h \
|
| sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \
|
| sys/reg.h sys/debugreg.h sys/select.h sys/syscall.h \
|
| - sys/types.h sys/wait.h wait.h termios.h termio.h \
|
| - sgtty.h unistd.h elf_hp.h ctype.h time.h locale.h \
|
| - dlfcn.h sys/socket.h sys/un.h])
|
| -AC_CHECK_HEADERS(link.h, [], [],
|
| -[#if HAVE_SYS_TYPES_H
|
| -# include <sys/types.h>
|
| -#endif
|
| -#if HAVE_NLIST_H
|
| -# include <nlist.h>
|
| -#endif
|
| -])
|
| + termios.h termio.h \
|
| + sgtty.h elf_hp.h \
|
| + dlfcn.h])
|
| AC_CHECK_HEADERS(sys/proc.h, [], [],
|
| [#if HAVE_SYS_PARAM_H
|
| # include <sys/param.h>
|
| @@ -1071,8 +1124,7 @@ AC_CHECK_HEADERS(term.h, [], [],
|
| # Checks for declarations. #
|
| # ------------------------- #
|
|
|
| -AC_CHECK_DECLS([free, malloc, realloc, strerror, strstr, getopt,
|
| - snprintf, vsnprintf])
|
| +AC_CHECK_DECLS([free, malloc, realloc, snprintf])
|
| AM_LC_MESSAGES
|
|
|
| # ----------------------- #
|
| @@ -1109,17 +1161,17 @@ AC_FUNC_VFORK
|
| AC_CHECK_FUNCS([canonicalize_file_name realpath getrusage getuid getgid \
|
| pipe poll pread pread64 pwrite readlink resize_term \
|
| sbrk setpgid setpgrp setsid \
|
| - sigaction sigprocmask sigsetmask socketpair syscall \
|
| + sigaction sigprocmask sigsetmask socketpair \
|
| ttrace wborder wresize setlocale iconvlist libiconvlist btowc \
|
| - setrlimit getrlimit posix_madvise waitpid lstat])
|
| + setrlimit getrlimit posix_madvise waitpid lstat \
|
| + ptrace64])
|
| AM_LANGINFO_CODESET
|
| +GDB_AC_COMMON
|
|
|
| # 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
|
| +#include <sys/types.h>
|
| #if HAVE_SYS_PTRACE_H
|
| # include <sys/ptrace.h>
|
| #endif
|
| @@ -1152,7 +1204,7 @@ 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' 'void *'; do
|
| - for gdb_arg4 in 'int' 'long'; do
|
| + for gdb_arg4 in 'int' 'long' 'void *'; do
|
| AC_TRY_COMPILE($gdb_ptrace_headers, [
|
| extern $gdb_cv_func_ptrace_ret
|
| ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4);
|
| @@ -1179,6 +1231,8 @@ IFS=$ac_save_IFS
|
| shift
|
| AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG3, $[3],
|
| [Define to the type of arg 3 for ptrace.])
|
| +AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG4, $[4],
|
| + [Define to the type of arg 4 for ptrace.])
|
| if test -n "$[5]"; then
|
| AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG5, $[5],
|
| [Define to the type of arg 5 for ptrace.])
|
| @@ -1334,19 +1388,17 @@ if test $gdb_cv_have_pt_getxmmregs = yes; then
|
| [Define if sys/ptrace.h defines the PT_GETXMMREGS request.])
|
| fi
|
|
|
| -# 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 Solaris.
|
|
|
| if test "${target}" = "${host}"; then
|
| case "${host}" in
|
| - *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
|
| + *-*-sysv4.2* | *-*-sysv5* )
|
| 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).])
|
| + [Define if you want to use new multi-fd /proc interface.])
|
| ;;
|
| *-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]]*)
|
| 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).])
|
| + [Define if you want to use new multi-fd /proc interface.])
|
| ;;
|
| mips-sgi-irix5*)
|
| # Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5.
|
| @@ -1358,14 +1410,11 @@ if test "${target}" = "${host}"; then
|
| fi
|
|
|
| if test "$ac_cv_header_sys_procfs_h" = yes; then
|
| - BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
|
| - BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
|
| BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
|
| BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
|
| BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
|
| BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
|
| BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
|
| - BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
|
| BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
|
| BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
|
| BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
|
| @@ -1400,99 +1449,6 @@ if test "$ac_cv_header_sys_procfs_h" = yes; then
|
| [Define if the prfpregset_t type is broken.])
|
| fi
|
| fi
|
| -
|
| - dnl Check for PIOCSET ioctl entry
|
| -
|
| - AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
|
| - AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
|
| - [AC_TRY_COMPILE([#include <unistd.h>
|
| -#include <sys/types.h>
|
| -#include <sys/procfs.h>
|
| -], [
|
| - int dummy;;
|
| - dummy = ioctl(0, PIOCSET, &dummy);
|
| - ],
|
| - 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, 1,
|
| - [Define if ioctl argument PIOCSET is available.])
|
| - fi
|
| -fi
|
| -
|
| -dnl For native ports (host == target), check to see what kind of
|
| -dnl legacy link.h support is needed. (See solib-legacy.c.)
|
| -if test ${host} = ${target} ; then
|
| - dnl Check for struct link_map with l_ members which are indicative
|
| - dnl of SVR4-like shared libraries
|
| -
|
| - AC_MSG_CHECKING(for member l_addr in struct link_map)
|
| - AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members,
|
| - [AC_TRY_COMPILE([#include <link.h>],
|
| - [struct link_map lm; (void) lm.l_addr;],
|
| - gdb_cv_have_struct_link_map_with_l_members=yes,
|
| - 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,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
|
| - dnl of SunOS-like shared libraries
|
| -
|
| - AC_MSG_CHECKING(for member lm_addr in struct link_map)
|
| - AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members,
|
| - [AC_TRY_COMPILE([#include <sys/types.h>
|
| -#include <link.h>],
|
| - [struct link_map lm; (void) lm.lm_addr;],
|
| - gdb_cv_have_struct_link_map_with_lm_members=yes,
|
| - 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, 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
|
| - dnl some *BSD systems.
|
| -
|
| - AC_MSG_CHECKING(for member som_addr in struct so_map)
|
| - AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members,
|
| - [AC_TRY_COMPILE([#include <sys/types.h>
|
| -#ifdef HAVE_NLIST_H
|
| -#include <nlist.h>
|
| -#endif
|
| -#include <link.h>],
|
| - [struct so_map lm; (void) lm.som_addr;],
|
| - gdb_cv_have_struct_so_map_with_som_members=yes,
|
| - 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, 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
|
| - dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries.
|
| -
|
| - AC_MSG_CHECKING(for struct link_map32 in sys/link.h)
|
| - AC_CACHE_VAL(gdb_cv_have_struct_link_map32,
|
| - [AC_TRY_COMPILE([#define _SYSCALL32
|
| -#include <sys/link.h>], [struct link_map32 l;],
|
| - gdb_cv_have_struct_link_map32=yes,
|
| - 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, 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
|
|
|
| # Check if the compiler supports the `long long' type.
|
| @@ -1503,9 +1459,9 @@ AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long,
|
| [[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, 1,
|
| - [Define to 1 if the compiler supports long long.])
|
| +if test $gdb_cv_c_long_long != yes; then
|
| + # libdecnumber requires long long.
|
| + AC_MSG_ERROR([Compiler must support long long for GDB.])
|
| fi
|
|
|
| # Check if the compiler and runtime support printing long longs.
|
| @@ -1634,6 +1590,8 @@ if test "${gdb_native}" = yes; then
|
| # Problem does not happen for the recommended libpythonX.Y.so linkage.
|
| old_CFLAGS="$CFLAGS"
|
| CFLAGS="$CFLAGS $PYTHON_CFLAGS"
|
| + old_LIBS="$LIBS"
|
| + LIBS="$LIBS $PYTHON_LIBS"
|
| AC_RUN_IFELSE(
|
| AC_LANG_PROGRAM(
|
| [#include "]${have_libpython}[/Python.h"],
|
| @@ -1643,6 +1601,7 @@ if test "${gdb_native}" = yes; then
|
| Py_Finalize ();
|
| return err == 0 ? 0 : 1;]),
|
| [dynamic_list=true], [], [true])
|
| + LIBS="$old_LIBS"
|
| CFLAGS="$old_CFLAGS"
|
| fi
|
| LDFLAGS="$old_LDFLAGS"
|
| @@ -1782,8 +1741,10 @@ 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 you support the tkill syscall.])
|
| +if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes"; then
|
| + AC_CHECK_FUNC(syscall,
|
| + AC_DEFINE(HAVE_TKILL_SYSCALL, 1, [Define if you support the tkill syscall.])
|
| + )
|
| fi
|
|
|
| dnl Check if we can disable the virtual address space randomization.
|
| @@ -1809,6 +1770,17 @@ then
|
| [Define if you support the personality syscall.])
|
| fi
|
|
|
| +dnl Set the host's .gdbinit filename.
|
| +case $host_os in
|
| + go32* | *djgpp*)
|
| + gdbinit=gdb.ini
|
| + ;;
|
| + *)
|
| + gdbinit=.gdbinit
|
| + ;;
|
| +esac
|
| +AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.])
|
| +
|
| dnl Handle optional features that can be enabled.
|
|
|
| # Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
|
| @@ -1848,21 +1820,18 @@ 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="-Wall -Wdeclaration-after-statement -Wpointer-arith \
|
| --Wformat-nonliteral -Wno-pointer-sign \
|
| +-Wpointer-sign \
|
| -Wno-unused -Wunused-value -Wunused-function \
|
| -Wno-switch -Wno-char-subscripts -Wmissing-prototypes \
|
| --Wdeclaration-after-statement"
|
| +-Wdeclaration-after-statement -Wempty-body -Wmissing-parameter-type \
|
| +-Wold-style-declaration -Wold-style-definition"
|
|
|
| # Enable -Wno-format by default when using gcc on mingw since many
|
| # GCC versions complain about %I64.
|
| case "${host}" in
|
| *-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;;
|
| + *) build_warnings="$build_warnings -Wformat-nonliteral" ;;
|
| esac
|
|
|
| AC_ARG_ENABLE(build-warnings,
|
| @@ -1916,7 +1885,7 @@ AC_SUBST(WERROR_CFLAGS)
|
|
|
| # In the Cygwin environment, we need some additional flags.
|
| AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
|
| -[AC_EGREP_CPP(lose, [
|
| +[AC_EGREP_CPP(^lose$, [
|
| #if defined (__CYGWIN__) || defined (__CYGWIN32__)
|
| lose
|
| #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
|
| @@ -1955,44 +1924,56 @@ esac
|
| AC_SUBST(WIN32LIBS)
|
|
|
| # Add ELF support to GDB, but only if BFD includes ELF support.
|
| -OLD_CFLAGS=$CFLAGS
|
| -OLD_LDFLAGS=$LDFLAGS
|
| -OLD_LIBS=$LIBS
|
| -# Put the old CFLAGS/LDFLAGS last, in case the user's (C|LD)FLAGS
|
| -# points somewhere with bfd, with -I/foo/lib and -L/foo/lib. We
|
| -# always want our bfd.
|
| -CFLAGS="-I${srcdir}/../include -I../bfd -I${srcdir}/../bfd $CFLAGS"
|
| -LDFLAGS="-L../bfd -L../libiberty $LDFLAGS"
|
| -intl=`echo $LIBINTL | sed 's,${top_builddir}/,,g'`
|
| -# -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
|
| -if test "$plugins" = "yes"; then
|
| - LIBS="-ldl $LIBS"
|
| -fi
|
| -LIBS="-lbfd -liberty $intl $LIBS"
|
| -AC_CACHE_CHECK([for ELF support in BFD], gdb_cv_var_elf,
|
| -[AC_TRY_LINK(
|
| -[#include <stdlib.h>
|
| -#include "bfd.h"
|
| -#include "elf-bfd.h"
|
| -],
|
| -[bfd *abfd = NULL; bfd_get_elf_phdr_upper_bound (abfd); ],
|
| -gdb_cv_var_elf=yes, gdb_cv_var_elf=no)])
|
| +GDB_AC_CHECK_BFD([for ELF support in BFD], gdb_cv_var_elf,
|
| + [bfd_get_elf_phdr_upper_bound (NULL)], elf-bfd.h)
|
| if test $gdb_cv_var_elf = yes; then
|
| CONFIG_OBS="$CONFIG_OBS elfread.o stap-probe.o"
|
| AC_DEFINE(HAVE_ELF, 1,
|
| [Define if ELF support should be included.])
|
| # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
|
| if test "$plugins" = "yes"; then
|
| - OLD_LIBS="-ldl $OLD_LIBS"
|
| + AC_SEARCH_LIBS(dlopen, dl)
|
| fi
|
| fi
|
| -CFLAGS=$OLD_CFLAGS
|
| -LDFLAGS=$OLD_LDFLAGS
|
| -LIBS=$OLD_LIBS
|
| +
|
| +# Add macho support to GDB, but only if BFD includes it.
|
| +GDB_AC_CHECK_BFD([for Mach-O support in BFD], gdb_cv_var_macho,
|
| + [bfd_mach_o_lookup_command (NULL, 0, NULL)], mach-o.h)
|
| +if test $gdb_cv_var_macho = yes; then
|
| + CONFIG_OBS="$CONFIG_OBS machoread.o"
|
| +fi
|
| +
|
| +# Add SOM support to GDB, but only if BFD includes it.
|
| +GDB_AC_CHECK_BFD([for SOM support in BFD], gdb_cv_var_som,
|
| + [bfd_som_attach_aux_hdr (NULL, 0, NULL)], som.h)
|
| +if test $gdb_cv_var_som = yes; then
|
| + CONFIG_OBS="$CONFIG_OBS somread.o"
|
| +fi
|
|
|
| # Add any host-specific objects to GDB.
|
| CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
|
|
|
| +# If building on ELF, look for lzma support for embedded compressed debug info.
|
| +if test $gdb_cv_var_elf = yes; then
|
| + AC_ARG_WITH(lzma,
|
| + AS_HELP_STRING([--with-lzma], [support lzma compression (auto/yes/no)]),
|
| + [], [with_lzma=auto])
|
| + AC_MSG_CHECKING([whether to use lzma])
|
| + AC_MSG_RESULT([$with_lzma])
|
| +
|
| + if test "${with_lzma}" != no; then
|
| + AC_LIB_HAVE_LINKFLAGS([lzma], [], [#include "lzma.h"],
|
| + [lzma_index_iter iter;
|
| + lzma_index_iter_init (&iter, 0);
|
| + lzma_mf_is_supported (LZMA_MF_HC3);])
|
| + if test "$HAVE_LIBLZMA" != yes; then
|
| + if test "$with_lzma" = yes; then
|
| + AC_MSG_ERROR([missing liblzma for --with-lzma])
|
| + fi
|
| + fi
|
| + fi
|
| +fi
|
| +
|
| LIBGUI="../libgui/src/libgui.a"
|
| GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
|
| AC_SUBST(LIBGUI)
|
| @@ -2246,6 +2227,47 @@ if test "$enable_gdbserver" = "yes" -a "$gdbserver_build_enabled" != "yes"; then
|
| AC_MSG_ERROR(Automatic gdbserver build is not supported for this configuration)
|
| fi
|
|
|
| +# Check for babeltrace and babeltrace-ctf
|
| +AC_ARG_WITH(babeltrace,
|
| + AC_HELP_STRING([--with-babeltrace], [include babeltrace support (auto/yes/no)]),
|
| + [], [with_babeltrace=auto])
|
| +AC_MSG_CHECKING([whether to use babeltrace])
|
| +AC_MSG_RESULT([$with_babeltrace])
|
| +
|
| +if test "x$with_babeltrace" = "xno"; then
|
| + AC_MSG_WARN([babletrace support disabled; GDB is unable to read CTF data.])
|
| +else
|
| + # Append -Werror to CFLAGS so that configure can catch the warning
|
| + # "assignment from incompatible pointer type", which is related to
|
| + # the babeltrace change from 1.0.3 to 1.1.0. Babeltrace 1.1.0 works
|
| + # in GDB, while babeltrace 1.0.3 is broken.
|
| + # AC_LIB_HAVE_LINKFLAGS may modify CPPFLAGS in it, so it should be
|
| + # safe to save and restore CFLAGS here.
|
| + saved_CFLAGS=$CFLAGS
|
| + CFLAGS="$CFLAGS -Werror"
|
| + AC_LIB_HAVE_LINKFLAGS([babeltrace], [babeltrace-ctf],
|
| + [#include <babeltrace/babeltrace.h>
|
| + #include <babeltrace/ctf/events.h>
|
| + #include <babeltrace/ctf/iterator.h>],
|
| + [struct bt_iter_pos *pos = bt_iter_get_pos (bt_ctf_get_iter (NULL));
|
| + struct bt_ctf_event *event = NULL;
|
| + const struct bt_definition *scope;
|
| +
|
| + scope = bt_ctf_get_top_level_scope (event,
|
| + BT_STREAM_EVENT_HEADER);
|
| + bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id"));
|
| + ])
|
| + CFLAGS=$saved_CFLAGS
|
| +
|
| + if test "$HAVE_LIBBABELTRACE" != yes; then
|
| + if test "$with_babeltrace" = yes; then
|
| + AC_MSG_ERROR([babeltrace is missing or unusable])
|
| + else
|
| + AC_MSG_WARN([babeltrace is missing or unusable; GDB is unable to read CTF data.])
|
| + fi
|
| + fi
|
| +fi
|
| +
|
| # If nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link
|
| # to an empty version.
|
|
|
| @@ -2274,6 +2296,20 @@ dnl At the moment, we just assume it's UTF-8.
|
| AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8",
|
| [Define to be a string naming the default host character set.])
|
|
|
| +# Undo the $ec_script escaping suitable for Makefile.
|
| +transform=`echo "$program_transform_name" | sed -e 's/[\\$][\\$]/\\$/g'`
|
| +GDB_TRANSFORM_NAME=`echo gdb | sed -e "$transform"`
|
| +if test "x$GDB_TRANSFORM_NAME" = x; then
|
| + GDB_TRANSFORM_NAME=gdb
|
| +fi
|
| +AC_SUBST(GDB_TRANSFORM_NAME)
|
| +GCORE_TRANSFORM_NAME=`echo gcore | sed -e "$transform"`
|
| +if test "x$GCORE_TRANSFORM_NAME" = x; then
|
| + GCORE_TRANSFORM_NAME=gcore
|
| +fi
|
| +AC_SUBST(GCORE_TRANSFORM_NAME)
|
| +AC_CONFIG_FILES([gcore], [chmod +x gcore])
|
| +
|
| AC_OUTPUT(Makefile gdb-gdb.gdb doc/Makefile data-directory/Makefile,
|
| [
|
| case x$CONFIG_HEADERS in
|
|
|