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
TARGET_OBS=
all_targets=
+HAVE_NATIVE_GCORE_TARGET=
for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
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
fi
AC_SUBST(TARGET_OBS)
+AC_SUBST(HAVE_NATIVE_GCORE_TARGET)
# For other settings, only the main target counts.
gdb_sim=
# ------------------------- #
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 \
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])
+ sgtty.h unistd.h elf_hp.h locale.h \
+ dlfcn.h sys/un.h linux/perf_event.h])
AC_CHECK_HEADERS(link.h, [], [],
[#if HAVE_SYS_TYPES_H
# include <sys/types.h>
sbrk setpgid setpgrp setsid \
sigaction sigprocmask sigsetmask socketpair syscall \
ttrace wborder wresize setlocale iconvlist libiconvlist btowc \
- setrlimit getrlimit posix_madvise waitpid lstat])
+ setrlimit getrlimit posix_madvise waitpid lstat \
+ fdwalk pipe2])
AM_LANGINFO_CODESET
# Check the return and argument types of ptrace. No canned test for
[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* | *-*-interix* )
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).])
[[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.
# 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"],
Py_Finalize ();
return err == 0 ? 0 : 1;]),
[dynamic_list=true], [], [true])
+ LIBS="$old_LIBS"
CFLAGS="$old_CFLAGS"
fi
LDFLAGS="$old_LDFLAGS"
# 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 \
+-Wformat-nonliteral -Wpointer-sign \
-Wno-unused -Wunused-value -Wunused-function \
-Wno-switch -Wno-char-subscripts -Wmissing-prototypes \
--Wdeclaration-after-statement"
+-Wdeclaration-after-statement -Wempty-body"
# Enable -Wno-format by default when using gcc on mingw since many
# GCC versions complain about %I64.
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"
+ LIBS="-ldl $LIBS"
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)
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.
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