X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fconfigure.ac;h=9da8818fb5ce9513c31ed8e6cb6afdc9620448f8;hb=00975ff6eb19ea5c14acf354fe3677a68a9e7fa2;hp=4364c025f9280ebbeddacf380f1ad45a46829fc9;hpb=dcd1f97951b432032fd0728992b1384064663701;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/configure.ac b/gdb/configure.ac index 4364c025f9..9da8818fb5 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-2016 Free Software Foundation, Inc. +dnl Copyright (C) 1995-2019 Free Software Foundation, Inc. dnl dnl This file is part of GDB. dnl @@ -18,7 +18,6 @@ dnl along with this program. If not, see . dnl Process this file with autoconf to produce a configure script. -AC_PREREQ(2.59)dnl AC_INIT(main.c) AC_CONFIG_HEADER(config.h:config.in) AM_MAINTAINER_MODE @@ -38,37 +37,14 @@ AC_CONFIG_AUX_DIR(..) AC_CANONICAL_SYSTEM AC_ARG_PROGRAM -# See if we are building with C++, and substitute COMPILER. -GDB_AC_BUILD_WITH_CXX +# 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"], - ["$gnulib_extra_configure_args"]) - dnl List of object files and targets accumulated by configure. CONFIG_OBS= @@ -94,15 +70,6 @@ if test x"$USE_NLS" = xyes; then CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po" fi -GNULIB=build-gnulib/import - -# For Makefile dependencies. -GNULIB_STDINT_H= -if test x"$STDINT_H" != x; then - GNULIB_STDINT_H=$GNULIB/$STDINT_H -fi -AC_SUBST(GNULIB_STDINT_H) - PACKAGE=gdb AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ]) AC_SUBST(PACKAGE) @@ -157,7 +124,7 @@ AC_ARG_WITH(auto-load-dir, AS_HELP_STRING([--with-auto-load-dir=PATH], [directories from which to load auto-loaded scripts @<:@$debugdir:$datadir/auto-load@:>@]),, [with_auto_load_dir='$debugdir:$datadir/auto-load']) -escape_dir=`echo $with_auto_load_dir | sed 's/[[$]]\(datadir\|debugdir\)\>/\\\\\\\\\\\\&/g'` +escape_dir=`echo $with_auto_load_dir | sed -e 's/[[$]]datadir\>/\\\\\\\\\\\\&/g' -e 's/[[$]]debugdir\>/\\\\\\\\\\\\&/g'` AC_DEFINE_DIR(AUTO_LOAD_DIR, escape_dir, [Directories from which to load auto-loaded scripts.]) AC_MSG_RESULT([$with_auto_load_dir]) @@ -172,7 +139,7 @@ AS_HELP_STRING([--without-auto-load-safe-path], with_auto_load_safe_path="/" fi], [with_auto_load_safe_path="$with_auto_load_dir"]) -escape_dir=`echo $with_auto_load_safe_path | sed 's/[[$]]\(datadir\|debugdir\)\>/\\\\\\\\\\\\&/g'` +escape_dir=`echo $with_auto_load_safe_path | sed -e 's/[[$]]datadir\>/\\\\\\\\\\\\&/g' -e 's/[[$]]debugdir\>/\\\\\\\\\\\\&/g'` AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escape_dir, [Directories safe to hold auto-loaded files.]) AC_MSG_RESULT([$with_auto_load_safe_path]) @@ -211,7 +178,7 @@ fi . $srcdir/configure.host # Add in the common host objects. -. $srcdir/common/common.host +. $srcdir/gdbsupport/common.host gdb_host_obs="$gdb_host_obs $common_host_obs" # Accumulate some settings from configure.tgt over all enabled targets @@ -310,29 +277,6 @@ if test "x$targ_defvec" != x; then [Define to BFD's default target vector. ]) fi -# The CLI cannot be disabled yet, but may be in the future. - -# Enable CLI. -AC_ARG_ENABLE(gdbcli, -AS_HELP_STRING([--disable-gdbcli], [disable command-line interface (CLI)]), - [case $enableval in - yes) - ;; - no) - AC_MSG_ERROR([the command-line interface cannot be disabled yet]) ;; - *) - AC_MSG_ERROR([bad value $enableval for --enable-gdbcli]) ;; - esac], - [enable_gdbcli=yes]) -if test x"$enable_gdbcli" = xyes; then - if test -d $srcdir/cli; then - CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)" - CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)" - CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)" - ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)" - fi -fi - # Enable MI. AC_ARG_ENABLE(gdbmi, AS_HELP_STRING([--disable-gdbmi], [disable machine-interface (MI)]), @@ -482,6 +426,13 @@ if test "$enable_profiling" = yes ; then CFLAGS="$OLD_CFLAGS" fi +CODESIGN_CERT= +AC_ARG_ENABLE([codesign], + AS_HELP_STRING([--enable-codesign=CERT], + [sign gdb with 'codesign -s CERT']), + [CODESIGN_CERT=$enableval]) +AC_SUBST([CODESIGN_CERT]) + ACX_PKGVERSION([GDB]) ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/]) AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description]) @@ -518,13 +469,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) @@ -535,10 +479,16 @@ AC_SEARCH_LIBS(socketpair, socket) AM_ZLIB # On FreeBSD we may need libutil for kinfo_getvmmap (used by fbsd-nat.c). -AC_SEARCH_LIBS(kinfo_getvmmap, util, +# 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 # GDB may fork/exec the iconv program to get the list of supported character @@ -578,7 +528,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 @@ -606,7 +556,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*) @@ -620,7 +570,7 @@ case $host_os in esac # These are the libraries checked by Readline. -AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses]) +AC_SEARCH_LIBS(tgetent, [termcap tinfow tinfo curses ncursesw ncurses]) if test "$ac_cv_search_tgetent" = no; then CONFIG_OBS="$CONFIG_OBS stub-termcap.o" @@ -631,6 +581,20 @@ AC_ARG_WITH([system-readline], [use installed readline library])]) if test "$with_system_readline" = yes; then + AC_CACHE_CHECK([whether system readline is new enough], + [gdb_cv_readline_ok], + [AC_TRY_COMPILE( + [#include +#include ], + [#if RL_VERSION_MAJOR < 7 +# error "readline version 7 required" +#endif], + gdb_cv_readline_ok=yes, + gdb_cv_readline_ok=no)]) + if test "$gdb_cv_readline_ok" != yes; then + AC_MSG_ERROR([system readline is not new enough]) + fi + READLINE=-lreadline READLINE_DEPS= READLINE_CFLAGS= @@ -700,6 +664,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], [gmp], [#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. # # --------------------- # @@ -721,10 +707,10 @@ AC_DEFUN([AC_TRY_LIBPYTHON], save_CPPFLAGS=$CPPFLAGS save_LIBS=$LIBS CPPFLAGS="$CPPFLAGS $new_CPPFLAGS" - LIBS="$LIBS $new_LIBS" + LIBS="$new_LIBS $LIBS" found_usable_python=no - AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "Python.h"]], - [[Py_Initialize ();]]), + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "Python.h"]], + [[Py_Initialize ();]])], [have_libpython_var=${version} found_usable_python=yes PYTHON_CPPFLAGS=$new_CPPFLAGS @@ -740,7 +726,7 @@ dnl no - Don't include python support. dnl yes - Include python support, error if it's missing. dnl If we find python in $PATH, use it to fetch configure options, dnl otherwise assume the compiler can find it with no help from us. -dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn. +dnl Python 2.7 and 2.6 are tried in turn. dnl auto - Same as "yes", but if python is missing from the system, dnl fall back to "no". dnl /path/to/python/exec-prefix - @@ -749,7 +735,7 @@ dnl If /path/to/python/exec-prefix/bin/python exists, use it to find dnl the compilation parameters. Otherwise use dnl -I/path/to/python/exec-prefix/include, dnl -L/path/to/python/exec-prefix/lib. -dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn. +dnl Python 2.7 and 2.6 are tried in turn. dnl NOTE: This case is historical. It is what was done for 7.0/7.1 dnl but is deprecated. dnl /path/to/python/executable - @@ -911,29 +897,17 @@ else elif test "${have_python_config}" != failed; then if test "${have_libpython}" = no; then AC_TRY_LIBPYTHON(python2.7, have_libpython, - ${python_includes}, "${python_libs} -lpython2.7") + ${python_includes}, "-lpython2.7 ${python_libs}") fi if test "${have_libpython}" = no; then AC_TRY_LIBPYTHON(python2.6, have_libpython, - ${python_includes}, "${python_libs} -lpython2.6") - fi - if test ${have_libpython} = no; then - AC_TRY_LIBPYTHON(python2.5, have_libpython, - ${python_includes}, "${python_libs} -lpython2.5") - fi - if test ${have_libpython} = no; then - AC_TRY_LIBPYTHON(python2.4, have_libpython, - ${python_includes}, "${python_libs} -lpython2.4") + ${python_includes}, "-lpython2.6 ${python_libs}") fi fi if test "${have_libpython}" = python2.7 -o "${have_libpython}" = python27; then AC_DEFINE(HAVE_LIBPYTHON2_7, 1, [Define if Python 2.7 is being used.]) elif test "${have_libpython}" = python2.6 -o "${have_libpython}" = python26; then AC_DEFINE(HAVE_LIBPYTHON2_6, 1, [Define if Python 2.6 is being used.]) - elif test "${have_libpython}" = python2.5 -o "${have_libpython}" = python25; then - AC_DEFINE(HAVE_LIBPYTHON2_5, 1, [Define if Python 2.5 is being used.]) - elif test "${have_libpython}" = python2.4 -o "${have_libpython}" = python24; then - AC_DEFINE(HAVE_LIBPYTHON2_4, 1, [Define if Python 2.4 is being used.]) fi if test "${have_libpython}" = no; then @@ -971,7 +945,11 @@ if test "${have_libpython}" != no; then # would make the python-related objects be compiled differently from the # rest of GDB (e.g., -O2 and -fPIC). if test "${GCC}" = yes; then - tentative_python_cflags="-fno-strict-aliasing -DNDEBUG -fwrapv" + tentative_python_cflags="-fno-strict-aliasing -fwrapv" + # Python headers recommend -DNDEBUG, but it's unclear if that just + # refers to building Python itself. In release mode, though, it + # doesn't hurt for the Python code in gdb to follow. + $development || tentative_python_cflags="$tentative_python_cflags -DNDEBUG" fi if test "x${tentative_python_cflags}" != x; then @@ -1010,18 +988,18 @@ if test "${have_libpython}" != no; then CPPFLAGS="${PYTHON_CPPFLAGS}" # Note that the test is reversed so that python_has_threads=yes on # unexpected failures. - AC_PREPROC_IFELSE(AC_LANG_SOURCE([[ + AC_PREPROC_IFELSE([AC_LANG_SOURCE([[ #include #ifdef WITH_THREAD # error #endif - ]]), [python_has_threads=no], [python_has_threads=yes]) + ]])], [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 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 @@ -1089,8 +1067,8 @@ AC_DEFUN([AC_TRY_LIBGUILE], save_LIBS=$LIBS CPPFLAGS="$CPPFLAGS $new_CPPFLAGS" LIBS="$LIBS $new_LIBS" - AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "libguile.h"]], - [[scm_init_guile ();]]), + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "libguile.h"]], + [[scm_init_guile ();]])], [have_libguile_var=yes GUILE_CPPFLAGS=$new_CPPFLAGS GUILE_LIBS=$new_LIBS], @@ -1143,7 +1121,7 @@ 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.2 guile-2.0" +try_guile_versions="guile-2.0" have_libguile=no case "${with_guile}" in no) @@ -1221,34 +1199,62 @@ if test "${have_libguile}" != no; then 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. # -# --------------------- # - -# 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}) +# ---------------------------- # +# Check for source highlight. # +# ---------------------------- # + +SRCHIGH_LIBS= +SRCHIGH_CFLAGS= + +AC_ARG_ENABLE(source-highlight, + AS_HELP_STRING([--enable-source-highlight], + [enable source-highlight for source listings]), + [case "${enableval}" in + yes) enable_source_highlight=yes ;; + no) enable_source_highlight=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for source-highlight option) ;; +esac], +[enable_source_highlight=auto]) + +if test "${enable_source_highlight}" != "no"; then + AC_MSG_CHECKING([for the source-highlight library]) + if test "${pkg_config_prog_path}" = "missing"; then + AC_MSG_RESULT([no - pkg-config not found]) + if test "${enable_source_highlight}" = "yes"; then + AC_MSG_ERROR([pkg-config was not found in your system]) + fi + else + case "$LDFLAGS" in + *static-libstdc*) + AC_MSG_ERROR([source highlight is incompatible with -static-libstdc++; dnl +either use --disable-source-highlight or dnl +--without-static-standard-libraries]) + ;; + esac -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) + if ${pkg_config_prog_path} --exists source-highlight; then + SRCHIGH_CFLAGS=`${pkg_config_prog_path} --cflags source-highlight` + SRCHIGH_LIBS=`${pkg_config_prog_path} --libs source-highlight` + AC_DEFINE([HAVE_SOURCE_HIGHLIGHT], 1, + [Define to 1 if the source-highlight library is available]) + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + if test "${enable_source_highlight}" = "yes"; then + AC_MSG_ERROR([source-highlight was not found in your system]) + fi + fi + fi fi +AC_SUBST(SRCHIGH_LIBS) +AC_SUBST(SRCHIGH_CFLAGS) AC_ARG_WITH(intel_pt, AS_HELP_STRING([--with-intel-pt], [include Intel Processor Trace support (auto/yes/no)]), @@ -1260,12 +1266,12 @@ 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([[ + AC_PREPROC_IFELSE([AC_LANG_SOURCE([[ #include #ifndef PERF_ATTR_SIZE_VER5 # error #endif - ]]), [perf_event=yes], [perf_event=no]) + ]])], [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]) @@ -1281,6 +1287,13 @@ else 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 @@ -1291,37 +1304,18 @@ fi 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 \ + thread_db.h linux/elf.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 \ - dlfcn.h]) -AC_CHECK_HEADERS(sys/proc.h, [], [], -[#if HAVE_SYS_PARAM_H -# include -#endif -]) + sys/reg.h sys/debugreg.h sys/select.h \ + termios.h elf_hp.h]) 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 @@ -1334,7 +1328,7 @@ AC_CHECK_HEADERS(term.h, [], [], libiberty_INIT -AC_CHECK_DECLS([free, malloc, realloc, snprintf]) +AC_CHECK_DECLS([snprintf]) AM_LC_MESSAGES # ----------------------- # @@ -1368,11 +1362,11 @@ AC_FUNC_MMAP AC_FUNC_VFORK AC_CHECK_FUNCS([getauxval getrusage getuid getgid \ pipe poll pread pread64 pwrite resize_term \ - sbrk setpgid setpgrp setsid \ + sbrk getpgid setpgid setpgrp setsid \ sigaction sigprocmask sigsetmask socketpair \ ttrace wborder wresize setlocale iconvlist libiconvlist btowc \ setrlimit getrlimit posix_madvise waitpid \ - ptrace64 sigaltstack mkdtemp setns]) + ptrace64 sigaltstack setns use_default_colors]) AM_LANGINFO_CODESET GDB_AC_COMMON @@ -1436,6 +1430,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 @@ -1463,7 +1458,8 @@ AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [], # 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) @@ -1525,27 +1521,11 @@ fi AC_CHECK_MEMBERS([struct ptrace_lwpinfo.pl_tdname], [], [], [#include ]) - -# Detect which type of /proc is in use, such as for Solaris. - -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) @@ -1555,38 +1535,7 @@ 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 - - dnl For Linux/i386, glibc 2.1.3 was released with a bogus - dnl prfpregset_t type (it's a typedef for the pointer to a struct - dnl instead of the struct itself). We detect this here, and work - dnl around it in gdb_proc_service.h. - - if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then - AC_MSG_CHECKING(whether prfpregset_t type is broken) - AC_CACHE_VAL(gdb_cv_prfpregset_t_broken, - [AC_TRY_RUN([#include - int main () - { - if (sizeof (prfpregset_t) == sizeof (void *)) - return 1; - return 0; - }], - gdb_cv_prfpregset_t_broken=no, - gdb_cv_prfpregset_t_broken=yes, - 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, 1, - [Define if the prfpregset_t type is broken.]) - fi - fi + BFD_HAVE_SYS_PROCFS_TYPE(elf_fpregset_t) fi # Check if the compiler supports the `long long' type. @@ -1739,13 +1688,13 @@ if test "${gdb_native}" = yes; then old_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS" AC_RUN_IFELSE( - AC_LANG_PROGRAM( + [AC_LANG_PROGRAM( [#include "Python.h"], [int err; Py_Initialize (); err = PyRun_SimpleString ("import itertools\n"); Py_Finalize (); - return err == 0 ? 0 : 1;]), + return err == 0 ? 0 : 1;])], [dynamic_list=true], [], [true]) LIBS="$old_LIBS" CFLAGS="$old_CFLAGS" @@ -1771,41 +1720,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, @@ -1931,6 +1845,7 @@ GDB_AC_WITH_DIR(SYSTEM_GDBINIT, system-gdbinit, []) AM_GDB_WARNINGS +AM_GDB_UBSAN # In the Cygwin environment, we need some additional flags. AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin, @@ -1946,6 +1861,7 @@ 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" ;; + *) SER_HARDWIRE="$SER_HARDWIRE ser-uds.o" ;; esac AC_SUBST(SER_HARDWIRE) @@ -2209,47 +2125,28 @@ 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, [Define to the default OS ABI for this configuration.]) fi -# Enable multi-ice-gdb-server. -AC_ARG_ENABLE(multi-ice, -AS_HELP_STRING([--enable-multi-ice], [build the multi-ice-gdb-server]), - [case $enableval in - yes | no) - ;; - *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;; - esac]) -if test "x$enable_multi_ice" = xyes; then - AC_CONFIG_SUBDIRS(multi-ice) -fi - AC_ARG_ENABLE(gdbserver, AS_HELP_STRING([--enable-gdbserver], [automatically build gdbserver (yes/no/auto, default is auto)]), @@ -2303,7 +2200,7 @@ else struct bt_ctf_event *event = NULL; const struct bt_definition *scope; - pos.type = BT_SEEK_BEGIN; + 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); @@ -2320,8 +2217,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= @@ -2338,6 +2235,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) @@ -2348,15 +2254,15 @@ 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.]) -if $development; then - AC_DEFINE(GDB_SELF_TEST, 1, - [Define if self-testing features should be enabled]) -fi +GDB_AC_SELFTEST([ + CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_UNITTESTS_OBS) gdbsupport/selftest.o selftest-arch.o" + CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_UNITTESTS_SRCS) gdbsupport/selftest.c selftest-arch.c" +]) 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], +AC_CONFIG_FILES([Makefile gdb-gdb.gdb gdb-gdb.py doc/Makefile data-directory/Makefile], [ case x$CONFIG_HEADERS in xconfig.h:config.in)