1 dnl Autoconf configure script for GDB, the GNU debugger.
2 dnl Copyright (C) 1995-2015 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.
23 AC_CONFIG_HEADER(config.h:config.in)
26 # Set the 'development' global.
27 . $srcdir/../bfd/development.sh
30 AC_USE_SYSTEM_EXTENSIONS
39 # Dependency checking.
41 ZW_PROG_COMPILER_DEPENDENCIES([CC])
43 # Check for the 'make' the user wants to use.
44 AC_CHECK_PROGS(MAKE, make)
46 case "`$MAKE --version 2>&1 | sed 1q`" in
51 AM_CONDITIONAL(GMAKE, test "$MAKE_IS_GNU" = yes)
54 gnulib_extra_configure_args=
55 # If large-file support is disabled, make sure gnulib does the same.
56 if test "$enable_largefile" = no; then
57 gnulib_extra_configure_args="$gnulib_extra_configure_args --disable-largefile"
60 # Configure gnulib. We need to build gnulib under some other
61 # directory not "gnulib", to avoid the problem of both GDB and
62 # GDBserver wanting to build it in the same directory, when building
64 ACX_CONFIGURE_DIR(["gnulib"], ["build-gnulib"],
65 ["$gnulib_extra_configure_args"])
67 dnl List of object files and targets accumulated by configure.
79 dnl Set up for gettext.
80 ZW_GNU_GETTEXT_SISTER_DIR
82 localedir='${datadir}/locale'
85 if test x"$USE_NLS" = xyes; then
86 CONFIG_ALL="$CONFIG_ALL all-po"
87 CONFIG_CLEAN="$CONFIG_CLEAN clean-po"
88 CONFIG_INSTALL="$CONFIG_INSTALL install-po"
89 CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po"
92 GNULIB=build-gnulib/import
94 # For Makefile dependencies.
96 if test x"$STDINT_H" != x; then
97 GNULIB_STDINT_H=$GNULIB/$STDINT_H
99 AC_SUBST(GNULIB_STDINT_H)
102 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ])
105 # We never need to detect it in this sub-configure.
106 # But preserve it for config.status --recheck.
108 [Parent configure detects if it is of sufficient version.])
109 AC_ARG_VAR(MAKEINFOFLAGS,
110 [Parameters for MAKEINFO.])
112 MAKEINFO_EXTRA_FLAGS=""
113 AC_CACHE_CHECK([whether $MAKEINFO supports @click], gdb_cv_have_makeinfo_click,
114 [echo '@clicksequence{a @click{} b}' >conftest.texinfo
115 if eval "$MAKEINFO conftest.texinfo >&5 2>&5"; then
116 gdb_cv_have_makeinfo_click=yes
118 gdb_cv_have_makeinfo_click=no
120 if test x"$gdb_cv_have_makeinfo_click" = xyes; then
121 MAKEINFO_EXTRA_FLAGS="$MAKEINFO_EXTRA_FLAGS -DHAVE_MAKEINFO_CLICK"
123 AC_SUBST(MAKEINFO_EXTRA_FLAGS)
125 GDB_AC_WITH_DIR(DEBUGDIR, separate-debug-dir,
126 [look for global separate debug info in this path @<:@LIBDIR/debug@:>@],
129 # We can't pass paths as command line arguments.
130 # Mingw32 tries to be clever and will convert the paths for us.
131 # For example -DBINDIR="/usr/local/bin" passed on the command line may get
132 # converted to -DBINDIR="E:/msys/mingw32/msys/1.0/local/bin".
133 # This breaks GDB's relocatable path conversions since paths passed in
134 # config.h would not get so translated, the path prefixes no longer match.
135 AC_DEFINE_DIR(BINDIR, bindir, [Directory of programs.])
137 # GDB's datadir relocation
139 GDB_AC_WITH_DIR(GDB_DATADIR, gdb-datadir,
140 [look for global separate data files in this path @<:@DATADIR/gdb@:>@],
143 AC_ARG_WITH(relocated-sources,
144 AS_HELP_STRING([--with-relocated-sources=PATH], [automatically relocate this path for source files]),
145 [reloc_srcdir="${withval}"
146 AC_DEFINE_DIR(RELOC_SRCDIR, reloc_srcdir,
147 [Relocated directory for source files. ])
150 AC_MSG_CHECKING([for default auto-load directory])
151 AC_ARG_WITH(auto-load-dir,
152 AS_HELP_STRING([--with-auto-load-dir=PATH],
153 [directories from which to load auto-loaded scripts @<:@$debugdir:$datadir/auto-load@:>@]),,
154 [with_auto_load_dir='$debugdir:$datadir/auto-load'])
155 escape_dir=`echo $with_auto_load_dir | sed 's/[[$]]\(datadir\|debugdir\)\>/\\\\\\\\\\\\&/g'`
156 AC_DEFINE_DIR(AUTO_LOAD_DIR, escape_dir,
157 [Directories from which to load auto-loaded scripts.])
158 AC_MSG_RESULT([$with_auto_load_dir])
160 AC_MSG_CHECKING([for default auto-load safe-path])
161 AC_ARG_WITH(auto-load-safe-path,
162 AS_HELP_STRING([--with-auto-load-safe-path=PATH],
163 [directories safe to hold auto-loaded files @<:@--with-auto-load-dir@:>@])
164 AS_HELP_STRING([--without-auto-load-safe-path],
165 [do not restrict auto-loaded files locations]),
166 [if test "$with_auto_load_safe_path" = "no"; then
167 with_auto_load_safe_path="/"
169 [with_auto_load_safe_path="$with_auto_load_dir"])
170 escape_dir=`echo $with_auto_load_safe_path | sed 's/[[$]]\(datadir\|debugdir\)\>/\\\\\\\\\\\\&/g'`
171 AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escape_dir,
172 [Directories safe to hold auto-loaded files.])
173 AC_MSG_RESULT([$with_auto_load_safe_path])
175 AC_CONFIG_SUBDIRS(testsuite)
177 # Check whether to support alternative target configurations
178 AC_ARG_ENABLE(targets,
179 AS_HELP_STRING([--enable-targets=TARGETS], [alternative target configurations]),
180 [case "${enableval}" in
181 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
183 no) enable_targets= ;;
184 *) enable_targets=$enableval ;;
187 # Check whether to enable 64-bit support on 32-bit hosts
188 AC_ARG_ENABLE(64-bit-bfd,
189 AS_HELP_STRING([--enable-64-bit-bfd], [64-bit support (on hosts with narrower word sizes)]),
190 [case "${enableval}" in
193 *) AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;;
194 esac],[want64=false])dnl
196 # Provide defaults for some variables set by the per-host and per-target
198 gdb_host_obs=posix-hdep.o
200 if test "${target}" = "${host}"; then
206 . $srcdir/configure.host
208 # Add in the common host objects.
209 . $srcdir/common/common.host
210 gdb_host_obs="$gdb_host_obs $common_host_obs"
212 # Accumulate some settings from configure.tgt over all enabled targets
216 HAVE_NATIVE_GCORE_TARGET=
218 for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
220 if test "$targ_alias" = "all"; then
223 # Canonicalize the secondary target names.
224 result=`$ac_config_sub $targ_alias 2>/dev/null`
225 if test -n "$result"; then
231 . ${srcdir}/configure.tgt
233 AS_IF([test -z "${gdb_target_obs}"],
234 [AC_MSG_ERROR([configuration ${targ} is unsupported.])])
236 # Target-specific object files
237 for i in ${gdb_target_obs}; do
238 case " $TARGET_OBS " in
241 TARGET_OBS="$TARGET_OBS ${i}"
246 # Check whether this target needs 64-bit CORE_ADDR
247 if test x${want64} = xfalse; then
248 . ${srcdir}/../bfd/config.bfd
251 # Check whether this target is native and supports gcore.
252 if test $gdb_native = yes -a "$targ_alias" = "$target_alias" \
253 && $gdb_have_gcore; then
254 HAVE_NATIVE_GCORE_TARGET=1
259 if test x${all_targets} = xtrue; then
261 # We want all 64-bit targets if we either:
262 # - run on a 64-bit host or
263 # - already require 64-bit support for some other target or
264 # - the --enable-64-bit-bfd option was supplied
265 # Otherwise we only support all 32-bit targets.
267 # NOTE: This test must be in sync with the corresponding
270 if test x${want64} = xfalse; then
271 AC_CHECK_SIZEOF(long)
272 if test "x${ac_cv_sizeof_long}" = "x8"; then
276 if test x${want64} = xtrue; then
277 TARGET_OBS='$(ALL_TARGET_OBS) $(ALL_64_TARGET_OBS)'
279 TARGET_OBS='$(ALL_TARGET_OBS)'
284 AC_SUBST(HAVE_NATIVE_GCORE_TARGET)
286 # For other settings, only the main target counts.
290 targ=$target; . ${srcdir}/configure.tgt
292 # Fetch the default architecture and default target vector from BFD.
293 targ=$target; . $srcdir/../bfd/config.bfd
295 # We only want the first architecture, so strip off the others if
296 # there is more than one.
297 targ_archs=`echo $targ_archs | sed 's/ .*//'`
299 if test "x$targ_archs" != x; then
300 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs,
301 [Define to BFD's default architecture. ])
303 if test "x$targ_defvec" != x; then
304 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec,
305 [Define to BFD's default target vector. ])
308 # The CLI cannot be disabled yet, but may be in the future.
311 AC_ARG_ENABLE(gdbcli,
312 AS_HELP_STRING([--disable-gdbcli], [disable command-line interface (CLI)]),
317 AC_MSG_ERROR([the command-line interface cannot be disabled yet]) ;;
319 AC_MSG_ERROR([bad value $enableval for --enable-gdbcli]) ;;
322 if test x"$enable_gdbcli" = xyes; then
323 if test -d $srcdir/cli; then
324 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)"
325 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)"
326 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)"
327 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)"
333 AS_HELP_STRING([--disable-gdbmi], [disable machine-interface (MI)]),
338 AC_MSG_ERROR([bad value $enableval for --enable-gdbmi]) ;;
341 if test x"$enable_gdbmi" = xyes; then
342 if test -d $srcdir/mi; then
343 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)"
344 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)"
345 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)"
346 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)"
352 AS_HELP_STRING([--enable-tui], [enable full-screen terminal user interface (TUI)]),
357 AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
358 esac],enable_tui=auto)
362 AS_HELP_STRING([--enable-gdbtk], [enable gdbtk graphical user interface (GUI)]),
367 AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;;
369 [if test -d $srcdir/gdbtk; then
374 # We unconditionally disable gdbtk tests on selected platforms.
377 AC_MSG_WARN([gdbtk isn't supported on $host; disabling])
381 # Libunwind support for ia64.
383 AC_ARG_WITH(libunwind-ia64,
384 AS_HELP_STRING([--with-libunwind-ia64],
385 [use libunwind frame unwinding for ia64 targets]),,
386 [with_libunwind_ia64=auto])
388 # Backward compatibility option.
389 if test "${with_libunwind+set}" = set; then
390 if test x"$with_libunwind_ia64" != xauto; then
392 [option --with-libunwind is deprecated, use --with-libunwind-ia64])
394 AC_MSG_WARN([option --with-libunwind is deprecated, use --with-libunwind-ia64])
395 with_libunwind_ia64="$with_libunwind"
398 case "$with_libunwind_ia64" in
402 AC_CHECK_HEADERS(libunwind-ia64.h)
403 with_libunwind_ia64=$ac_cv_header_libunwind_ia64_h
407 [bad value $with_libunwind_ia64 for GDB --with-libunwind-ia64 option])
411 if test x"$with_libunwind_ia64" = xyes; then
412 AC_CHECK_HEADERS(libunwind-ia64.h)
413 if test x"$ac_cv_header_libunwind_ia64_h" != xyes; then
414 AC_MSG_ERROR([GDB option --with-libunwind-ia64 requires libunwind-ia64.h])
416 CONFIG_OBS="$CONFIG_OBS ia64-libunwind-tdep.o"
417 CONFIG_DEPS="$CONFIG_DEPS ia64-libunwind-tdep.o"
418 CONFIG_SRCS="$CONFIG_SRCS ia64-libunwind-tdep.c"
422 AC_ARG_WITH(curses, AS_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
425 if test "$opt_curses" = "yes"; then
430 AC_ARG_ENABLE(profiling,
431 AS_HELP_STRING([--enable-profiling], [enable profiling of GDB]),
436 AC_MSG_ERROR([bad value $enableval for --enable-profile]) ;;
438 [enable_profiling=no])
440 AC_CHECK_FUNCS(monstartup _mcleanup)
441 AC_CACHE_CHECK([for _etext], ac_cv_var__etext,
446 [free (&_etext);], ac_cv_var__etext=yes, ac_cv_var__etext=no)])
447 if test $ac_cv_var__etext = yes; then
448 AC_DEFINE(HAVE__ETEXT, 1,
449 [Define to 1 if your system has the _etext variable. ])
451 AC_CACHE_CHECK([for etext], ac_cv_var_etext,
456 [free (&etext);], ac_cv_var_etext=yes, ac_cv_var_etext=no)])
457 if test $ac_cv_var_etext = yes; then
458 AC_DEFINE(HAVE_ETEXT, 1,
459 [Define to 1 if your system has the etext variable. ])
461 if test "$enable_profiling" = yes ; then
462 if test $ac_cv_func_monstartup = no || test $ac_cv_func__mcleanup = no; then
463 AC_MSG_ERROR(--enable-profiling requires monstartup and _mcleanup)
467 CFLAGS="$CFLAGS $PROFILE_CFLAGS"
469 AC_CACHE_CHECK([whether $CC supports -pg], ac_cv_cc_supports_pg,
470 [AC_TRY_COMPILE([], [int x;], ac_cv_cc_supports_pg=yes,
471 ac_cv_cc_supports_pg=no)])
473 if test $ac_cv_cc_supports_pg = no; then
474 AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg)
480 ACX_PKGVERSION([GDB])
481 ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/])
482 AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description])
483 AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address])
485 # --------------------- #
486 # Checks for programs. #
487 # --------------------- #
495 AC_CHECK_TOOL(AR, ar)
496 AC_CHECK_TOOL(DLLTOOL, dlltool)
497 AC_CHECK_TOOL(WINDRES, windres)
501 # Needed for GNU Hurd hosts.
502 AC_CHECK_TOOL(MIG, mig)
503 if test x"$MIG" = x; then
504 AC_MSG_ERROR([MIG not found but required for $host hosts])
509 # ---------------------- #
510 # Checks for libraries. #
511 # ---------------------- #
513 # We might need to link with -lm; most simulators need it.
514 AC_CHECK_LIB(m, main)
516 # We need to link with -lw to get `wctype' on Solaris before Solaris
517 # 2.6. Solaris 2.6 and beyond have this function in libc, and have a
518 # libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1
519 # is known to have this problem). Therefore we avoid libw if we can.
520 AC_CHECK_FUNC(wctype, [],
521 [AC_CHECK_LIB(w, wctype)])
523 # Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
524 AC_SEARCH_LIBS(gethostbyname, nsl)
526 # Some systems (e.g. Solaris) have `socketpair' in libsocket.
527 AC_SEARCH_LIBS(socketpair, socket)
529 # Link in zlib if we can. This allows us to read compressed debug sections.
532 # On HP/UX we may need libxpdl for dlgetmodinfo (used by solib-pa64.c).
533 AC_SEARCH_LIBS(dlgetmodinfo, [dl xpdl])
537 # GDB may fork/exec the iconv program to get the list of supported character
538 # sets. Allow the user to specify where to find it.
539 # There are several factors affecting the choice of option name:
540 # - There is already --with-libiconv-prefix but we can't use it, it specifies
541 # the build-time location of libiconv files.
542 # - The program we need to find is iconv, which comes with glibc. The user
543 # doesn't necessarily have libiconv installed. Therefore naming this
544 # --with-libiconv-foo feels wrong.
545 # - We want the path to be relocatable, but GDB_AC_DEFINE_RELOCATABLE is
546 # defined to work on directories not files (though it really doesn't know
548 # - Calling this --with-iconv-prefix is perceived to cause too much confusion
549 # with --with-libiconv-prefix.
550 # Putting these together is why the option name is --with-iconv-bin.
552 AC_ARG_WITH(iconv-bin,
553 AS_HELP_STRING([--with-iconv-bin=PATH], [specify where to find the iconv program]),
554 [iconv_bin="${withval}"
555 AC_DEFINE_UNQUOTED([ICONV_BIN], ["${iconv_bin}"],
556 [Path of directory of iconv program.])
557 GDB_AC_DEFINE_RELOCATABLE(ICONV_BIN, iconv, ${iconv_bin})
560 # For the TUI, we need enhanced curses functionality.
561 if test x"$enable_tui" != xno; then
566 if test x"$prefer_curses" = xyes; then
567 # FIXME: kettenis/20040905: We prefer ncurses over the vendor-supplied
568 # curses library because the latter might not provide all the
569 # functionality we need. However, this leads to problems on systems
570 # where the linker searches /usr/local/lib, but the compiler doesn't
571 # search /usr/local/include, if ncurses is installed in /usr/local. A
572 # default installation of ncurses on alpha*-dec-osf* will lead to such
574 AC_SEARCH_LIBS(waddstr, [ncurses cursesX curses])
576 if test "$ac_cv_search_waddstr" != no; then
581 # Check whether we should enable the TUI, but only do so if we really
583 if test x"$enable_tui" != xno; then
584 if test -d $srcdir/tui; then
585 if test "$curses_found" != no; then
586 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
587 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
588 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
589 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
591 if test x"$enable_tui" = xyes; then
592 AC_MSG_ERROR([no enhanced curses library found; disable TUI])
594 AC_MSG_WARN([no enhanced curses library found; disabling TUI])
600 # Since GDB uses Readline, we need termcap functionality. In many
601 # cases this will be provided by the curses library, but some systems
602 # have a seperate termcap library, or no curses library at all.
606 if test -d $srcdir/libtermcap; then
607 LIBS="../libtermcap/libtermcap.a $LIBS"
608 ac_cv_search_tgetent="../libtermcap/libtermcap.a"
611 ac_cv_search_tgetent="none required"
614 ac_cv_search_tgetent="none required"
615 CONFIG_OBS="$CONFIG_OBS windows-termcap.o"
619 # These are the libraries checked by Readline.
620 AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses])
622 if test "$ac_cv_search_tgetent" = no; then
623 AC_MSG_ERROR([no termcap library found])
626 AC_ARG_WITH([system-readline],
627 [AS_HELP_STRING([--with-system-readline],
628 [use installed readline library])])
630 if test "$with_system_readline" = yes; then
634 READLINE_TEXI_INCFLAG=
636 READLINE='$(READLINE_DIR)/libreadline.a'
637 READLINE_DEPS='$(READLINE)'
638 READLINE_CFLAGS='-I$(READLINE_SRC)/..'
639 READLINE_TEXI_INCFLAG='-I $(READLINE_DIR)'
642 AC_SUBST(READLINE_DEPS)
643 AC_SUBST(READLINE_CFLAGS)
644 AC_SUBST(READLINE_TEXI_INCFLAG)
646 # Generate jit-reader.h
648 # This is typedeffed to GDB_CORE_ADDR in jit-reader.h
651 AC_CHECK_SIZEOF(unsigned long long)
652 AC_CHECK_SIZEOF(unsigned long)
653 AC_CHECK_SIZEOF(unsigned __int128)
655 if test "x${ac_cv_sizeof_unsigned_long}" = "x8"; then
656 TARGET_PTR="unsigned long"
657 elif test "x${ac_cv_sizeof_unsigned_long_long}" = "x8"; then
658 TARGET_PTR="unsigned long long"
659 elif test "x${ac_cv_sizeof_unsigned___int128}" = "x16"; then
660 TARGET_PTR="unsigned __int128"
662 TARGET_PTR="unsigned long"
666 AC_CONFIG_FILES([jit-reader.h:jit-reader.in])
668 AC_SEARCH_LIBS(dlopen, dl)
670 GDB_AC_WITH_DIR([JIT_READER_DIR], [jit-reader-dir],
671 [directory to load the JIT readers from],
675 AS_HELP_STRING([--with-expat], [include expat support (auto/yes/no)]),
676 [], [with_expat=auto])
677 AC_MSG_CHECKING([whether to use expat])
678 AC_MSG_RESULT([$with_expat])
680 if test "${with_expat}" = no; then
681 AC_MSG_WARN([expat support disabled; some features may be unavailable.])
684 AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"],
685 [XML_Parser p = XML_ParserCreate (0);])
686 if test "$HAVE_LIBEXPAT" != yes; then
687 if test "$with_expat" = yes; then
688 AC_MSG_ERROR([expat is missing or unusable])
690 AC_MSG_WARN([expat is missing or unusable; some features may be unavailable.])
694 LIBS="$LIBS $LIBEXPAT"
695 AC_CHECK_FUNCS(XML_StopParser)
700 # --------------------- #
701 # Check for libpython. #
702 # --------------------- #
704 dnl Utility to simplify finding libpython.
706 dnl $2 = the shell variable to assign the result to
707 dnl If libpython is found we store $version here.
708 dnl $3 = additional flags to add to CPPFLAGS
709 dnl $4 = additional flags to add to LIBS
711 AC_DEFUN([AC_TRY_LIBPYTHON],
714 define([have_libpython_var],$2)
717 AC_MSG_CHECKING([for ${version}])
718 save_CPPFLAGS=$CPPFLAGS
720 CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
721 LIBS="$LIBS $new_LIBS"
722 found_usable_python=no
723 AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "Python.h"]],
724 [[Py_Initialize ();]]),
725 [have_libpython_var=${version}
726 found_usable_python=yes
727 PYTHON_CPPFLAGS=$new_CPPFLAGS
728 PYTHON_LIBS=$new_LIBS])
729 CPPFLAGS=$save_CPPFLAGS
731 AC_MSG_RESULT([${found_usable_python}])
734 dnl There are several different values for --with-python:
736 dnl no - Don't include python support.
737 dnl yes - Include python support, error if it's missing.
738 dnl If we find python in $PATH, use it to fetch configure options,
739 dnl otherwise assume the compiler can find it with no help from us.
740 dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn.
741 dnl auto - Same as "yes", but if python is missing from the system,
742 dnl fall back to "no".
743 dnl /path/to/python/exec-prefix -
744 dnl Use the python located in this directory.
745 dnl If /path/to/python/exec-prefix/bin/python exists, use it to find
746 dnl the compilation parameters. Otherwise use
747 dnl -I/path/to/python/exec-prefix/include,
748 dnl -L/path/to/python/exec-prefix/lib.
749 dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn.
750 dnl NOTE: This case is historical. It is what was done for 7.0/7.1
751 dnl but is deprecated.
752 dnl /path/to/python/executable -
753 dnl Run python-config.py with this version of python to fetch the
754 dnl compilation parameters.
755 dnl NOTE: This needn't be the real python executable.
756 dnl In a cross-compilation scenario (build != host), this could be
757 dnl a shell script that provides what python-config.py provides for
758 dnl --ldflags, --includes, --exec-prefix.
759 dnl python-executable -
760 dnl Find python-executable in $PATH, and then handle the same as
761 dnl /path/to/python/executable.
763 dnl If a python program is specified, it is used to run python-config.py and
764 dnl is passed --ldflags, --includes, --exec-prefix.
767 AS_HELP_STRING([--with-python@<:@=PYTHON@:>@], [include python support (auto/yes/no/<python-program>)]),
768 [], [with_python=auto])
769 AC_MSG_CHECKING([whether to use python])
770 AC_MSG_RESULT([$with_python])
772 if test "${with_python}" = no; then
773 AC_MSG_WARN([python support disabled; some features may be unavailable.])
776 case "${with_python}" in
777 [[\\/]]* | ?:[[\\/]]*)
778 if test -d ${with_python}; then
779 # Assume the python binary is ${with_python}/bin/python.
780 python_prog="${with_python}/bin/python"
782 # If python does not exit ${with_python}/bin, then try in
783 # ${with_python}. On Windows/MinGW, this is where the Python
785 if test ! -x "${python_prog}"; then
786 python_prog="${with_python}/python"
789 if test ! -x "${python_prog}"; then
790 # Fall back to gdb 7.0/7.1 behaviour.
792 python_prefix=${with_python}
794 elif test -x "${with_python}"; then
795 # While we can't run python compiled for $host (unless host == build),
796 # the user could write a script that provides the needed information,
797 # so we support that.
798 python_prog=${with_python}
801 AC_ERROR(invalid value for --with-python)
805 # Disallow --with-python=foo/bar.
806 AC_ERROR(invalid value for --with-python)
809 # The user has either specified auto, yes, or the name of the python
810 # program assumed to be in $PATH.
812 case "${with_python}" in
814 if test ${build} = ${host}; then
815 AC_PATH_PROG(python_prog_path, python, missing)
816 if test "${python_prog_path}" = missing; then
819 python_prog=${python_prog_path}
822 # Not much we can do except assume the cross-compiler will find the
828 # While we can't run python compiled for $host (unless host == build),
829 # the user could write a script that provides the needed information,
830 # so we support that.
831 python_prog="${with_python}"
832 AC_PATH_PROG(python_prog_path, ${python_prog}, missing)
833 if test "${python_prog_path}" = missing; then
834 AC_ERROR(unable to find python program ${python_prog})
840 if test "${python_prog}" != missing; then
841 # We have a python program to use, but it may be too old.
842 # Don't flag an error for --with-python=auto (the default).
843 have_python_config=yes
844 python_includes=`${python_prog} ${srcdir}/python/python-config.py --includes`
845 if test $? != 0; then
846 have_python_config=failed
847 if test "${with_python}" != auto; then
848 AC_ERROR(failure running python-config --includes)
851 python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags`
852 if test $? != 0; then
853 have_python_config=failed
854 if test "${with_python}" != auto; then
855 AC_ERROR(failure running python-config --ldflags)
858 python_prefix=`${python_prog} ${srcdir}/python/python-config.py --exec-prefix`
859 if test $? != 0; then
860 have_python_config=failed
861 if test "${with_python}" != auto; then
862 AC_ERROR(failure running python-config --exec-prefix)
866 # We do not have a python executable we can use to determine where
867 # to find the Python headers and libs. We cannot guess the include
868 # path from the python_prefix either, because that include path
869 # depends on the Python version. So, there is nothing much we can
870 # do except assume that the compiler will be able to find those files.
873 have_python_config=no
876 # If we have python-config, only try the configuration it provides.
877 # Otherwise fallback on the old way of trying different versions of
881 if test "${have_python_config}" = yes; then
882 # Determine the Python version by extracting "-lpython<version>"
883 # part of the python_libs. <version> is usually X.Y with X and Y
884 # being decimal numbers, but can also be XY (seen on Windows).
886 # The extraction is performed using sed with a regular expression.
887 # Initially, the regexp used was using the '?' quantifier to make
888 # the dot in the version number optional. Unfortunately, this
889 # does not work with non-GNU versions of sed because, because of
890 # what looks like a limitation (the '?' quantifier does not work
891 # with back-references). We work around this limitation by using
892 # the '*' quantifier instead. It means that, in theory, we might
893 # match unexpected version strings such as "-lpython2..7", but
894 # this seems unlikely in practice. And even if that happens,
895 # an error will be triggered later on, when checking that version
897 python_version=`echo " ${python_libs} " \
898 | sed -e 's,^.* -l\(python[[0-9]]*[[.]]*[[0-9]]*\).*$,\1,'`
899 case "${python_version}" in
901 AC_TRY_LIBPYTHON(${python_version}, have_libpython,
902 ${python_includes}, ${python_libs})
905 AC_MSG_ERROR([unable to determine python version from ${python_libs}])
908 elif test "${have_python_config}" != failed; then
909 if test "${have_libpython}" = no; then
910 AC_TRY_LIBPYTHON(python2.7, have_libpython,
911 ${python_includes}, "${python_libs} -lpython2.7")
913 if test "${have_libpython}" = no; then
914 AC_TRY_LIBPYTHON(python2.6, have_libpython,
915 ${python_includes}, "${python_libs} -lpython2.6")
917 if test ${have_libpython} = no; then
918 AC_TRY_LIBPYTHON(python2.5, have_libpython,
919 ${python_includes}, "${python_libs} -lpython2.5")
921 if test ${have_libpython} = no; then
922 AC_TRY_LIBPYTHON(python2.4, have_libpython,
923 ${python_includes}, "${python_libs} -lpython2.4")
926 if test "${have_libpython}" = python2.7 -o "${have_libpython}" = python27; then
927 AC_DEFINE(HAVE_LIBPYTHON2_7, 1, [Define if Python 2.7 is being used.])
928 elif test "${have_libpython}" = python2.6 -o "${have_libpython}" = python26; then
929 AC_DEFINE(HAVE_LIBPYTHON2_6, 1, [Define if Python 2.6 is being used.])
930 elif test "${have_libpython}" = python2.5 -o "${have_libpython}" = python25; then
931 AC_DEFINE(HAVE_LIBPYTHON2_5, 1, [Define if Python 2.5 is being used.])
932 elif test "${have_libpython}" = python2.4 -o "${have_libpython}" = python24; then
933 AC_DEFINE(HAVE_LIBPYTHON2_4, 1, [Define if Python 2.4 is being used.])
936 if test "${have_libpython}" = no; then
937 case "${with_python}" in
939 AC_MSG_ERROR([python is missing or unusable])
942 AC_MSG_WARN([python is missing or unusable; some features may be unavailable.])
945 AC_MSG_ERROR([no usable python found at ${with_python}])
949 if test -n "${python_prefix}"; then
950 AC_DEFINE_UNQUOTED(WITH_PYTHON_PATH, "${python_prefix}",
951 [Define if --with-python provides a path, either directly or via python-config.py --exec-prefix.])
952 GDB_AC_DEFINE_RELOCATABLE(PYTHON_PATH, python, ${python_prefix})
957 if test "${have_libpython}" != no; then
958 AC_DEFINE(HAVE_PYTHON, 1, [Define if Python interpreter is being linked in.])
959 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_PYTHON_OBS)"
960 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)"
961 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_PYTHON_SRCS)"
962 CONFIG_INSTALL="$CONFIG_INSTALL install-python"
963 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)"
965 # Flags needed to compile Python code (taken from python-config --cflags).
966 # We cannot call python-config directly because it will output whatever was
967 # used when compiling the Python interpreter itself, including flags which
968 # would make the python-related objects be compiled differently from the
969 # rest of GDB (e.g., -O2 and -fPIC).
970 if test "${GCC}" = yes; then
971 tentative_python_cflags="-fno-strict-aliasing -DNDEBUG -fwrapv"
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"
980 AC_TRY_COMPILE([],[],PYTHON_CFLAGS="${PYTHON_CFLAGS} $flag",)
981 CFLAGS="$saved_CFLAGS"
983 AC_MSG_RESULT(${PYTHON_CFLAGS})
986 # On x64 Windows, Python's include headers, and pyconfig.h in
987 # particular, rely on MS_WIN64 macro to detect that it's a 64bit
988 # version of Windows. Unfortunately, MS_WIN64 is only defined if
989 # _MSC_VER, a Microsoft-specific macro, is defined. So, when
990 # building on x64 Windows with GCC, we define MS_WIN64 ourselves.
991 # The issue was reported to the Python community, but still isn't
992 # solved as of 2012-10-02 (http://bugs.python.org/issue4709).
996 if test "${GCC}" = yes; then
997 CPPFLAGS="$CPPFLAGS -DMS_WIN64"
1002 # Note that "python -m threading" cannot be used to check for
1003 # threading support due to a bug in Python 2.7.3
1004 # (http://bugs.python.org/issue15567).
1005 AC_MSG_CHECKING(whether python supports threads)
1006 saved_CPPFLAGS="${CPPFLAGS}"
1007 CPPFLAGS="${PYTHON_CPPFLAGS}"
1008 # Note that the test is reversed so that python_has_threads=yes on
1009 # unexpected failures.
1010 AC_PREPROC_IFELSE(AC_LANG_SOURCE([[
1015 ]]), [python_has_threads=no], [python_has_threads=yes])
1016 AC_MSG_RESULT(${python_has_threads})
1017 CPPFLAGS="${saved_CPPFLAGS}"
1019 # Even if Python support is not compiled in, we need to have this file
1020 # included so that the "python" command, et.al., still exists.
1021 CONFIG_OBS="$CONFIG_OBS python.o"
1022 CONFIG_SRCS="$CONFIG_SRCS python/python.c"
1024 AC_SUBST(PYTHON_CFLAGS)
1025 AC_SUBST(PYTHON_CPPFLAGS)
1026 AC_SUBST(PYTHON_LIBS)
1027 AM_CONDITIONAL(HAVE_PYTHON, test "${have_libpython}" != no)
1029 # -------------------- #
1030 # Check for libguile. #
1031 # -------------------- #
1033 dnl Utility to simplify finding libguile.
1034 dnl $1 = pkg-config-program
1035 dnl $2 = space-separate list of guile versions to try
1036 dnl $3 = yes|no, indicating whether to flag errors or ignore them
1037 dnl $4 = the shell variable to assign the result to
1038 dnl If libguile is found we store "yes" here.
1040 AC_DEFUN([AC_TRY_LIBGUILE],
1043 guile_version_list=$2
1045 define([have_libguile_var],$4)
1046 found_usable_guile=checking
1047 AC_MSG_CHECKING([for usable guile from ${pkg_config}])
1048 for guile_version in ${guile_version_list}; do
1049 ${pkg_config} --exists ${guile_version} 2>/dev/null
1050 if test $? != 0; then
1053 dnl pkg-config says the package exists, so if we get an error now,
1055 new_CPPFLAGS=`${pkg_config} --cflags ${guile_version}`
1056 if test $? != 0; then
1057 AC_MSG_ERROR([failure running pkg-config --cflags ${guile_version}])
1059 new_LIBS=`${pkg_config} --libs ${guile_version}`
1060 if test $? != 0; then
1061 AC_MSG_ERROR([failure running pkg-config --libs ${guile_version}])
1063 dnl If we get this far, great.
1064 found_usable_guile=${guile_version}
1067 if test "${found_usable_guile}" = "checking"; then
1068 if test "${flag_errors}" = "yes"; then
1069 AC_MSG_ERROR([unable to find usable guile version from "${guile_version_list}"])
1071 found_usable_guile=no
1074 dnl One final sanity check.
1075 dnl The user could have said --with-guile=python-2.7.
1076 if test "${found_usable_guile}" != no; then
1077 save_CPPFLAGS=$CPPFLAGS
1079 CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
1080 LIBS="$LIBS $new_LIBS"
1081 AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "libguile.h"]],
1082 [[scm_init_guile ();]]),
1083 [have_libguile_var=yes
1084 GUILE_CPPFLAGS=$new_CPPFLAGS
1085 GUILE_LIBS=$new_LIBS],
1086 [found_usable_guile=no])
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-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.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 libmcheck. #
1217 # --------------------- #
1219 # Enable -lmcheck by default (it provides cheap-enough memory mangling),
1220 # but turn it off if Python is enabled with threads, since -lmcheck is
1221 # not thread safe (http://sourceware.org/bugzilla/show_bug.cgi?id=9939),
1223 if test \( "${have_libpython}" = "no" -o "${python_has_threads}" = "no" \) \
1224 && $development; then
1225 libmcheck_default=yes
1227 libmcheck_default=no
1229 GDB_AC_LIBMCHECK(${libmcheck_default})
1231 if test "$ENABLE_LIBMCHECK" = "yes" \
1232 -a "${have_libpython}" != "no" \
1233 -a "${python_has_threads}" = "yes" ; then
1234 AC_MSG_WARN(--enable-libmcheck may lead to spurious crashes if threads are used in python)
1237 # ------------------------- #
1238 # Checks for header files. #
1239 # ------------------------- #
1242 # elf_hp.h is for HP/UX 64-bit shared library support.
1243 AC_CHECK_HEADERS([nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \
1246 sys/file.h sys/filio.h sys/ioctl.h sys/param.h \
1247 sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \
1248 sys/reg.h sys/debugreg.h sys/select.h sys/syscall.h \
1249 termios.h termio.h \
1252 AC_CHECK_HEADERS(sys/proc.h, [], [],
1253 [#if HAVE_SYS_PARAM_H
1254 # include <sys/param.h>
1257 AC_CHECK_HEADERS(sys/user.h, [], [],
1258 [#if HAVE_SYS_PARAM_H
1259 # include <sys/param.h>
1263 # On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash
1264 # between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
1265 # think that we don't have <curses.h> if we're using GCC.
1268 if test "$GCC" = yes; then
1269 AC_DEFINE(_MSE_INT_H, 1,
1270 [Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
1271 Solaris 2.[789] when using GCC. ])
1274 AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h ncurses/term.h)
1275 AC_CHECK_HEADERS(term.h, [], [],
1277 # include <curses.h>
1281 # ------------------------- #
1282 # Checks for declarations. #
1283 # ------------------------- #
1285 AC_CHECK_DECLS([free, malloc, realloc, snprintf])
1288 # ----------------------- #
1289 # Checks for structures. #
1290 # ----------------------- #
1292 AC_CHECK_MEMBERS([struct stat.st_blocks, struct stat.st_blksize])
1294 # ------------------ #
1295 # Checks for types. #
1296 # ------------------ #
1299 AC_CHECK_TYPES(socklen_t, [], [],
1300 [#include <sys/types.h>
1301 #include <sys/socket.h>
1304 # ------------------------------------- #
1305 # Checks for compiler characteristics. #
1306 # ------------------------------------- #
1312 # ------------------------------ #
1313 # Checks for library functions. #
1314 # ------------------------------ #
1318 AC_CHECK_FUNCS([getauxval getrusage getuid getgid \
1319 pipe poll pread pread64 pwrite resize_term \
1320 sbrk setpgid setpgrp setsid \
1321 sigaction sigprocmask sigsetmask socketpair \
1322 ttrace wborder wresize setlocale iconvlist libiconvlist btowc \
1323 setrlimit getrlimit posix_madvise waitpid \
1324 ptrace64 sigaltstack mkdtemp])
1328 # Check the return and argument types of ptrace. No canned test for
1329 # this, so roll our own.
1330 gdb_ptrace_headers='
1331 #include <sys/types.h>
1332 #if HAVE_SYS_PTRACE_H
1333 # include <sys/ptrace.h>
1336 # include <unistd.h>
1339 # There is no point in checking if we don't have a prototype.
1340 AC_CHECK_DECLS(ptrace, [], [
1341 : ${gdb_cv_func_ptrace_ret='int'}
1342 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
1343 ], $gdb_ptrace_headers)
1344 # Check return type. Varargs (used on GNU/Linux) conflict with the
1345 # empty argument list, so check for that explicitly.
1346 AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret,
1347 AC_TRY_COMPILE($gdb_ptrace_headers,
1348 [extern long ptrace (enum __ptrace_request, ...);],
1349 gdb_cv_func_ptrace_ret='long',
1350 AC_TRY_COMPILE($gdb_ptrace_headers,
1351 [extern int ptrace ();],
1352 gdb_cv_func_ptrace_ret='int',
1353 gdb_cv_func_ptrace_ret='long')))
1354 AC_DEFINE_UNQUOTED(PTRACE_TYPE_RET, $gdb_cv_func_ptrace_ret,
1355 [Define as the return type of ptrace.])
1356 # Check argument types.
1357 AC_CACHE_CHECK([types of arguments for ptrace], gdb_cv_func_ptrace_args, [
1358 AC_TRY_COMPILE($gdb_ptrace_headers,
1359 [extern long ptrace (enum __ptrace_request, ...);],
1360 [gdb_cv_func_ptrace_args='int,int,long,long'],[
1361 for gdb_arg1 in 'int' 'long'; do
1362 for gdb_arg2 in 'pid_t' 'int' 'long'; do
1363 for gdb_arg3 in 'int *' 'caddr_t' 'int' 'long' 'void *'; do
1364 for gdb_arg4 in 'int' 'long' 'void *'; do
1365 AC_TRY_COMPILE($gdb_ptrace_headers, [
1366 extern $gdb_cv_func_ptrace_ret
1367 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4);
1368 ], [gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4";
1370 for gdb_arg5 in 'int *' 'int' 'long'; do
1371 AC_TRY_COMPILE($gdb_ptrace_headers, [
1372 extern $gdb_cv_func_ptrace_ret
1373 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4, $gdb_arg5);
1375 gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4,$gdb_arg5";
1382 # Provide a safe default value.
1383 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
1385 ac_save_IFS=$IFS; IFS=','
1386 set dummy `echo "$gdb_cv_func_ptrace_args" | sed 's/\*/\*/g'`
1389 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG3, $[3],
1390 [Define to the type of arg 3 for ptrace.])
1391 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG4, $[4],
1392 [Define to the type of arg 4 for ptrace.])
1393 if test -n "$[5]"; then
1394 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG5, $[5],
1395 [Define to the type of arg 5 for ptrace.])
1398 dnl AC_FUNC_SETPGRP does not work when cross compiling
1399 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
1400 if test "$cross_compiling" = no; then
1403 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
1407 if (setpgrp(1,1) == -1)
1411 ], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
1412 if test $ac_cv_func_setpgrp_void = yes; then
1413 AC_DEFINE(SETPGRP_VOID, 1)
1417 # Assume we'll default to using the included libiberty regex.
1418 gdb_use_included_regex=yes
1420 # However, if the system regex is GNU regex, then default to *not*
1421 # using the included regex.
1424 [gdb_cv_have_gnu_regex],
1426 [#include <gnu-versions.h>],
1427 [#define REGEX_INTERFACE_VERSION 1
1428 #if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION
1429 # error "Version mismatch"
1431 gdb_cv_have_gnu_regex=yes,
1432 gdb_cv_have_gnu_regex=no)])
1433 if test $gdb_cv_have_gnu_regex = yes; then
1434 gdb_use_included_regex=no
1437 AC_ARG_WITH(included-regex,
1438 AS_HELP_STRING([--without-included-regex], [don't use included regex; this is the default on systems with version 2 of the GNU C library (use with caution on other system)]),
1439 gdb_with_regex=$withval,
1440 gdb_with_regex=$gdb_use_included_regex)
1441 if test "$gdb_with_regex" = yes; then
1442 AC_DEFINE(USE_INCLUDED_REGEX, 1,
1443 [Define to 1 if the regex included in libiberty should be used.])
1446 # Check if <sys/proc.h> defines `struct thread' with a td_pcb member.
1447 AC_CHECK_MEMBERS([struct thread.td_pcb], [], [],
1448 [#include <sys/param.h>
1449 #include <sys/proc.h>
1452 # See if <sys/lwp.h> defines `struct lwp`.
1453 AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp,
1454 [AC_TRY_COMPILE([#include <sys/param.h>
1455 #include <sys/lwp.h>], [struct lwp l;],
1456 gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)])
1457 if test $gdb_cv_struct_lwp = yes; then
1458 AC_DEFINE(HAVE_STRUCT_LWP, 1,
1459 [Define to 1 if your system has struct lwp.])
1462 # See if <machine/reg.h> degines `struct reg'.
1463 AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg,
1464 [AC_TRY_COMPILE([#include <sys/types.h>
1465 #include <machine/reg.h>], [struct reg r;],
1466 gdb_cv_struct_reg=yes, gdb_cv_struct_reg=no)])
1467 if test $gdb_cv_struct_reg = yes; then
1468 AC_DEFINE(HAVE_STRUCT_REG, 1,
1469 [Define to 1 if your system has struct reg in <machine/reg.h>.])
1472 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
1473 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
1474 AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [],
1475 [#include <machine/reg.h>])
1477 # See if <sys/user.h> supports the %fs_base and %gs_bas amd64 segment registers.
1478 # Older amd64 Linux's don't have the fs_base and gs_base members of
1479 # `struct user_regs_struct'.
1480 AC_CHECK_MEMBERS([struct user_regs_struct.fs_base, struct user_regs_struct.gs_base],
1481 [], [], [#include <sys/user.h>])
1483 # See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
1484 AC_MSG_CHECKING(for PTRACE_GETREGS)
1485 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
1486 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
1488 [gdb_cv_have_ptrace_getregs=yes],
1489 [gdb_cv_have_ptrace_getregs=no])])
1490 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
1491 if test $gdb_cv_have_ptrace_getregs = yes; then
1492 AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
1493 [Define if sys/ptrace.h defines the PTRACE_GETREGS request.])
1496 # See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
1497 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
1498 AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
1499 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
1500 [PTRACE_GETFPXREGS;],
1501 [gdb_cv_have_ptrace_getfpxregs=yes],
1502 [gdb_cv_have_ptrace_getfpxregs=no])])
1503 AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
1504 if test $gdb_cv_have_ptrace_getfpxregs = yes; then
1505 AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
1506 [Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.])
1509 # See if <sys/ptrace.h> provides the PT_GETDBREGS request.
1510 AC_MSG_CHECKING(for PT_GETDBREGS)
1511 AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
1512 [AC_TRY_COMPILE([#include <sys/types.h>
1513 #include <sys/ptrace.h>],
1515 [gdb_cv_have_pt_getdbregs=yes],
1516 [gdb_cv_have_pt_getdbregs=no])])
1517 AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
1518 if test $gdb_cv_have_pt_getdbregs = yes; then
1519 AC_DEFINE(HAVE_PT_GETDBREGS, 1,
1520 [Define if sys/ptrace.h defines the PT_GETDBREGS request.])
1523 # See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
1524 AC_MSG_CHECKING(for PT_GETXMMREGS)
1525 AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
1526 [AC_TRY_COMPILE([#include <sys/types.h>
1527 #include <sys/ptrace.h>],
1529 [gdb_cv_have_pt_getxmmregs=yes],
1530 [gdb_cv_have_pt_getxmmregs=no])])
1531 AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
1532 if test $gdb_cv_have_pt_getxmmregs = yes; then
1533 AC_DEFINE(HAVE_PT_GETXMMREGS, 1,
1534 [Define if sys/ptrace.h defines the PT_GETXMMREGS request.])
1537 # Detect which type of /proc is in use, such as for Solaris.
1539 if test "${target}" = "${host}"; then
1541 *-*-sysv4.2* | *-*-sysv5* )
1542 AC_DEFINE(NEW_PROC_API, 1,
1543 [Define if you want to use new multi-fd /proc interface.])
1545 *-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]]*)
1546 AC_DEFINE(NEW_PROC_API, 1,
1547 [Define if you want to use new multi-fd /proc interface.])
1550 # Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5.
1551 AC_DEFINE([_KMEMUSER], 1,
1552 [Define to 1 so <sys/proc.h> gets a definition of anon_hdl. Works
1553 around a <sys/proc.h> problem on IRIX 5.])
1558 if test "$ac_cv_header_sys_procfs_h" = yes; then
1559 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
1560 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
1561 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
1562 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
1563 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
1564 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
1565 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
1566 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
1567 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
1568 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
1569 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
1572 dnl Check for broken prfpregset_t type
1574 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
1575 dnl prfpregset_t type (it's a typedef for the pointer to a struct
1576 dnl instead of the struct itself). We detect this here, and work
1577 dnl around it in gdb_proc_service.h.
1579 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
1580 AC_MSG_CHECKING(whether prfpregset_t type is broken)
1581 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
1582 [AC_TRY_RUN([#include <sys/procfs.h>
1585 if (sizeof (prfpregset_t) == sizeof (void *))
1589 gdb_cv_prfpregset_t_broken=no,
1590 gdb_cv_prfpregset_t_broken=yes,
1591 gdb_cv_prfpregset_t_broken=yes)])
1592 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
1593 if test $gdb_cv_prfpregset_t_broken = yes; then
1594 AC_DEFINE(PRFPREGSET_T_BROKEN, 1,
1595 [Define if the prfpregset_t type is broken.])
1600 # Check if the compiler supports the `long long' type.
1602 AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long,
1603 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1604 [[extern long long foo;]],
1605 [[switch (foo & 2) { case 0: return 1; }]])],
1606 gdb_cv_c_long_long=yes,
1607 gdb_cv_c_long_long=no)])
1608 if test $gdb_cv_c_long_long != yes; then
1609 # libdecnumber requires long long.
1610 AC_MSG_ERROR([Compiler must support long long for GDB.])
1613 # Check if the compiler and runtime support printing long longs.
1615 AC_CACHE_CHECK([for long long support in printf],
1616 gdb_cv_printf_has_long_long,
1617 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1620 l = (l << 16) + 0x0123;
1621 l = (l << 16) + 0x4567;
1622 l = (l << 16) + 0x89ab;
1623 l = (l << 16) + 0xcdef;
1624 sprintf (buf, "0x%016llx", l);
1625 return (strcmp ("0x0123456789abcdef", buf));]])],
1626 gdb_cv_printf_has_long_long=yes,
1627 gdb_cv_printf_has_long_long=no,
1628 gdb_cv_printf_has_long_long=no)])
1629 if test $gdb_cv_printf_has_long_long = yes; then
1630 AC_DEFINE(PRINTF_HAS_LONG_LONG, 1,
1631 [Define to 1 if the "%ll" format works to print long longs.])
1634 # Check if the compiler and runtime support printing decfloats.
1636 AC_CACHE_CHECK([for decfloat support in printf],
1637 gdb_cv_printf_has_decfloat,
1638 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1640 _Decimal32 d32 = 1.2345df;
1641 _Decimal64 d64 = 1.2345dd;
1642 _Decimal128 d128 = 1.2345dl;
1643 sprintf (buf, "Decimal32: %H\nDecimal64: %D\nDecimal128: %DD", d32, d64, d128);
1644 return (strcmp ("Decimal32: 1.2345\nDecimal64: 1.2345\nDecimal128: 1.2345", buf));]])],
1645 gdb_cv_printf_has_decfloat=yes,
1646 gdb_cv_printf_has_decfloat=no,
1647 gdb_cv_printf_has_decfloat=no)])
1648 if test $gdb_cv_printf_has_decfloat = yes; then
1649 AC_DEFINE(PRINTF_HAS_DECFLOAT, 1,
1650 [Define to 1 if the "%H, %D and %DD" formats work to print decfloats.])
1653 # Check if the compiler supports the `long double' type. We can't use
1654 # AC_C_LONG_DOUBLE because that one does additional checks on the
1655 # constants defined in <float.h> that fail on some systems,
1656 # e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6.
1658 AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double,
1659 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])],
1660 gdb_cv_c_long_double=yes,
1661 gdb_cv_c_long_double=no)])
1662 if test $gdb_cv_c_long_double = yes; then
1663 AC_DEFINE(HAVE_LONG_DOUBLE, 1,
1664 [Define to 1 if the compiler supports long double.])
1667 # Check if the compiler and runtime support printing long doubles.
1669 AC_CACHE_CHECK([for long double support in printf],
1670 gdb_cv_printf_has_long_double,
1671 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1673 long double f = 3.141592653;
1674 sprintf (buf, "%Lg", f);
1675 return (strncmp ("3.14159", buf, 7));]])],
1676 gdb_cv_printf_has_long_double=yes,
1677 gdb_cv_printf_has_long_double=no,
1678 gdb_cv_printf_has_long_double=no)])
1679 if test $gdb_cv_printf_has_long_double = yes; then
1680 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1,
1681 [Define to 1 if the "%Lg" format works to print long doubles.])
1684 # Check if the compiler and runtime support scanning long doubles.
1686 AC_CACHE_CHECK([for long double support in scanf],
1687 gdb_cv_scanf_has_long_double,
1688 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
1689 [[#include <stdio.h>]],
1690 [[char *buf = "3.141592653";
1692 sscanf (buf, "%Lg", &f);
1693 return !(f > 3.14159 && f < 3.14160);]])],
1694 gdb_cv_scanf_has_long_double=yes,
1695 gdb_cv_scanf_has_long_double=no,
1696 gdb_cv_scanf_has_long_double=no)])
1697 if test $gdb_cv_scanf_has_long_double = yes; then
1698 AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1,
1699 [Define to 1 if the "%Lg" format works to scan long doubles.])
1704 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
1705 SAVE_LDFLAGS=$LDFLAGS
1708 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
1709 *) gdb_cv_bigtoc=-bbigtoc ;;
1712 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
1713 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
1714 LDFLAGS="${SAVE_LDFLAGS}"
1716 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
1720 AC_MSG_CHECKING(for the dynamic export flag)
1722 if test "${gdb_native}" = yes; then
1723 # The dynamically loaded libthread_db needs access to symbols in the gdb
1724 # executable. Older GNU ld supports --export-dynamic but --dynamic-list
1725 # may not be supported there.
1726 old_LDFLAGS="$LDFLAGS"
1727 # Older GNU ld supports --export-dynamic but --dynamic-list it does not.
1728 RDYNAMIC="-Wl,--dynamic-list=${srcdir}/proc-service.list"
1729 LDFLAGS="$LDFLAGS $RDYNAMIC"
1730 if test "${have_libpython}" = no; then
1731 AC_TRY_LINK([], [], [dynamic_list=true])
1733 # Workaround http://bugs.python.org/issue4434 where static
1734 # libpythonX.Y.a would get its symbols required for
1735 # pythonX.Y/lib-dynload/*.so modules hidden by -Wl,--dynamic-list.
1736 # Problem does not happen for the recommended libpythonX.Y.so linkage.
1737 old_CFLAGS="$CFLAGS"
1738 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
1740 LIBS="$LIBS $PYTHON_LIBS"
1743 [#include "]${have_libpython}[/Python.h"],
1746 err = PyRun_SimpleString ("import itertools\n");
1748 return err == 0 ? 0 : 1;]),
1749 [dynamic_list=true], [], [true])
1751 CFLAGS="$old_CFLAGS"
1753 LDFLAGS="$old_LDFLAGS"
1755 if $dynamic_list; then
1756 found="-Wl,--dynamic-list"
1757 RDYNAMIC='-Wl,--dynamic-list=$(srcdir)/proc-service.list'
1760 RDYNAMIC="-rdynamic"
1763 AC_MSG_RESULT($found)
1765 dnl For certain native configurations, we need to check whether thread
1766 dnl support can be built in or not.
1768 dnl Note that we only want this if we are both native (host == target),
1769 dnl and not doing a canadian cross build (build == host).
1771 if test ${build} = ${host} -a ${host} = ${target} ; then
1774 # See if thread_db library is around for Solaris thread debugging.
1775 # Note that we must explicitly test for version 1 of the library
1776 # because version 0 (present on Solaris 2.4 or earlier) doesn't have
1778 AC_MSG_CHECKING(for Solaris thread debugging library)
1779 if test -f /usr/lib/libthread_db.so.1 ; then
1781 AC_DEFINE(HAVE_THREAD_DB_LIB, 1,
1782 [Define if using Solaris thread debugging.])
1783 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
1784 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
1785 AC_CHECK_LIB(dl, dlopen)
1786 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} $RDYNAMIC"
1787 # Sun randomly tweaked the prototypes in <proc_service.h>
1789 AC_MSG_CHECKING(if <proc_service.h> is old)
1790 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
1792 #include <proc_service.h>
1794 (struct ps_prochandle*, psaddr_t, const void*, size_t);
1795 ],, gdb_cv_proc_service_is_old=no,
1796 gdb_cv_proc_service_is_old=yes)
1798 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
1799 if test $gdb_cv_proc_service_is_old = yes; then
1800 AC_DEFINE(PROC_SERVICE_IS_OLD, 1,
1801 [Define if <proc_service.h> on solaris uses int instead of
1802 size_t, and assorted other type changes.])
1809 AC_MSG_CHECKING(for AiX thread debugging library)
1810 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
1811 [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
1812 [#ifndef PTHDB_VERSION_3
1815 gdb_cv_have_aix_thread_debug=yes,
1816 gdb_cv_have_aix_thread_debug=no)])
1817 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
1818 if test $gdb_cv_have_aix_thread_debug = yes; then
1819 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
1820 CONFIG_OBS="${CONFIG_OBS} aix-thread.o"
1821 LIBS="$LIBS -lpthdebug"
1823 # Older versions of AIX do not provide the declaration for
1824 # the getthrds function (it appears that it was introduced
1826 AC_CHECK_DECLS(getthrds, [], [], [[#include <procinfo.h>]])
1830 AC_SUBST(CONFIG_LDFLAGS)
1833 dnl See if we have a thread_db header file that has TD_NOTALLOC and
1834 dnl other error codes.
1835 if test "x$ac_cv_header_thread_db_h" = "xyes"; then
1836 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
1837 gdb_cv_thread_db_h_has_td_notalloc,
1839 [#include <thread_db.h>],
1840 [int i = TD_NOTALLOC;],
1841 gdb_cv_thread_db_h_has_td_notalloc=yes,
1842 gdb_cv_thread_db_h_has_td_notalloc=no
1845 AC_CACHE_CHECK([whether <thread_db.h> has TD_VERSION],
1846 gdb_cv_thread_db_h_has_td_version,
1848 [#include <thread_db.h>],
1849 [int i = TD_VERSION;],
1850 gdb_cv_thread_db_h_has_td_version=yes,
1851 gdb_cv_thread_db_h_has_td_version=no
1854 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTLS],
1855 gdb_cv_thread_db_h_has_td_notls,
1857 [#include <thread_db.h>],
1858 [int i = TD_NOTLS;],
1859 gdb_cv_thread_db_h_has_td_notls=yes,
1860 gdb_cv_thread_db_h_has_td_notls=no
1864 if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
1865 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
1866 [Define if <thread_db.h> has the TD_NOTALLOC error code.])
1868 if test "x$gdb_cv_thread_db_h_has_td_version" = "xyes"; then
1869 AC_DEFINE(THREAD_DB_HAS_TD_VERSION, 1,
1870 [Define if <thread_db.h> has the TD_VERSION error code.])
1872 if test "x$gdb_cv_thread_db_h_has_td_notls" = "xyes"; then
1873 AC_DEFINE(THREAD_DB_HAS_TD_NOTLS, 1,
1874 [Define if <thread_db.h> has the TD_NOTLS error code.])
1877 dnl See if we have a sys/syscall header file that has __NR_tkill.
1878 if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then
1879 AC_CACHE_CHECK([whether <sys/syscall.h> has __NR_tkill],
1880 gdb_cv_sys_syscall_h_has_tkill,
1882 [#include <sys/syscall.h>],
1883 [int i = __NR_tkill;],
1884 gdb_cv_sys_syscall_h_has_tkill=yes,
1885 gdb_cv_sys_syscall_h_has_tkill=no
1889 dnl See if we can issue tkill syscall.
1890 if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes"; then
1891 AC_CHECK_FUNC(syscall,
1892 AC_DEFINE(HAVE_TKILL_SYSCALL, 1, [Define if you support the tkill syscall.])
1896 dnl Check if we can disable the virtual address space randomization.
1897 dnl The functionality of setarch -R.
1898 AC_CHECK_DECLS([ADDR_NO_RANDOMIZE],,, [#include <sys/personality.h>])
1899 define([PERSONALITY_TEST], [AC_LANG_PROGRAM([#include <sys/personality.h>], [
1900 # if !HAVE_DECL_ADDR_NO_RANDOMIZE
1901 # define ADDR_NO_RANDOMIZE 0x0040000
1903 /* Test the flag could be set and stays set. */
1904 personality (personality (0xffffffff) | ADDR_NO_RANDOMIZE);
1905 if (!(personality (personality (0xffffffff)) & ADDR_NO_RANDOMIZE))
1907 AC_RUN_IFELSE([PERSONALITY_TEST],
1908 [have_personality=true],
1909 [have_personality=false],
1910 [AC_LINK_IFELSE([PERSONALITY_TEST],
1911 [have_personality=true],
1912 [have_personality=false])])
1913 if $have_personality
1915 AC_DEFINE([HAVE_PERSONALITY], 1,
1916 [Define if you support the personality syscall.])
1919 dnl Set the host's .gdbinit filename.
1928 AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.])
1930 dnl Handle optional features that can be enabled.
1932 # Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
1933 # except that the argument to --with-sysroot is optional.
1934 # --with-sysroot (or --with-sysroot=yes) sets the default sysroot path.
1935 if test "x$with_sysroot" = xyes; then
1936 with_sysroot="${exec_prefix}/${target_alias}/sys-root"
1938 AC_ARG_WITH(sysroot,
1939 AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
1940 [search for usr/lib et al within DIR]),
1941 [TARGET_SYSTEM_ROOT=$withval], [TARGET_SYSTEM_ROOT=])
1942 AC_DEFINE_DIR(TARGET_SYSTEM_ROOT, TARGET_SYSTEM_ROOT,
1943 [search for usr/lib et al within DIR])
1944 AC_SUBST(TARGET_SYSTEM_ROOT)
1945 GDB_AC_DEFINE_RELOCATABLE(TARGET_SYSTEM_ROOT, sysroot, ${ac_define_dir})
1947 GDB_AC_WITH_DIR(SYSTEM_GDBINIT, system-gdbinit,
1948 [automatically load a system-wide gdbinit file],
1951 AC_ARG_ENABLE(werror,
1952 AS_HELP_STRING([--enable-werror], [treat compile warnings as errors]),
1953 [case "${enableval}" in
1954 yes | y) ERROR_ON_WARNING="yes" ;;
1955 no | n) ERROR_ON_WARNING="no" ;;
1956 *) AC_MSG_ERROR(bad value ${enableval} for --enable-werror) ;;
1959 # Enable -Werror by default when using gcc. Turn it off for releases.
1960 if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" && $development; then
1961 ERROR_ON_WARNING=yes
1965 if test "${ERROR_ON_WARNING}" = yes ; then
1966 WERROR_CFLAGS="-Werror"
1969 build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \
1971 -Wno-unused -Wunused-value -Wunused-function \
1972 -Wno-switch -Wno-char-subscripts -Wmissing-prototypes \
1973 -Wdeclaration-after-statement -Wempty-body -Wmissing-parameter-type \
1974 -Wold-style-declaration -Wold-style-definition"
1976 # Enable -Wno-format by default when using gcc on mingw since many
1977 # GCC versions complain about %I64.
1979 *-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;;
1980 *) build_warnings="$build_warnings -Wformat-nonliteral" ;;
1983 AC_ARG_ENABLE(build-warnings,
1984 AS_HELP_STRING([--enable-build-warnings], [enable build-time compiler warnings if gcc is used]),
1985 [case "${enableval}" in
1987 no) build_warnings="-w";;
1988 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1989 build_warnings="${build_warnings} ${t}";;
1990 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1991 build_warnings="${t} ${build_warnings}";;
1992 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1994 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1995 echo "Setting compiler warning flags = $build_warnings" 6>&1
1997 AC_ARG_ENABLE(gdb-build-warnings,
1998 AS_HELP_STRING([--enable-gdb-build-warnings], [enable GDB specific build-time compiler warnings if gcc is used]),
1999 [case "${enableval}" in
2001 no) build_warnings="-w";;
2002 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
2003 build_warnings="${build_warnings} ${t}";;
2004 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
2005 build_warnings="${t} ${build_warnings}";;
2006 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
2008 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
2009 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
2012 if test "x${build_warnings}" != x -a "x$GCC" = xyes
2014 AC_MSG_CHECKING(compiler warning flags)
2015 # Separate out the -Werror flag as some files just cannot be
2016 # compiled with it enabled.
2017 for w in ${build_warnings}; do
2019 -Werr*) WERROR_CFLAGS=-Werror ;;
2020 *) # Check that GCC accepts it
2021 saved_CFLAGS="$CFLAGS"
2023 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
2024 CFLAGS="$saved_CFLAGS"
2027 AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS})
2029 AC_SUBST(WARN_CFLAGS)
2030 AC_SUBST(WERROR_CFLAGS)
2032 # In the Cygwin environment, we need some additional flags.
2033 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
2034 [AC_EGREP_CPP(^lose$, [
2035 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
2037 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
2040 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
2041 SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o"
2043 *go32* ) SER_HARDWIRE=ser-go32.o ;;
2044 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
2045 *mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;;
2047 AC_SUBST(SER_HARDWIRE)
2049 # libreadline needs libuser32.a in a cygwin environment
2051 if test x$gdb_cv_os_cygwin = xyes; then
2052 WIN32LIBS="-luser32"
2054 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
2059 # The ser-tcp.c module requires sockets.
2062 AC_DEFINE(USE_WIN32API, 1,
2063 [Define if we should use the Windows API, instead of the
2064 POSIX API. On Windows, we use the Windows API when
2065 building for MinGW, but the POSIX API when building
2067 WIN32LIBS="$WIN32LIBS -lws2_32"
2072 # Add ELF support to GDB, but only if BFD includes ELF support.
2073 GDB_AC_CHECK_BFD([for ELF support in BFD], gdb_cv_var_elf,
2074 [bfd_get_elf_phdr_upper_bound (NULL)], elf-bfd.h)
2075 if test $gdb_cv_var_elf = yes; then
2076 CONFIG_OBS="$CONFIG_OBS elfread.o stap-probe.o"
2077 AC_DEFINE(HAVE_ELF, 1,
2078 [Define if ELF support should be included.])
2079 # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
2080 if test "$plugins" = "yes"; then
2081 AC_SEARCH_LIBS(dlopen, dl)
2085 # Add macho support to GDB, but only if BFD includes it.
2086 GDB_AC_CHECK_BFD([for Mach-O support in BFD], gdb_cv_var_macho,
2087 [bfd_mach_o_lookup_command (NULL, 0, NULL)], mach-o.h)
2088 if test $gdb_cv_var_macho = yes; then
2089 CONFIG_OBS="$CONFIG_OBS machoread.o"
2092 # Add SOM support to GDB, but only if BFD includes it.
2093 GDB_AC_CHECK_BFD([for SOM support in BFD], gdb_cv_var_som,
2094 [bfd_som_attach_aux_hdr (NULL, 0, NULL)], som.h)
2095 if test $gdb_cv_var_som = yes; then
2096 CONFIG_OBS="$CONFIG_OBS somread.o"
2099 # Add any host-specific objects to GDB.
2100 CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
2102 # If building on ELF, look for lzma support for embedded compressed debug info.
2103 if test $gdb_cv_var_elf = yes; then
2105 AS_HELP_STRING([--with-lzma], [support lzma compression (auto/yes/no)]),
2106 [], [with_lzma=auto])
2107 AC_MSG_CHECKING([whether to use lzma])
2108 AC_MSG_RESULT([$with_lzma])
2110 if test "${with_lzma}" != no; then
2111 AC_LIB_HAVE_LINKFLAGS([lzma], [], [#include "lzma.h"],
2112 [lzma_index_iter iter;
2113 lzma_index_iter_init (&iter, 0);
2114 lzma_mf_is_supported (LZMA_MF_HC3);])
2115 if test "$HAVE_LIBLZMA" != yes; then
2116 if test "$with_lzma" = yes; then
2117 AC_MSG_ERROR([missing liblzma for --with-lzma])
2123 LIBGUI="../libgui/src/libgui.a"
2124 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
2126 AC_SUBST(GUI_CFLAGS_X)
2130 AC_SUBST(WIN32LDAPP)
2133 *-*-cygwin* | *-*-mingw* )
2142 if test "${enable_gdbtk}" = "yes"; then
2144 # Gdbtk must have an absolute path to srcdir in order to run
2145 # properly when not installed.
2153 # If $no_tk is nonempty, then we can't do Tk, and there is no
2154 # point to doing Tcl.
2157 if test -z "${no_tcl}" -a -z "${no_tk}"; then
2160 # Check for in-tree tcl
2167 if test "${TCL_SRC_DIR}" = "${topdir}/tcl"; then
2171 # Find Tcl private headers
2172 if test x"${intree}" = xno; then
2173 CY_AC_TCL_PRIVATE_HEADERS
2174 TCL_INCLUDE="${TCL_INCLUDE_SPEC} ${TCL_PRIVATE_INCLUDE}"
2175 TCL_LIBRARY="${TCL_LIB_SPEC}"
2178 # If building tcl in the same src tree, private headers
2179 # are not needed, but we need to be sure to use the right
2181 TCL_INCLUDE="-I${TCL_SRC_DIR}/generic"
2182 TCL_LIBRARY="${TCL_BUILD_LIB_SPEC}"
2183 TCL_DEPS="../tcl/${configdir}${TCL_LIB_FILE}"
2185 AC_SUBST(TCL_INCLUDE)
2186 AC_SUBST(TCL_LIBRARY)
2191 # Check for in-tree Tk
2193 if test "${TK_SRC_DIR}" = "${topdir}/tk"; then
2197 # Find Tk private headers
2198 if test x"${intree}" = xno; then
2199 CY_AC_TK_PRIVATE_HEADERS
2200 TK_INCLUDE="${TK_INCLUDE_SPEC} ${TK_PRIVATE_INCLUDE}"
2201 TK_LIBRARY=${TK_LIB_SPEC}
2204 TK_INCLUDE="-I${TK_SRC_DIR}/generic"
2205 TK_LIBRARY="${TK_BUILD_LIB_SPEC}"
2206 TK_DEPS="../tk/${configdir}/${TK_LIB_FILE}"
2208 AC_SUBST(TK_INCLUDE)
2209 AC_SUBST(TK_LIBRARY)
2211 AC_SUBST(TK_XINCLUDES)
2213 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
2215 # Include some libraries that Tcl and Tk want.
2216 TCL_LIBS='$(LIBGUI) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
2217 # Yes, the ordering seems wrong here. But it isn't.
2218 # TK_LIBS is the list of libraries that need to be linked
2219 # after Tcl/Tk. Note that this isn't put into LIBS. If it
2220 # were in LIBS then any link tests after this point would
2221 # try to include things like `$(LIBGUI)', which wouldn't work.
2222 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
2224 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
2225 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
2226 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
2227 CONFIG_ALL="${CONFIG_ALL} all-gdbtk"
2228 CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk"
2229 CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk"
2230 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk"
2232 if test x$gdb_cv_os_cygwin = xyes; then
2233 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
2234 WIN32LDAPP="-Wl,--subsystem,console"
2235 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
2238 AC_CONFIG_SUBDIRS(gdbtk)
2246 AC_SUBST(GDBTK_CFLAGS)
2247 AC_SUBST(GDBTK_SRC_DIR)
2251 # Unlike the sim directory, whether a simulator is linked is controlled by
2252 # presence of a gdb_sim definition in the target configure.tgt entry.
2253 # This code just checks for a few cases where we'd like to ignore those
2254 # definitions, even when they're present in the '.mt' file. These cases
2255 # are when --disable-sim is specified, or if the simulator directory is
2256 # not part of the source tree.
2259 AS_HELP_STRING([--enable-sim], [link gdb with simulator]),
2260 [echo "enable_sim = $enable_sim";
2261 echo "enableval = ${enableval}";
2262 case "${enableval}" in
2263 yes) ignore_sim=false ;;
2264 no) ignore_sim=true ;;
2265 *) ignore_sim=false ;;
2269 if test ! -d "${srcdir}/../sim"; then
2275 if test "${ignore_sim}" = "false"; then
2276 if test x"${gdb_sim}" != x ; then
2278 SIM_OBS="remote-sim.o"
2279 AC_DEFINE(WITH_SIM, 1, [Define if the simulator is being linked in.])
2285 AC_SUBST(ENABLE_CFLAGS)
2286 AC_SUBST(PROFILE_CFLAGS)
2288 AC_SUBST(CONFIG_OBS)
2289 AC_SUBST(CONFIG_DEPS)
2290 AC_SUBST(CONFIG_SRCS)
2291 AC_SUBST(CONFIG_ALL)
2292 AC_SUBST(CONFIG_CLEAN)
2293 AC_SUBST(CONFIG_INSTALL)
2294 AC_SUBST(CONFIG_UNINSTALL)
2296 # List of host floatformats.
2297 AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat])
2298 AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat])
2299 AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat])
2301 # target_subdir is used by the testsuite to find the target libraries.
2303 if test "${host}" != "${target}"; then
2304 target_subdir="${target_alias}/"
2306 AC_SUBST(target_subdir)
2309 if test "${gdb_native}" = "yes"; then
2310 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
2311 if test ! -f ${host_makefile_frag}; then
2312 AC_MSG_ERROR("*** Gdb does not support native target ${host}")
2314 frags="$frags $host_makefile_frag"
2316 host_makefile_frag=/dev/null
2319 AC_SUBST_FILE(host_makefile_frag)
2323 if test "${gdb_native}" = "yes"; then
2324 # We pick this up from the host configuration file (.mh) because we
2325 # do not have a native configuration Makefile fragment.
2326 nativefile=`sed -n '
2327 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
2328 ' ${host_makefile_frag}`
2332 if test x"${gdb_osabi}" != x ; then
2333 AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
2334 [Define to the default OS ABI for this configuration.])
2337 # Enable multi-ice-gdb-server.
2338 AC_ARG_ENABLE(multi-ice,
2339 AS_HELP_STRING([--enable-multi-ice], [build the multi-ice-gdb-server]),
2343 *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;;
2345 if test "x$enable_multi_ice" = xyes; then
2346 AC_CONFIG_SUBDIRS(multi-ice)
2349 AC_ARG_ENABLE(gdbserver,
2350 AS_HELP_STRING([--enable-gdbserver],
2351 [automatically build gdbserver (yes/no/auto, default is auto)]),
2352 [case "${enableval}" in
2354 *) AC_MSG_ERROR(bad value ${enableval} for --enable-gdbserver option) ;;
2355 esac],[enable_gdbserver=auto])
2357 # We only build gdbserver automatically in a native configuration, and
2358 # only if the user did not explicitly disable its build.
2359 if test "$gdb_native" = "yes" -a "$enable_gdbserver" != "no"; then
2360 AC_MSG_CHECKING(whether gdbserver is supported on this host)
2361 if test "x$build_gdbserver" = xyes; then
2363 AC_CONFIG_SUBDIRS(gdbserver)
2364 gdbserver_build_enabled=yes
2370 # If the user explicitly request the gdbserver to be built, verify that
2371 # we were in fact able to enable it.
2372 if test "$enable_gdbserver" = "yes" -a "$gdbserver_build_enabled" != "yes"; then
2373 AC_MSG_ERROR(Automatic gdbserver build is not supported for this configuration)
2376 # Check for babeltrace and babeltrace-ctf
2377 AC_ARG_WITH(babeltrace,
2378 AC_HELP_STRING([--with-babeltrace], [include babeltrace support (auto/yes/no)]),
2379 [], [with_babeltrace=auto])
2380 AC_MSG_CHECKING([whether to use babeltrace])
2381 AC_MSG_RESULT([$with_babeltrace])
2383 if test "x$with_babeltrace" = "xno"; then
2384 AC_MSG_WARN([babletrace support disabled; GDB is unable to read CTF data.])
2386 # Append -Werror to CFLAGS so that configure can catch the warning
2387 # "assignment from incompatible pointer type", which is related to
2388 # the babeltrace change from 1.0.3 to 1.1.0. Babeltrace 1.1.0 works
2389 # in GDB, while babeltrace 1.0.3 is broken.
2390 # AC_LIB_HAVE_LINKFLAGS may modify CPPFLAGS in it, so it should be
2391 # safe to save and restore CFLAGS here.
2392 saved_CFLAGS=$CFLAGS
2393 CFLAGS="$CFLAGS -Werror"
2394 AC_LIB_HAVE_LINKFLAGS([babeltrace], [babeltrace-ctf],
2395 [#include <babeltrace/babeltrace.h>
2396 #include <babeltrace/ctf/events.h>
2397 #include <babeltrace/ctf/iterator.h>],
2398 [struct bt_iter_pos *pos = bt_iter_get_pos (bt_ctf_get_iter (NULL));
2399 struct bt_ctf_event *event = NULL;
2400 const struct bt_definition *scope;
2402 bt_iter_set_pos (bt_ctf_get_iter (NULL), pos);
2403 scope = bt_ctf_get_top_level_scope (event,
2404 BT_STREAM_EVENT_HEADER);
2405 bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id"));
2407 CFLAGS=$saved_CFLAGS
2409 if test "$HAVE_LIBBABELTRACE" != yes; then
2410 if test "$with_babeltrace" = yes; then
2411 AC_MSG_ERROR([babeltrace is missing or unusable])
2413 AC_MSG_WARN([babeltrace is missing or unusable; GDB is unable to read CTF data.])
2418 # If nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link
2419 # to an empty version.
2425 if test "${nativefile}" != ""; then
2426 case "${nativefile}" in
2427 nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;;
2428 * ) GDB_NM_FILE="${nativefile}"
2430 files="${files} ${GDB_NM_FILE}"
2431 links="${links} nm.h"
2432 AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}", [nativefile])
2434 AC_SUBST(GDB_NM_FILE)
2436 AC_LINK_FILES($files, $links)
2438 dnl Check for exe extension set on certain hosts (e.g. Win32)
2441 dnl Detect the character set used by this host.
2442 dnl At the moment, we just assume it's UTF-8.
2443 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8",
2444 [Define to be a string naming the default host character set.])
2446 # Undo the $ec_script escaping suitable for Makefile.
2447 transform=`echo "$program_transform_name" | sed -e 's/[\\$][\\$]/\\$/g'`
2448 GDB_TRANSFORM_NAME=`echo gdb | sed -e "$transform"`
2449 if test "x$GDB_TRANSFORM_NAME" = x; then
2450 GDB_TRANSFORM_NAME=gdb
2452 AC_SUBST(GDB_TRANSFORM_NAME)
2453 GCORE_TRANSFORM_NAME=`echo gcore | sed -e "$transform"`
2454 if test "x$GCORE_TRANSFORM_NAME" = x; then
2455 GCORE_TRANSFORM_NAME=gcore
2457 AC_SUBST(GCORE_TRANSFORM_NAME)
2458 AC_CONFIG_FILES([gcore], [chmod +x gcore])
2460 AC_OUTPUT(Makefile gdb-gdb.gdb doc/Makefile data-directory/Makefile,
2462 case x$CONFIG_HEADERS in
2463 xconfig.h:config.in)