1 dnl Autoconf configure script for GDB, the GNU debugger.
2 dnl Copyright (C) 1995-2023 Free Software Foundation, Inc.
4 dnl This file is part of GDB.
6 dnl This program is free software; you can redistribute it and/or modify
7 dnl it under the terms of the GNU General Public License as published by
8 dnl the Free Software Foundation; either version 3 of the License, or
9 dnl (at your option) any later version.
11 dnl This program is distributed in the hope that it will be useful,
12 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
13 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 dnl GNU General Public License for more details.
16 dnl You should have received a copy of the GNU General Public License
17 dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
19 dnl Process this file with autoconf to produce a configure script.
22 AC_CONFIG_MACRO_DIRS([.. ../config])
23 AC_CONFIG_SRCDIR([main.c])
24 AC_CONFIG_HEADERS(config.h:config.in, [echo > stamp-h])
30 AC_USE_SYSTEM_EXTENSIONS
36 # Set build, build_cpu, build_vendor and build_os.
39 # Set host, host_cpu, host_vendor, and host_os.
42 # Set target, target_cpu, target_vendor, and target_os.
45 ACX_NONCANONICAL_TARGET
49 # We require libtool to link with the in-tree libtool libraries
52 # ... and we need it soon, since it is used by some of the
53 # link tests in the configure script.
56 # We require a C++11 compiler. Check if one is available, and if
57 # necessary, set CXX_DIALECT to some -std=xxx switch.
58 AX_CXX_COMPILE_STDCXX(11, , mandatory)
60 # Dependency checking.
62 ZW_PROG_COMPILER_DEPENDENCIES([CC])
64 dnl List of object files and targets accumulated by configure.
76 dnl Set up for gettext.
77 ZW_GNU_GETTEXT_SISTER_DIR
79 localedir='${datadir}/locale'
82 if test x"$USE_NLS" = xyes; then
83 CONFIG_ALL="$CONFIG_ALL all-po"
84 CONFIG_CLEAN="$CONFIG_CLEAN clean-po"
85 CONFIG_INSTALL="$CONFIG_INSTALL install-po"
86 CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po"
90 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ])
93 # We never need to detect it in this sub-configure.
94 # But preserve it for config.status --recheck.
96 [Parent configure detects if it is of sufficient version.])
97 AC_ARG_VAR(MAKEINFOFLAGS,
98 [Parameters for MAKEINFO.])
100 MAKEINFO_EXTRA_FLAGS=""
101 AC_CACHE_CHECK([whether $MAKEINFO supports @click], gdb_cv_have_makeinfo_click,
102 [echo '@clicksequence{a @click{} b}' >conftest.texinfo
103 if eval "$MAKEINFO conftest.texinfo >&5 2>&5"; then
104 gdb_cv_have_makeinfo_click=yes
106 gdb_cv_have_makeinfo_click=no
108 if test x"$gdb_cv_have_makeinfo_click" = xyes; then
109 MAKEINFO_EXTRA_FLAGS="$MAKEINFO_EXTRA_FLAGS -DHAVE_MAKEINFO_CLICK"
111 AC_SUBST(MAKEINFO_EXTRA_FLAGS)
113 GDB_AC_WITH_DIR(DEBUGDIR, separate-debug-dir,
114 [look for global separate debug info in this path @<:@LIBDIR/debug@:>@],
117 # We can't pass paths as command line arguments.
118 # Mingw32 tries to be clever and will convert the paths for us.
119 # For example -DBINDIR="/usr/local/bin" passed on the command line may get
120 # converted to -DBINDIR="E:/msys/mingw32/msys/1.0/local/bin".
121 # This breaks GDB's relocatable path conversions since paths passed in
122 # config.h would not get so translated, the path prefixes no longer match.
123 AC_DEFINE_DIR(BINDIR, bindir, [Directory of programs.])
125 # GDB's datadir relocation
127 GDB_AC_WITH_DIR(GDB_DATADIR, gdb-datadir,
128 [look for global separate data files in this path @<:@DATADIR/gdb@:>@],
131 AC_ARG_WITH(relocated-sources,
132 AS_HELP_STRING([--with-relocated-sources=PATH], [automatically relocate this path for source files]),
133 [reloc_srcdir="${withval}"
134 AC_DEFINE_DIR(RELOC_SRCDIR, reloc_srcdir,
135 [Relocated directory for source files. ])
138 AC_MSG_CHECKING([for default auto-load directory])
139 AC_ARG_WITH(auto-load-dir,
140 AS_HELP_STRING([--with-auto-load-dir=PATH],
141 [directories from which to load auto-loaded scripts @<:@$debugdir:$datadir/auto-load@:>@]),,
142 [with_auto_load_dir='$debugdir:$datadir/auto-load'])
143 escape_dir=`echo $with_auto_load_dir | sed -e 's/[[$]]datadir\>/\\\\\\\\\\\\&/g' -e 's/[[$]]debugdir\>/\\\\\\\\\\\\&/g'`
144 AC_DEFINE_DIR(AUTO_LOAD_DIR, escape_dir,
145 [Directories from which to load auto-loaded scripts.])
146 AC_MSG_RESULT([$with_auto_load_dir])
148 AC_MSG_CHECKING([for default auto-load safe-path])
149 AC_ARG_WITH(auto-load-safe-path,
150 AS_HELP_STRING([--with-auto-load-safe-path=PATH],
151 [directories safe to hold auto-loaded files @<:@--with-auto-load-dir@:>@])
152 AS_HELP_STRING([--without-auto-load-safe-path],
153 [do not restrict auto-loaded files locations]),
154 [if test "$with_auto_load_safe_path" = "no"; then
155 with_auto_load_safe_path="/"
157 [with_auto_load_safe_path="$with_auto_load_dir"])
158 escape_dir=`echo $with_auto_load_safe_path | sed -e 's/[[$]]datadir\>/\\\\\\\\\\\\&/g' -e 's/[[$]]debugdir\>/\\\\\\\\\\\\&/g'`
159 AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escape_dir,
160 [Directories safe to hold auto-loaded files.])
161 AC_MSG_RESULT([$with_auto_load_safe_path])
163 AC_CONFIG_SUBDIRS(testsuite)
165 # Check whether to support alternative target configurations
166 AC_ARG_ENABLE(targets,
167 AS_HELP_STRING([--enable-targets=TARGETS], [alternative target configurations]),
168 [case "${enableval}" in
169 yes | "") AC_MSG_ERROR(enable-targets option must specify target names or 'all')
171 no) enable_targets= ;;
172 *) enable_targets=$enableval ;;
177 # Provide defaults for some variables set by the per-host and per-target
179 gdb_host_obs=posix-hdep.o
181 if test "${target}" = "${host}"; then
187 . $srcdir/configure.host
189 # Accumulate some settings from configure.tgt over all enabled targets
193 HAVE_NATIVE_GCORE_TARGET=
195 for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
197 if test "$targ_alias" = "all"; then
200 # Canonicalize the secondary target names.
201 result=`$ac_config_sub $targ_alias 2>/dev/null`
202 if test -n "$result"; then
208 . ${srcdir}/configure.tgt
210 AS_IF([test -z "${gdb_target_obs}"],
211 [AC_MSG_ERROR([configuration ${targ} is unsupported.])])
213 # Target-specific object files
214 for i in ${gdb_target_obs}; do
215 case " $TARGET_OBS " in
218 TARGET_OBS="$TARGET_OBS ${i}"
223 # Check whether this target needs 64-bit CORE_ADDR
224 if test x${enable_64_bit_bfd} = xno; then
225 . ${srcdir}/../bfd/config.bfd
228 # Check whether this target is native and supports gcore.
229 if test $gdb_native = yes -a "$targ_alias" = "$target_alias" \
230 && $gdb_have_gcore; then
231 HAVE_NATIVE_GCORE_TARGET=1
236 if test x${all_targets} = xtrue; then
237 if test x${enable_64_bit_bfd} = xyes; then
238 TARGET_OBS='$(ALL_TARGET_OBS) $(ALL_64_TARGET_OBS)'
240 TARGET_OBS='$(ALL_TARGET_OBS)'
245 AC_SUBST(HAVE_NATIVE_GCORE_TARGET)
247 # For other settings, only the main target counts.
250 targ=$target; . ${srcdir}/configure.tgt
252 # Fetch the default architecture and default target vector from BFD.
253 targ=$target; . $srcdir/../bfd/config.bfd
255 # We only want the first architecture, so strip off the others if
256 # there is more than one.
257 targ_archs=`echo $targ_archs | sed 's/ .*//'`
259 if test "x$targ_archs" != x; then
260 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs,
261 [Define to BFD's default architecture. ])
263 if test "x$targ_defvec" != x; then
264 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec,
265 [Define to BFD's default target vector. ])
269 AC_ARG_ENABLE([gdbmi],
270 [AS_HELP_STRING([--disable-gdbmi], [disable machine-interface (MI)])],
271 [GDB_CHECK_YES_NO_VAL([$enableval], [--enable-gdbmi])],
273 if test x"$enable_gdbmi" = xyes; then
274 if test -d "$srcdir/mi"; then
275 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)"
276 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)"
277 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)"
278 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)"
284 AS_HELP_STRING([--enable-tui],
285 [enable full-screen terminal user interface (TUI)]),
286 [GDB_CHECK_YES_NO_AUTO_VAL([$enableval], [--enable-tui])],
290 AC_ARG_ENABLE([gdbtk],
291 [AS_HELP_STRING([--enable-gdbtk], [enable gdbtk graphical user interface (GUI)])],
292 [GDB_CHECK_YES_NO_VAL([$enableval], [--enable-gdbtk])],
293 [if test -d "$srcdir/gdbtk"; then
298 # We unconditionally disable gdbtk tests on selected platforms.
301 AC_MSG_WARN([gdbtk isn't supported on $host; disabling])
305 # Handle optional debuginfod support
308 # Libunwind support for ia64.
309 AC_ARG_WITH(libunwind-ia64,
310 AS_HELP_STRING([--with-libunwind-ia64],
311 [use libunwind frame unwinding for ia64 targets]),,
312 [with_libunwind_ia64=auto])
314 # Backward compatibility option.
315 if test "${with_libunwind+set}" = set; then
316 if test x"$with_libunwind_ia64" != xauto; then
318 [option --with-libunwind is deprecated, use --with-libunwind-ia64])
320 AC_MSG_WARN([option --with-libunwind is deprecated, use --with-libunwind-ia64])
321 with_libunwind_ia64="$with_libunwind"
324 case "$with_libunwind_ia64" in
328 AC_CHECK_HEADERS(libunwind-ia64.h)
329 with_libunwind_ia64=$ac_cv_header_libunwind_ia64_h
333 [bad value $with_libunwind_ia64 for GDB --with-libunwind-ia64 option])
337 if test x"$with_libunwind_ia64" = xyes; then
338 AC_CHECK_HEADERS(libunwind-ia64.h)
339 if test x"$ac_cv_header_libunwind_ia64_h" != xyes; then
340 AC_MSG_ERROR([GDB option --with-libunwind-ia64 requires libunwind-ia64.h])
342 CONFIG_OBS="$CONFIG_OBS ia64-libunwind-tdep.o"
343 CONFIG_DEPS="$CONFIG_DEPS ia64-libunwind-tdep.o"
344 CONFIG_SRCS="$CONFIG_SRCS ia64-libunwind-tdep.c"
348 AC_ARG_WITH(curses, AS_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
351 if test "$opt_curses" = "yes"; then
356 AC_ARG_ENABLE([profiling],
357 [AS_HELP_STRING([--enable-profiling], [enable profiling of GDB])],
358 [GDB_CHECK_YES_NO_VAL([$enableval], [--enable-profiling])],
359 [enable_profiling=no])
361 AC_CHECK_FUNCS(monstartup _mcleanup)
368 extern char _etext;],
371 [ac_cv_var__etext=yes],
372 [ac_cv_var__etext=no]
375 if test "$ac_cv_var__etext" = yes; then
376 AC_DEFINE(HAVE__ETEXT, 1,
377 [Define to 1 if your system has the _etext variable. ])
388 [ac_cv_var_etext=yes],
392 if test "$ac_cv_var_etext" = yes; then
393 AC_DEFINE(HAVE_ETEXT, 1,
394 [Define to 1 if your system has the etext variable. ])
396 if test "$enable_profiling" = yes ; then
397 if test "$ac_cv_func_monstartup" = no || test "$ac_cv_func__mcleanup" = no; then
398 AC_MSG_ERROR(--enable-profiling requires monstartup and _mcleanup)
402 CFLAGS="$CFLAGS $PROFILE_CFLAGS"
405 [whether $CC supports -pg],
406 [ac_cv_cc_supports_pg],
408 [AC_LANG_PROGRAM([], [int x;])],
409 [ac_cv_cc_supports_pg=yes],
410 [ac_cv_cc_supports_pg=no]
414 if test "$ac_cv_cc_supports_pg" = no; then
415 AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg)
422 AC_ARG_ENABLE([codesign],
423 AS_HELP_STRING([--enable-codesign=CERT],
424 [sign gdb with 'codesign -s CERT']),
425 [CODESIGN_CERT=$enableval])
426 AC_SUBST([CODESIGN_CERT])
428 ACX_PKGVERSION([GDB])
429 ACX_BUGURL([https://www.gnu.org/software/gdb/bugs/])
430 AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description])
431 AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address])
433 # --------------------- #
434 # Checks for programs. #
435 # --------------------- #
443 AC_CHECK_TOOL(AR, ar)
444 AC_CHECK_TOOL(DLLTOOL, dlltool)
445 AC_CHECK_TOOL(WINDRES, windres)
449 # Needed for GNU Hurd hosts.
450 AC_CHECK_TOOL(MIG, mig)
451 if test x"$MIG" = x; then
452 AC_MSG_ERROR([MIG not found but required for $host hosts])
457 # ---------------------- #
458 # Checks for libraries. #
459 # ---------------------- #
461 # We might need to link with -lm; most simulators need it.
462 AC_CHECK_LIB(m, main)
464 # Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
465 AC_SEARCH_LIBS(gethostbyname, nsl)
467 # Some systems (e.g. Solaris) have `socketpair' in libsocket.
468 AC_SEARCH_LIBS(socketpair, socket)
470 # Link in zlib/zstd if we can. This allows us to read compressed debug
477 # GDB may fork/exec the iconv program to get the list of supported character
478 # sets. Allow the user to specify where to find it.
479 # There are several factors affecting the choice of option name:
480 # - There is already --with-libiconv-prefix but we can't use it, it specifies
481 # the build-time location of libiconv files.
482 # - The program we need to find is iconv, which comes with glibc. The user
483 # doesn't necessarily have libiconv installed. Therefore naming this
484 # --with-libiconv-foo feels wrong.
485 # - We want the path to be relocatable, but GDB_AC_DEFINE_RELOCATABLE is
486 # defined to work on directories not files (though it really doesn't know
488 # - Calling this --with-iconv-prefix is perceived to cause too much confusion
489 # with --with-libiconv-prefix.
490 # Putting these together is why the option name is --with-iconv-bin.
492 AC_ARG_WITH(iconv-bin,
493 AS_HELP_STRING([--with-iconv-bin=PATH], [specify where to find the iconv program]),
494 [iconv_bin="${withval}"
495 AC_DEFINE_UNQUOTED([ICONV_BIN], ["${iconv_bin}"],
496 [Path of directory of iconv program.])
497 GDB_AC_DEFINE_RELOCATABLE(ICONV_BIN, iconv, ${iconv_bin})
500 # For the TUI, we need enhanced curses functionality.
501 if test x"$enable_tui" != xno; then
506 if test x"$prefer_curses" = xyes; then
507 # FIXME: kettenis/20040905: We prefer ncurses over the vendor-supplied
508 # curses library because the latter might not provide all the
509 # functionality we need. However, this leads to problems on systems
510 # where the linker searches /usr/local/lib, but the compiler doesn't
511 # search /usr/local/include, if ncurses is installed in /usr/local. A
512 # default installation of ncurses on alpha*-dec-osf* will lead to such
514 AC_SEARCH_LIBS(waddstr, [ncursesw ncurses cursesX curses])
516 if test "$ac_cv_search_waddstr" != no; then
521 # Check whether we should enable the TUI, but only do so if we really
523 if test x"$enable_tui" != xno; then
524 if test -d "$srcdir/tui"; then
525 if test "$curses_found" != no; then
526 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
527 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
528 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
529 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
531 if test x"$enable_tui" = xyes; then
532 AC_MSG_ERROR([no enhanced curses library found; disable TUI])
534 AC_MSG_WARN([no enhanced curses library found; disabling TUI])
540 # Since GDB uses Readline, we need termcap functionality. In many
541 # cases this will be provided by the curses library, but some systems
542 # have a separate termcap library, or no curses library at all.
546 if test -d "$srcdir/libtermcap"; then
547 LIBS="../libtermcap/libtermcap.a $LIBS"
548 ac_cv_search_tgetent="../libtermcap/libtermcap.a"
551 ac_cv_search_tgetent="none required"
555 # These are the libraries checked by Readline.
556 AC_SEARCH_LIBS(tgetent, [termcap tinfow tinfo curses ncursesw ncurses])
558 if test "$ac_cv_search_tgetent" = no; then
559 CONFIG_OBS="$CONFIG_OBS stub-termcap.o"
562 AC_ARG_WITH([system-readline],
563 [AS_HELP_STRING([--with-system-readline],
564 [use installed readline library])])
566 if test "$with_system_readline" = yes; then
567 AC_CHECK_HEADERS(readline/readline.h, [readline_h=yes], [readline_h=no])
568 if test "$readline_h" = "no"; then
569 AC_MSG_ERROR([readline development packages are probably missing])
572 [whether system readline is new enough],
573 [gdb_cv_readline_ok],
577 #include <readline/readline.h>],
578 [#if RL_VERSION_MAJOR < 7
579 # error "readline version 7 required"
582 [gdb_cv_readline_ok=yes],
583 [gdb_cv_readline_ok=no]
586 if test "$gdb_cv_readline_ok" != yes; then
587 AC_MSG_ERROR([system readline is not new enough])
593 READLINE_TEXI_INCFLAG=
594 READLINE_DOC_SOURCE_INCLUDES='$(READLINE_SYSTEM_DOC_INCLUDES)'
596 READLINE='$(READLINE_DIR)/libreadline.a'
597 READLINE_DEPS='$(READLINE)'
598 READLINE_CFLAGS='-I$(READLINE_SRC)/..'
599 READLINE_TEXI_INCFLAG='-I $(READLINE_DIR)'
600 READLINE_DOC_SOURCE_INCLUDES='$(READLINE_INTREE_DOC_INCLUDES)'
603 AC_SUBST(READLINE_DEPS)
604 AC_SUBST(READLINE_CFLAGS)
605 AC_SUBST(READLINE_TEXI_INCFLAG)
606 AC_SUBST(READLINE_DOC_SOURCE_INCLUDES)
608 # Generate jit-reader.h
610 # This is typedeffed to GDB_CORE_ADDR in jit-reader.h
613 AC_CHECK_SIZEOF(unsigned long long)
614 AC_CHECK_SIZEOF(unsigned long)
615 AC_CHECK_SIZEOF(unsigned __int128)
617 if test "x${ac_cv_sizeof_unsigned_long}" = "x8"; then
618 TARGET_PTR="unsigned long"
619 elif test "x${ac_cv_sizeof_unsigned_long_long}" = "x8"; then
620 TARGET_PTR="unsigned long long"
621 elif test "x${ac_cv_sizeof_unsigned___int128}" = "x16"; then
622 TARGET_PTR="unsigned __int128"
624 TARGET_PTR="unsigned long"
628 AC_CONFIG_FILES([jit-reader.h:jit-reader.in])
630 AC_SEARCH_LIBS(dlopen, dl)
632 GDB_AC_WITH_DIR([JIT_READER_DIR], [jit-reader-dir],
633 [directory to load the JIT readers from],
637 AS_HELP_STRING([--with-expat], [include expat support (auto/yes/no)]),
638 [], [with_expat=auto])
639 AC_MSG_CHECKING([whether to use expat])
640 AC_MSG_RESULT([$with_expat])
642 if test "${with_expat}" = no; then
643 AC_MSG_WARN([expat support disabled; some features may be unavailable.])
646 AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"],
647 [XML_Parser p = XML_ParserCreate (0);])
648 if test "$HAVE_LIBEXPAT" != yes; then
649 if test "$with_expat" = yes; then
650 AC_MSG_ERROR([expat is missing or unusable])
652 AC_MSG_WARN([expat is missing or unusable; some features may be unavailable.])
656 LIBS="$LIBS $LIBEXPAT"
657 AC_CHECK_FUNCS(XML_StopParser)
662 # Verify that we have a usable GMP library.
663 AC_LIB_HAVE_LINKFLAGS([gmp], [], [#include <gmp.h>],
666 if test "$HAVE_LIBGMP" != yes; then
667 AC_MSG_ERROR([GMP is missing or unusable])
671 AS_HELP_STRING([--with-mpfr], [include MPFR support (auto/yes/no)]),
672 [], [with_mpfr=auto])
673 AC_MSG_CHECKING([whether to use MPFR])
674 AC_MSG_RESULT([$with_mpfr])
676 if test "${with_mpfr}" = no; then
677 AC_MSG_WARN([MPFR support disabled; some features may be unavailable.])
680 AC_LIB_HAVE_LINKFLAGS([mpfr], [gmp], [#include <mpfr.h>],
681 [mpfr_exp_t exp; mpfr_t x;
682 mpfr_frexp (&exp, x, x, MPFR_RNDN);])
683 if test "$HAVE_LIBMPFR" != yes; then
684 if test "$with_mpfr" = yes; then
685 AC_MSG_ERROR([MPFR is missing or unusable])
687 AC_MSG_WARN([MPFR is missing or unusable; some features may be unavailable.])
692 # --------------------- #
693 # Check for libpython. #
694 # --------------------- #
696 dnl Utility to simplify finding libpython.
697 dnl $1 = the shell variable to assign the result to
698 dnl If libpython is found we store $version here.
699 dnl $2 = additional flags to add to CPPFLAGS
700 dnl $3 = additional flags to add to LIBS
702 AC_DEFUN([AC_TRY_LIBPYTHON],
704 define([have_libpython_var],$1)
707 AC_MSG_CHECKING([for python])
708 save_CPPFLAGS=$CPPFLAGS
710 CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
711 LIBS="$new_LIBS $LIBS"
712 found_usable_python=no
713 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "Python.h"]],
715 #if PY_MAJOR_VERSION != 3
716 # error "We only support Python 3"
720 [have_libpython_var=yes
721 found_usable_python=yes
722 PYTHON_CPPFLAGS=$new_CPPFLAGS
723 PYTHON_LIBS=$new_LIBS])
724 CPPFLAGS=$save_CPPFLAGS
726 AC_MSG_RESULT([${found_usable_python}])
729 dnl There are several different values for --with-python:
731 dnl no - Don't include python support.
732 dnl yes - Include python support, error if it's missing.
733 dnl If we find python in $PATH, use it to fetch configure options,
734 dnl otherwise assume the compiler can find it with no help from us.
735 dnl auto - Same as "yes", but if python is missing from the system,
736 dnl fall back to "no".
737 dnl /path/to/python/exec-prefix -
738 dnl Use the python located in this directory.
739 dnl If /path/to/python/exec-prefix/bin/python exists, use it to find
740 dnl the compilation parameters. Otherwise use
741 dnl -I/path/to/python/exec-prefix/include,
742 dnl -L/path/to/python/exec-prefix/lib.
743 dnl NOTE: This case is historical. It is what was done for 7.0/7.1
744 dnl but is deprecated.
745 dnl /path/to/python/executable -
746 dnl Run python-config.py with this version of python to fetch the
747 dnl compilation parameters.
748 dnl NOTE: This needn't be the real python executable.
749 dnl In a cross-compilation scenario (build != host), this could be
750 dnl a shell script that provides what python-config.py provides for
751 dnl --ldflags, --includes, --exec-prefix.
752 dnl python-executable -
753 dnl Find python-executable in $PATH, and then handle the same as
754 dnl /path/to/python/executable.
756 dnl If a python program is specified, it is used to run python-config.py and
757 dnl is passed --ldflags, --includes, --exec-prefix.
760 AS_HELP_STRING([--with-python@<:@=PYTHON@:>@], [include python support (auto/yes/no/<python-program>)]),
761 [], [with_python=auto])
762 AC_MSG_CHECKING([whether to use python])
763 AC_MSG_RESULT([$with_python])
765 if test "${with_python}" = no; then
766 AC_MSG_WARN([python support disabled; some features may be unavailable.])
769 case "${with_python}" in
770 [[\\/]]* | ?:[[\\/]]*)
771 if test -d "${with_python}"; then
772 # Assume the python binary is ${with_python}/bin/python.
773 python_prog="${with_python}/bin/python"
775 # If python does not exit ${with_python}/bin, then try in
776 # ${with_python}. On Windows/MinGW, this is where the Python
778 if test ! -x "${python_prog}"; then
779 python_prog="${with_python}/python"
782 if test ! -x "${python_prog}"; then
783 # Fall back to gdb 7.0/7.1 behaviour.
785 python_prefix=${with_python}
787 elif test -x "${with_python}"; then
788 # While we can't run python compiled for $host (unless host == build),
789 # the user could write a script that provides the needed information,
790 # so we support that.
791 python_prog=${with_python}
794 AC_MSG_ERROR(invalid value for --with-python)
798 # Disallow --with-python=foo/bar.
799 AC_MSG_ERROR(invalid value for --with-python)
802 # The user has either specified auto, yes, or the name of the python
803 # program assumed to be in $PATH.
805 case "${with_python}" in
807 if test "${build}" = "${host}"; then
808 # Look first for 'python', then 'python3'.
809 AC_PATH_PROGS(python_prog_path, [python python3], missing)
810 if test "${python_prog_path}" = missing; then
813 python_prog=${python_prog_path}
816 # Not much we can do except assume the cross-compiler will find the
822 # While we can't run python compiled for $host (unless host == build),
823 # the user could write a script that provides the needed information,
824 # so we support that.
825 python_prog="${with_python}"
826 AC_PATH_PROG(python_prog_path, ${python_prog}, missing)
827 if test "${python_prog_path}" = missing; then
828 AC_MSG_ERROR(unable to find python program ${python_prog})
834 if test "${python_prog}" != missing; then
835 # We have a python program to use, but it may be too old.
836 # Don't flag an error for --with-python=auto (the default).
837 have_python_config=yes
838 python_includes=`${python_prog} ${srcdir}/python/python-config.py --includes`
839 if test $? != 0; then
840 have_python_config=failed
841 if test "${with_python}" != auto; then
842 AC_MSG_ERROR(failure running python-config --includes)
845 python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags`
846 if test $? != 0; then
847 have_python_config=failed
848 if test "${with_python}" != auto; then
849 AC_MSG_ERROR(failure running python-config --ldflags)
852 python_prefix=`${python_prog} ${srcdir}/python/python-config.py --exec-prefix`
853 if test $? != 0; then
854 have_python_config=failed
855 if test "${with_python}" != auto; then
856 AC_MSG_ERROR(failure running python-config --exec-prefix)
860 # We do not have a python executable we can use to determine where
861 # to find the Python headers and libs. We cannot guess the include
862 # path from the python_prefix either, because that include path
863 # depends on the Python version. So, there is nothing much we can
864 # do except assume that the compiler will be able to find those files.
867 have_python_config=no
870 # If we have python-config, only try the configuration it provides.
871 # Otherwise fallback on the old way of trying different versions of
875 if test "${have_python_config}" = yes; then
876 AC_TRY_LIBPYTHON(have_libpython,
877 ${python_includes}, ${python_libs})
880 if test "${have_libpython}" = no; then
881 case "${with_python}" in
883 AC_MSG_ERROR([python is missing or unusable])
886 AC_MSG_WARN([python is missing or unusable; some features may be unavailable.])
889 AC_MSG_ERROR([no usable python found at ${with_python}])
893 if test -n "${python_prefix}"; then
894 AC_DEFINE_UNQUOTED(WITH_PYTHON_PATH, "${python_prefix}",
895 [Define if --with-python provides a path, either directly or via python-config.py --exec-prefix.])
896 GDB_AC_DEFINE_RELOCATABLE(PYTHON_PATH, python, ${python_prefix})
901 dnl Use --with-python-libdir to control where GDB looks for the Python
904 dnl If this is not given then the default will be based on the value
905 dnl passed to --with-python, which is in the python_prefix variable.
906 dnl If the --with-python option wasn't given then the default value in
907 dnl python_prefix is based on running the 'gdb/python/python-config
908 dnl --exec-prefix' script.
909 AC_ARG_WITH(python-libdir,
910 AS_HELP_STRING([--with-python-libdir@<:@=DIR@:>@], [search for python's libraries in DIR]),
912 # If no python libdir is specified then select one based on
913 # python's prefix path.
914 if test -n "${python_prefix}"; then
915 with_python_libdir=${python_prefix}/lib
919 if test "${have_libpython}" != no; then
920 AC_DEFINE(HAVE_PYTHON, 1, [Define if Python interpreter is being linked in.])
921 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_PYTHON_OBS)"
922 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)"
923 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_PYTHON_SRCS)"
924 CONFIG_INSTALL="$CONFIG_INSTALL install-python"
925 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)"
927 if test -n "${with_python_libdir}"; then
928 AC_DEFINE_UNQUOTED(WITH_PYTHON_LIBDIR, "${with_python_libdir}",
929 [Directory containing Python's standard libraries from --with-python-libdir.])
930 GDB_AC_DEFINE_RELOCATABLE(PYTHON_LIBDIR, [python lib], ${with_python_libdir})
933 # Flags needed to compile Python code (taken from python-config --cflags).
934 # We cannot call python-config directly because it will output whatever was
935 # used when compiling the Python interpreter itself, including flags which
936 # would make the python-related objects be compiled differently from the
937 # rest of GDB (e.g., -O2 and -fPIC).
938 if test "${GCC}" = yes; then
939 tentative_python_cflags="-fno-strict-aliasing -fwrapv"
940 # Python headers recommend -DNDEBUG, but it's unclear if that just
941 # refers to building Python itself. In release mode, though, it
942 # doesn't hurt for the Python code in gdb to follow.
943 $development || tentative_python_cflags="$tentative_python_cflags -DNDEBUG"
946 if test "x${tentative_python_cflags}" != x; then
947 AC_MSG_CHECKING(compiler flags for python code)
948 for flag in ${tentative_python_cflags}; do
949 # Check that the compiler accepts it
950 saved_CFLAGS="$CFLAGS"
951 CFLAGS="$CFLAGS $flag"
953 [AC_LANG_PROGRAM([], [])],
954 [PYTHON_CFLAGS="${PYTHON_CFLAGS} $flag"],
957 CFLAGS="$saved_CFLAGS"
959 AC_MSG_RESULT(${PYTHON_CFLAGS})
962 # On x64 Windows, Python's include headers, and pyconfig.h in
963 # particular, rely on MS_WIN64 macro to detect that it's a 64bit
964 # version of Windows. Unfortunately, MS_WIN64 is only defined if
965 # _MSC_VER, a Microsoft-specific macro, is defined. So, when
966 # building on x64 Windows with GCC, we define MS_WIN64 ourselves.
967 # The issue was reported to the Python community, but still isn't
968 # solved as of 2012-10-02 (http://bugs.python.org/issue4709).
972 if test "${GCC}" = yes; then
973 CPPFLAGS="$CPPFLAGS -DMS_WIN64"
978 # Even if Python support is not compiled in, we need to have this file
979 # included so that the "python" command, et.al., still exists.
980 CONFIG_OBS="$CONFIG_OBS python/python.o"
981 CONFIG_SRCS="$CONFIG_SRCS python/python.c"
984 # Work around Python http://bugs.python.org/issue10112. See also
985 # http://bugs.python.org/issue11410, otherwise -Wl,--dynamic-list has
986 # no effect. Note that the only test after this that uses Python is
987 # the -rdynamic/-Wl,--dynamic-list test, and we do want that one to be
988 # run without -export-dynamic too.
989 PYTHON_LIBS=`echo $PYTHON_LIBS | sed -e 's/-Xlinker -export-dynamic//'`
991 AC_SUBST(PYTHON_CFLAGS)
992 AC_SUBST(PYTHON_CPPFLAGS)
993 AC_SUBST(PYTHON_LIBS)
994 AM_CONDITIONAL(HAVE_PYTHON, test "${have_libpython}" != no)
996 # -------------------- #
997 # Check for libguile. #
998 # -------------------- #
1000 dnl Utility to simplify finding libguile.
1001 dnl $1 = pkg-config-program
1002 dnl $2 = space-separate list of guile versions to try
1003 dnl $3 = yes|no, indicating whether to flag errors or ignore them
1004 dnl $4 = the shell variable to assign the result to
1005 dnl If libguile is found we store "yes" here.
1007 AC_DEFUN([AC_TRY_LIBGUILE],
1010 guile_version_list=$2
1012 define([have_libguile_var],$4)
1013 found_usable_guile=checking
1014 AC_MSG_CHECKING([for usable guile from ${pkg_config}])
1015 for guile_version in ${guile_version_list}; do
1016 ${pkg_config} --exists ${guile_version} 2>/dev/null
1017 if test $? != 0; then
1020 dnl pkg-config says the package exists, so if we get an error now,
1022 new_CPPFLAGS=`${pkg_config} --cflags ${guile_version}`
1023 if test $? != 0; then
1024 AC_MSG_ERROR([failure running pkg-config --cflags ${guile_version}])
1026 new_LIBS=`${pkg_config} --libs ${guile_version}`
1027 if test $? != 0; then
1028 AC_MSG_ERROR([failure running pkg-config --libs ${guile_version}])
1030 dnl If we get this far, great.
1031 found_usable_guile=${guile_version}
1034 if test "${found_usable_guile}" = "checking"; then
1035 if test "${flag_errors}" = "yes"; then
1036 AC_MSG_ERROR([unable to find usable guile version from "${guile_version_list}"])
1038 found_usable_guile=no
1041 dnl One final sanity check.
1042 dnl The user could have said --with-guile=python-2.7.
1043 if test "${found_usable_guile}" != no; then
1044 save_CPPFLAGS=$CPPFLAGS
1046 CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
1047 LIBS="$LIBS $new_LIBS"
1048 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "libguile.h"]],
1049 [[scm_init_guile ();]])],
1050 [have_libguile_var=yes
1051 GUILE_CPPFLAGS=$new_CPPFLAGS
1052 GUILE_LIBS=$new_LIBS],
1053 [found_usable_guile=no])
1054 dnl scm_set_automatic_finalization_enabled added in Guile 2.2.
1055 AC_CHECK_FUNC(scm_set_automatic_finalization_enabled,
1056 AC_DEFINE(HAVE_GUILE_MANUAL_FINALIZATION, 1,
1057 [Define if Guile supports manual finalization.])
1059 CPPFLAGS=$save_CPPFLAGS
1061 if test "${found_usable_guile}" = no; then
1062 if test "${flag_errors}" = yes; then
1063 AC_MSG_FAILURE([linking guile version ${guile_version} test program failed])
1067 AC_MSG_RESULT([${found_usable_guile}])
1070 dnl There are several different values for --with-guile:
1072 dnl no - Don't include guile support.
1073 dnl yes - Include guile support, error if it's missing.
1074 dnl The pkg-config program must be in $PATH.
1075 dnl auto - Same as "yes", but if guile is missing from the system,
1076 dnl fall back to "no".
1077 dnl guile-version [guile-version-choice-2 ...] -
1078 dnl A space-separated list of guile package versions to try.
1079 dnl These are passed to pkg-config as-is.
1080 dnl E.g., guile-2.0 or guile-2.2-uninstalled
1081 dnl This requires making sure PKG_CONFIG_PATH is set appropriately.
1082 dnl /path/to/pkg-config -
1083 dnl Use this pkg-config program.
1084 dnl NOTE: This needn't be the "real" pkg-config program.
1085 dnl It could be a shell script. It is invoked as:
1086 dnl pkg-config --exists $version
1087 dnl pkg-config --cflags $version
1088 dnl pkg-config --libs $version
1089 dnl pkg-config --variable guild $version
1090 dnl The script will be called with $version having each value in
1091 dnl $try_guile_versions until --exists indicates success.
1094 AS_HELP_STRING([--with-guile@<:@=GUILE@:>@], [include guile support (auto/yes/no/<guile-version>/<pkg-config-program>)]),
1095 [], [with_guile=auto])
1096 AC_MSG_CHECKING([whether to use guile])
1097 AC_MSG_RESULT([$with_guile])
1099 dnl We check guile with pkg-config.
1100 AC_PATH_PROG(pkg_config_prog_path, pkg-config, missing)
1102 try_guile_versions="guile-3.0 guile-2.2 guile-2.0"
1104 case "${with_guile}" in
1106 AC_MSG_WARN([guile support disabled; some features will be unavailable.])
1109 if test "${pkg_config_prog_path}" = "missing"; then
1110 AC_MSG_WARN([pkg-config not found, guile support disabled])
1112 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, no, have_libguile)
1116 if test "${pkg_config_prog_path}" = "missing"; then
1117 AC_MSG_ERROR([pkg-config not found])
1119 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, yes, have_libguile)
1121 [[\\/]]* | ?:[[\\/]]*)
1122 if test -x "${with_guile}"; then
1123 AC_TRY_LIBGUILE(${with_guile}, ${try_guile_versions}, yes, have_libguile)
1125 AC_MSG_ERROR([Guile config program not executable: ${with_guile}])
1129 # Disallow --with=guile="" and --with-guile=foo/bar.
1130 AC_MSG_ERROR([invalid value for --with-guile])
1133 # A space separate list of guile versions to try, in order.
1134 if test "${pkg_config_prog_path}" = "missing"; then
1135 AC_MSG_ERROR([pkg-config not found])
1137 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${with_guile}, yes, have_libguile)
1141 if test "${have_libguile}" != no; then
1142 dnl Get the name of the 'guild' program.
1143 case "${with_guile}" in
1144 [[\\/]]* | ?:[[\\/]]*)
1145 GDB_GUILE_PROGRAM_NAMES(["${with_guile}"], ["${guile_version}"])
1148 GDB_GUILE_PROGRAM_NAMES(["${pkg_config_prog_path}"], ["${guile_version}"])
1152 dnl Make sure guild can handle this host.
1153 GDB_TRY_GUILD([$srcdir/guile/lib/gdb/support.scm])
1154 dnl If not, disable guile support.
1155 if test "$ac_cv_guild_ok" = no; then
1157 AC_MSG_WARN(disabling guile support, $GUILD fails compiling for $host)
1161 if test "${have_libguile}" != no; then
1162 AC_DEFINE(HAVE_GUILE, 1, [Define if Guile interpreter is being linked in.])
1163 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_GUILE_OBS)"
1164 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_GUILE_DEPS)"
1165 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_GUILE_SRCS)"
1166 CONFIG_INSTALL="$CONFIG_INSTALL install-guile"
1167 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_GUILE_CFLAGS)"
1169 dnl The 'scm_new_smob' function appeared in Guile 2.0.6.
1171 save_CPPFLAGS="$CPPFLAGS"
1173 CPPFLAGS="$GUILE_CPPFLAGS"
1174 AC_CHECK_FUNCS([scm_new_smob])
1176 CPPFLAGS="$save_CPPFLAGS"
1178 # Even if Guile support is not compiled in, we need to have these files
1180 CONFIG_OBS="$CONFIG_OBS guile/guile.o"
1181 CONFIG_SRCS="$CONFIG_SRCS guile/guile.c"
1183 AC_SUBST(GUILE_CPPFLAGS)
1184 AC_SUBST(GUILE_LIBS)
1185 AM_CONDITIONAL(HAVE_GUILE, test "${have_libguile}" != no)
1187 # ---------------------------- #
1188 # Check for source highlight. #
1189 # ---------------------------- #
1194 AC_ARG_ENABLE([source-highlight],
1195 [AS_HELP_STRING([--enable-source-highlight],
1196 [enable source-highlight for source listings])],
1197 [GDB_CHECK_YES_NO_AUTO_VAL([$enableval], [--enable-source-highlight])],
1198 [enable_source_highlight=auto])
1200 if test "${enable_source_highlight}" != "no"; then
1201 AC_MSG_CHECKING([for the source-highlight library])
1202 if test "${pkg_config_prog_path}" = "missing"; then
1203 AC_MSG_RESULT([no - pkg-config not found])
1204 if test "${enable_source_highlight}" = "yes"; then
1205 AC_MSG_ERROR([pkg-config was not found in your system])
1208 if ${pkg_config_prog_path} --exists source-highlight; then
1211 AC_MSG_ERROR([source highlight is incompatible with -static-libstdc++; dnl
1212 either use --disable-source-highlight or dnl
1213 --without-static-standard-libraries])
1217 srchigh_pkg_cflags=`${pkg_config_prog_path} --cflags source-highlight`
1218 srchigh_pkg_libs=`${pkg_config_prog_path} --libs source-highlight`
1220 # Now that we have found a source-highlight library, check if we can use
1221 # it. In particular, we're trying to detect the situation that the
1222 # library is using the new libstdc++ library abi ( see
1223 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html )
1224 # while the compiler being used to compile gdb is using the old abi.
1225 # Such a situation will result in an undefined reference to
1226 # srchilite::SourceHighlight::SourceHighlight(std::string const&).
1227 # This situation can occur for instance when using a source highlight
1228 # library compiled with g++ 7.5.0 while building gdb with g++ 4.8.5.
1230 save_CXXFLAGS="$CXXFLAGS"
1232 CXXFLAGS="$CXXFLAGS $srchigh_pkg_cflags"
1233 LIBS="$LIBS $srchigh_pkg_libs"
1236 [#include <srchilite/sourcehighlight.h>],
1237 [std::string outlang = "esc.outlang";
1238 new srchilite::SourceHighlight (outlang);]
1240 [have_usable_source_highlight=yes],
1241 [have_usable_source_highlight=no]
1243 CXXFLAGS="$save_CXXFLAGS"
1247 if test "${have_usable_source_highlight}" = "yes"; then
1248 AC_DEFINE([HAVE_SOURCE_HIGHLIGHT], 1,
1249 [Define to 1 if the source-highlight library is available])
1250 AC_MSG_RESULT([yes])
1251 SRCHIGH_CFLAGS="$srchigh_pkg_cflags"
1252 SRCHIGH_LIBS="$srchigh_pkg_libs"
1255 if test "${enable_source_highlight}" = "yes"; then
1256 AC_MSG_ERROR([source-highlight in your system could not be used])
1261 if test "${enable_source_highlight}" = "yes"; then
1262 AC_MSG_ERROR([source-highlight was not found in your system])
1267 AC_SUBST(SRCHIGH_LIBS)
1268 AC_SUBST(SRCHIGH_CFLAGS)
1270 # ------------------------- #
1271 # Checks for header files. #
1272 # ------------------------- #
1275 # elf_hp.h is for HP/UX 64-bit shared library support.
1276 AC_CHECK_HEADERS([nlist.h machine/reg.h \
1278 sys/file.h sys/filio.h sys/ioctl.h sys/param.h \
1279 sys/procctl.h sys/resource.h sys/ptrace.h ptrace.h \
1280 sys/reg.h sys/debugreg.h \
1281 termios.h elf_hp.h])
1282 AC_CHECK_HEADERS(sys/user.h, [], [],
1283 [#if HAVE_SYS_PARAM_H
1284 # include <sys/param.h>
1288 AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncursesw/ncurses.h ncurses/ncurses.h ncurses/term.h)
1289 AC_CHECK_HEADERS(term.h, [], [],
1291 # include <curses.h>
1295 AC_CHECK_HEADERS([sys/socket.h])
1296 AC_CHECK_HEADERS([ws2tcpip.h])
1297 AC_CHECK_HEADERS([execinfo.h])
1299 # ------------------------- #
1300 # Checks for declarations. #
1301 # ------------------------- #
1305 AC_CHECK_DECLS([snprintf])
1308 # ------------------ #
1309 # Checks for types. #
1310 # ------------------ #
1312 AC_CHECK_TYPES(socklen_t, [], [],
1313 [#include <sys/types.h>
1314 #if HAVE_SYS_SOCKET_H
1315 # include <sys/socket.h>
1316 #elif HAVE_WS2TCPIP_H
1317 # include <ws2tcpip.h>
1321 # ------------------------------------- #
1322 # Checks for compiler characteristics. #
1323 # ------------------------------------- #
1329 # ------------------------------ #
1330 # Checks for library functions. #
1331 # ------------------------------ #
1333 AC_CHECK_FUNCS([getuid getgid \
1334 pipe pread pread64 pwrite resize_term \
1336 sigaction sigsetmask socketpair \
1337 ttrace wborder wresize setlocale iconvlist libiconvlist btowc \
1338 setrlimit getrlimit posix_madvise waitpid \
1339 use_default_colors])
1343 # Check the return and argument types of ptrace.
1346 dnl AC_FUNC_SETPGRP does not work when cross compiling
1347 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
1348 if test "$cross_compiling" = no; then
1352 [whether setpgrp takes no argument],
1353 [ac_cv_func_setpgrp_void],
1356 [#include <unistd.h>],
1357 [if (setpgrp(1,1) == -1)
1362 [ac_cv_func_setpgrp_void=no],
1363 [ac_cv_func_setpgrp_void=yes]
1366 if test "$ac_cv_func_setpgrp_void" = yes; then
1367 AC_DEFINE(SETPGRP_VOID, 1)
1371 # Check if <sys/proc.h> defines `struct thread' with a td_pcb member.
1372 AC_CHECK_MEMBERS([struct thread.td_pcb], [], [],
1373 [#include <sys/param.h>
1374 #include <sys/proc.h>
1377 # See if <sys/lwp.h> defines `struct lwp`.
1380 [gdb_cv_struct_lwp],
1383 [#include <sys/param.h>
1385 #include <sys/lwp.h>],
1388 [gdb_cv_struct_lwp=yes],
1389 [gdb_cv_struct_lwp=no]
1392 if test "$gdb_cv_struct_lwp" = yes; then
1393 AC_DEFINE(HAVE_STRUCT_LWP, 1,
1394 [Define to 1 if your system has struct lwp.])
1397 # See if <machine/reg.h> degines `struct reg'.
1399 [for struct reg in machine/reg.h],
1400 [gdb_cv_struct_reg],
1403 [#include <sys/types.h>
1404 #include <machine/reg.h>],
1407 [gdb_cv_struct_reg=yes],
1408 [gdb_cv_struct_reg=no]
1411 if test "$gdb_cv_struct_reg" = yes; then
1412 AC_DEFINE(HAVE_STRUCT_REG, 1,
1413 [Define to 1 if your system has struct reg in <machine/reg.h>.])
1416 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
1417 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
1418 AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [],
1419 [#include <sys/types.h>
1420 #include <machine/reg.h>])
1422 # See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
1423 AC_MSG_CHECKING(for PTRACE_GETREGS)
1425 [gdb_cv_have_ptrace_getregs],
1427 [AC_LANG_PROGRAM([#include <sys/ptrace.h>], [PTRACE_GETREGS;])],
1428 [gdb_cv_have_ptrace_getregs=yes],
1429 [gdb_cv_have_ptrace_getregs=no]
1432 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
1433 if test "$gdb_cv_have_ptrace_getregs" = yes; then
1434 AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
1435 [Define if sys/ptrace.h defines the PTRACE_GETREGS request.])
1438 # See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
1439 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
1441 [gdb_cv_have_ptrace_getfpxregs],
1443 [AC_LANG_PROGRAM([#include <sys/ptrace.h>], [PTRACE_GETFPXREGS;])],
1444 [gdb_cv_have_ptrace_getfpxregs=yes],
1445 [gdb_cv_have_ptrace_getfpxregs=no]
1448 AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
1449 if test "$gdb_cv_have_ptrace_getfpxregs" = yes; then
1450 AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
1451 [Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.])
1454 # See if <sys/ptrace.h> provides the PT_GETDBREGS request.
1455 AC_MSG_CHECKING(for PT_GETDBREGS)
1457 [gdb_cv_have_pt_getdbregs],
1460 [#include <sys/types.h>
1461 #include <sys/ptrace.h>],
1464 [gdb_cv_have_pt_getdbregs=yes],
1465 [gdb_cv_have_pt_getdbregs=no]
1468 AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
1469 if test "$gdb_cv_have_pt_getdbregs" = yes; then
1470 AC_DEFINE(HAVE_PT_GETDBREGS, 1,
1471 [Define if sys/ptrace.h defines the PT_GETDBREGS request.])
1474 # See if <sys/ptrace.h> supports LWP names on FreeBSD
1475 # Older FreeBSD versions don't have the pl_tdname member of
1476 # `struct ptrace_lwpinfo'.
1477 AC_CHECK_MEMBERS([struct ptrace_lwpinfo.pl_tdname], [], [],
1478 [#include <sys/ptrace.h>])
1480 # See if <sys/ptrace.h> supports syscall fields on FreeBSD. The
1481 # pl_syscall_code member of `struct ptrace_lwpinfo' was added in
1483 AC_CHECK_MEMBERS([struct ptrace_lwpinfo.pl_syscall_code], [], [],
1484 [#include <sys/ptrace.h>])
1486 # Check if the compiler supports the `long long' type.
1488 AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long,
1489 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1490 [[extern long long foo;]],
1491 [[switch (foo & 2) { case 0: return 1; }]])],
1492 gdb_cv_c_long_long=yes,
1493 gdb_cv_c_long_long=no)])
1494 if test "$gdb_cv_c_long_long" != yes; then
1495 # libdecnumber requires long long.
1496 AC_MSG_ERROR([Compiler must support long long for GDB.])
1499 # Check if the compiler and runtime support printing decfloats.
1501 AC_CACHE_CHECK([for decfloat support in printf],
1502 gdb_cv_printf_has_decfloat,
1503 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1505 _Decimal32 d32 = 1.2345df;
1506 _Decimal64 d64 = 1.2345dd;
1507 _Decimal128 d128 = 1.2345dl;
1508 sprintf (buf, "Decimal32: %H\nDecimal64: %D\nDecimal128: %DD", d32, d64, d128);
1509 return (strcmp ("Decimal32: 1.2345\nDecimal64: 1.2345\nDecimal128: 1.2345", buf));]])],
1510 gdb_cv_printf_has_decfloat=yes,
1511 gdb_cv_printf_has_decfloat=no,
1512 gdb_cv_printf_has_decfloat=no)])
1513 if test "$gdb_cv_printf_has_decfloat" = yes; then
1514 AC_DEFINE(PRINTF_HAS_DECFLOAT, 1,
1515 [Define to 1 if the "%H, %D and %DD" formats work to print decfloats.])
1518 # Check if the compiler supports the `long double' type. We can't use
1519 # AC_C_LONG_DOUBLE because that one does additional checks on the
1520 # constants defined in <float.h> that fail on some systems,
1521 # e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6.
1523 AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double,
1524 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])],
1525 gdb_cv_c_long_double=yes,
1526 gdb_cv_c_long_double=no)])
1527 if test "$gdb_cv_c_long_double" = yes; then
1528 AC_DEFINE(HAVE_LONG_DOUBLE, 1,
1529 [Define to 1 if the compiler supports long double.])
1532 # Check if the compiler and runtime support printing long doubles.
1534 AC_CACHE_CHECK([for long double support in printf],
1535 gdb_cv_printf_has_long_double,
1536 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1538 long double f = 3.141592653;
1539 sprintf (buf, "%Lg", f);
1540 return (strncmp ("3.14159", buf, 7));]])],
1541 gdb_cv_printf_has_long_double=yes,
1542 gdb_cv_printf_has_long_double=no,
1543 gdb_cv_printf_has_long_double=no)])
1544 if test "$gdb_cv_printf_has_long_double" = yes; then
1545 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1,
1546 [Define to 1 if the "%Lg" format works to print long doubles.])
1549 # Check if the compiler and runtime support scanning long doubles.
1551 AC_CACHE_CHECK([for long double support in scanf],
1552 gdb_cv_scanf_has_long_double,
1553 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
1554 [[#include <stdio.h>]],
1555 [[char *buf = "3.141592653";
1557 sscanf (buf, "%Lg", &f);
1558 return !(f > 3.14159 && f < 3.14160);]])],
1559 gdb_cv_scanf_has_long_double=yes,
1560 gdb_cv_scanf_has_long_double=no,
1561 gdb_cv_scanf_has_long_double=no)])
1562 if test "$gdb_cv_scanf_has_long_double" = yes; then
1563 AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1,
1564 [Define to 1 if the "%Lg" format works to scan long doubles.])
1570 [for -bbigtoc option], [gdb_cv_bigtoc],
1571 [SAVE_LDFLAGS=$LDFLAGS
1574 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
1575 *) gdb_cv_bigtoc=-bbigtoc ;;
1578 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
1580 [AC_LANG_PROGRAM([], [int i;])],
1584 LDFLAGS="${SAVE_LDFLAGS}"]
1586 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
1590 AC_MSG_CHECKING(for the dynamic export flag)
1592 if test "${gdb_native}" = yes; then
1593 # The dynamically loaded libthread_db needs access to symbols in the gdb
1594 # executable. Older GNU ld supports --export-dynamic but --dynamic-list
1595 # may not be supported there.
1596 old_LDFLAGS="$LDFLAGS"
1597 # Older GNU ld supports --export-dynamic but --dynamic-list it does not.
1598 RDYNAMIC="-Wl,--dynamic-list=${srcdir}/proc-service.list"
1599 LDFLAGS="$LDFLAGS $RDYNAMIC"
1600 if test "${have_libpython}" = no; then
1602 [AC_LANG_PROGRAM([], [])],
1603 [dynamic_list=true],
1607 # Workaround http://bugs.python.org/issue4434 where static
1608 # libpythonX.Y.a would get its symbols required for
1609 # pythonX.Y/lib-dynload/*.so modules hidden by -Wl,--dynamic-list.
1610 # Problem does not happen for the recommended libpythonX.Y.so linkage.
1612 # Note the workaround for Python
1613 # http://bugs.python.org/issue10112 earlier has removed
1614 # -export-dynamic from PYTHON_LIBS. That's exactly what we want
1615 # here too, as otherwise it'd make this -Wl,--dynamic-list test
1617 old_CFLAGS="$CFLAGS"
1618 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
1620 LIBS="$LIBS $PYTHON_LIBS"
1621 old_CPPFLAGS="$CPPFLAGS"
1622 CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS"
1625 [#include "Python.h"],
1628 err = PyRun_SimpleString ("import ctypes\n");
1630 return err == 0 ? 0 : 1;])],
1631 [dynamic_list=true], [], [true])
1633 CFLAGS="$old_CFLAGS"
1634 CPPFLAGS="$old_CPPFLAGS"
1636 LDFLAGS="$old_LDFLAGS"
1638 if $dynamic_list; then
1639 found="-Wl,--dynamic-list"
1640 RDYNAMIC='-Wl,--dynamic-list=$(srcdir)/proc-service.list'
1643 RDYNAMIC="-rdynamic"
1646 AC_MSG_RESULT($found)
1649 [whether execinfo.h backtrace is available],
1650 gdb_cv_execinfo_backtrace,
1654 #include <execinfo.h>
1659 f = backtrace (b, 2);
1660 backtrace_symbols_fd (b, f, 2);
1662 [gdb_cv_execinfo_backtrace=yes],
1663 [gdb_cv_execinfo_backtrace=no])])
1664 if test "$gdb_cv_execinfo_backtrace" = yes; then
1665 AC_DEFINE(HAVE_EXECINFO_BACKTRACE, 1,
1666 [Define to 1 if execinfo.h backtrace functions are available.])
1669 dnl For certain native configurations, we need to check whether thread
1670 dnl support can be built in or not.
1672 dnl Note that we only want this if we are both native (host == target),
1673 dnl and not doing a canadian cross build (build == host).
1675 if test "${build}" = "${host}" -a "${host}" = "${target}" ; then
1678 AC_MSG_CHECKING(for AiX thread debugging library)
1680 [gdb_cv_have_aix_thread_debug],
1683 [#include <sys/pthdebug.h>],
1684 [#ifndef PTHDB_VERSION_3
1688 [gdb_cv_have_aix_thread_debug=yes],
1689 [gdb_cv_have_aix_thread_debug=no]
1692 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
1693 if test "$gdb_cv_have_aix_thread_debug" = yes; then
1694 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
1695 CONFIG_OBS="${CONFIG_OBS} aix-thread.o"
1696 LIBS="$LIBS -lpthdebug"
1698 # Older versions of AIX do not provide the declaration for
1699 # the getthrds function (it appears that it was introduced
1701 AC_CHECK_DECLS(getthrds, [], [], [[#include <procinfo.h>]])
1705 AC_SUBST(CONFIG_LDFLAGS)
1708 dnl See if we have a thread_db header file that has TD_NOTALLOC and
1709 dnl other error codes.
1710 if test "x$ac_cv_header_thread_db_h" = "xyes"; then
1712 [whether <thread_db.h> has TD_NOTALLOC],
1713 [gdb_cv_thread_db_h_has_td_notalloc],
1716 [#include <thread_db.h>],
1717 [int i = TD_NOTALLOC;]
1719 [gdb_cv_thread_db_h_has_td_notalloc=yes],
1720 [gdb_cv_thread_db_h_has_td_notalloc=no]
1725 [whether <thread_db.h> has TD_VERSION],
1726 [gdb_cv_thread_db_h_has_td_version],
1729 [#include <thread_db.h>],
1730 [int i = TD_VERSION;]
1732 [gdb_cv_thread_db_h_has_td_version=yes],
1733 [gdb_cv_thread_db_h_has_td_version=no]
1738 [whether <thread_db.h> has TD_NOTLS],
1739 [gdb_cv_thread_db_h_has_td_notls],
1742 [#include <thread_db.h>],
1745 [gdb_cv_thread_db_h_has_td_notls=yes],
1746 [gdb_cv_thread_db_h_has_td_notls=no]
1750 if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
1751 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
1752 [Define if <thread_db.h> has the TD_NOTALLOC error code.])
1754 if test "x$gdb_cv_thread_db_h_has_td_version" = "xyes"; then
1755 AC_DEFINE(THREAD_DB_HAS_TD_VERSION, 1,
1756 [Define if <thread_db.h> has the TD_VERSION error code.])
1758 if test "x$gdb_cv_thread_db_h_has_td_notls" = "xyes"; then
1759 AC_DEFINE(THREAD_DB_HAS_TD_NOTLS, 1,
1760 [Define if <thread_db.h> has the TD_NOTLS error code.])
1763 dnl Set the host's .gdbinit filename.
1772 AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.])
1774 dnl Set the host's .gdbearlyinit filename
1775 AC_DEFINE_UNQUOTED(GDBEARLYINIT,".gdbearlyinit",[The .gdbearlyinit filename.])
1777 dnl Handle optional features that can be enabled.
1779 # Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
1780 # except that the argument to --with-sysroot is optional.
1781 # --with-sysroot (or --with-sysroot=yes) sets the default sysroot path.
1782 if test "x$with_sysroot" = xyes; then
1783 with_sysroot="${exec_prefix}/${target_alias}/sys-root"
1785 AC_ARG_WITH(sysroot,
1786 AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
1787 [search for usr/lib et al within DIR]),
1788 [TARGET_SYSTEM_ROOT=$withval], [TARGET_SYSTEM_ROOT=])
1789 AC_DEFINE_DIR(TARGET_SYSTEM_ROOT, TARGET_SYSTEM_ROOT,
1790 [search for usr/lib et al within DIR])
1791 AC_SUBST(TARGET_SYSTEM_ROOT)
1792 GDB_AC_DEFINE_RELOCATABLE(TARGET_SYSTEM_ROOT, sysroot, ${ac_define_dir})
1794 GDB_AC_WITH_DIR(SYSTEM_GDBINIT, system-gdbinit,
1795 [automatically load a system-wide gdbinit file],
1797 GDB_AC_WITH_DIR(SYSTEM_GDBINIT_DIR, system-gdbinit-dir,
1798 [automatically load system-wide gdbinit files from this directory],
1801 AM_GDB_COMPILER_TYPE
1805 # In the Cygwin environment, we need some additional flags.
1806 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
1807 [AC_EGREP_CPP(^lose$, [
1808 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
1810 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
1813 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
1814 SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o"
1816 *go32* ) SER_HARDWIRE=ser-go32.o ;;
1817 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
1818 *mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;;
1819 *) SER_HARDWIRE="$SER_HARDWIRE ser-uds.o" ;;
1821 AC_SUBST(SER_HARDWIRE)
1823 # libreadline needs libuser32.a in a cygwin environment
1825 if test x"$gdb_cv_os_cygwin" = xyes; then
1826 WIN32LIBS="-luser32"
1828 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
1833 # The ser-tcp.c module requires sockets.
1834 # Note that WIN32APILIBS is set by GDB_AC_COMMON.
1835 WIN32LIBS="$WIN32LIBS $WIN32APILIBS"
1837 # Add ELF support to GDB, but only if BFD includes ELF support.
1838 GDB_AC_CHECK_BFD([for ELF support in BFD], gdb_cv_var_elf,
1839 [bfd_get_elf_phdr_upper_bound (NULL)], elf-bfd.h)
1840 if test "$gdb_cv_var_elf" = yes; then
1841 CONFIG_OBS="$CONFIG_OBS elfread.o stap-probe.o dtrace-probe.o \
1842 gcore-elf.o elf-none-tdep.o"
1843 AC_DEFINE(HAVE_ELF, 1,
1844 [Define if ELF support should be included.])
1845 # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
1846 if test "$plugins" = "yes"; then
1847 AC_SEARCH_LIBS(dlopen, dl)
1851 # Add macho support to GDB, but only if BFD includes it.
1852 GDB_AC_CHECK_BFD([for Mach-O support in BFD], gdb_cv_var_macho,
1853 [bfd_mach_o_lookup_command (NULL, 0, NULL)], mach-o.h)
1854 if test "$gdb_cv_var_macho" = yes; then
1855 CONFIG_OBS="$CONFIG_OBS machoread.o"
1858 # Add any host-specific objects to GDB.
1859 CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
1861 # If building on ELF, look for lzma support for embedded compressed debug info.
1862 if test "$gdb_cv_var_elf" = yes; then
1864 AS_HELP_STRING([--with-lzma], [support lzma compression (auto/yes/no)]),
1865 [], [with_lzma=auto])
1866 AC_MSG_CHECKING([whether to use lzma])
1867 AC_MSG_RESULT([$with_lzma])
1869 if test "${with_lzma}" != no; then
1870 AC_LIB_HAVE_LINKFLAGS([lzma], [], [#include "lzma.h"],
1871 [lzma_index_iter iter;
1872 lzma_index_iter_init (&iter, 0);
1873 lzma_mf_is_supported (LZMA_MF_HC3);])
1874 if test "$HAVE_LIBLZMA" != yes; then
1875 if test "$with_lzma" = yes; then
1876 AC_MSG_ERROR([missing liblzma for --with-lzma])
1882 LIBGUI="../libgui/src/libgui.a"
1883 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
1885 AC_SUBST(GUI_CFLAGS_X)
1889 AC_SUBST(WIN32LDAPP)
1892 *-*-cygwin* | *-*-mingw* )
1901 if test "${enable_gdbtk}" = "yes"; then
1903 # Gdbtk must have an absolute path to srcdir in order to run
1904 # properly when not installed.
1912 # If $no_tk is nonempty, then we can't do Tk, and there is no
1913 # point to doing Tcl.
1916 if test -z "${no_tcl}" -a -z "${no_tk}"; then
1919 # Check for in-tree tcl
1926 if test "${TCL_SRC_DIR}" = "${topdir}/tcl"; then
1930 # Find Tcl private headers
1931 if test x"${intree}" = xno; then
1932 CY_AC_TCL_PRIVATE_HEADERS
1933 TCL_INCLUDE="${TCL_INCLUDE_SPEC} ${TCL_PRIVATE_INCLUDE}"
1934 TCL_LIBRARY="${TCL_LIB_SPEC}"
1937 # If building tcl in the same src tree, private headers
1938 # are not needed, but we need to be sure to use the right
1940 TCL_INCLUDE="-I${TCL_SRC_DIR}/generic"
1941 TCL_LIBRARY="${TCL_BUILD_LIB_SPEC}"
1942 TCL_DEPS="../tcl/${configdir}${TCL_LIB_FILE}"
1944 AC_SUBST(TCL_INCLUDE)
1945 AC_SUBST(TCL_LIBRARY)
1950 # Check for in-tree Tk
1952 if test "${TK_SRC_DIR}" = "${topdir}/tk"; then
1956 # Find Tk private headers
1957 if test x"${intree}" = xno; then
1958 CY_AC_TK_PRIVATE_HEADERS
1959 TK_INCLUDE="${TK_INCLUDE_SPEC} ${TK_PRIVATE_INCLUDE}"
1960 TK_LIBRARY=${TK_LIB_SPEC}
1963 TK_INCLUDE="-I${TK_SRC_DIR}/generic"
1964 TK_LIBRARY="${TK_BUILD_LIB_SPEC}"
1965 TK_DEPS="../tk/${configdir}/${TK_LIB_FILE}"
1967 AC_SUBST(TK_INCLUDE)
1968 AC_SUBST(TK_LIBRARY)
1970 AC_SUBST(TK_XINCLUDES)
1972 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
1974 # Include some libraries that Tcl and Tk want.
1975 TCL_LIBS='$(LIBGUI) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
1976 # Yes, the ordering seems wrong here. But it isn't.
1977 # TK_LIBS is the list of libraries that need to be linked
1978 # after Tcl/Tk. Note that this isn't put into LIBS. If it
1979 # were in LIBS then any link tests after this point would
1980 # try to include things like `$(LIBGUI)', which wouldn't work.
1981 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
1983 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
1984 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
1985 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
1986 CONFIG_ALL="${CONFIG_ALL} all-gdbtk"
1987 CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk"
1988 CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk"
1989 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk"
1991 if test x"$gdb_cv_os_cygwin" = xyes; then
1992 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
1993 WIN32LDAPP="-Wl,--subsystem,console"
1994 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
1997 AC_CONFIG_SUBDIRS(gdbtk)
2005 AC_SUBST(GDBTK_CFLAGS)
2006 AC_SUBST(GDBTK_SRC_DIR)
2010 # Unlike the sim directory, whether a simulator is linked is controlled by
2011 # presence of a gdb_sim definition in the target configure.tgt entry.
2012 # This code just checks for a few cases where we'd like to ignore those
2013 # definitions, even when they're present in the '.mt' file. These cases
2014 # are when --disable-sim is specified, or if the simulator directory is
2015 # not part of the source tree.
2018 AS_HELP_STRING([--enable-sim], [link gdb with simulator]),
2019 [echo "enable_sim = $enable_sim";
2020 echo "enableval = ${enableval}";
2021 case "${enableval}" in
2022 yes) ignore_sim=false ;;
2023 no) ignore_sim=true ;;
2024 *) ignore_sim=false ;;
2028 if test ! -d "${srcdir}/../sim"; then
2034 if test "${ignore_sim}" = "false"; then
2035 if test x"${gdb_sim}" != x ; then
2037 SIM_OBS="remote-sim.o"
2039 # Some tdep code should only be compiled in when the ppc sim is
2040 # built. PR sim/13418.
2043 AC_DEFINE(WITH_PPC_SIM, 1, [Define if the PPC simulator is being linked in.])
2051 AC_SUBST(ENABLE_CFLAGS)
2052 AC_SUBST(PROFILE_CFLAGS)
2054 AC_SUBST(CONFIG_OBS)
2055 AC_SUBST(CONFIG_DEPS)
2056 AC_SUBST(CONFIG_SRCS)
2057 AC_SUBST(CONFIG_ALL)
2058 AC_SUBST(CONFIG_CLEAN)
2059 AC_SUBST(CONFIG_INSTALL)
2060 AC_SUBST(CONFIG_UNINSTALL)
2062 # List of host floatformats.
2063 AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat])
2064 AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat])
2065 AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat])
2067 # target_subdir is used by the testsuite to find the target libraries.
2069 if test "${host}" != "${target}"; then
2070 target_subdir="${target_alias}/"
2072 AC_SUBST(target_subdir)
2074 # Import nat definitions.
2075 nat_makefile_frag=/dev/null
2076 if test "${gdb_native}" = "yes"; then
2077 . ${srcdir}/configure.nat
2078 nativefile=$NAT_FILE
2082 AC_SUBST(NATDEPFILES)
2087 AC_SUBST(NAT_GENERATED_FILES)
2088 AC_SUBST(HAVE_NATIVE_GCORE_HOST)
2089 AC_SUBST_FILE(nat_makefile_frag)
2091 if test x"${gdb_osabi}" != x ; then
2092 AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
2093 [Define to the default OS ABI for this configuration.])
2096 # Setup possible use of libbacktrace.
2097 AC_ARG_ENABLE([libbacktrace],
2098 [AS_HELP_STRING([--enable-libbacktrace],
2099 [use libbacktrace to write a backtrace after a fatal signal.])],
2100 [GDB_CHECK_YES_NO_VAL([$enableval], [--enable-libbacktrace])],
2101 [enable_libbacktrace=yes])
2103 if test "${enable_libbacktrace}" = "yes"; then
2104 LIBBACKTRACE_INC="-I$srcdir/../libbacktrace/ -I../libbacktrace/"
2105 LIBBACKTRACE_LIB=../libbacktrace/libbacktrace.la
2106 AC_DEFINE(HAVE_LIBBACKTRACE, 1, [Define if libbacktrace is being used.])
2112 AC_SUBST(LIBBACKTRACE_INC)
2113 AC_SUBST(LIBBACKTRACE_LIB)
2115 # Check for babeltrace and babeltrace-ctf
2116 AC_ARG_WITH(babeltrace,
2117 AS_HELP_STRING([--with-babeltrace], [include babeltrace support (auto/yes/no)]),
2118 [], [with_babeltrace=auto])
2119 AC_MSG_CHECKING([whether to use babeltrace])
2120 AC_MSG_RESULT([$with_babeltrace])
2122 if test "x$with_babeltrace" = "xno"; then
2123 AC_MSG_WARN([babletrace support disabled; GDB is unable to read CTF data.])
2125 # Append -Werror to CFLAGS so that configure can catch the warning
2126 # "assignment from incompatible pointer type", which is related to
2127 # the babeltrace change from 1.0.3 to 1.1.0. Babeltrace 1.1.0 works
2128 # in GDB, while babeltrace 1.0.3 is broken.
2129 # AC_LIB_HAVE_LINKFLAGS may modify CPPFLAGS in it, so it should be
2130 # safe to save and restore CFLAGS here.
2131 saved_CFLAGS=$CFLAGS
2132 CFLAGS="$CFLAGS -Werror"
2133 AC_LIB_HAVE_LINKFLAGS([babeltrace], [babeltrace-ctf],
2134 [#include <babeltrace/babeltrace.h>
2135 #include <babeltrace/ctf/events.h>
2136 #include <babeltrace/ctf/iterator.h>],
2137 [struct bt_iter_pos *pos = bt_iter_get_pos (bt_ctf_get_iter (NULL));
2138 struct bt_ctf_event *event = NULL;
2139 const struct bt_definition *scope;
2141 pos->type = BT_SEEK_BEGIN;
2142 bt_iter_set_pos (bt_ctf_get_iter (NULL), pos);
2143 scope = bt_ctf_get_top_level_scope (event,
2144 BT_STREAM_EVENT_HEADER);
2145 bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id"));
2147 CFLAGS=$saved_CFLAGS
2149 if test "$HAVE_LIBBABELTRACE" != yes; then
2150 if test "$with_babeltrace" = yes; then
2151 AC_MSG_ERROR([babeltrace is missing or unusable])
2153 AC_MSG_WARN([babeltrace is missing or unusable; GDB is unable to read CTF data.])
2160 AS_HELP_STRING([--with-xxhash], [use libxxhash for hashing (faster) (auto/yes/no)]),
2161 [], [with_xxhash=auto])
2163 GCC_ENABLE([libctf], [yes], [], [Handle .ctf type-info sections])
2164 if test "${enable_libctf}" = yes; then
2165 AC_DEFINE(ENABLE_LIBCTF, 1, [Handle .ctf type-info sections])
2166 LIBCTF="../libctf/libctf.la"
2167 CTF_DEPS="../libctf/libctf.la"
2175 # If nativefile (NAT_FILE) is not set in configure.nat, we link to an
2178 if test "x$with_xxhash" != "xno"; then
2179 AC_LIB_HAVE_LINKFLAGS([xxhash], [],
2180 [#include <xxhash.h>],
2181 [XXH32("foo", 3, 0);
2183 if test "$HAVE_LIBXXHASH" != yes; then
2184 if test "$with_xxhash" = yes; then
2185 AC_MSG_ERROR([xxhash is missing or unusable])
2188 if test "x$with_xxhash" = "xauto"; then
2189 with_xxhash="$HAVE_LIBXXHASH"
2193 AC_MSG_CHECKING([whether to use xxhash])
2194 AC_MSG_RESULT([$with_xxhash])
2198 if test "${nativefile}" != ""; then
2199 case "${nativefile}" in
2200 nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;;
2201 * ) GDB_NM_FILE="${nativefile}"
2203 AC_CONFIG_LINKS([nm.h:$GDB_NM_FILE], [echo > stamp-nmh],
2204 [GDB_NM_FILE=$GDB_NM_FILE])
2205 AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}", [nativefile])
2208 AC_SUBST(GDB_NM_FILE)
2211 dnl Add dependency for xsltproc if building with maintainer-mode enabled.
2212 AC_PATH_PROGS(XSLTPROC, xsltproc, missing)
2213 if test "x$USE_MAINTAINER_MODE" = xyes; then
2214 if test "${XSLTPROC}" = missing; then
2215 AC_MSG_ERROR(unable to find xsltproc. maintainer-mode requires xsltproc.)
2220 dnl Check for exe extension set on certain hosts (e.g. Win32)
2223 dnl Detect the character set used by this host.
2224 dnl At the moment, we just assume it's UTF-8.
2225 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8",
2226 [Define to be a string naming the default host character set.])
2229 CONFIG_OBS="$CONFIG_OBS \$(SELFTESTS_OBS)"
2230 CONFIG_SRCS="$CONFIG_SRCS \$(SELFTESTS_SRCS)"
2233 GDB_AC_TRANSFORM([gdb], [GDB_TRANSFORM_NAME])
2234 GDB_AC_TRANSFORM([gcore], [GCORE_TRANSFORM_NAME])
2235 AC_CONFIG_FILES([gcore], [chmod +x gcore])
2236 AC_CONFIG_FILES([Makefile gdb-gdb.gdb gdb-gdb.py doc/Makefile data-directory/Makefile])