X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fconfigure.ac;h=e53dda00d2455bdced26dec032af607f818a8b14;hb=f517c1805ac50c64c2dbb086c16b3bcf33b15a89;hp=73decd08cc92ea7138fcb0966e8b90a4aa4fd1ab;hpb=ed3ef33944c39d9a3cea72b9a7cef3c20f0e3461;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/configure.ac b/gdb/configure.ac index 73decd08cc..e53dda00d2 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-2014 Free Software Foundation, Inc. +dnl Copyright (C) 1995-2018 Free Software Foundation, Inc. dnl dnl This file is part of GDB. dnl @@ -24,9 +24,11 @@ AC_CONFIG_HEADER(config.h:config.in) AM_MAINTAINER_MODE # Set the 'development' global. -. $srcdir/development.sh +. $srcdir/../bfd/development.sh AC_PROG_CC +AC_PROG_CXX + AC_USE_SYSTEM_EXTENSIONS ACX_LARGEFILE AM_PROG_CC_STDC @@ -36,26 +38,26 @@ AC_CONFIG_AUX_DIR(..) AC_CANONICAL_SYSTEM AC_ARG_PROGRAM +# We require a C++11 compiler. Check if one is available, and if +# necessary, set CXX_DIALECT to some -std=xxx switch. +AX_CXX_COMPILE_STDCXX(11, , mandatory) + # Dependency checking. ZW_CREATE_DEPDIR ZW_PROG_COMPILER_DEPENDENCIES([CC]) -# Check for the 'make' the user wants to use. -AC_CHECK_PROGS(MAKE, make) -MAKE_IS_GNU= -case "`$MAKE --version 2>&1 | sed 1q`" in - *GNU*) - MAKE_IS_GNU=yes - ;; -esac -AM_CONDITIONAL(GMAKE, test "$MAKE_IS_GNU" = yes) -AC_PROG_MAKE_SET +gnulib_extra_configure_args= +# If large-file support is disabled, make sure gnulib does the same. +if test "$enable_largefile" = no; then +gnulib_extra_configure_args="$gnulib_extra_configure_args --disable-largefile" +fi # Configure gnulib. We need to build gnulib under some other # directory not "gnulib", to avoid the problem of both GDB and # GDBserver wanting to build it in the same directory, when building # in the source dir. -ACX_CONFIGURE_DIR(["gnulib"], ["build-gnulib"]) +ACX_CONFIGURE_DIR(["gnulib"], ["build-gnulib"], + ["$gnulib_extra_configure_args"]) dnl List of object files and targets accumulated by configure. @@ -198,6 +200,10 @@ fi . $srcdir/configure.host +# Add in the common host objects. +. $srcdir/common/common.host +gdb_host_obs="$gdb_host_obs $common_host_obs" + # Accumulate some settings from configure.tgt over all enabled targets TARGET_OBS= @@ -502,13 +508,6 @@ esac # We might need to link with -lm; most simulators need it. AC_CHECK_LIB(m, main) -# We need to link with -lw to get `wctype' on Solaris before Solaris -# 2.6. Solaris 2.6 and beyond have this function in libc, and have a -# libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1 -# is known to have this problem). Therefore we avoid libw if we can. -AC_CHECK_FUNC(wctype, [], - [AC_CHECK_LIB(w, wctype)]) - # Some systems (e.g. Solaris) have `gethostbyname' in libnsl. AC_SEARCH_LIBS(gethostbyname, nsl) @@ -518,8 +517,16 @@ AC_SEARCH_LIBS(socketpair, socket) # Link in zlib if we can. This allows us to read compressed debug sections. AM_ZLIB -# On HP/UX we may need libxpdl for dlgetmodinfo (used by solib-pa64.c). -AC_SEARCH_LIBS(dlgetmodinfo, [dl xpdl]) +# On FreeBSD we may need libutil for kinfo_getvmmap (used by fbsd-nat.c). +# On GNU/kFreeBSD systems, FreeBSD libutil is renamed to libutil-freebsd. +AC_SEARCH_LIBS(kinfo_getvmmap, util util-freebsd, + [AC_DEFINE(HAVE_KINFO_GETVMMAP, 1, + [Define to 1 if your system has the kinfo_getvmmap function. ])]) + +# fbsd-nat.c can also use kinfo_getfile. +AC_SEARCH_LIBS(kinfo_getfile, util util-freebsd, + [AC_DEFINE(HAVE_KINFO_GETFILE, 1, + [Define to 1 if your system has the kinfo_getfile function. ])]) AM_ICONV @@ -546,33 +553,6 @@ AS_HELP_STRING([--with-iconv-bin=PATH], [specify where to find the iconv program GDB_AC_DEFINE_RELOCATABLE(ICONV_BIN, iconv, ${iconv_bin}) ]) -# On alpha-osf, it appears that libtermcap and libcurses are not compatible. -# There is a very specific comment in /usr/include/curses.h explaining that -# termcap routines built into libcurses must not be used. -# -# The symptoms we observed so far is GDB unexpectedly changing -# the terminal settings when tgetent is called - this is particularly -# visible as the output is missing carriage returns, and so rapidly -# becomes very hard to read. -# -# The readline configure script has already decided that libtermcap -# was enough for its purposes, and so decided to build readline using -# libtermcap. Since the TUI mode requires curses, building GDB with -# TUI enabled results in both libraries to be used at the same time, -# which is not allowed. This basically means that GDB with TUI is -# broken on alpha-osf. - -case $host_os in - osf* ) - if test x"$enable_tui" = xyes; then - AC_MSG_ERROR([Building GDB with TUI mode is not supported on this host]) - fi - if test x"$enable_tui" = xauto; then - enable_tui=no - fi - ;; -esac - # For the TUI, we need enhanced curses functionality. if test x"$enable_tui" != xno; then prefer_curses=yes @@ -587,7 +567,7 @@ if test x"$prefer_curses" = xyes; then # search /usr/local/include, if ncurses is installed in /usr/local. A # default installation of ncurses on alpha*-dec-osf* will lead to such # a situation. - AC_SEARCH_LIBS(waddstr, [ncurses cursesX curses]) + AC_SEARCH_LIBS(waddstr, [ncursesw ncurses cursesX curses]) if test "$ac_cv_search_waddstr" != no; then curses_found=yes @@ -615,7 +595,7 @@ fi # Since GDB uses Readline, we need termcap functionality. In many # cases this will be provided by the curses library, but some systems -# have a seperate termcap library, or no curses library at all. +# have a separate termcap library, or no curses library at all. case $host_os in cygwin*) @@ -626,17 +606,13 @@ case $host_os in go32* | *djgpp*) ac_cv_search_tgetent="none required" ;; - *mingw32*) - ac_cv_search_tgetent="none required" - CONFIG_OBS="$CONFIG_OBS windows-termcap.o" - ;; esac # These are the libraries checked by Readline. -AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses]) +AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncursesw ncurses]) if test "$ac_cv_search_tgetent" = no; then - AC_MSG_ERROR([no termcap library found]) + CONFIG_OBS="$CONFIG_OBS stub-termcap.o" fi AC_ARG_WITH([system-readline], @@ -713,6 +689,28 @@ else fi fi +AC_ARG_WITH(mpfr, + AS_HELP_STRING([--with-mpfr], [include MPFR support (auto/yes/no)]), + [], [with_mpfr=auto]) +AC_MSG_CHECKING([whether to use MPFR]) +AC_MSG_RESULT([$with_mpfr]) + +if test "${with_mpfr}" = no; then + AC_MSG_WARN([MPFR support disabled; some features may be unavailable.]) + HAVE_LIBMPFR=no +else + AC_LIB_HAVE_LINKFLAGS([mpfr], [], [#include ], + [mpfr_exp_t exp; mpfr_t x; + mpfr_frexp (&exp, x, x, MPFR_RNDN);]) + if test "$HAVE_LIBMPFR" != yes; then + if test "$with_mpfr" = yes; then + AC_MSG_ERROR([MPFR is missing or unusable]) + else + AC_MSG_WARN([MPFR is missing or unusable; some features may be unavailable.]) + fi + fi +fi + # --------------------- # # Check for libpython. # # --------------------- # @@ -999,15 +997,6 @@ if test "${have_libpython}" != no; then AC_MSG_RESULT(${PYTHON_CFLAGS}) fi - # On IRIX, type siginfo is not defined. Instead, sys/siginfo.h provides: - # #if _SGIAPI - # #define siginfo __siginfo - # #endif - # The problem is that including Python causes some XOPEN macros to be - # 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 @@ -1017,10 +1006,6 @@ if test "${have_libpython}" != no; then # 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" @@ -1047,21 +1032,26 @@ if test "${have_libpython}" != no; then else # Even if Python support is not compiled in, we need to have this file # included so that the "python" command, et.al., still exists. - CONFIG_OBS="$CONFIG_OBS python.o" + CONFIG_OBS="$CONFIG_OBS python/python.o" CONFIG_SRCS="$CONFIG_SRCS python/python.c" fi + +# Work around Python http://bugs.python.org/issue10112. See also +# http://bugs.python.org/issue11410, otherwise -Wl,--dynamic-list has +# no effect. Note that the only test after this that uses Python is +# the -rdynamic/-Wl,--dynamic-list test, and we do want that one to be +# run without -export-dynamic too. +PYTHON_LIBS=`echo $PYTHON_LIBS | sed -e 's/-Xlinker -export-dynamic//'` + AC_SUBST(PYTHON_CFLAGS) AC_SUBST(PYTHON_CPPFLAGS) AC_SUBST(PYTHON_LIBS) +AM_CONDITIONAL(HAVE_PYTHON, test "${have_libpython}" != no) # -------------------- # # Check for libguile. # # -------------------- # -dnl We check guile with pkg-config. - -AC_PATH_PROG(pkg_config_prog_path, pkg-config, missing) - dnl Utility to simplify finding libguile. dnl $1 = pkg-config-program dnl $2 = space-separate list of guile versions to try @@ -1075,12 +1065,6 @@ AC_DEFUN([AC_TRY_LIBGUILE], guile_version_list=$2 flag_errors=$3 define([have_libguile_var],$4) - if test "${pkg_config}" = "missing"; then - AC_ERROR(pkg-config program not found) - fi - if test ! -f "${pkg_config}"; then - AC_ERROR(pkg-config program ${pkg_config} not found) - fi found_usable_guile=checking AC_MSG_CHECKING([for usable guile from ${pkg_config}]) for guile_version in ${guile_version_list}; do @@ -1092,11 +1076,11 @@ AC_DEFUN([AC_TRY_LIBGUILE], dnl that's bad. new_CPPFLAGS=`${pkg_config} --cflags ${guile_version}` if test $? != 0; then - AC_ERROR(failure running pkg-config --cflags ${guile_version}) + AC_MSG_ERROR([failure running pkg-config --cflags ${guile_version}]) fi new_LIBS=`${pkg_config} --libs ${guile_version}` if test $? != 0; then - AC_ERROR(failure running pkg-config --libs ${guile_version}) + AC_MSG_ERROR([failure running pkg-config --libs ${guile_version}]) fi dnl If we get this far, great. found_usable_guile=${guile_version} @@ -1104,7 +1088,7 @@ AC_DEFUN([AC_TRY_LIBGUILE], done if test "${found_usable_guile}" = "checking"; then if test "${flag_errors}" = "yes"; then - AC_ERROR(unable to find usable guile version from "${guile_version_list}") + AC_MSG_ERROR([unable to find usable guile version from "${guile_version_list}"]) else found_usable_guile=no fi @@ -1122,11 +1106,16 @@ AC_DEFUN([AC_TRY_LIBGUILE], GUILE_CPPFLAGS=$new_CPPFLAGS GUILE_LIBS=$new_LIBS], [found_usable_guile=no]) + dnl scm_set_automatic_finalization_enabled added in Guile 2.2. + AC_CHECK_FUNC(scm_set_automatic_finalization_enabled, + AC_DEFINE(HAVE_GUILE_MANUAL_FINALIZATION, 1, + [Define if Guile supports manual finalization.]) + ) CPPFLAGS=$save_CPPFLAGS LIBS=$save_LIBS if test "${found_usable_guile}" = no; then if test "${flag_errors}" = yes; then - AC_MSG_FAILURE(linking guile version ${guile_version} test program failed) + AC_MSG_FAILURE([linking guile version ${guile_version} test program failed]) fi fi fi @@ -1152,8 +1141,9 @@ dnl It could be a shell script. It is invoked as: dnl pkg-config --exists $version dnl pkg-config --cflags $version dnl pkg-config --libs $version -dnl $version will be the default guile version (currently guile-2.0), -dnl but the program is free to ignore this. +dnl pkg-config --variable guild $version +dnl The script will be called with $version having each value in +dnl $try_guile_versions until --exists indicates success. AC_ARG_WITH(guile, AS_HELP_STRING([--with-guile@<:@=GUILE@:>@], [include guile support (auto/yes/no//)]), @@ -1161,6 +1151,9 @@ AC_ARG_WITH(guile, AC_MSG_CHECKING([whether to use guile]) AC_MSG_RESULT([$with_guile]) +dnl We check guile with pkg-config. +AC_PATH_PROG(pkg_config_prog_path, pkg-config, missing) + try_guile_versions="guile-2.0" have_libguile=no case "${with_guile}" in @@ -1168,24 +1161,58 @@ no) AC_MSG_WARN([guile support disabled; some features will be unavailable.]) ;; auto) - AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, no, have_libguile) + if test "${pkg_config_prog_path}" = "missing"; then + AC_MSG_WARN([pkg-config not found, guile support disabled]) + else + AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, no, have_libguile) + fi ;; yes) + if test "${pkg_config_prog_path}" = "missing"; then + AC_MSG_ERROR([pkg-config not found]) + fi AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, yes, have_libguile) ;; [[\\/]]* | ?:[[\\/]]*) - AC_TRY_LIBGUILE(${with_guile}, ${try_guile_versions}, yes, have_libguile) + if test -x "${with_guile}"; then + AC_TRY_LIBGUILE(${with_guile}, ${try_guile_versions}, yes, have_libguile) + else + AC_MSG_ERROR([Guile config program not executable: ${with_guile}]) + fi ;; "" | */*) # Disallow --with=guile="" and --with-guile=foo/bar. - AC_ERROR(invalid value for --with-guile) + AC_MSG_ERROR([invalid value for --with-guile]) ;; *) # A space separate list of guile versions to try, in order. + if test "${pkg_config_prog_path}" = "missing"; then + AC_MSG_ERROR([pkg-config not found]) + fi AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${with_guile}, yes, have_libguile) ;; esac +if test "${have_libguile}" != no; then + dnl Get the name of the 'guild' program. + case "${with_guile}" in + [[\\/]]* | ?:[[\\/]]*) + GDB_GUILE_PROGRAM_NAMES(["${with_guile}"], ["${guile_version}"]) + ;; + *) + GDB_GUILE_PROGRAM_NAMES(["${pkg_config_prog_path}"], ["${guile_version}"]) + ;; + esac + + dnl Make sure guild can handle this host. + GDB_TRY_GUILD([$srcdir/guile/lib/gdb/support.scm]) + dnl If not, disable guile support. + if test "$ac_cv_guild_ok" = no; then + have_libguile=no + AC_MSG_WARN(disabling guile support, $GUILD fails compiling for $host) + fi +fi + if test "${have_libguile}" != no; then AC_DEFINE(HAVE_GUILE, 1, [Define if Guile interpreter is being linked in.]) CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_GUILE_OBS)" @@ -1193,14 +1220,24 @@ if test "${have_libguile}" != no; then CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_GUILE_SRCS)" CONFIG_INSTALL="$CONFIG_INSTALL install-guile" ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_GUILE_CFLAGS)" + + dnl The 'scm_new_smob' function appeared in Guile 2.0.6. + save_LIBS="$LIBS" + save_CPPFLAGS="$CPPFLAGS" + LIBS="$GUILE_LIBS" + CPPFLAGS="$GUILE_CPPFLAGS" + AC_CHECK_FUNCS([scm_new_smob]) + LIBS="$save_LIBS" + CPPFLAGS="$save_CPPFLAGS" else # Even if Guile support is not compiled in, we need to have these files # included. - CONFIG_OBS="$CONFIG_OBS guile.o" + CONFIG_OBS="$CONFIG_OBS guile/guile.o" CONFIG_SRCS="$CONFIG_SRCS guile/guile.c" fi AC_SUBST(GUILE_CPPFLAGS) AC_SUBST(GUILE_LIBS) +AM_CONDITIONAL(HAVE_GUILE, test "${have_libguile}" != no) # --------------------- # # Check for libmcheck. # @@ -1224,6 +1261,47 @@ if test "$ENABLE_LIBMCHECK" = "yes" \ AC_MSG_WARN(--enable-libmcheck may lead to spurious crashes if threads are used in python) fi +AC_ARG_WITH(intel_pt, + AS_HELP_STRING([--with-intel-pt], [include Intel Processor Trace support (auto/yes/no)]), + [], [with_intel_pt=auto]) +AC_MSG_CHECKING([whether to use intel pt]) +AC_MSG_RESULT([$with_intel_pt]) + +if test "${with_intel_pt}" = no; then + AC_MSG_WARN([Intel Processor Trace support disabled; some features may be unavailable.]) + HAVE_LIBIPT=no +else + AC_PREPROC_IFELSE(AC_LANG_SOURCE([[ +#include +#ifndef PERF_ATTR_SIZE_VER5 +# error +#endif + ]]), [perf_event=yes], [perf_event=no]) + if test "$perf_event" != yes; then + if test "$with_intel_pt" = yes; then + AC_MSG_ERROR([linux/perf_event.h missing or too old]) + else + AC_MSG_WARN([linux/perf_event.h missing or too old; some features may be unavailable.]) + fi + fi + + AC_LIB_HAVE_LINKFLAGS([ipt], [], [#include "intel-pt.h"], [pt_insn_alloc_decoder (0);]) + if test "$HAVE_LIBIPT" != yes; then + if test "$with_intel_pt" = yes; then + AC_MSG_ERROR([libipt is missing or unusable]) + else + AC_MSG_WARN([libipt is missing or unusable; some features may be unavailable.]) + fi + else + save_LIBS=$LIBS + LIBS="$LIBS $LIBIPT" + AC_CHECK_FUNCS(pt_insn_event) + AC_CHECK_MEMBERS([struct pt_insn.enabled, struct pt_insn.resynced], [], [], + [#include ]) + LIBS=$save_LIBS + fi +fi + # ------------------------- # # Checks for header files. # # ------------------------- # @@ -1232,36 +1310,18 @@ AC_HEADER_STDC # elf_hp.h is for HP/UX 64-bit shared library support. AC_CHECK_HEADERS([nlist.h machine/reg.h poll.h sys/poll.h proc_service.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 \ - termios.h termio.h \ - sgtty.h elf_hp.h \ + sys/reg.h sys/debugreg.h sys/select.h \ + termios.h elf_hp.h \ dlfcn.h]) -AC_CHECK_HEADERS(sys/proc.h, [], [], -[#if HAVE_SYS_PARAM_H -# include -#endif -]) AC_CHECK_HEADERS(sys/user.h, [], [], [#if HAVE_SYS_PARAM_H # include #endif ]) -# On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash -# between and that would cause AC_CHECK_HEADERS to -# think that we don't have if we're using GCC. -case $host_os in - solaris2.[[789]]) - if test "$GCC" = yes; then - AC_DEFINE(_MSE_INT_H, 1, - [Define to 1 to avoid a clash between and on - Solaris 2.[789] when using GCC. ]) - fi ;; -esac -AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h ncurses/term.h) +AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncursesw/ncurses.h ncurses/ncurses.h ncurses/term.h) AC_CHECK_HEADERS(term.h, [], [], [#if HAVE_CURSES_H # include @@ -1272,6 +1332,8 @@ AC_CHECK_HEADERS(term.h, [], [], # Checks for declarations. # # ------------------------- # +libiberty_INIT + AC_CHECK_DECLS([free, malloc, realloc, snprintf]) AM_LC_MESSAGES @@ -1285,7 +1347,6 @@ AC_CHECK_MEMBERS([struct stat.st_blocks, struct stat.st_blksize]) # Checks for types. # # ------------------ # -AC_TYPE_SIGNAL AC_CHECK_TYPES(socklen_t, [], [], [#include #include @@ -1303,88 +1364,20 @@ AC_C_BIGENDIAN # Checks for library functions. # # ------------------------------ # -AC_FUNC_ALLOCA AC_FUNC_MMAP AC_FUNC_VFORK -AC_CHECK_FUNCS([canonicalize_file_name realpath getrusage getuid getgid \ - pipe poll pread pread64 pwrite readlink resize_term \ +AC_CHECK_FUNCS([getauxval getrusage getuid getgid \ + pipe poll pread pread64 pwrite resize_term \ sbrk setpgid setpgrp setsid \ sigaction sigprocmask sigsetmask socketpair \ ttrace wborder wresize setlocale iconvlist libiconvlist btowc \ - setrlimit getrlimit posix_madvise waitpid lstat \ - ptrace64]) + setrlimit getrlimit posix_madvise waitpid \ + ptrace64 sigaltstack mkdtemp setns]) 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=' -#include -#if HAVE_SYS_PTRACE_H -# include -#endif -#if HAVE_UNISTD_H -# include -#endif -' -# There is no point in checking if we don't have a prototype. -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. Varargs (used on GNU/Linux) conflict with the -# empty argument list, so check for that explicitly. -AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret, - AC_TRY_COMPILE($gdb_ptrace_headers, - [extern long ptrace (enum __ptrace_request, ...);], - gdb_cv_func_ptrace_ret='long', - 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, [ - AC_TRY_COMPILE($gdb_ptrace_headers, - [extern long ptrace (enum __ptrace_request, ...);], - [gdb_cv_func_ptrace_args='int,int,long,long'],[ -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' 'void *'; 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.]) -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.]) -fi +# Check the return and argument types of ptrace. +GDB_AC_PTRACE dnl AC_FUNC_SETPGRP does not work when cross compiling dnl Instead, assume we will have a prototype for setpgrp if cross compiling. @@ -1405,17 +1398,6 @@ if test $ac_cv_func_setpgrp_void = yes; then fi fi -# Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't do -# since sigsetjmp might only be defined as a macro. -AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp, -[AC_TRY_COMPILE([ -#include -], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);], -gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)]) -if test $gdb_cv_func_sigsetjmp = yes; then - AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ]) -fi - # Assume we'll default to using the included libiberty regex. gdb_use_included_regex=yes @@ -1454,6 +1436,7 @@ AC_CHECK_MEMBERS([struct thread.td_pcb], [], [], # See if defines `struct lwp`. AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp, [AC_TRY_COMPILE([#include +#define _KMEMUSER #include ], [struct lwp l;], gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)]) if test $gdb_cv_struct_lwp = yes; then @@ -1474,13 +1457,15 @@ fi # See if 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_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [], - [#include ]) + [#include +#include ]) # See if supports the %fs_base and %gs_bas amd64 segment registers. # Older amd64 Linux's don't have the fs_base and gs_base members of # `struct user_regs_struct'. AC_CHECK_MEMBERS([struct user_regs_struct.fs_base, struct user_regs_struct.gs_base], - [], [], [#include ]) + [], [], [#include +#include ]) # See if provides the PTRACE_GETREGS request. AC_MSG_CHECKING(for PTRACE_GETREGS) @@ -1536,26 +1521,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 Solaris. +# See if supports LWP names on FreeBSD +# Older FreeBSD versions don't have the pl_tdname member of +# `struct ptrace_lwpinfo'. +AC_CHECK_MEMBERS([struct ptrace_lwpinfo.pl_tdname], [], [], + [#include ]) -if test "${target}" = "${host}"; then - case "${host}" in - *-*-sysv4.2* | *-*-sysv5* ) - AC_DEFINE(NEW_PROC_API, 1, - [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.]) - ;; - mips-sgi-irix5*) - # Work around needing _KMEMUSER problem on IRIX 5. - AC_DEFINE([_KMEMUSER], 1, - [Define to 1 so gets a definition of anon_hdl. Works - around a problem on IRIX 5.]) - ;; - esac -fi +# See if supports syscall fields on FreeBSD. The +# pl_syscall_code member of `struct ptrace_lwpinfo' was added in +# FreeBSD 10.3. +AC_CHECK_MEMBERS([struct ptrace_lwpinfo.pl_syscall_code], [], [], + [#include ]) if test "$ac_cv_header_sys_procfs_h" = yes; then BFD_HAVE_SYS_PROCFS_TYPE(gregset_t) @@ -1565,11 +1541,6 @@ if test "$ac_cv_header_sys_procfs_h" = yes; then BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t) BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t) BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t) - BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t) - BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t) - BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t) - BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t) - dnl Check for broken prfpregset_t type @@ -1736,13 +1707,21 @@ if test "${gdb_native}" = yes; then # libpythonX.Y.a would get its symbols required for # pythonX.Y/lib-dynload/*.so modules hidden by -Wl,--dynamic-list. # Problem does not happen for the recommended libpythonX.Y.so linkage. + + # Note the workaround for Python + # http://bugs.python.org/issue10112 earlier has removed + # -export-dynamic from PYTHON_LIBS. That's exactly what we want + # here too, as otherwise it'd make this -Wl,--dynamic-list test + # always pass. old_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PYTHON_CFLAGS" old_LIBS="$LIBS" LIBS="$LIBS $PYTHON_LIBS" + old_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS" AC_RUN_IFELSE( AC_LANG_PROGRAM( - [#include "]${have_libpython}[/Python.h"], + [#include "Python.h"], [int err; Py_Initialize (); err = PyRun_SimpleString ("import itertools\n"); @@ -1751,6 +1730,7 @@ if test "${gdb_native}" = yes; then [dynamic_list=true], [], [true]) LIBS="$old_LIBS" CFLAGS="$old_CFLAGS" + CPPFLAGS="$old_CPPFLAGS" fi LDFLAGS="$old_LDFLAGS" fi @@ -1772,41 +1752,6 @@ dnl and not doing a canadian cross build (build == host). if test ${build} = ${host} -a ${host} = ${target} ; then case ${host_os} in - solaris*) - # See if thread_db library is around for Solaris thread debugging. - # Note that we must explicitly test for version 1 of the library - # because version 0 (present on Solaris 2.4 or earlier) doesn't have - # the same API. - 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, 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) - CONFIG_LDFLAGS="${CONFIG_LDFLAGS} $RDYNAMIC" - # Sun randomly tweaked the prototypes in - # at one point. - AC_MSG_CHECKING(if is old) - AC_CACHE_VAL(gdb_cv_proc_service_is_old,[ - AC_TRY_COMPILE([ - #include - ps_err_e ps_pdwrite - (struct ps_prochandle*, psaddr_t, const void*, size_t); - ],, gdb_cv_proc_service_is_old=no, - gdb_cv_proc_service_is_old=yes) - ]) - 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, 1, - [Define if on solaris uses int instead of - size_t, and assorted other type changes.]) - fi - else - AC_MSG_RESULT(no) - fi - ;; aix*) AC_MSG_CHECKING(for AiX thread debugging library) AC_CACHE_VAL(gdb_cv_have_aix_thread_debug, @@ -1876,25 +1821,6 @@ if test "x$gdb_cv_thread_db_h_has_td_notls" = "xyes"; then [Define if 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 - AC_CACHE_CHECK([whether has __NR_tkill], - gdb_cv_sys_syscall_h_has_tkill, - AC_TRY_COMPILE( - [#include ], - [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"; 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. dnl The functionality of setarch -R. AC_CHECK_DECLS([ADDR_NO_RANDOMIZE],,, [#include ]) @@ -1950,86 +1876,7 @@ GDB_AC_WITH_DIR(SYSTEM_GDBINIT, system-gdbinit, [automatically load a system-wide gdbinit file], []) -AC_ARG_ENABLE(werror, - AS_HELP_STRING([--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. Turn it off for releases. -if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" && $development; then - ERROR_ON_WARNING=yes -fi - -WERROR_CFLAGS="" -if test "${ERROR_ON_WARNING}" = yes ; then - WERROR_CFLAGS="-Werror" -fi - -build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \ --Wpointer-sign \ --Wno-unused -Wunused-value -Wunused-function \ --Wno-switch -Wno-char-subscripts -Wmissing-prototypes \ --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, -AS_HELP_STRING([--enable-build-warnings], [enable build-time compiler warnings if gcc is used]), -[case "${enableval}" in - yes) ;; - no) build_warnings="-w";; - ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"` - build_warnings="${build_warnings} ${t}";; - *,) t=`echo "${enableval}" | sed -e "s/,/ /g"` - build_warnings="${t} ${build_warnings}";; - *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;; -esac -if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then - echo "Setting compiler warning flags = $build_warnings" 6>&1 -fi])dnl -AC_ARG_ENABLE(gdb-build-warnings, -AS_HELP_STRING([--enable-gdb-build-warnings], [enable GDB specific build-time compiler warnings if gcc is used]), -[case "${enableval}" in - yes) ;; - no) build_warnings="-w";; - ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"` - build_warnings="${build_warnings} ${t}";; - *,) t=`echo "${enableval}" | sed -e "s/,/ /g"` - build_warnings="${t} ${build_warnings}";; - *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;; -esac -if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then - echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1 -fi])dnl -WARN_CFLAGS="" -if test "x${build_warnings}" != x -a "x$GCC" = xyes -then - AC_MSG_CHECKING(compiler warning flags) - # Separate out the -Werror flag as some files just cannot be - # compiled with it enabled. - for w in ${build_warnings}; do - case $w in - -Werr*) WERROR_CFLAGS=-Werror ;; - *) # Check that GCC accepts it - saved_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $w" - AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",) - CFLAGS="$saved_CFLAGS" - esac - done - AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS}) -fi -AC_SUBST(WARN_CFLAGS) -AC_SUBST(WERROR_CFLAGS) +AM_GDB_WARNINGS # In the Cygwin environment, we need some additional flags. AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin, @@ -2075,7 +1922,7 @@ AC_SUBST(WIN32LIBS) 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" + CONFIG_OBS="$CONFIG_OBS elfread.o stap-probe.o dtrace-probe.o" AC_DEFINE(HAVE_ELF, 1, [Define if ELF support should be included.]) # -ldl is provided by bfd/Makfile.am (LIBDL) . @@ -2091,13 +1938,6 @@ 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}" @@ -2279,6 +2119,14 @@ if test "${ignore_sim}" = "false"; then SIM="${gdb_sim}" SIM_OBS="remote-sim.o" AC_DEFINE(WITH_SIM, 1, [Define if the simulator is being linked in.]) + + # Some tdep code should only be compiled in when the ppc sim is + # built. PR sim/13418. + case $target in + powerpc*-*-*) + AC_DEFINE(WITH_PPC_SIM, 1, [Define if the PPC simulator is being linked in.]) + ;; + esac fi fi AC_SUBST(SIM) @@ -2307,29 +2155,22 @@ if test "${host}" != "${target}"; then fi AC_SUBST(target_subdir) -frags= +# Import nat definitions. +nat_makefile_frag=/dev/null if test "${gdb_native}" = "yes"; then - host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh - if test ! -f ${host_makefile_frag}; then - AC_MSG_ERROR("*** Gdb does not support native target ${host}") - fi - frags="$frags $host_makefile_frag" -else - host_makefile_frag=/dev/null + . ${srcdir}/configure.nat + nativefile=$NAT_FILE fi -AC_SUBST_FILE(host_makefile_frag) -AC_SUBST(frags) - -changequote(,)dnl -if test "${gdb_native}" = "yes"; then -# We pick this up from the host configuration file (.mh) because we -# do not have a native configuration Makefile fragment. -nativefile=`sed -n ' -s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p -' ${host_makefile_frag}` -fi -changequote([,]) +AC_SUBST(NAT_FILE) +AC_SUBST(NATDEPFILES) +AC_SUBST(NAT_CDEPS) +AC_SUBST(LOADLIBES) +AC_SUBST(MH_CFLAGS) +AC_SUBST(XM_CLIBS) +AC_SUBST(NAT_GENERATED_FILES) +AC_SUBST(HAVE_NATIVE_GCORE_HOST) +AC_SUBST_FILE(nat_makefile_frag) if test x"${gdb_osabi}" != x ; then AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi, @@ -2401,6 +2242,8 @@ else struct bt_ctf_event *event = NULL; const struct bt_definition *scope; + pos->type = BT_SEEK_BEGIN; + bt_iter_set_pos (bt_ctf_get_iter (NULL), pos); scope = bt_ctf_get_top_level_scope (event, BT_STREAM_EVENT_HEADER); bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id")); @@ -2416,8 +2259,8 @@ else fi fi -# If nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link -# to an empty version. +# If nativefile (NAT_FILE) is not set in configure.nat, we link to an +# empty version. files= links= @@ -2434,6 +2277,15 @@ if test "${nativefile}" != ""; then fi AC_SUBST(GDB_NM_FILE) +dnl Add dependency for xsltproc if building with maintainer-mode enabled. +AC_PATH_PROGS(XSLTPROC, xsltproc, missing) +if test "x$USE_MAINTAINER_MODE" = xyes; then + if test "${XSLTPROC}" = missing; then + AC_ERROR(unable to find xsltproc. maintainer-mode requires xsltproc.) + fi +fi +AC_SUBST(XSLTPROC) + AC_LINK_FILES($files, $links) dnl Check for exe extension set on certain hosts (e.g. Win32) @@ -2444,21 +2296,17 @@ 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 +if $development; then + AC_DEFINE(GDB_SELF_TEST, 1, + [Define if self-testing features should be enabled]) + CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_UNITTESTS_OBS) selftest.o selftest-arch.o" + CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_UNITTESTS_SRCS) common/selftest.c selftest-arch.c" fi -AC_SUBST(GCORE_TRANSFORM_NAME) -AC_CONFIG_FILES([gcore], [chmod +x gcore]) -AC_OUTPUT(Makefile gdb-gdb.gdb doc/Makefile data-directory/Makefile, +GDB_AC_TRANSFORM([gdb], [GDB_TRANSFORM_NAME]) +GDB_AC_TRANSFORM([gcore], [GCORE_TRANSFORM_NAME]) +AC_CONFIG_FILES([gcore], [chmod +x gcore]) +AC_CONFIG_FILES([Makefile gdb-gdb.gdb doc/Makefile data-directory/Makefile], [ case x$CONFIG_HEADERS in xconfig.h:config.in) @@ -2466,4 +2314,4 @@ echo > stamp-h ;; esac ]) -exit 0 +AC_OUTPUT