1 dnl Autoconf configure script for GDB, the GNU debugger.
2 dnl Copyright (C) 1995-2024 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++17 compiler. Check if one is available, and if
57 # necessary, set CXX_DIALECT to some -std=xxx switch.
58 AX_CXX_COMPILE_STDCXX(17, , mandatory)
62 # Dependency checking.
64 ZW_PROG_COMPILER_DEPENDENCIES([CC])
66 # Since the first call to PKG_CHECK_MODULES may not happen (is guarded by
67 # a condition), we must call PKG_PROG_PKG_CONFIG explicitly to probe for
71 dnl List of object files and targets accumulated by configure.
83 dnl Set up for gettext.
84 ZW_GNU_GETTEXT_SISTER_DIR
86 localedir='${datadir}/locale'
89 if test x"$USE_NLS" = xyes; then
90 CONFIG_ALL="$CONFIG_ALL all-po"
91 CONFIG_CLEAN="$CONFIG_CLEAN clean-po"
92 CONFIG_INSTALL="$CONFIG_INSTALL install-po"
93 CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po"
97 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ])
100 # We never need to detect it in this sub-configure.
101 # But preserve it for config.status --recheck.
103 [Parent configure detects if it is of sufficient version.])
104 AC_ARG_VAR(MAKEINFOFLAGS,
105 [Parameters for MAKEINFO.])
107 MAKEINFO_EXTRA_FLAGS=""
108 AC_CACHE_CHECK([whether $MAKEINFO supports @click], gdb_cv_have_makeinfo_click,
109 [echo '@clicksequence{a @click{} b}' >conftest.texinfo
110 if eval "$MAKEINFO conftest.texinfo >&5 2>&5"; then
111 gdb_cv_have_makeinfo_click=yes
113 gdb_cv_have_makeinfo_click=no
115 if test x"$gdb_cv_have_makeinfo_click" = xyes; then
116 MAKEINFO_EXTRA_FLAGS="$MAKEINFO_EXTRA_FLAGS -DHAVE_MAKEINFO_CLICK"
118 AC_SUBST(MAKEINFO_EXTRA_FLAGS)
120 GDB_AC_WITH_DIR(DEBUGDIR, separate-debug-dir,
121 [look for global separate debug info in this path @<:@LIBDIR/debug@:>@],
124 AC_ARG_WITH(additional-debug-dirs,
125 AS_HELP_STRING([--with-additional-debug-dirs=PATHs],
126 [colon-separated list of additional directories to
127 search for separate debug info]),
128 [AC_DEFINE_UNQUOTED(ADDITIONAL_DEBUG_DIRS, "${withval}",
129 Additional directories to look for separate
132 # We can't pass paths as command line arguments.
133 # Mingw32 tries to be clever and will convert the paths for us.
134 # For example -DBINDIR="/usr/local/bin" passed on the command line may get
135 # converted to -DBINDIR="E:/msys/mingw32/msys/1.0/local/bin".
136 # This breaks GDB's relocatable path conversions since paths passed in
137 # config.h would not get so translated, the path prefixes no longer match.
138 AC_DEFINE_DIR(BINDIR, bindir, [Directory of programs.])
140 # GDB's datadir relocation
142 GDB_AC_WITH_DIR(GDB_DATADIR, gdb-datadir,
143 [look for global separate data files in this path @<:@DATADIR/gdb@:>@],
146 AC_ARG_WITH(relocated-sources,
147 AS_HELP_STRING([--with-relocated-sources=PATH], [automatically relocate this path for source files]),
148 [reloc_srcdir="${withval}"
149 AC_DEFINE_DIR(RELOC_SRCDIR, reloc_srcdir,
150 [Relocated directory for source files. ])
153 AC_MSG_CHECKING([for default auto-load directory])
154 AC_ARG_WITH(auto-load-dir,
155 AS_HELP_STRING([--with-auto-load-dir=PATH],
156 [directories from which to load auto-loaded scripts @<:@$debugdir:$datadir/auto-load@:>@]),,
157 [with_auto_load_dir='$debugdir:$datadir/auto-load'])
158 escape_dir=`echo $with_auto_load_dir | sed -e 's/[[$]]datadir\>/\\\\\\\\\\\\&/g' -e 's/[[$]]debugdir\>/\\\\\\\\\\\\&/g'`
159 AC_DEFINE_DIR(AUTO_LOAD_DIR, escape_dir,
160 [Directories from which to load auto-loaded scripts.])
161 AC_MSG_RESULT([$with_auto_load_dir])
163 AC_MSG_CHECKING([for default auto-load safe-path])
164 AC_ARG_WITH(auto-load-safe-path,
165 AS_HELP_STRING([--with-auto-load-safe-path=PATH],
166 [directories safe to hold auto-loaded files @<:@--with-auto-load-dir@:>@])
167 AS_HELP_STRING([--without-auto-load-safe-path],
168 [do not restrict auto-loaded files locations]),
169 [if test "$with_auto_load_safe_path" = "no"; then
170 with_auto_load_safe_path="/"
172 [with_auto_load_safe_path="$with_auto_load_dir"])
173 escape_dir=`echo $with_auto_load_safe_path | sed -e 's/[[$]]datadir\>/\\\\\\\\\\\\&/g' -e 's/[[$]]debugdir\>/\\\\\\\\\\\\&/g'`
174 AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escape_dir,
175 [Directories safe to hold auto-loaded files.])
176 AC_MSG_RESULT([$with_auto_load_safe_path])
178 AC_CONFIG_SUBDIRS(testsuite)
180 # Check whether to support alternative target configurations
181 AC_ARG_ENABLE(targets,
182 AS_HELP_STRING([--enable-targets=TARGETS], [alternative target configurations]),
183 [case "${enableval}" in
184 yes | "") AC_MSG_ERROR(enable-targets option must specify target names or 'all')
186 no) enable_targets= ;;
188 enable_targets=$enableval
189 AC_DEFINE_UNQUOTED(ENABLE_TARGETS, "$enable_targets",
190 Additional targets configured into GDB. )
197 # Provide defaults for some variables set by the per-host and per-target
199 gdb_host_obs=posix-hdep.o
201 if test "${target}" = "${host}"; then
207 . $srcdir/configure.host
209 # Accumulate some settings from configure.tgt over all enabled targets
213 HAVE_NATIVE_GCORE_TARGET=
215 for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
217 if test "$targ_alias" = "all"; then
220 # Canonicalize the secondary target names.
221 result=`$ac_config_sub $targ_alias 2>/dev/null`
222 if test -n "$result"; then
228 . ${srcdir}/configure.tgt
230 AS_IF([test -z "${gdb_target_obs}"],
231 [AC_MSG_ERROR([configuration ${targ} is unsupported.])])
233 # Target-specific object files
234 for i in ${gdb_target_obs}; do
235 case " $TARGET_OBS " in
238 TARGET_OBS="$TARGET_OBS ${i}"
243 # Check whether this target needs 64-bit CORE_ADDR
244 if test x${enable_64_bit_bfd} = xno; then
245 . ${srcdir}/../bfd/config.bfd
248 # Check whether this target is native and supports gcore.
249 if test $gdb_native = yes -a "$targ_alias" = "$target_alias" \
250 && $gdb_have_gcore; then
251 HAVE_NATIVE_GCORE_TARGET=1
256 if test x${all_targets} = xtrue; then
257 if test x${enable_64_bit_bfd} = xyes; then
258 TARGET_OBS='$(ALL_TARGET_OBS) $(ALL_64_TARGET_OBS)'
260 TARGET_OBS='$(ALL_TARGET_OBS)'
265 if test $gdb_native = yes; then
268 AC_SUBST(HAVE_GSTACK)
270 # AMD debugger API support.
272 AC_ARG_WITH([amd-dbgapi],
273 [AS_HELP_STRING([--with-amd-dbgapi],
274 [support for the amd-dbgapi target (yes / no / auto)])],
275 [GDB_CHECK_YES_NO_AUTO_VAL([$withval], [--with-amd-dbgapi])],
276 [with_amd_dbgapi=auto])
278 # If the user passes --without-amd-dbgapi but also explicitly enables a target
279 # that requires amd-dbgapi, it is an error.
280 if test "$with_amd_dbgapi" = no -a "$gdb_require_amd_dbgapi" = true; then
281 AC_MSG_ERROR([an explicitly enabled target requires amd-dbgapi, but amd-dbgapi is explicitly disabled])
284 # Look for amd-dbgapi if:
286 # - a target architecture requiring it has explicitly been enabled, or
287 # - --enable-targets=all was provided and the user did not explicitly disable
289 if test "$gdb_require_amd_dbgapi" = true \
290 -o \( "$all_targets" = true -a "$with_amd_dbgapi" != no \); then
291 # amd-dbgapi version 0.68 is part of ROCm 5.4. There is no guarantee of API
292 # stability until amd-dbgapi hits 1.0, but for convenience, still check for
293 # greater or equal that version. It can be handy when testing with a newer
294 # version of the library.
295 PKG_CHECK_MODULES([AMD_DBGAPI], [amd-dbgapi >= 0.75.0],
296 [has_amd_dbgapi=yes], [has_amd_dbgapi=no])
298 if test "$has_amd_dbgapi" = "yes"; then
299 AC_DEFINE(HAVE_AMD_DBGAPI, 1, [Define if amd-dbgapi is being linked in.])
300 TARGET_OBS="$TARGET_OBS amd-dbgapi-target.o"
302 # If --enable-targets=all was provided, use the list of all files depending
303 # on amd-dbgapi that is hardcoded in the Makefile. Else, the appropriate
304 # architecture entry in configure.tgt will have added the files to
306 if test "$all_targets" = true; then
307 TARGET_OBS="$TARGET_OBS \$(ALL_AMD_DBGAPI_TARGET_OBS)"
309 elif test "$gdb_require_amd_dbgapi" = true -o "$with_amd_dbgapi" = yes; then
310 # amd-dbgapi was not found and...
312 # - a target requiring it was explicitly enabled, or
313 # - the user explicitly wants to enable amd-dbgapi
314 AC_MSG_ERROR([amd-dbgapi is required, but cannot find an appropriate version: $AMD_DBGAPI_PKG_ERRORS])
319 AC_SUBST(HAVE_NATIVE_GCORE_TARGET)
321 # For other settings, only the main target counts.
324 targ=$target; . ${srcdir}/configure.tgt
326 # Fetch the default architecture and default target vector from BFD.
327 targ=$target; . $srcdir/../bfd/config.bfd
329 # We only want the first architecture, so strip off the others if
330 # there is more than one.
331 targ_archs=`echo $targ_archs | sed 's/ .*//'`
333 if test "x$targ_archs" != x; then
334 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs,
335 [Define to BFD's default architecture. ])
337 if test "x$targ_defvec" != x; then
338 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec,
339 [Define to BFD's default target vector. ])
344 AS_HELP_STRING([--enable-tui],
345 [enable full-screen terminal user interface (TUI)]),
346 [GDB_CHECK_YES_NO_AUTO_VAL([$enableval], [--enable-tui])],
350 AC_ARG_ENABLE([gdbtk],
351 [AS_HELP_STRING([--enable-gdbtk], [enable gdbtk graphical user interface (GUI)])],
352 [GDB_CHECK_YES_NO_VAL([$enableval], [--enable-gdbtk])],
353 [if test -d "$srcdir/gdbtk"; then
358 # We unconditionally disable gdbtk tests on selected platforms.
361 AC_MSG_WARN([gdbtk isn't supported on $host; disabling])
365 # Handle optional debuginfod support
368 # Libunwind support for ia64.
369 AC_ARG_WITH(libunwind-ia64,
370 AS_HELP_STRING([--with-libunwind-ia64],
371 [use libunwind frame unwinding for ia64 targets]),,
372 [with_libunwind_ia64=auto])
374 # Backward compatibility option.
375 if test "${with_libunwind+set}" = set; then
376 if test x"$with_libunwind_ia64" != xauto; then
378 [option --with-libunwind is deprecated, use --with-libunwind-ia64])
380 AC_MSG_WARN([option --with-libunwind is deprecated, use --with-libunwind-ia64])
381 with_libunwind_ia64="$with_libunwind"
384 case "$with_libunwind_ia64" in
388 AC_CHECK_HEADERS(libunwind-ia64.h)
389 with_libunwind_ia64=$ac_cv_header_libunwind_ia64_h
393 [bad value $with_libunwind_ia64 for GDB --with-libunwind-ia64 option])
397 if test x"$with_libunwind_ia64" = xyes; then
398 AC_CHECK_HEADERS(libunwind-ia64.h)
399 if test x"$ac_cv_header_libunwind_ia64_h" != xyes; then
400 AC_MSG_ERROR([GDB option --with-libunwind-ia64 requires libunwind-ia64.h])
402 CONFIG_OBS="$CONFIG_OBS ia64-libunwind-tdep.o"
403 CONFIG_DEPS="$CONFIG_DEPS ia64-libunwind-tdep.o"
404 CONFIG_SRCS="$CONFIG_SRCS ia64-libunwind-tdep.c"
408 AC_ARG_WITH(curses, AS_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
411 if test "$opt_curses" = "yes"; then
416 AC_ARG_ENABLE([profiling],
417 [AS_HELP_STRING([--enable-profiling], [enable profiling of GDB])],
418 [GDB_CHECK_YES_NO_VAL([$enableval], [--enable-profiling])],
419 [enable_profiling=no])
421 AC_CHECK_FUNCS(monstartup _mcleanup)
428 extern char _etext;],
431 [ac_cv_var__etext=yes],
432 [ac_cv_var__etext=no]
435 if test "$ac_cv_var__etext" = yes; then
436 AC_DEFINE(HAVE__ETEXT, 1,
437 [Define to 1 if your system has the _etext variable. ])
448 [ac_cv_var_etext=yes],
452 if test "$ac_cv_var_etext" = yes; then
453 AC_DEFINE(HAVE_ETEXT, 1,
454 [Define to 1 if your system has the etext variable. ])
456 if test "$enable_profiling" = yes ; then
457 if test "$ac_cv_func_monstartup" = no || test "$ac_cv_func__mcleanup" = no; then
458 AC_MSG_ERROR(--enable-profiling requires monstartup and _mcleanup)
462 CFLAGS="$CFLAGS $PROFILE_CFLAGS"
465 [whether $CC supports -pg],
466 [ac_cv_cc_supports_pg],
468 [AC_LANG_PROGRAM([], [int x;])],
469 [ac_cv_cc_supports_pg=yes],
470 [ac_cv_cc_supports_pg=no]
474 if test "$ac_cv_cc_supports_pg" = no; then
475 AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg)
482 AC_ARG_ENABLE([codesign],
483 AS_HELP_STRING([--enable-codesign=CERT],
484 [sign gdb with 'codesign -s CERT']),
485 [CODESIGN_CERT=$enableval])
486 AC_SUBST([CODESIGN_CERT])
488 ACX_PKGVERSION([GDB])
489 ACX_BUGURL([https://www.gnu.org/software/gdb/bugs/])
490 AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description])
491 AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address])
493 # --------------------- #
494 # Checks for programs. #
495 # --------------------- #
503 AC_CHECK_TOOL(AR, ar)
504 AC_CHECK_TOOL(DLLTOOL, dlltool)
505 AC_CHECK_TOOL(WINDRES, windres)
509 # Needed for GNU Hurd hosts.
510 AC_CHECK_TOOL(MIG, mig)
511 if test x"$MIG" = x; then
512 AC_MSG_ERROR([MIG not found but required for $host hosts])
517 # ---------------------- #
518 # Checks for libraries. #
519 # ---------------------- #
521 # We might need to link with -lm; most simulators need it.
522 AC_CHECK_LIB(m, main)
524 # Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
525 AC_SEARCH_LIBS(gethostbyname, nsl)
527 # Link in zlib/zstd if we can. This allows us to read compressed debug
534 # GDB may fork/exec the iconv program to get the list of supported character
535 # sets. Allow the user to specify where to find it.
536 # There are several factors affecting the choice of option name:
537 # - There is already --with-libiconv-prefix but we can't use it, it specifies
538 # the build-time location of libiconv files.
539 # - The program we need to find is iconv, which comes with glibc. The user
540 # doesn't necessarily have libiconv installed. Therefore naming this
541 # --with-libiconv-foo feels wrong.
542 # - We want the path to be relocatable, but GDB_AC_DEFINE_RELOCATABLE is
543 # defined to work on directories not files (though it really doesn't know
545 # - Calling this --with-iconv-prefix is perceived to cause too much confusion
546 # with --with-libiconv-prefix.
547 # Putting these together is why the option name is --with-iconv-bin.
549 AC_ARG_WITH(iconv-bin,
550 AS_HELP_STRING([--with-iconv-bin=PATH], [specify where to find the iconv program]),
551 [iconv_bin="${withval}"
552 AC_DEFINE_UNQUOTED([ICONV_BIN], ["${iconv_bin}"],
553 [Path of directory of iconv program.])
554 GDB_AC_DEFINE_RELOCATABLE(ICONV_BIN, iconv, ${iconv_bin})
557 # For the TUI, we need enhanced curses functionality.
558 if test x"$enable_tui" != xno; then
563 if test x"$prefer_curses" = xyes; then
564 # FIXME: kettenis/20040905: We prefer ncurses over the vendor-supplied
565 # curses library because the latter might not provide all the
566 # functionality we need. However, this leads to problems on systems
567 # where the linker searches /usr/local/lib, but the compiler doesn't
568 # search /usr/local/include, if ncurses is installed in /usr/local. A
569 # default installation of ncurses on alpha*-dec-osf* will lead to such
571 AC_SEARCH_LIBS(waddstr, [ncursesw ncurses cursesX curses],
573 AC_DEFINE([HAVE_LIBCURSES], [1],
574 [Define to 1 if curses is enabled.])
578 # Check whether we should enable the TUI, but only do so if we really
580 if test x"$enable_tui" != xno; then
581 if test "$curses_found" != no; then
582 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
583 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
584 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
585 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
587 if test x"$enable_tui" = xyes; then
588 AC_MSG_ERROR([no enhanced curses library found; disable TUI])
590 AC_MSG_WARN([no enhanced curses library found; disabling TUI])
595 # Since GDB uses Readline, we need termcap functionality. In many
596 # cases this will be provided by the curses library, but some systems
597 # have a separate termcap library, or no curses library at all.
601 if test -d "$srcdir/libtermcap"; then
602 LIBS="../libtermcap/libtermcap.a $LIBS"
603 ac_cv_search_tgetent="../libtermcap/libtermcap.a"
606 ac_cv_search_tgetent="none required"
610 # These are the libraries checked by Readline.
611 AC_SEARCH_LIBS(tgetent, [termcap tinfow tinfo curses ncursesw ncurses])
613 if test "$ac_cv_search_tgetent" = no; then
614 CONFIG_OBS="$CONFIG_OBS stub-termcap.o"
617 AC_ARG_WITH([system-readline],
618 [AS_HELP_STRING([--with-system-readline],
619 [use installed readline library])])
621 if test "$with_system_readline" = yes; then
622 AC_CHECK_HEADERS(readline/readline.h, [readline_h=yes], [readline_h=no])
623 if test "$readline_h" = "no"; then
624 AC_MSG_ERROR([readline development packages are probably missing])
627 [whether system readline is new enough],
628 [gdb_cv_readline_ok],
632 #include <readline/readline.h>],
633 [#if RL_VERSION_MAJOR < 7
634 # error "readline version 7 required"
637 [gdb_cv_readline_ok=yes],
638 [gdb_cv_readline_ok=no]
641 if test "$gdb_cv_readline_ok" != yes; then
642 AC_MSG_ERROR([system readline is not new enough])
648 READLINE_TEXI_INCFLAG=
649 READLINE_DOC_SOURCE_INCLUDES='$(READLINE_SYSTEM_DOC_INCLUDES)'
651 READLINE='$(READLINE_DIR)/libreadline.a'
652 READLINE_DEPS='$(READLINE)'
653 READLINE_CFLAGS='-I$(READLINE_SRC)/..'
654 READLINE_TEXI_INCFLAG='-I $(READLINE_DIR)'
655 READLINE_DOC_SOURCE_INCLUDES='$(READLINE_INTREE_DOC_INCLUDES)'
658 AC_SUBST(READLINE_DEPS)
659 AC_SUBST(READLINE_CFLAGS)
660 AC_SUBST(READLINE_TEXI_INCFLAG)
661 AC_SUBST(READLINE_DOC_SOURCE_INCLUDES)
663 # Generate jit-reader.h
665 # This is typedeffed to GDB_CORE_ADDR in jit-reader.h
668 AC_CHECK_SIZEOF(unsigned long long)
669 AC_CHECK_SIZEOF(unsigned long)
670 AC_CHECK_SIZEOF(unsigned __int128)
672 if test "x${ac_cv_sizeof_unsigned_long}" = "x8"; then
673 TARGET_PTR="unsigned long"
674 elif test "x${ac_cv_sizeof_unsigned_long_long}" = "x8"; then
675 TARGET_PTR="unsigned long long"
676 elif test "x${ac_cv_sizeof_unsigned___int128}" = "x16"; then
677 TARGET_PTR="unsigned __int128"
679 TARGET_PTR="unsigned long"
683 AC_CONFIG_FILES([jit-reader.h:jit-reader.in])
685 AC_SEARCH_LIBS(dlopen, dl)
687 GDB_AC_WITH_DIR([JIT_READER_DIR], [jit-reader-dir],
688 [directory to load the JIT readers from],
692 AS_HELP_STRING([--with-expat], [include expat support (auto/yes/no)]),
693 [], [with_expat=auto])
694 AC_MSG_CHECKING([whether to use expat])
695 AC_MSG_RESULT([$with_expat])
697 if test "${with_expat}" = no; then
698 AC_MSG_WARN([expat support disabled; some features may be unavailable.])
701 AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"],
702 [XML_Parser p = XML_ParserCreate (0);])
703 if test "$HAVE_LIBEXPAT" != yes; then
704 if test "$with_expat" = yes; then
705 AC_MSG_ERROR([expat is missing or unusable])
707 AC_MSG_WARN([expat is missing or unusable; some features may be unavailable.])
711 LIBS="$LIBS $LIBEXPAT"
712 AC_CHECK_FUNCS(XML_StopParser)
717 AC_ARG_VAR(GMPLIBS,[How to link GMP])
718 AC_ARG_VAR(GMPINC,[How to find GMP include files])
720 # --------------------- #
721 # Check for libpython. #
722 # --------------------- #
724 dnl Utility to simplify finding libpython.
725 dnl $1 = the shell variable to assign the result to
726 dnl If libpython is found we store $version here.
727 dnl $2 = additional flags to add to CPPFLAGS
728 dnl $3 = additional flags to add to LIBS
730 AC_DEFUN([AC_TRY_LIBPYTHON],
732 define([have_libpython_var],$1)
735 AC_MSG_CHECKING([for python])
736 save_CPPFLAGS=$CPPFLAGS
738 CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
739 LIBS="$new_LIBS $LIBS"
740 found_usable_python=no
741 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "Python.h"]],
743 #if PY_MAJOR_VERSION != 3
744 # error "We only support Python 3"
748 [have_libpython_var=yes
749 found_usable_python=yes
750 PYTHON_CPPFLAGS=$new_CPPFLAGS
751 PYTHON_LIBS=$new_LIBS])
752 CPPFLAGS=$save_CPPFLAGS
754 AC_MSG_RESULT([${found_usable_python}])
757 dnl There are several different values for --with-python:
759 dnl no - Don't include python support.
760 dnl yes - Include python support, error if it's missing.
761 dnl If we find python in $PATH, use it to fetch configure options,
762 dnl otherwise assume the compiler can find it with no help from us.
763 dnl auto - Same as "yes", but if python is missing from the system,
764 dnl fall back to "no".
765 dnl /path/to/python/exec-prefix -
766 dnl Use the python located in this directory.
767 dnl If /path/to/python/exec-prefix/bin/python exists, use it to find
768 dnl the compilation parameters. Otherwise use
769 dnl -I/path/to/python/exec-prefix/include,
770 dnl -L/path/to/python/exec-prefix/lib.
771 dnl NOTE: This case is historical. It is what was done for 7.0/7.1
772 dnl but is deprecated.
773 dnl /path/to/python/executable -
774 dnl Run python-config.py with this version of python to fetch the
775 dnl compilation parameters.
776 dnl NOTE: This needn't be the real python executable.
777 dnl In a cross-compilation scenario (build != host), this could be
778 dnl a shell script that provides what python-config.py provides for
779 dnl --ldflags, --includes, --exec-prefix.
780 dnl python-executable -
781 dnl Find python-executable in $PATH, and then handle the same as
782 dnl /path/to/python/executable.
784 dnl If a python program is specified, it is used to run python-config.py and
785 dnl is passed --ldflags, --includes, --exec-prefix.
788 AS_HELP_STRING([--with-python@<:@=PYTHON@:>@], [include python support (auto/yes/no/<python-program>)]),
789 [], [with_python=auto])
790 AC_MSG_CHECKING([whether to use python])
791 AC_MSG_RESULT([$with_python])
793 if test "${with_python}" = no; then
794 AC_MSG_WARN([python support disabled; some features may be unavailable.])
797 case "${with_python}" in
798 [[\\/]]* | ?:[[\\/]]*)
799 if test -d "${with_python}"; then
800 # Assume the python binary is ${with_python}/bin/python.
801 python_prog="${with_python}/bin/python"
803 # If python does not exit ${with_python}/bin, then try in
804 # ${with_python}. On Windows/MinGW, this is where the Python
806 if test ! -x "${python_prog}"; then
807 python_prog="${with_python}/python"
810 if test ! -x "${python_prog}"; then
811 # Fall back to gdb 7.0/7.1 behavior.
813 python_prefix=${with_python}
815 elif test -x "${with_python}"; then
816 # While we can't run python compiled for $host (unless host == build),
817 # the user could write a script that provides the needed information,
818 # so we support that.
819 python_prog=${with_python}
822 AC_MSG_ERROR(invalid value for --with-python)
826 # Disallow --with-python=foo/bar.
827 AC_MSG_ERROR(invalid value for --with-python)
830 # The user has either specified auto, yes, or the name of the python
831 # program assumed to be in $PATH.
833 case "${with_python}" in
835 if test "${build}" = "${host}"; then
836 # Look first for 'python', then 'python3'.
837 AC_PATH_PROGS(python_prog_path, [python python3], missing)
838 if test "${python_prog_path}" = missing; then
841 python_prog=${python_prog_path}
844 # Not much we can do except assume the cross-compiler will find the
850 # While we can't run python compiled for $host (unless host == build),
851 # the user could write a script that provides the needed information,
852 # so we support that.
853 python_prog="${with_python}"
854 AC_PATH_PROG(python_prog_path, ${python_prog}, missing)
855 if test "${python_prog_path}" = missing; then
856 AC_MSG_ERROR(unable to find python program ${python_prog})
862 if test "${python_prog}" != missing; then
863 # We have a python program to use, but it may be too old.
864 # Don't flag an error for --with-python=auto (the default).
865 have_python_config=yes
866 python_includes=`${python_prog} ${srcdir}/python/python-config.py --includes`
867 if test $? != 0; then
868 have_python_config=failed
869 if test "${with_python}" != auto; then
870 AC_MSG_ERROR(failure running python-config --includes)
873 python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags`
874 if test $? != 0; then
875 have_python_config=failed
876 if test "${with_python}" != auto; then
877 AC_MSG_ERROR(failure running python-config --ldflags)
880 python_prefix=`${python_prog} ${srcdir}/python/python-config.py --exec-prefix`
881 if test $? != 0; then
882 have_python_config=failed
883 if test "${with_python}" != auto; then
884 AC_MSG_ERROR(failure running python-config --exec-prefix)
888 # We do not have a python executable we can use to determine where
889 # to find the Python headers and libs. We cannot guess the include
890 # path from the python_prefix either, because that include path
891 # depends on the Python version. So, there is nothing much we can
892 # do except assume that the compiler will be able to find those files.
895 have_python_config=no
898 # If we have python-config, only try the configuration it provides.
899 # Otherwise fallback on the old way of trying different versions of
903 if test "${have_python_config}" = yes; then
904 AC_TRY_LIBPYTHON(have_libpython,
905 ${python_includes}, ${python_libs})
908 if test "${have_libpython}" = no; then
909 case "${with_python}" in
911 AC_MSG_ERROR([python is missing or unusable])
914 AC_MSG_WARN([python is missing or unusable; some features may be unavailable.])
917 AC_MSG_ERROR([no usable python found at ${with_python}])
921 if test -n "${python_prefix}"; then
922 AC_DEFINE_UNQUOTED(WITH_PYTHON_PATH, "${python_prefix}",
923 [Define if --with-python provides a path, either directly or via python-config.py --exec-prefix.])
924 GDB_AC_DEFINE_RELOCATABLE(PYTHON_PATH, python, ${python_prefix})
929 dnl Use --with-python-libdir to control where GDB looks for the Python
932 dnl If this is not given then the default will be based on the value
933 dnl passed to --with-python, which is in the python_prefix variable.
934 dnl If the --with-python option wasn't given then the default value in
935 dnl python_prefix is based on running the 'gdb/python/python-config
936 dnl --exec-prefix' script.
937 AC_ARG_WITH(python-libdir,
938 AS_HELP_STRING([--with-python-libdir@<:@=DIR@:>@], [search for python's libraries in DIR]),
940 # If no python libdir is specified then select one based on
941 # python's prefix path.
942 if test -n "${python_prefix}"; then
943 with_python_libdir=${python_prefix}/lib
947 if test "${have_libpython}" != no; then
948 AC_DEFINE(HAVE_PYTHON, 1, [Define if Python interpreter is being linked in.])
949 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_PYTHON_OBS)"
950 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)"
951 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_PYTHON_SRCS)"
952 CONFIG_INSTALL="$CONFIG_INSTALL install-python"
953 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)"
955 if test -n "${with_python_libdir}"; then
956 AC_DEFINE_UNQUOTED(WITH_PYTHON_LIBDIR, "${with_python_libdir}",
957 [Directory containing Python's standard libraries from --with-python-libdir.])
958 GDB_AC_DEFINE_RELOCATABLE(PYTHON_LIBDIR, [python lib], ${with_python_libdir})
961 # Flags needed to compile Python code (taken from python-config --cflags).
962 # We cannot call python-config directly because it will output whatever was
963 # used when compiling the Python interpreter itself, including flags which
964 # would make the python-related objects be compiled differently from the
965 # rest of GDB (e.g., -O2 and -fPIC).
966 if test "${GCC}" = yes; then
967 tentative_python_cflags="-fno-strict-aliasing -fwrapv"
968 # Python headers recommend -DNDEBUG, but it's unclear if that just
969 # refers to building Python itself. In release mode, though, it
970 # doesn't hurt for the Python code in gdb to follow.
971 $development || tentative_python_cflags="$tentative_python_cflags -DNDEBUG"
974 if test "x${tentative_python_cflags}" != x; then
975 AC_MSG_CHECKING(compiler flags for python code)
976 for flag in ${tentative_python_cflags}; do
977 # Check that the compiler accepts it
978 saved_CFLAGS="$CFLAGS"
979 CFLAGS="$CFLAGS $flag"
981 [AC_LANG_PROGRAM([], [])],
982 [PYTHON_CFLAGS="${PYTHON_CFLAGS} $flag"],
985 CFLAGS="$saved_CFLAGS"
987 AC_MSG_RESULT(${PYTHON_CFLAGS})
990 # On x64 Windows, Python's include headers, and pyconfig.h in
991 # particular, rely on MS_WIN64 macro to detect that it's a 64bit
992 # version of Windows. Unfortunately, MS_WIN64 is only defined if
993 # _MSC_VER, a Microsoft-specific macro, is defined. So, when
994 # building on x64 Windows with GCC, we define MS_WIN64 ourselves.
995 # The issue was reported to the Python community, but still isn't
996 # solved as of 2012-10-02 (http://bugs.python.org/issue4709).
1000 if test "${GCC}" = yes; then
1001 CPPFLAGS="$CPPFLAGS -DMS_WIN64"
1006 # Even if Python support is not compiled in, we need to have this file
1007 # included so that the "python" command, et.al., still exists.
1008 CONFIG_OBS="$CONFIG_OBS python/python.o"
1009 CONFIG_SRCS="$CONFIG_SRCS python/python.c"
1012 # Work around Python http://bugs.python.org/issue10112. See also
1013 # http://bugs.python.org/issue11410, otherwise -Wl,--dynamic-list has
1014 # no effect. Note that the only test after this that uses Python is
1015 # the -rdynamic/-Wl,--dynamic-list test, and we do want that one to be
1016 # run without -export-dynamic too.
1017 PYTHON_LIBS=`echo $PYTHON_LIBS | sed -e 's/-Xlinker -export-dynamic//'`
1019 AC_SUBST(PYTHON_CFLAGS)
1020 AC_SUBST(PYTHON_CPPFLAGS)
1021 AC_SUBST(PYTHON_LIBS)
1022 AM_CONDITIONAL(HAVE_PYTHON, test "${have_libpython}" != no)
1024 # -------------------- #
1025 # Check for libguile. #
1026 # -------------------- #
1028 dnl Utility to simplify finding libguile.
1029 dnl $1 = pkg-config-program
1030 dnl $2 = space-separate list of guile versions to try
1031 dnl $3 = yes|no, indicating whether to flag errors or ignore them
1032 dnl $4 = the shell variable to assign the result to
1033 dnl If libguile is found we store "yes" here.
1035 AC_DEFUN([AC_TRY_LIBGUILE],
1038 guile_version_list=$2
1040 define([have_libguile_var],$4)
1041 found_usable_guile=checking
1042 AC_MSG_CHECKING([for usable guile from ${pkg_config}])
1043 for guile_version in ${guile_version_list}; do
1044 ${pkg_config} --exists ${guile_version} 2>/dev/null
1045 if test $? != 0; then
1048 dnl pkg-config says the package exists, so if we get an error now,
1050 new_CPPFLAGS=`${pkg_config} --cflags ${guile_version}`
1051 if test $? != 0; then
1052 AC_MSG_ERROR([failure running pkg-config --cflags ${guile_version}])
1054 new_LIBS=`${pkg_config} --libs ${guile_version}`
1055 if test $? != 0; then
1056 AC_MSG_ERROR([failure running pkg-config --libs ${guile_version}])
1058 dnl If we get this far, great.
1059 found_usable_guile=${guile_version}
1062 if test "${found_usable_guile}" = "checking"; then
1063 if test "${flag_errors}" = "yes"; then
1064 AC_MSG_ERROR([unable to find usable guile version from "${guile_version_list}"])
1066 found_usable_guile=no
1069 dnl One final sanity check.
1070 dnl The user could have said --with-guile=python-2.7.
1071 if test "${found_usable_guile}" != no; then
1072 save_CPPFLAGS=$CPPFLAGS
1074 CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
1075 LIBS="$LIBS $new_LIBS"
1076 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "libguile.h"]],
1077 [[scm_init_guile ();]])],
1078 [have_libguile_var=yes
1079 GUILE_CPPFLAGS=$new_CPPFLAGS
1080 GUILE_LIBS=$new_LIBS],
1081 [found_usable_guile=no])
1082 dnl scm_set_automatic_finalization_enabled added in Guile 2.2.
1083 AC_CHECK_FUNC(scm_set_automatic_finalization_enabled,
1084 AC_DEFINE(HAVE_GUILE_MANUAL_FINALIZATION, 1,
1085 [Define if Guile supports manual finalization.])
1087 CPPFLAGS=$save_CPPFLAGS
1089 if test "${found_usable_guile}" = no; then
1090 if test "${flag_errors}" = yes; then
1091 AC_MSG_FAILURE([linking guile version ${guile_version} test program failed])
1095 AC_MSG_RESULT([${found_usable_guile}])
1098 dnl There are several different values for --with-guile:
1100 dnl no - Don't include guile support.
1101 dnl yes - Include guile support, error if it's missing.
1102 dnl The pkg-config program must be in $PATH.
1103 dnl auto - Same as "yes", but if guile is missing from the system,
1104 dnl fall back to "no".
1105 dnl guile-version [guile-version-choice-2 ...] -
1106 dnl A space-separated list of guile package versions to try.
1107 dnl These are passed to pkg-config as-is.
1108 dnl E.g., guile-2.0 or guile-2.2-uninstalled
1109 dnl This requires making sure PKG_CONFIG_PATH is set appropriately.
1110 dnl /path/to/pkg-config -
1111 dnl Use this pkg-config program.
1112 dnl NOTE: This needn't be the "real" pkg-config program.
1113 dnl It could be a shell script. It is invoked as:
1114 dnl pkg-config --exists $version
1115 dnl pkg-config --cflags $version
1116 dnl pkg-config --libs $version
1117 dnl pkg-config --variable guild $version
1118 dnl The script will be called with $version having each value in
1119 dnl $try_guile_versions until --exists indicates success.
1122 AS_HELP_STRING([--with-guile@<:@=GUILE@:>@], [include guile support (auto/yes/no/<guile-version>/<pkg-config-program>)]),
1123 [], [with_guile=auto])
1124 AC_MSG_CHECKING([whether to use guile])
1125 AC_MSG_RESULT([$with_guile])
1127 dnl We check guile with pkg-config.
1128 AC_PATH_PROG(pkg_config_prog_path, pkg-config, missing)
1130 try_guile_versions="guile-3.0 guile-2.2 guile-2.0"
1132 case "${with_guile}" in
1134 AC_MSG_WARN([guile support disabled; some features will be unavailable.])
1137 if test "${pkg_config_prog_path}" = "missing"; then
1138 AC_MSG_WARN([pkg-config not found, guile support disabled])
1140 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, no, have_libguile)
1144 if test "${pkg_config_prog_path}" = "missing"; then
1145 AC_MSG_ERROR([pkg-config not found])
1147 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, yes, have_libguile)
1149 [[\\/]]* | ?:[[\\/]]*)
1150 if test -x "${with_guile}"; then
1151 AC_TRY_LIBGUILE(${with_guile}, ${try_guile_versions}, yes, have_libguile)
1153 AC_MSG_ERROR([Guile config program not executable: ${with_guile}])
1157 # Disallow --with=guile="" and --with-guile=foo/bar.
1158 AC_MSG_ERROR([invalid value for --with-guile])
1161 # A space separate list of guile versions to try, in order.
1162 if test "${pkg_config_prog_path}" = "missing"; then
1163 AC_MSG_ERROR([pkg-config not found])
1165 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${with_guile}, yes, have_libguile)
1169 if test "${have_libguile}" != no; then
1170 dnl Get the name of the 'guild' program.
1171 case "${with_guile}" in
1172 [[\\/]]* | ?:[[\\/]]*)
1173 GDB_GUILE_PROGRAM_NAMES(["${with_guile}"], ["${guile_version}"])
1176 GDB_GUILE_PROGRAM_NAMES(["${pkg_config_prog_path}"], ["${guile_version}"])
1180 dnl Make sure guild can handle this host.
1181 GDB_TRY_GUILD([$srcdir/guile/lib/gdb/support.scm])
1182 dnl If not, disable guile support.
1183 if test "$ac_cv_guild_ok" = no; then
1185 AC_MSG_WARN(disabling guile support, $GUILD fails compiling for $host)
1189 if test "${have_libguile}" != no; then
1190 AC_DEFINE(HAVE_GUILE, 1, [Define if Guile interpreter is being linked in.])
1191 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_GUILE_OBS)"
1192 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_GUILE_DEPS)"
1193 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_GUILE_SRCS)"
1194 CONFIG_INSTALL="$CONFIG_INSTALL install-guile"
1195 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_GUILE_CFLAGS)"
1197 dnl The 'scm_new_smob' function appeared in Guile 2.0.6.
1199 save_CPPFLAGS="$CPPFLAGS"
1201 CPPFLAGS="$GUILE_CPPFLAGS"
1202 AC_CHECK_FUNCS([scm_new_smob])
1204 CPPFLAGS="$save_CPPFLAGS"
1206 # Even if Guile support is not compiled in, we need to have these files
1208 CONFIG_OBS="$CONFIG_OBS guile/guile.o"
1209 CONFIG_SRCS="$CONFIG_SRCS guile/guile.c"
1211 AC_SUBST(GUILE_CPPFLAGS)
1212 AC_SUBST(GUILE_LIBS)
1213 AM_CONDITIONAL(HAVE_GUILE, test "${have_libguile}" != no)
1215 # ---------------------------- #
1216 # Check for source highlight. #
1217 # ---------------------------- #
1222 AC_ARG_ENABLE([source-highlight],
1223 [AS_HELP_STRING([--enable-source-highlight],
1224 [enable source-highlight for source listings])],
1225 [GDB_CHECK_YES_NO_AUTO_VAL([$enableval], [--enable-source-highlight])],
1226 [enable_source_highlight=auto])
1228 if test "${enable_source_highlight}" != "no"; then
1229 AC_MSG_CHECKING([for the source-highlight library])
1230 if test "${pkg_config_prog_path}" = "missing"; then
1231 AC_MSG_RESULT([no - pkg-config not found])
1232 if test "${enable_source_highlight}" = "yes"; then
1233 AC_MSG_ERROR([pkg-config was not found in your system])
1236 if ${pkg_config_prog_path} --exists source-highlight; then
1239 AC_MSG_ERROR([source highlight is incompatible with -static-libstdc++; dnl
1240 either use --disable-source-highlight or dnl
1241 --without-static-standard-libraries])
1245 srchigh_pkg_cflags=`${pkg_config_prog_path} --cflags source-highlight`
1246 srchigh_pkg_libs=`${pkg_config_prog_path} --libs source-highlight`
1248 # Now that we have found a source-highlight library, check if we can use
1249 # it. In particular, we're trying to detect the situation that the
1250 # library is using the new libstdc++ library abi ( see
1251 # https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html )
1252 # while the compiler being used to compile gdb is using the old abi.
1253 # Such a situation will result in an undefined reference to
1254 # srchilite::SourceHighlight::SourceHighlight(std::string const&).
1255 # This situation can occur for instance when using a source highlight
1256 # library compiled with g++ 7.5.0 while building gdb with g++ 4.8.5.
1258 save_CXXFLAGS="$CXXFLAGS"
1260 CXXFLAGS="$CXXFLAGS $srchigh_pkg_cflags"
1261 LIBS="$LIBS $srchigh_pkg_libs"
1264 [#include <srchilite/sourcehighlight.h>],
1265 [std::string outlang = "esc.outlang";
1266 new srchilite::SourceHighlight (outlang);]
1268 [have_usable_source_highlight=yes],
1269 [have_usable_source_highlight=no]
1271 CXXFLAGS="$save_CXXFLAGS"
1275 if test "${have_usable_source_highlight}" = "yes"; then
1276 AC_DEFINE([HAVE_SOURCE_HIGHLIGHT], 1,
1277 [Define to 1 if the source-highlight library is available])
1278 AC_MSG_RESULT([yes])
1279 SRCHIGH_CFLAGS="$srchigh_pkg_cflags"
1280 SRCHIGH_LIBS="$srchigh_pkg_libs"
1283 if test "${enable_source_highlight}" = "yes"; then
1284 AC_MSG_ERROR([source-highlight in your system could not be used])
1289 if test "${enable_source_highlight}" = "yes"; then
1290 AC_MSG_ERROR([source-highlight was not found in your system])
1295 AC_SUBST(SRCHIGH_LIBS)
1296 AC_SUBST(SRCHIGH_CFLAGS)
1298 # ------------------------- #
1299 # Checks for header files. #
1300 # ------------------------- #
1303 AC_CHECK_HEADERS([ \
1320 AC_CHECK_HEADERS(sys/user.h, [], [],
1321 [#if HAVE_SYS_PARAM_H
1322 # include <sys/param.h>
1326 AC_CHECK_HEADERS([ \
1332 ncursesw/ncurses.h \
1335 AC_CHECK_HEADERS(term.h, [], [],
1337 # include <curses.h>
1341 AC_CHECK_HEADERS([sys/socket.h])
1342 AC_CHECK_HEADERS([ws2tcpip.h])
1343 AC_CHECK_HEADERS([execinfo.h])
1345 # ------------------------- #
1346 # Checks for declarations. #
1347 # ------------------------- #
1351 AC_CHECK_DECLS([snprintf])
1354 # ------------------ #
1355 # Checks for types. #
1356 # ------------------ #
1358 AC_CHECK_TYPES(socklen_t, [], [],
1359 [#include <sys/types.h>
1360 #if HAVE_SYS_SOCKET_H
1361 # include <sys/socket.h>
1362 #elif HAVE_WS2TCPIP_H
1363 # include <ws2tcpip.h>
1367 # ------------------------------------- #
1368 # Checks for compiler characteristics. #
1369 # ------------------------------------- #
1375 # ------------------------------ #
1376 # Checks for library functions. #
1377 # ------------------------------ #
1397 use_default_colors \
1403 # Check the return and argument types of ptrace.
1406 dnl AC_FUNC_SETPGRP does not work when cross compiling
1407 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
1408 if test "$cross_compiling" = no; then
1412 [whether setpgrp takes no argument],
1413 [ac_cv_func_setpgrp_void],
1416 [#include <unistd.h>],
1417 [if (setpgrp(1,1) == -1)
1422 [ac_cv_func_setpgrp_void=no],
1423 [ac_cv_func_setpgrp_void=yes]
1426 if test "$ac_cv_func_setpgrp_void" = yes; then
1427 AC_DEFINE(SETPGRP_VOID, 1)
1431 # Check if <sys/proc.h> defines `struct thread' with a td_pcb member.
1432 AC_CHECK_MEMBERS([struct thread.td_pcb], [], [],
1433 [#include <sys/param.h>
1434 #include <sys/proc.h>
1437 # See if <sys/lwp.h> defines `struct lwp`.
1440 [gdb_cv_struct_lwp],
1443 [#include <sys/param.h>
1445 #include <sys/lwp.h>],
1448 [gdb_cv_struct_lwp=yes],
1449 [gdb_cv_struct_lwp=no]
1452 if test "$gdb_cv_struct_lwp" = yes; then
1453 AC_DEFINE(HAVE_STRUCT_LWP, 1,
1454 [Define to 1 if your system has struct lwp.])
1457 # See if <machine/reg.h> degines `struct reg'.
1459 [for struct reg in machine/reg.h],
1460 [gdb_cv_struct_reg],
1463 [#include <sys/types.h>
1464 #include <machine/reg.h>],
1467 [gdb_cv_struct_reg=yes],
1468 [gdb_cv_struct_reg=no]
1471 if test "$gdb_cv_struct_reg" = yes; then
1472 AC_DEFINE(HAVE_STRUCT_REG, 1,
1473 [Define to 1 if your system has struct reg in <machine/reg.h>.])
1476 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
1477 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
1478 AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [],
1479 [#include <sys/types.h>
1480 #include <machine/reg.h>])
1482 # See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
1483 AC_MSG_CHECKING(for PTRACE_GETREGS)
1485 [gdb_cv_have_ptrace_getregs],
1487 [AC_LANG_PROGRAM([#include <sys/ptrace.h>], [PTRACE_GETREGS;])],
1488 [gdb_cv_have_ptrace_getregs=yes],
1489 [gdb_cv_have_ptrace_getregs=no]
1492 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
1493 if test "$gdb_cv_have_ptrace_getregs" = yes; then
1494 AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
1495 [Define if sys/ptrace.h defines the PTRACE_GETREGS request.])
1498 # See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
1499 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
1501 [gdb_cv_have_ptrace_getfpxregs],
1503 [AC_LANG_PROGRAM([#include <sys/ptrace.h>], [PTRACE_GETFPXREGS;])],
1504 [gdb_cv_have_ptrace_getfpxregs=yes],
1505 [gdb_cv_have_ptrace_getfpxregs=no]
1508 AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
1509 if test "$gdb_cv_have_ptrace_getfpxregs" = yes; then
1510 AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
1511 [Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.])
1514 # See if <sys/ptrace.h> provides the PT_GETDBREGS request.
1515 AC_MSG_CHECKING(for PT_GETDBREGS)
1517 [gdb_cv_have_pt_getdbregs],
1520 [#include <sys/types.h>
1521 #include <sys/ptrace.h>],
1524 [gdb_cv_have_pt_getdbregs=yes],
1525 [gdb_cv_have_pt_getdbregs=no]
1528 AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
1529 if test "$gdb_cv_have_pt_getdbregs" = yes; then
1530 AC_DEFINE(HAVE_PT_GETDBREGS, 1,
1531 [Define if sys/ptrace.h defines the PT_GETDBREGS request.])
1534 # See if <sys/ptrace.h> supports LWP names on FreeBSD
1535 # Older FreeBSD versions don't have the pl_tdname member of
1536 # `struct ptrace_lwpinfo'.
1537 AC_CHECK_MEMBERS([struct ptrace_lwpinfo.pl_tdname], [], [],
1538 [#include <sys/ptrace.h>])
1540 # See if <sys/ptrace.h> supports syscall fields on FreeBSD. The
1541 # pl_syscall_code member of `struct ptrace_lwpinfo' was added in
1543 AC_CHECK_MEMBERS([struct ptrace_lwpinfo.pl_syscall_code], [], [],
1544 [#include <sys/ptrace.h>])
1546 # Check if the compiler supports the `long long' type.
1548 AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long,
1549 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1550 [[extern long long foo;]],
1551 [[switch (foo & 2) { case 0: return 1; }]])],
1552 gdb_cv_c_long_long=yes,
1553 gdb_cv_c_long_long=no)])
1554 if test "$gdb_cv_c_long_long" != yes; then
1555 # libdecnumber requires long long.
1556 AC_MSG_ERROR([Compiler must support long long for GDB.])
1559 # Check if the compiler and runtime support printing decfloats.
1561 AC_CACHE_CHECK([for decfloat support in printf],
1562 gdb_cv_printf_has_decfloat,
1563 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1565 _Decimal32 d32 = 1.2345df;
1566 _Decimal64 d64 = 1.2345dd;
1567 _Decimal128 d128 = 1.2345dl;
1568 sprintf (buf, "Decimal32: %H\nDecimal64: %D\nDecimal128: %DD", d32, d64, d128);
1569 return (strcmp ("Decimal32: 1.2345\nDecimal64: 1.2345\nDecimal128: 1.2345", buf));]])],
1570 gdb_cv_printf_has_decfloat=yes,
1571 gdb_cv_printf_has_decfloat=no,
1572 gdb_cv_printf_has_decfloat=no)])
1573 if test "$gdb_cv_printf_has_decfloat" = yes; then
1574 AC_DEFINE(PRINTF_HAS_DECFLOAT, 1,
1575 [Define to 1 if the "%H, %D and %DD" formats work to print decfloats.])
1578 # Check if the compiler supports the `long double' type. We can't use
1579 # AC_C_LONG_DOUBLE because that one does additional checks on the
1580 # constants defined in <float.h> that fail on some systems,
1581 # e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6.
1583 AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double,
1584 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])],
1585 gdb_cv_c_long_double=yes,
1586 gdb_cv_c_long_double=no)])
1587 if test "$gdb_cv_c_long_double" = yes; then
1588 AC_DEFINE(HAVE_LONG_DOUBLE, 1,
1589 [Define to 1 if the compiler supports long double.])
1592 # Check if the compiler and runtime support printing long doubles.
1594 AC_CACHE_CHECK([for long double support in printf],
1595 gdb_cv_printf_has_long_double,
1596 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1598 long double f = 3.141592653;
1599 sprintf (buf, "%Lg", f);
1600 return (strncmp ("3.14159", buf, 7));]])],
1601 gdb_cv_printf_has_long_double=yes,
1602 gdb_cv_printf_has_long_double=no,
1603 gdb_cv_printf_has_long_double=no)])
1604 if test "$gdb_cv_printf_has_long_double" = yes; then
1605 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1,
1606 [Define to 1 if the "%Lg" format works to print long doubles.])
1609 # Check if the compiler and runtime support scanning long doubles.
1611 AC_CACHE_CHECK([for long double support in scanf],
1612 gdb_cv_scanf_has_long_double,
1613 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
1614 [[#include <stdio.h>]],
1615 [[char *buf = "3.141592653";
1617 sscanf (buf, "%Lg", &f);
1618 return !(f > 3.14159 && f < 3.14160);]])],
1619 gdb_cv_scanf_has_long_double=yes,
1620 gdb_cv_scanf_has_long_double=no,
1621 gdb_cv_scanf_has_long_double=no)])
1622 if test "$gdb_cv_scanf_has_long_double" = yes; then
1623 AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1,
1624 [Define to 1 if the "%Lg" format works to scan long doubles.])
1630 [for -bbigtoc option], [gdb_cv_bigtoc],
1631 [SAVE_LDFLAGS=$LDFLAGS
1634 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
1635 *) gdb_cv_bigtoc=-bbigtoc ;;
1638 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
1640 [AC_LANG_PROGRAM([], [int i;])],
1644 LDFLAGS="${SAVE_LDFLAGS}"]
1646 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
1650 AC_MSG_CHECKING(for the dynamic export flag)
1652 if test "${gdb_native}" = yes; then
1653 # The dynamically loaded libthread_db needs access to symbols in the gdb
1654 # executable. Older GNU ld supports --export-dynamic but --dynamic-list
1655 # may not be supported there.
1656 old_LDFLAGS="$LDFLAGS"
1657 # Older GNU ld supports --export-dynamic but --dynamic-list it does not.
1658 RDYNAMIC="-Wl,--dynamic-list=${srcdir}/proc-service.list"
1659 LDFLAGS="$LDFLAGS $RDYNAMIC"
1660 if test "${have_libpython}" = no; then
1662 [AC_LANG_PROGRAM([], [])],
1663 [dynamic_list=true],
1667 # Workaround http://bugs.python.org/issue4434 where static
1668 # libpythonX.Y.a would get its symbols required for
1669 # pythonX.Y/lib-dynload/*.so modules hidden by -Wl,--dynamic-list.
1670 # Problem does not happen for the recommended libpythonX.Y.so linkage.
1672 # Note the workaround for Python
1673 # http://bugs.python.org/issue10112 earlier has removed
1674 # -export-dynamic from PYTHON_LIBS. That's exactly what we want
1675 # here too, as otherwise it'd make this -Wl,--dynamic-list test
1677 old_CFLAGS="$CFLAGS"
1678 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
1680 LIBS="$LIBS $PYTHON_LIBS"
1681 old_CPPFLAGS="$CPPFLAGS"
1682 CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS"
1685 [#include "Python.h"],
1688 err = PyRun_SimpleString ("import ctypes\n");
1690 return err == 0 ? 0 : 1;])],
1691 [dynamic_list=true], [], [true])
1693 CFLAGS="$old_CFLAGS"
1694 CPPFLAGS="$old_CPPFLAGS"
1696 LDFLAGS="$old_LDFLAGS"
1698 if $dynamic_list; then
1699 found="-Wl,--dynamic-list"
1700 RDYNAMIC='-Wl,--dynamic-list=$(srcdir)/proc-service.list'
1703 RDYNAMIC="-rdynamic"
1706 AC_MSG_RESULT($found)
1709 [whether execinfo.h backtrace is available],
1710 gdb_cv_execinfo_backtrace,
1714 #include <execinfo.h>
1719 f = backtrace (b, 2);
1720 backtrace_symbols_fd (b, f, 2);
1722 [gdb_cv_execinfo_backtrace=yes],
1723 [gdb_cv_execinfo_backtrace=no])])
1724 if test "$gdb_cv_execinfo_backtrace" = yes; then
1725 AC_DEFINE(HAVE_EXECINFO_BACKTRACE, 1,
1726 [Define to 1 if execinfo.h backtrace functions are available.])
1729 dnl For certain native configurations, we need to check whether thread
1730 dnl support can be built in or not.
1732 dnl Note that we only want this if we are both native (host == target),
1733 dnl and not doing a canadian cross build (build == host).
1735 if test "${build}" = "${host}" -a "${host}" = "${target}" ; then
1738 AC_MSG_CHECKING(for AiX thread debugging library)
1740 [gdb_cv_have_aix_thread_debug],
1743 [#include <sys/pthdebug.h>],
1744 [#ifndef PTHDB_VERSION_3
1748 [gdb_cv_have_aix_thread_debug=yes],
1749 [gdb_cv_have_aix_thread_debug=no]
1752 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
1753 if test "$gdb_cv_have_aix_thread_debug" = yes; then
1754 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
1755 CONFIG_OBS="${CONFIG_OBS} aix-thread.o"
1756 LIBS="$LIBS -lpthdebug"
1758 # Older versions of AIX do not provide the declaration for
1759 # the getthrds function (it appears that it was introduced
1761 AC_CHECK_DECLS(getthrds, [], [], [[#include <procinfo.h>]])
1765 AC_SUBST(CONFIG_LDFLAGS)
1768 dnl See if we have a thread_db header file that has TD_NOTALLOC and
1769 dnl other error codes.
1770 if test "x$ac_cv_header_thread_db_h" = "xyes"; then
1772 [whether <thread_db.h> has TD_NOTALLOC],
1773 [gdb_cv_thread_db_h_has_td_notalloc],
1776 [#include <thread_db.h>],
1777 [int i = TD_NOTALLOC;]
1779 [gdb_cv_thread_db_h_has_td_notalloc=yes],
1780 [gdb_cv_thread_db_h_has_td_notalloc=no]
1785 [whether <thread_db.h> has TD_VERSION],
1786 [gdb_cv_thread_db_h_has_td_version],
1789 [#include <thread_db.h>],
1790 [int i = TD_VERSION;]
1792 [gdb_cv_thread_db_h_has_td_version=yes],
1793 [gdb_cv_thread_db_h_has_td_version=no]
1798 [whether <thread_db.h> has TD_NOTLS],
1799 [gdb_cv_thread_db_h_has_td_notls],
1802 [#include <thread_db.h>],
1805 [gdb_cv_thread_db_h_has_td_notls=yes],
1806 [gdb_cv_thread_db_h_has_td_notls=no]
1810 if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
1811 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
1812 [Define if <thread_db.h> has the TD_NOTALLOC error code.])
1814 if test "x$gdb_cv_thread_db_h_has_td_version" = "xyes"; then
1815 AC_DEFINE(THREAD_DB_HAS_TD_VERSION, 1,
1816 [Define if <thread_db.h> has the TD_VERSION error code.])
1818 if test "x$gdb_cv_thread_db_h_has_td_notls" = "xyes"; then
1819 AC_DEFINE(THREAD_DB_HAS_TD_NOTLS, 1,
1820 [Define if <thread_db.h> has the TD_NOTLS error code.])
1823 dnl Set the host's .gdbinit filename.
1832 AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.])
1834 dnl Set the host's .gdbearlyinit filename
1835 AC_DEFINE_UNQUOTED(GDBEARLYINIT,".gdbearlyinit",[The .gdbearlyinit filename.])
1837 dnl Handle optional features that can be enabled.
1839 # Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
1840 # except that the argument to --with-sysroot is optional.
1841 # --with-sysroot (or --with-sysroot=yes) sets the default sysroot path.
1842 if test "x$with_sysroot" = xyes; then
1843 with_sysroot="${exec_prefix}/${target_alias}/sys-root"
1845 AC_ARG_WITH(sysroot,
1846 AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
1847 [search for usr/lib et al within DIR]),
1848 [TARGET_SYSTEM_ROOT=$withval], [TARGET_SYSTEM_ROOT=])
1849 AC_DEFINE_DIR(TARGET_SYSTEM_ROOT, TARGET_SYSTEM_ROOT,
1850 [search for usr/lib et al within DIR])
1851 AC_SUBST(TARGET_SYSTEM_ROOT)
1852 GDB_AC_DEFINE_RELOCATABLE(TARGET_SYSTEM_ROOT, sysroot, ${ac_define_dir})
1854 GDB_AC_WITH_DIR(SYSTEM_GDBINIT, system-gdbinit,
1855 [automatically load a system-wide gdbinit file],
1857 GDB_AC_WITH_DIR(SYSTEM_GDBINIT_DIR, system-gdbinit-dir,
1858 [automatically load system-wide gdbinit files from this directory],
1861 AM_GDB_COMPILER_TYPE
1865 # In the Cygwin environment, we need some additional flags.
1866 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
1867 [AC_EGREP_CPP(^lose$, [
1868 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
1870 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
1873 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
1874 SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o"
1876 *go32* ) SER_HARDWIRE=ser-go32.o ;;
1877 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
1878 *mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;;
1879 *) SER_HARDWIRE="$SER_HARDWIRE ser-uds.o" ;;
1881 AC_SUBST(SER_HARDWIRE)
1883 # libreadline needs libuser32.a in a cygwin environment
1885 if test x"$gdb_cv_os_cygwin" = xyes; then
1886 WIN32LIBS="-luser32"
1888 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
1893 # The ser-tcp.c module requires sockets.
1894 # Note that WIN32APILIBS is set by GDB_AC_COMMON.
1895 WIN32LIBS="$WIN32LIBS $WIN32APILIBS"
1897 # Add ELF support to GDB, but only if BFD includes ELF support.
1898 GDB_AC_CHECK_BFD([for ELF support in BFD], gdb_cv_var_elf,
1899 [bfd_get_elf_phdr_upper_bound (NULL)], elf-bfd.h)
1900 if test "$gdb_cv_var_elf" = yes; then
1901 CONFIG_OBS="$CONFIG_OBS elfread.o stap-probe.o dtrace-probe.o \
1902 gcore-elf.o elf-none-tdep.o"
1903 AC_DEFINE(HAVE_ELF, 1,
1904 [Define if ELF support should be included.])
1905 # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
1906 if test "$plugins" = "yes"; then
1907 AC_SEARCH_LIBS(dlopen, dl)
1911 # Add macho support to GDB, but only if BFD includes it.
1912 GDB_AC_CHECK_BFD([for Mach-O support in BFD], gdb_cv_var_macho,
1913 [bfd_mach_o_lookup_command (NULL, 0, NULL)], mach-o.h)
1914 if test "$gdb_cv_var_macho" = yes; then
1915 CONFIG_OBS="$CONFIG_OBS machoread.o"
1918 # Add any host-specific objects to GDB.
1919 CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
1921 # If building on ELF, look for lzma support for embedded compressed debug info.
1922 if test "$gdb_cv_var_elf" = yes; then
1924 AS_HELP_STRING([--with-lzma], [support lzma compression (auto/yes/no)]),
1925 [], [with_lzma=auto])
1926 AC_MSG_CHECKING([whether to use lzma])
1927 AC_MSG_RESULT([$with_lzma])
1929 if test "${with_lzma}" != no; then
1930 AC_LIB_HAVE_LINKFLAGS([lzma], [], [#include "lzma.h"],
1931 [lzma_index_iter iter;
1932 lzma_index_iter_init (&iter, 0);
1933 lzma_mf_is_supported (LZMA_MF_HC3);])
1934 if test "$HAVE_LIBLZMA" != yes; then
1935 if test "$with_lzma" = yes; then
1936 AC_MSG_ERROR([missing liblzma for --with-lzma])
1942 LIBGUI="../libgui/src/libgui.a"
1943 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
1945 AC_SUBST(GUI_CFLAGS_X)
1949 AC_SUBST(WIN32LDAPP)
1952 *-*-cygwin* | *-*-mingw* )
1961 if test "${enable_gdbtk}" = "yes"; then
1963 # Gdbtk must have an absolute path to srcdir in order to run
1964 # properly when not installed.
1972 # If $no_tk is nonempty, then we can't do Tk, and there is no
1973 # point to doing Tcl.
1976 if test -z "${no_tcl}" -a -z "${no_tk}"; then
1979 # Check for in-tree tcl
1986 if test "${TCL_SRC_DIR}" = "${topdir}/tcl"; then
1990 # Find Tcl private headers
1991 if test x"${intree}" = xno; then
1992 CY_AC_TCL_PRIVATE_HEADERS
1993 TCL_INCLUDE="${TCL_INCLUDE_SPEC} ${TCL_PRIVATE_INCLUDE}"
1994 TCL_LIBRARY="${TCL_LIB_SPEC}"
1997 # If building tcl in the same src tree, private headers
1998 # are not needed, but we need to be sure to use the right
2000 TCL_INCLUDE="-I${TCL_SRC_DIR}/generic"
2001 TCL_LIBRARY="${TCL_BUILD_LIB_SPEC}"
2002 TCL_DEPS="../tcl/${configdir}${TCL_LIB_FILE}"
2004 AC_SUBST(TCL_INCLUDE)
2005 AC_SUBST(TCL_LIBRARY)
2010 # Check for in-tree Tk
2012 if test "${TK_SRC_DIR}" = "${topdir}/tk"; then
2016 # Find Tk private headers
2017 if test x"${intree}" = xno; then
2018 CY_AC_TK_PRIVATE_HEADERS
2019 TK_INCLUDE="${TK_INCLUDE_SPEC} ${TK_PRIVATE_INCLUDE}"
2020 TK_LIBRARY=${TK_LIB_SPEC}
2023 TK_INCLUDE="-I${TK_SRC_DIR}/generic"
2024 TK_LIBRARY="${TK_BUILD_LIB_SPEC}"
2025 TK_DEPS="../tk/${configdir}/${TK_LIB_FILE}"
2027 AC_SUBST(TK_INCLUDE)
2028 AC_SUBST(TK_LIBRARY)
2030 AC_SUBST(TK_XINCLUDES)
2032 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
2034 # Include some libraries that Tcl and Tk want.
2035 TCL_LIBS='$(LIBGUI) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
2036 # Yes, the ordering seems wrong here. But it isn't.
2037 # TK_LIBS is the list of libraries that need to be linked
2038 # after Tcl/Tk. Note that this isn't put into LIBS. If it
2039 # were in LIBS then any link tests after this point would
2040 # try to include things like `$(LIBGUI)', which wouldn't work.
2041 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
2043 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
2044 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
2045 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
2046 CONFIG_ALL="${CONFIG_ALL} all-gdbtk"
2047 CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk"
2048 CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk"
2049 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk"
2051 if test x"$gdb_cv_os_cygwin" = xyes; then
2052 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
2053 WIN32LDAPP="-Wl,--subsystem,console"
2054 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
2057 AC_CONFIG_SUBDIRS(gdbtk)
2065 AC_SUBST(GDBTK_CFLAGS)
2066 AC_SUBST(GDBTK_SRC_DIR)
2070 # Unlike the sim directory, whether a simulator is linked is controlled by
2071 # presence of a gdb_sim definition in the target configure.tgt entry.
2072 # This code just checks for a few cases where we'd like to ignore those
2073 # definitions, even when they're present in the '.mt' file. These cases
2074 # are when --disable-sim is specified, or if the simulator directory is
2075 # not part of the source tree.
2077 AC_ARG_ENABLE([sim],
2078 [AS_HELP_STRING([--enable-sim], [link gdb with simulator])],
2079 [AC_MSG_NOTICE([enable_sim = $enable_sim]);
2080 AC_MSG_NOTICE([enableval = ${enableval}]);
2081 case "${enableval}" in
2082 yes) ignore_sim=false ;;
2083 no) ignore_sim=true ;;
2084 *) ignore_sim=false ;;
2088 if test ! -d "${srcdir}/../sim"; then
2094 if test "${ignore_sim}" = "false"; then
2095 if test x"${gdb_sim}" != x ; then
2097 SIM_OBS="remote-sim.o"
2099 # Some tdep code should only be compiled in when the ppc sim is
2100 # built. PR sim/13418.
2103 AC_DEFINE(WITH_PPC_SIM, 1, [Define if the PPC simulator is being linked in.])
2111 AC_SUBST(ENABLE_CFLAGS)
2112 AC_SUBST(PROFILE_CFLAGS)
2114 AC_SUBST(CONFIG_OBS)
2115 AC_SUBST(CONFIG_DEPS)
2116 AC_SUBST(CONFIG_SRCS)
2117 AC_SUBST(CONFIG_ALL)
2118 AC_SUBST(CONFIG_CLEAN)
2119 AC_SUBST(CONFIG_INSTALL)
2120 AC_SUBST(CONFIG_UNINSTALL)
2122 # List of host floatformats.
2123 AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat])
2124 AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat])
2125 AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat])
2127 # target_subdir is used by the testsuite to find the target libraries.
2129 if test "${host}" != "${target}"; then
2130 target_subdir="${target_alias}/"
2132 AC_SUBST(target_subdir)
2134 # Import nat definitions.
2135 nat_makefile_frag=/dev/null
2136 if test "${gdb_native}" = "yes"; then
2137 . ${srcdir}/configure.nat
2138 nativefile=$NAT_FILE
2142 AC_SUBST(NATDEPFILES)
2147 AC_SUBST(NAT_GENERATED_FILES)
2148 AC_SUBST(HAVE_NATIVE_GCORE_HOST)
2149 AC_SUBST_FILE(nat_makefile_frag)
2151 if test x"${gdb_osabi}" != x ; then
2152 AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
2153 [Define to the default OS ABI for this configuration.])
2156 # Setup possible use of libbacktrace.
2157 AC_ARG_ENABLE([libbacktrace],
2158 [AS_HELP_STRING([--enable-libbacktrace],
2159 [use libbacktrace to write a backtrace after a fatal signal.])],
2160 [GDB_CHECK_YES_NO_VAL([$enableval], [--enable-libbacktrace])],
2161 [enable_libbacktrace=yes])
2163 if test "${enable_libbacktrace}" = "yes"; then
2164 LIBBACKTRACE_INC="-I$srcdir/../libbacktrace/ -I../libbacktrace/"
2165 LIBBACKTRACE_LIB=../libbacktrace/libbacktrace.la
2166 AC_DEFINE(HAVE_LIBBACKTRACE, 1, [Define if libbacktrace is being used.])
2172 AC_SUBST(LIBBACKTRACE_INC)
2173 AC_SUBST(LIBBACKTRACE_LIB)
2175 # Check for babeltrace and babeltrace-ctf
2176 AC_ARG_WITH(babeltrace,
2177 AS_HELP_STRING([--with-babeltrace], [include babeltrace support (auto/yes/no)]),
2178 [], [with_babeltrace=auto])
2179 AC_MSG_CHECKING([whether to use babeltrace])
2180 AC_MSG_RESULT([$with_babeltrace])
2182 if test "x$with_babeltrace" = "xno"; then
2183 AC_MSG_WARN([babeltrace support disabled; GDB is unable to read CTF data.])
2185 # Append -Werror to CFLAGS so that configure can catch the warning
2186 # "assignment from incompatible pointer type", which is related to
2187 # the babeltrace change from 1.0.3 to 1.1.0. Babeltrace 1.1.0 works
2188 # in GDB, while babeltrace 1.0.3 is broken.
2189 # AC_LIB_HAVE_LINKFLAGS may modify CPPFLAGS in it, so it should be
2190 # safe to save and restore CFLAGS here.
2191 saved_CFLAGS=$CFLAGS
2192 CFLAGS="$CFLAGS -Werror"
2193 AC_LIB_HAVE_LINKFLAGS([babeltrace], [babeltrace-ctf],
2194 [#include <babeltrace/babeltrace.h>
2195 #include <babeltrace/ctf/events.h>
2196 #include <babeltrace/ctf/iterator.h>],
2197 [struct bt_iter_pos *pos = bt_iter_get_pos (bt_ctf_get_iter (NULL));
2198 struct bt_ctf_event *event = NULL;
2199 const struct bt_definition *scope;
2201 pos->type = BT_SEEK_BEGIN;
2202 bt_iter_set_pos (bt_ctf_get_iter (NULL), pos);
2203 scope = bt_ctf_get_top_level_scope (event,
2204 BT_STREAM_EVENT_HEADER);
2205 bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id"));
2207 CFLAGS=$saved_CFLAGS
2209 if test "$HAVE_LIBBABELTRACE" != yes; then
2210 if test "$with_babeltrace" = yes; then
2211 AC_MSG_ERROR([babeltrace is missing or unusable])
2213 AC_MSG_WARN([babeltrace is missing or unusable; GDB is unable to read CTF data.])
2218 GCC_ENABLE([libctf], [yes], [], [Handle .ctf type-info sections])
2219 if test "${enable_libctf}" = yes; then
2220 AC_DEFINE(ENABLE_LIBCTF, 1, [Handle .ctf type-info sections])
2221 LIBCTF="../libctf/libctf.la"
2222 CTF_DEPS="../libctf/libctf.la"
2230 # If nativefile (NAT_FILE) is not set in configure.nat, we link to an
2235 if test "${nativefile}" != ""; then
2236 case "${nativefile}" in
2237 nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;;
2238 * ) GDB_NM_FILE="${nativefile}"
2240 AC_CONFIG_LINKS([nm.h:$GDB_NM_FILE], [echo > stamp-nmh],
2241 [GDB_NM_FILE=$GDB_NM_FILE])
2242 AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}", [nativefile])
2245 AC_SUBST(GDB_NM_FILE)
2248 dnl Add dependency for xsltproc if building with maintainer-mode enabled.
2249 AC_PATH_PROGS(XSLTPROC, xsltproc, missing)
2250 if test "x$USE_MAINTAINER_MODE" = xyes; then
2251 if test "${XSLTPROC}" = missing; then
2252 AC_MSG_ERROR(unable to find xsltproc. maintainer-mode requires xsltproc.)
2257 dnl Check for exe extension set on certain hosts (e.g. Win32)
2260 dnl Detect the character set used by this host.
2261 dnl At the moment, we just assume it's UTF-8.
2262 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8",
2263 [Define to be a string naming the default host character set.])
2266 CONFIG_OBS="$CONFIG_OBS \$(SELFTESTS_OBS)"
2267 CONFIG_SRCS="$CONFIG_SRCS \$(SELFTESTS_SRCS)"
2270 GDB_AC_TRANSFORM([gdb], [GDB_TRANSFORM_NAME])
2271 GDB_AC_TRANSFORM([gcore], [GCORE_TRANSFORM_NAME])
2272 AC_CONFIG_FILES([gcore], [chmod +x gcore])
2273 AC_CONFIG_FILES([gstack.in:gstack-1.in])
2274 AC_CONFIG_FILES([Makefile gdb-gdb.gdb gdb-gdb.py doc/Makefile data-directory/Makefile])