1 dnl Autoconf configure script for GDB, the GNU debugger.
2 dnl Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
3 dnl 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
4 dnl Free Software Foundation, Inc.
6 dnl This file is part of GDB.
8 dnl This program is free software; you can redistribute it and/or modify
9 dnl it under the terms of the GNU General Public License as published by
10 dnl the Free Software Foundation; either version 3 of the License, or
11 dnl (at your option) any later version.
13 dnl This program is distributed in the hope that it will be useful,
14 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
15 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 dnl GNU General Public License for more details.
18 dnl You should have received a copy of the GNU General Public License
19 dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
21 dnl Process this file with autoconf to produce a configure script.
25 AC_CONFIG_HEADER(config.h:config.in)
29 AC_USE_SYSTEM_EXTENSIONS
37 # Dependency checking.
39 ZW_PROG_COMPILER_DEPENDENCIES([CC])
41 # Check for the 'make' the user wants to use.
42 AC_CHECK_PROGS(MAKE, make)
44 case "`$MAKE --version 2>&1 | sed 1q`" in
49 AM_CONDITIONAL(GMAKE, test "$MAKE_IS_GNU" = yes)
52 dnl List of object files and targets accumulated by configure.
64 dnl Set up for gettext.
65 ZW_GNU_GETTEXT_SISTER_DIR
67 localedir='${datadir}/locale'
70 if test x"$USE_NLS" = xyes; then
71 CONFIG_ALL="$CONFIG_ALL all-po"
72 CONFIG_CLEAN="$CONFIG_CLEAN clean-po"
73 CONFIG_INSTALL="$CONFIG_INSTALL install-po"
74 CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po"
79 # For Makefile dependencies.
81 if test x"$STDINT_H" != x; then
82 GNULIB_STDINT_H=gnulib/$STDINT_H
84 AC_SUBST(GNULIB_STDINT_H)
87 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ])
90 # GDB does not use automake, but gnulib does. This line lets us
91 # generate its Makefile.in.
92 AM_INIT_AUTOMAKE(gdb, UNUSED-VERSION, [no-define])
94 GDB_AC_WITH_DIR(DEBUGDIR, separate-debug-dir,
95 [look for global separate debug info in this path @<:@LIBDIR/debug@:>@],
98 # GDB's datadir relocation
100 GDB_AC_WITH_DIR(GDB_DATADIR, gdb-datadir,
101 [look for global separate data files in this path @<:@DATADIR/gdb@:>@],
104 AC_ARG_WITH(relocated-sources,
105 AS_HELP_STRING([--with-relocated-sources=PATH], [automatically relocate this path for source files]),
106 [reloc_srcdir="${withval}"
107 AC_DEFINE_DIR(RELOC_SRCDIR, reloc_srcdir,
108 [Relocated directory for source files. ])
111 AC_CONFIG_SUBDIRS(testsuite)
113 # Check whether to support alternative target configurations
114 AC_ARG_ENABLE(targets,
115 AS_HELP_STRING([--enable-targets=TARGETS], [alternative target configurations]),
116 [case "${enableval}" in
117 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
119 no) enable_targets= ;;
120 *) enable_targets=$enableval ;;
123 # Check whether to enable 64-bit support on 32-bit hosts
124 AC_ARG_ENABLE(64-bit-bfd,
125 AS_HELP_STRING([--enable-64-bit-bfd], [64-bit support (on hosts with narrower word sizes)]),
126 [case "${enableval}" in
129 *) AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;;
130 esac],[want64=false])dnl
132 # Provide defaults for some variables set by the per-host and per-target
134 gdb_host_obs=posix-hdep.o
136 if test "${target}" = "${host}"; then
142 . $srcdir/configure.host
144 # Accumulate some settings from configure.tgt over all enabled targets
149 for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
151 if test "$targ_alias" = "all"; then
154 # Canonicalize the secondary target names.
155 result=`$ac_config_sub $targ_alias 2>/dev/null`
156 if test -n "$result"; then
162 . ${srcdir}/configure.tgt
164 AS_IF([test -z "${gdb_target_obs}"],
165 [AC_MSG_ERROR([configuration ${targ} is unsupported.])])
167 # Target-specific object files
168 for i in ${gdb_target_obs}; do
169 case " $TARGET_OBS " in
172 TARGET_OBS="$TARGET_OBS ${i}"
177 # Check whether this target needs 64-bit CORE_ADDR
178 if test x${want64} = xfalse; then
179 . ${srcdir}/../bfd/config.bfd
184 if test x${all_targets} = xtrue; then
186 # We want all 64-bit targets if we either:
187 # - run on a 64-bit host or
188 # - already require 64-bit support for some other target or
189 # - the --enable-64-bit-bfd option was supplied
190 # Otherwise we only support all 32-bit targets.
192 # NOTE: This test must be in sync with the corresponding
195 if test x${want64} = xfalse; then
196 AC_CHECK_SIZEOF(long)
197 if test "x${ac_cv_sizeof_long}" = "x8"; then
201 if test x${want64} = xtrue; then
202 TARGET_OBS='$(ALL_TARGET_OBS) $(ALL_64_TARGET_OBS)'
204 TARGET_OBS='$(ALL_TARGET_OBS)'
210 # For other settings, only the main target counts.
214 targ=$target; . ${srcdir}/configure.tgt
216 # Fetch the default architecture and default target vector from BFD.
217 targ=$target; . $srcdir/../bfd/config.bfd
219 # We only want the first architecture, so strip off the others if
220 # there is more than one.
221 targ_archs=`echo $targ_archs | sed 's/ .*//'`
223 if test "x$targ_archs" != x; then
224 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs,
225 [Define to BFD's default architecture. ])
227 if test "x$targ_defvec" != x; then
228 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec,
229 [Define to BFD's default target vector. ])
232 # The CLI cannot be disabled yet, but may be in the future.
235 AC_ARG_ENABLE(gdbcli,
236 AS_HELP_STRING([--disable-gdbcli], [disable command-line interface (CLI)]),
241 AC_MSG_ERROR([the command-line interface cannot be disabled yet]) ;;
243 AC_MSG_ERROR([bad value $enableval for --enable-gdbcli]) ;;
246 if test x"$enable_gdbcli" = xyes; then
247 if test -d $srcdir/cli; then
248 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)"
249 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)"
250 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)"
251 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)"
257 AS_HELP_STRING([--disable-gdbmi], [disable machine-interface (MI)]),
262 AC_MSG_ERROR([bad value $enableval for --enable-gdbmi]) ;;
265 if test x"$enable_gdbmi" = xyes; then
266 if test -d $srcdir/mi; then
267 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)"
268 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)"
269 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)"
270 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)"
276 AS_HELP_STRING([--enable-tui], [enable full-screen terminal user interface (TUI)]),
281 AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
282 esac],enable_tui=auto)
286 AS_HELP_STRING([--enable-gdbtk], [enable gdbtk graphical user interface (GUI)]),
291 AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;;
293 [if test -d $srcdir/gdbtk; then
298 # We unconditionally disable gdbtk tests on selected platforms.
301 AC_MSG_WARN([gdbtk isn't supported on $host; disabling])
306 AC_ARG_WITH(libunwind,
307 AS_HELP_STRING([--with-libunwind], [use libunwind frame unwinding support]),
308 [case "${withval}" in
309 yes) enable_libunwind=yes ;;
310 no) enable_libunwind=no ;;
311 *) AC_MSG_ERROR(bad value ${withval} for GDB with-libunwind option) ;;
313 AC_CHECK_HEADERS(libunwind.h libunwind-ia64.h)
314 if test x"$ac_cv_header_libunwind_h" = xyes -a x"$ac_cv_header_libunwind_ia64_h" = xyes; then
315 enable_libunwind=yes;
319 if test x"$enable_libunwind" = xyes; then
320 AC_CHECK_HEADERS(libunwind.h libunwind-ia64.h)
321 AC_DEFINE(HAVE_LIBUNWIND, 1, [Define if libunwind library is being used.])
322 CONFIG_OBS="$CONFIG_OBS libunwind-frame.o"
323 CONFIG_DEPS="$CONFIG_DEPS libunwind-frame.o"
324 CONFIG_SRCS="$CONFIG_SRCS libunwind-frame.c"
328 AC_ARG_WITH(curses, AS_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
331 if test "$opt_curses" = "yes"; then
336 AC_ARG_ENABLE(profiling,
337 AS_HELP_STRING([--enable-profiling], [enable profiling of GDB]),
342 AC_MSG_ERROR([bad value $enableval for --enable-profile]) ;;
344 [enable_profiling=no])
346 AC_CHECK_FUNCS(monstartup _mcleanup)
347 AC_CACHE_CHECK([for _etext], ac_cv_var__etext,
352 [free (&_etext);], ac_cv_var__etext=yes, ac_cv_var__etext=no)])
353 if test $ac_cv_var__etext = yes; then
354 AC_DEFINE(HAVE__ETEXT, 1,
355 [Define to 1 if your system has the _etext variable. ])
357 AC_CACHE_CHECK([for etext], ac_cv_var_etext,
362 [free (&etext);], ac_cv_var_etext=yes, ac_cv_var_etext=no)])
363 if test $ac_cv_var_etext = yes; then
364 AC_DEFINE(HAVE_ETEXT, 1,
365 [Define to 1 if your system has the etext variable. ])
367 if test "$enable_profiling" = yes ; then
368 if test $ac_cv_func_monstartup = no || test $ac_cv_func__mcleanup = no; then
369 AC_MSG_ERROR(--enable-profiling requires monstartup and _mcleanup)
373 CFLAGS="$CFLAGS $PROFILE_CFLAGS"
375 AC_CACHE_CHECK([whether $CC supports -pg], ac_cv_cc_supports_pg,
376 [AC_TRY_COMPILE([], [int x;], ac_cv_cc_supports_pg=yes,
377 ac_cv_cc_supports_pg=no)])
379 if test $ac_cv_cc_supports_pg = no; then
380 AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg)
386 ACX_PKGVERSION([GDB])
387 ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/])
388 AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description])
389 AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address])
391 # --------------------- #
392 # Checks for programs. #
393 # --------------------- #
401 AC_CHECK_TOOL(AR, ar)
402 AC_CHECK_TOOL(DLLTOOL, dlltool)
403 AC_CHECK_TOOL(WINDRES, windres)
405 # Needed for GNU/Hurd.
406 AC_CHECK_TOOL(MIG, mig)
408 # ---------------------- #
409 # Checks for libraries. #
410 # ---------------------- #
412 # We might need to link with -lm; most simulators need it.
413 AC_CHECK_LIB(m, main)
415 # We need to link with -lw to get `wctype' on Solaris before Solaris
416 # 2.6. Solaris 2.6 and beyond have this function in libc, and have a
417 # libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1
418 # is known to have this problem). Therefore we avoid libw if we can.
419 AC_CHECK_FUNC(wctype, [],
420 [AC_CHECK_LIB(w, wctype)])
422 # Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
423 AC_SEARCH_LIBS(gethostbyname, nsl)
425 # Some systems (e.g. Solaris) have `socketpair' in libsocket.
426 AC_SEARCH_LIBS(socketpair, socket)
428 # Link in zlib if we can. This allows us to read compressed debug sections.
431 # On HP/UX we may need libxpdl for dlgetmodinfo (used by solib-pa64.c).
432 AC_SEARCH_LIBS(dlgetmodinfo, [dl xpdl])
436 # GDB may fork/exec the iconv program to get the list of supported character
437 # sets. Allow the user to specify where to find it.
438 # There are several factors affecting the choice of option name:
439 # - There is already --with-libiconv-prefix but we can't use it, it specifies
440 # the build-time location of libiconv files.
441 # - The program we need to find is iconv, which comes with glibc. The user
442 # doesn't necessarily have libiconv installed. Therefore naming this
443 # --with-libiconv-foo feels wrong.
444 # - We want the path to be relocatable, but GDB_AC_DEFINE_RELOCATABLE is
445 # defined to work on directories not files (though it really doesn't know
447 # - Calling this --with-iconv-prefix is perceived to cause too much confusion
448 # with --with-libiconv-prefix.
449 # Putting these together is why the option name is --with-iconv-bin.
451 AC_ARG_WITH(iconv-bin,
452 AS_HELP_STRING([--with-iconv-bin=PATH], [specify where to find the iconv program]),
453 [iconv_bin="${withval}"
454 AC_DEFINE_UNQUOTED([ICONV_BIN], ["${iconv_bin}"],
455 [Path of directory of iconv program.])
456 GDB_AC_DEFINE_RELOCATABLE(ICONV_BIN, iconv, ${iconv_bin})
459 # On alpha-osf, it appears that libtermcap and libcurses are not compatible.
460 # There is a very specific comment in /usr/include/curses.h explaining that
461 # termcap routines built into libcurses must not be used.
463 # The symptoms we observed so far is GDB unexpectedly changing
464 # the terminal settings when tgetent is called - this is particularly
465 # visible as the output is missing carriage returns, and so rapidly
466 # becomes very hard to read.
468 # The readline configure script has already decided that libtermcap
469 # was enough for its purposes, and so decided to build readline using
470 # libtermcap. Since the TUI mode requires curses, building GDB with
471 # TUI enabled results in both libraries to be used at the same time,
472 # which is not allowed. This basically means that GDB with TUI is
473 # broken on alpha-osf.
477 if test x"$enable_tui" = xyes; then
478 AC_MSG_ERROR([Building GDB with TUI mode is not supported on this host])
480 if test x"$enable_tui" = xauto; then
486 # For the TUI, we need enhanced curses functionality.
487 if test x"$enable_tui" != xno; then
492 if test x"$prefer_curses" = xyes; then
493 # FIXME: kettenis/20040905: We prefer ncurses over the vendor-supplied
494 # curses library because the latter might not provide all the
495 # functionality we need. However, this leads to problems on systems
496 # where the linker searches /usr/local/lib, but the compiler doesn't
497 # search /usr/local/include, if ncurses is installed in /usr/local. A
498 # default installation of ncurses on alpha*-dec-osf* will lead to such
500 AC_SEARCH_LIBS(waddstr, [ncurses cursesX curses])
502 if test "$ac_cv_search_waddstr" != no; then
507 # Check whether we should enable the TUI, but only do so if we really
509 if test x"$enable_tui" != xno; then
510 if test -d $srcdir/tui; then
511 if test "$curses_found" != no; then
512 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
513 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
514 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
515 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
516 CONFIG_ALL="${CONFIG_ALL} all-tui"
517 CONFIG_CLEAN="${CONFIG_CLEAN} clean-tui"
518 CONFIG_INSTALL="${CONFIG_INSTALL} install-tui"
519 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-tui"
521 if test x"$enable_tui" = xyes; then
522 AC_MSG_ERROR([no enhanced curses library found; disable TUI])
524 AC_MSG_WARN([no enhanced curses library found; disabling TUI])
530 # Since GDB uses Readline, we need termcap functionality. In many
531 # cases this will be provided by the curses library, but some systems
532 # have a seperate termcap library, or no curses library at all.
536 if test -d $srcdir/libtermcap; then
537 LIBS="../libtermcap/libtermcap.a $LIBS"
538 ac_cv_search_tgetent="../libtermcap/libtermcap.a"
541 ac_cv_search_tgetent="none required"
544 ac_cv_search_tgetent="none required"
545 CONFIG_OBS="$CONFIG_OBS windows-termcap.o"
549 # These are the libraries checked by Readline.
550 AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses])
552 if test "$ac_cv_search_tgetent" = no; then
553 AC_MSG_ERROR([no termcap library found])
556 AC_ARG_WITH([system-readline],
557 [AS_HELP_STRING([--with-system-readline],
558 [use installed readline library])])
560 if test "$with_system_readline" = yes; then
564 READLINE_TEXI_INCFLAG=
566 # readline-6.0 started to use the name `_rl_echoing_p'.
567 # `$(READLINE_DIR)/' of bundled readline would not resolve in configure.
569 AC_MSG_CHECKING([for readline_echoing_p])
571 LIBS="$LIBS $READLINE"
572 AC_LINK_IFELSE(AC_LANG_PROGRAM(,[[extern int readline_echoing_p;
573 return readline_echoing_p;]]),
574 [READLINE_ECHOING_P=yes],
575 [READLINE_ECHOING_P=no
576 AC_DEFINE([readline_echoing_p], [_rl_echoing_p],
577 [readline-6.0 started to use different name.])])
579 AC_MSG_RESULT([$READLINE_ECHOING_P])
581 READLINE='$(READLINE_DIR)/libreadline.a'
582 READLINE_DEPS='$(READLINE)'
583 READLINE_CFLAGS='-I$(READLINE_SRC)/..'
584 READLINE_TEXI_INCFLAG='-I $(READLINE_DIR)'
587 AC_SUBST(READLINE_DEPS)
588 AC_SUBST(READLINE_CFLAGS)
589 AC_SUBST(READLINE_TEXI_INCFLAG)
592 AS_HELP_STRING([--with-expat], [include expat support (auto/yes/no)]),
593 [], [with_expat=auto])
594 AC_MSG_CHECKING([whether to use expat])
595 AC_MSG_RESULT([$with_expat])
597 if test "${with_expat}" = no; then
598 AC_MSG_WARN([expat support disabled; some features may be unavailable.])
601 AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"],
602 [XML_Parser p = XML_ParserCreate (0);])
603 if test "$HAVE_LIBEXPAT" != yes; then
604 if test "$with_expat" = yes; then
605 AC_MSG_ERROR([expat is missing or unusable])
607 AC_MSG_WARN([expat is missing or unusable; some features may be unavailable.])
611 LIBS="$LIBS $LIBEXPAT"
612 AC_CHECK_FUNCS(XML_StopParser)
617 dnl Utility to simplify finding libpython.
619 dnl $2 = the shell variable to assign the result to
620 dnl If libpython is found we store $version here.
621 dnl $3 = additional flags to add to CPPFLAGS
622 dnl $4 = additional flags to add to LIBS
624 AC_DEFUN([AC_TRY_LIBPYTHON],
627 define([have_libpython_var],$2)
630 AC_MSG_CHECKING([for ${version}])
631 save_CPPFLAGS=$CPPFLAGS
633 CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
634 LIBS="$LIBS $new_LIBS"
635 found_usable_python=no
636 AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "Python.h"]],
637 [[Py_Initialize ();]]),
638 [have_libpython_var=${version}
639 found_usable_python=yes
640 PYTHON_CPPFLAGS=$new_CPPFLAGS
641 PYTHON_LIBS=$new_LIBS])
642 CPPFLAGS=$save_CPPFLAGS
644 AC_MSG_RESULT([${found_usable_python}])
647 dnl There are several different values for --with-python:
649 dnl no - Don't include python support.
650 dnl yes - Include python support, error if it's missing.
651 dnl If we find python in $PATH, use it to fetch configure options,
652 dnl otherwise assume the compiler can find it with no help from us.
653 dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn.
654 dnl auto - Same as "yes", but if python is missing from the system,
655 dnl fall back to "no".
656 dnl /path/to/python/exec-prefix -
657 dnl Use the python located in this directory.
658 dnl If /path/to/python/exec-prefix/bin/python exists, use it to find
659 dnl the compilation parameters. Otherwise use
660 dnl -I/path/to/python/exec-prefix/include,
661 dnl -L/path/to/python/exec-prefix/lib.
662 dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn.
663 dnl NOTE: This case is historical. It is what was done for 7.0/7.1
664 dnl but is deprecated.
665 dnl /path/to/python/executable -
666 dnl Run python-config.py with this version of python to fetch the
667 dnl compilation parameters.
668 dnl NOTE: This needn't be the real python executable.
669 dnl In a cross-compilation scenario (build != host), this could be
670 dnl a shell script that provides what python-config.py provides for
671 dnl --ldflags, --includes, --exec-prefix.
672 dnl python-executable -
673 dnl Find python-executable in $PATH, and then handle the same as
674 dnl /path/to/python/executable.
676 dnl If a python program is specified, it is used to run python-config.py and
677 dnl is passed --ldflags, --includes, --exec-prefix.
680 AS_HELP_STRING([--with-python@<:@=PYTHON@:>@], [include python support (auto/yes/no/<python-program>)]),
681 [], [with_python=auto])
682 AC_MSG_CHECKING([whether to use python])
683 AC_MSG_RESULT([$with_python])
685 if test "${with_python}" = no; then
686 AC_MSG_WARN([python support disabled; some features may be unavailable.])
689 case "${with_python}" in
691 if test -d ${with_python}; then
692 # Assume the python binary is ${with_python}/bin/python.
693 python_prog="${with_python}/bin/python"
695 # If python does not exit ${with_python}/bin, then try in
696 # ${with_python}. On Windows/MinGW, this is where the Python
698 if test ! -x "${python_prog}"; then
699 python_prog="${with_python}/python"
702 if test ! -x "${python_prog}"; then
703 # Fall back to gdb 7.0/7.1 behaviour.
705 python_prefix=${with_python}
707 elif test -x "${with_python}"; then
708 # While we can't run python compiled for $host (unless host == build),
709 # the user could write a script that provides the needed information,
710 # so we support that.
711 python_prog=${with_python}
714 AC_ERROR(invalid value for --with-python)
718 # Disallow --with-python=foo/bar.
719 AC_ERROR(invalid value for --with-python)
722 # The user has either specified auto, yes, or the name of the python
723 # program assumed to be in $PATH.
725 case "${with_python}" in
727 if test ${build} = ${host}; then
728 AC_PATH_PROG(python_prog_path, python, missing)
729 if test "${python_prog_path}" = missing; then
732 python_prog=${python_prog_path}
735 # Not much we can do except assume the cross-compiler will find the
741 # While we can't run python compiled for $host (unless host == build),
742 # the user could write a script that provides the needed information,
743 # so we support that.
744 python_prog="${with_python}"
745 AC_PATH_PROG(python_prog_path, ${python_prog}, missing)
746 if test "${python_prog_path}" = missing; then
747 AC_ERROR(unable to find python program ${python_prog})
753 if test "${python_prog}" != missing; then
754 # We have a python program to use, but it may be too old.
755 # Don't flag an error for --with-python=auto (the default).
756 have_python_config=yes
757 python_includes=`${python_prog} ${srcdir}/python/python-config.py --includes`
758 if test $? != 0; then
759 have_python_config=failed
760 if test "${with_python}" != auto; then
761 AC_ERROR(failure running python-config --includes)
764 python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags`
765 if test $? != 0; then
766 have_python_config=failed
767 if test "${with_python}" != auto; then
768 AC_ERROR(failure running python-config --ldflags)
771 python_prefix=`${python_prog} ${srcdir}/python/python-config.py --exec-prefix`
772 if test $? != 0; then
773 have_python_config=failed
774 if test "${with_python}" != auto; then
775 AC_ERROR(failure running python-config --exec-prefix)
779 # We do not have a python executable we can use to determine where
780 # to find the Python headers and libs. We cannot guess the include
781 # path from the python_prefix either, because that include path
782 # depends on the Python version. So, there is nothing much we can
783 # do except assume that the compiler will be able to find those files.
786 have_python_config=no
789 # If we have python-config, only try the configuration it provides.
790 # Otherwise fallback on the old way of trying different versions of
794 if test "${have_python_config}" = yes; then
795 # Determine the Python version by extracting "-lpython<version>"
796 # part of the python_libs. <version> is usually X.Y with X and Y
797 # being decimal numbers, but can also be XY (seen on Windows).
799 # The extraction is performed using sed with a regular expression.
800 # Initially, the regexp used was using the '?' quantifier to make
801 # the dot in the version number optional. Unfortunately, this
802 # does not work with non-GNU versions of sed because, because of
803 # what looks like a limitation (the '?' quantifier does not work
804 # with back-references). We work around this limitation by using
805 # the '*' quantifier instead. It means that, in theory, we might
806 # match unexpected version strings such as "-lpython2..7", but
807 # this seems unlikely in practice. And even if that happens,
808 # an error will be triggered later on, when checking that version
810 python_version=`echo " ${python_libs} " \
811 | sed -e 's,^.* -l\(python[[0-9]]*[[.]]*[[0-9]]*\).*$,\1,'`
812 case "${python_version}" in
814 AC_TRY_LIBPYTHON(${python_version}, have_libpython,
815 ${python_includes}, ${python_libs})
818 AC_MSG_ERROR([unable to determine python version from ${python_libs}])
821 elif test "${have_python_config}" != failed; then
822 if test "${have_libpython}" = no; then
823 AC_TRY_LIBPYTHON(python2.7, have_libpython,
824 ${python_includes}, "${python_libs} -lpython2.7")
826 if test "${have_libpython}" = no; then
827 AC_TRY_LIBPYTHON(python2.6, have_libpython,
828 ${python_includes}, "${python_libs} -lpython2.6")
830 if test ${have_libpython} = no; then
831 AC_TRY_LIBPYTHON(python2.5, have_libpython,
832 ${python_includes}, "${python_libs} -lpython2.5")
834 if test ${have_libpython} = no; then
835 AC_TRY_LIBPYTHON(python2.4, have_libpython,
836 ${python_includes}, "${python_libs} -lpython2.4")
839 if test "${have_libpython}" = python2.7 -o "${have_libpython}" = python27; then
840 AC_DEFINE(HAVE_LIBPYTHON2_7, 1, [Define if Python 2.7 is being used.])
841 elif test "${have_libpython}" = python2.6 -o "${have_libpython}" = python26; then
842 AC_DEFINE(HAVE_LIBPYTHON2_6, 1, [Define if Python 2.6 is being used.])
843 elif test "${have_libpython}" = python2.5 -o "${have_libpython}" = python25; then
844 AC_DEFINE(HAVE_LIBPYTHON2_5, 1, [Define if Python 2.5 is being used.])
845 elif test "${have_libpython}" = python2.4 -o "${have_libpython}" = python24; then
846 AC_DEFINE(HAVE_LIBPYTHON2_4, 1, [Define if Python 2.4 is being used.])
849 if test "${have_libpython}" = no; then
850 case "${with_python}" in
852 AC_MSG_ERROR([python is missing or unusable])
855 AC_MSG_WARN([python is missing or unusable; some features may be unavailable.])
858 AC_MSG_ERROR([no usable python found at ${with_python}])
862 if test -n "${python_prefix}"; then
863 AC_DEFINE_UNQUOTED(WITH_PYTHON_PATH, "${python_prefix}",
864 [Define if --with-python provides a path, either directly or via python-config.py --exec-prefix.])
865 GDB_AC_DEFINE_RELOCATABLE(PYTHON_PATH, python, ${python_prefix})
870 if test "${have_libpython}" != no; then
871 AC_DEFINE(HAVE_PYTHON, 1, [Define if Python interpreter is being linked in.])
872 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_PYTHON_OBS)"
873 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)"
874 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_PYTHON_SRCS)"
875 CONFIG_INSTALL="$CONFIG_INSTALL install-python"
876 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)"
878 # Flags needed to compile Python code (taken from python-config --cflags).
879 # We cannot call python-config directly because it will output whatever was
880 # used when compiling the Python interpreter itself, including flags which
881 # would make the python-related objects be compiled differently from the
882 # rest of GDB (e.g., -O2 and -fPIC).
883 if test "${GCC}" = yes; then
884 tentative_python_cflags="-fno-strict-aliasing -DNDEBUG -fwrapv"
887 if test "x${tentative_python_cflags}" != x; then
888 AC_MSG_CHECKING(compiler flags for python code)
889 for flag in ${tentative_python_cflags}; do
890 # Check that the compiler accepts it
891 saved_CFLAGS="$CFLAGS"
892 CFLAGS="$CFLAGS $flag"
893 AC_TRY_COMPILE([],[],PYTHON_CFLAGS="${PYTHON_CFLAGS} $flag",)
894 CFLAGS="$saved_CFLAGS"
896 AC_MSG_RESULT(${PYTHON_CFLAGS})
899 # On IRIX, type siginfo is not defined. Instead, sys/siginfo.h provides:
901 # #define siginfo __siginfo
903 # The problem is that including Python causes some XOPEN macros to be
904 # unilaterally defined, and that in turn causes _SGIAPI to evaluate
905 # to false. So, we work around this issue by defining siginfo ourself
906 # though the command-line.
908 irix*) if test "${GCC}" = yes; then
909 CPPFLAGS="$CPPFLAGS -Dsiginfo=__siginfo"
914 # Even if Python support is not compiled in, we need to have these files
916 CONFIG_OBS="$CONFIG_OBS python.o py-value.o py-prettyprint.o py-auto-load.o"
917 CONFIG_SRCS="$CONFIG_SRCS python/python.c python/py-value.c \
918 python/py-prettyprint.c python/py-auto-load.c"
920 AC_SUBST(PYTHON_CFLAGS)
921 AC_SUBST(PYTHON_CPPFLAGS)
922 AC_SUBST(PYTHON_LIBS)
924 # ------------------------- #
925 # Checks for header files. #
926 # ------------------------- #
931 # elf_hp.h is for HP/UX 64-bit shared library support.
932 # FIXME: kettenis/20030102: In most cases we include these (ctype.h, time.h)
933 # unconditionally, so what's the point in checking these?
934 AC_CHECK_HEADERS([nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \
935 thread_db.h gnu/libc-version.h signal.h stddef.h \
936 stdlib.h string.h memory.h strings.h sys/fault.h \
937 sys/file.h sys/filio.h sys/ioctl.h sys/param.h \
938 sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \
939 sys/reg.h sys/debugreg.h sys/select.h sys/syscall.h \
940 sys/types.h sys/wait.h wait.h termios.h termio.h \
941 sgtty.h unistd.h elf_hp.h ctype.h time.h locale.h])
942 AC_CHECK_HEADERS(link.h, [], [],
943 [#if HAVE_SYS_TYPES_H
944 # include <sys/types.h>
950 AC_CHECK_HEADERS(sys/proc.h, [], [],
951 [#if HAVE_SYS_PARAM_H
952 # include <sys/param.h>
955 AC_CHECK_HEADERS(sys/user.h, [], [],
956 [#if HAVE_SYS_PARAM_H
957 # include <sys/param.h>
961 # On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash
962 # between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
963 # think that we don't have <curses.h> if we're using GCC.
966 if test "$GCC" = yes; then
967 AC_DEFINE(_MSE_INT_H, 1,
968 [Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
969 Solaris 2.[789] when using GCC. ])
972 AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h ncurses/term.h)
973 AC_CHECK_HEADERS(term.h, [], [],
979 # ------------------------- #
980 # Checks for declarations. #
981 # ------------------------- #
983 AC_CHECK_DECLS([free, malloc, realloc, strerror, strstr, getopt,
984 snprintf, vsnprintf])
987 # ----------------------- #
988 # Checks for structures. #
989 # ----------------------- #
991 AC_CHECK_MEMBERS([struct stat.st_blocks, struct stat.st_blksize])
993 # ------------------ #
994 # Checks for types. #
995 # ------------------ #
998 AC_CHECK_TYPES(socklen_t, [], [],
999 [#include <sys/types.h>
1000 #include <sys/socket.h>
1003 # ------------------------------------- #
1004 # Checks for compiler characteristics. #
1005 # ------------------------------------- #
1011 # ------------------------------ #
1012 # Checks for library functions. #
1013 # ------------------------------ #
1018 AC_CHECK_FUNCS([canonicalize_file_name realpath getrusage getuid \
1019 getgid pipe poll pread64 resize_term sbrk setpgid setpgrp setsid \
1020 sigaction sigprocmask sigsetmask socketpair syscall \
1021 ttrace wborder wresize setlocale iconvlist libiconvlist btowc \
1022 setrlimit getrlimit posix_madvise waitpid])
1025 # Check the return and argument types of ptrace. No canned test for
1026 # this, so roll our own.
1027 gdb_ptrace_headers='
1028 #if HAVE_SYS_TYPES_H
1029 # include <sys/types.h>
1031 #if HAVE_SYS_PTRACE_H
1032 # include <sys/ptrace.h>
1035 # include <unistd.h>
1038 # There is no point in checking if we don't have a prototype.
1039 AC_CHECK_DECLS(ptrace, [], [
1040 : ${gdb_cv_func_ptrace_ret='int'}
1041 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
1042 ], $gdb_ptrace_headers)
1043 # Check return type. Varargs (used on GNU/Linux) conflict with the
1044 # empty argument list, so check for that explicitly.
1045 AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret,
1046 AC_TRY_COMPILE($gdb_ptrace_headers,
1047 [extern long ptrace (enum __ptrace_request, ...);],
1048 gdb_cv_func_ptrace_ret='long',
1049 AC_TRY_COMPILE($gdb_ptrace_headers,
1050 [extern int ptrace ();],
1051 gdb_cv_func_ptrace_ret='int',
1052 gdb_cv_func_ptrace_ret='long')))
1053 AC_DEFINE_UNQUOTED(PTRACE_TYPE_RET, $gdb_cv_func_ptrace_ret,
1054 [Define as the return type of ptrace.])
1055 # Check argument types.
1056 AC_CACHE_CHECK([types of arguments for ptrace], gdb_cv_func_ptrace_args, [
1057 AC_TRY_COMPILE($gdb_ptrace_headers,
1058 [extern long ptrace (enum __ptrace_request, ...);],
1059 [gdb_cv_func_ptrace_args='int,int,long,long'],[
1060 for gdb_arg1 in 'int' 'long'; do
1061 for gdb_arg2 in 'pid_t' 'int' 'long'; do
1062 for gdb_arg3 in 'int *' 'caddr_t' 'int' 'long' 'void *'; do
1063 for gdb_arg4 in 'int' 'long'; do
1064 AC_TRY_COMPILE($gdb_ptrace_headers, [
1065 extern $gdb_cv_func_ptrace_ret
1066 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4);
1067 ], [gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4";
1069 for gdb_arg5 in 'int *' 'int' 'long'; do
1070 AC_TRY_COMPILE($gdb_ptrace_headers, [
1071 extern $gdb_cv_func_ptrace_ret
1072 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4, $gdb_arg5);
1074 gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4,$gdb_arg5";
1081 # Provide a safe default value.
1082 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
1084 ac_save_IFS=$IFS; IFS=','
1085 set dummy `echo "$gdb_cv_func_ptrace_args" | sed 's/\*/\*/g'`
1088 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG3, $[3],
1089 [Define to the type of arg 3 for ptrace.])
1090 if test -n "$[5]"; then
1091 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG5, $[5],
1092 [Define to the type of arg 5 for ptrace.])
1095 dnl AC_FUNC_SETPGRP does not work when cross compiling
1096 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
1097 if test "$cross_compiling" = no; then
1100 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
1104 if (setpgrp(1,1) == -1)
1108 ], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
1109 if test $ac_cv_func_setpgrp_void = yes; then
1110 AC_DEFINE(SETPGRP_VOID, 1)
1114 # Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't do
1115 # since sigsetjmp might only be defined as a macro.
1116 AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp,
1119 ], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);],
1120 gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)])
1121 if test $gdb_cv_func_sigsetjmp = yes; then
1122 AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ])
1125 # Assume we'll default to using the included libiberty regex.
1126 gdb_use_included_regex=yes
1128 # However, if the system regex is GNU regex, then default to *not*
1129 # using the included regex.
1132 [gdb_cv_have_gnu_regex],
1134 [#include <gnu-versions.h>],
1135 [#define REGEX_INTERFACE_VERSION 1
1136 #if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION
1137 # error "Version mismatch"
1139 gdb_cv_have_gnu_regex=yes,
1140 gdb_cv_have_gnu_regex=no)])
1141 if test $gdb_cv_have_gnu_regex = yes; then
1142 gdb_use_included_regex=no
1145 AC_ARG_WITH(included-regex,
1146 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)]),
1147 gdb_with_regex=$withval,
1148 gdb_with_regex=$gdb_use_included_regex)
1149 if test "$gdb_with_regex" = yes; then
1150 AC_DEFINE(USE_INCLUDED_REGEX, 1,
1151 [Define to 1 if the regex included in libiberty should be used.])
1154 # Check if <sys/proc.h> defines `struct thread' with a td_pcb member.
1155 AC_CHECK_MEMBERS([struct thread.td_pcb], [], [],
1156 [#include <sys/param.h>
1157 #include <sys/proc.h>
1160 # See if <sys/lwp.h> defines `struct lwp`.
1161 AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp,
1162 [AC_TRY_COMPILE([#include <sys/param.h>
1163 #include <sys/lwp.h>], [struct lwp l;],
1164 gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)])
1165 if test $gdb_cv_struct_lwp = yes; then
1166 AC_DEFINE(HAVE_STRUCT_LWP, 1,
1167 [Define to 1 if your system has struct lwp.])
1170 # See if <machine/reg.h> degines `struct reg'.
1171 AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg,
1172 [AC_TRY_COMPILE([#include <sys/types.h>
1173 #include <machine/reg.h>], [struct reg r;],
1174 gdb_cv_struct_reg=yes, gdb_cv_struct_reg=no)])
1175 if test $gdb_cv_struct_reg = yes; then
1176 AC_DEFINE(HAVE_STRUCT_REG, 1,
1177 [Define to 1 if your system has struct reg in <machine/reg.h>.])
1180 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
1181 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
1182 AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [],
1183 [#include <machine/reg.h>])
1185 # See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
1186 AC_MSG_CHECKING(for PTRACE_GETREGS)
1187 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
1188 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
1190 [gdb_cv_have_ptrace_getregs=yes],
1191 [gdb_cv_have_ptrace_getregs=no])])
1192 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
1193 if test $gdb_cv_have_ptrace_getregs = yes; then
1194 AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
1195 [Define if sys/ptrace.h defines the PTRACE_GETREGS request.])
1198 # See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
1199 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
1200 AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
1201 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
1202 [PTRACE_GETFPXREGS;],
1203 [gdb_cv_have_ptrace_getfpxregs=yes],
1204 [gdb_cv_have_ptrace_getfpxregs=no])])
1205 AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
1206 if test $gdb_cv_have_ptrace_getfpxregs = yes; then
1207 AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
1208 [Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.])
1211 # See if <sys/ptrace.h> provides the PT_GETDBREGS request.
1212 AC_MSG_CHECKING(for PT_GETDBREGS)
1213 AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
1214 [AC_TRY_COMPILE([#include <sys/types.h>
1215 #include <sys/ptrace.h>],
1217 [gdb_cv_have_pt_getdbregs=yes],
1218 [gdb_cv_have_pt_getdbregs=no])])
1219 AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
1220 if test $gdb_cv_have_pt_getdbregs = yes; then
1221 AC_DEFINE(HAVE_PT_GETDBREGS, 1,
1222 [Define if sys/ptrace.h defines the PT_GETDBREGS request.])
1225 # See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
1226 AC_MSG_CHECKING(for PT_GETXMMREGS)
1227 AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
1228 [AC_TRY_COMPILE([#include <sys/types.h>
1229 #include <sys/ptrace.h>],
1231 [gdb_cv_have_pt_getxmmregs=yes],
1232 [gdb_cv_have_pt_getxmmregs=no])])
1233 AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
1234 if test $gdb_cv_have_pt_getxmmregs = yes; then
1235 AC_DEFINE(HAVE_PT_GETXMMREGS, 1,
1236 [Define if sys/ptrace.h defines the PT_GETXMMREGS request.])
1239 # Detect which type of /proc is in use, such as for Unixware or Solaris.
1241 if test "${target}" = "${host}"; then
1243 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
1244 AC_DEFINE(NEW_PROC_API, 1,
1245 [Define if you want to use new multi-fd /proc interface
1246 (replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
1248 *-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]]*)
1249 AC_DEFINE(NEW_PROC_API, 1,
1250 [Define if you want to use new multi-fd /proc interface
1251 (replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
1254 # Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5.
1255 AC_DEFINE([_KMEMUSER], 1,
1256 [Define to 1 so <sys/proc.h> gets a definition of anon_hdl. Works
1257 around a <sys/proc.h> problem on IRIX 5.])
1262 if test "$ac_cv_header_sys_procfs_h" = yes; then
1263 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
1264 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
1265 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
1266 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
1267 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
1268 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
1269 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
1270 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
1271 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
1272 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
1273 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
1274 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
1275 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
1276 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
1279 dnl Check for broken prfpregset_t type
1281 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
1282 dnl prfpregset_t type (it's a typedef for the pointer to a struct
1283 dnl instead of the struct itself). We detect this here, and work
1284 dnl around it in gdb_proc_service.h.
1286 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
1287 AC_MSG_CHECKING(whether prfpregset_t type is broken)
1288 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
1289 [AC_TRY_RUN([#include <sys/procfs.h>
1292 if (sizeof (prfpregset_t) == sizeof (void *))
1296 gdb_cv_prfpregset_t_broken=no,
1297 gdb_cv_prfpregset_t_broken=yes,
1298 gdb_cv_prfpregset_t_broken=yes)])
1299 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
1300 if test $gdb_cv_prfpregset_t_broken = yes; then
1301 AC_DEFINE(PRFPREGSET_T_BROKEN, 1,
1302 [Define if the prfpregset_t type is broken.])
1306 dnl Check for PIOCSET ioctl entry
1308 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
1309 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
1310 [AC_TRY_COMPILE([#include <unistd.h>
1311 #include <sys/types.h>
1312 #include <sys/procfs.h>
1315 dummy = ioctl(0, PIOCSET, &dummy);
1317 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
1318 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
1319 if test $gdb_cv_have_procfs_piocset = yes; then
1320 AC_DEFINE(HAVE_PROCFS_PIOCSET, 1,
1321 [Define if ioctl argument PIOCSET is available.])
1325 dnl For native ports (host == target), check to see what kind of
1326 dnl legacy link.h support is needed. (See solib-legacy.c.)
1327 if test ${host} = ${target} ; then
1328 dnl Check for struct link_map with l_ members which are indicative
1329 dnl of SVR4-like shared libraries
1331 AC_MSG_CHECKING(for member l_addr in struct link_map)
1332 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members,
1333 [AC_TRY_COMPILE([#include <link.h>],
1334 [struct link_map lm; (void) lm.l_addr;],
1335 gdb_cv_have_struct_link_map_with_l_members=yes,
1336 gdb_cv_have_struct_link_map_with_l_members=no)])
1337 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members)
1338 if test $gdb_cv_have_struct_link_map_with_l_members = yes; then
1339 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS,1,
1340 [Define if <link.h> exists and defines struct link_map which has
1341 members with an ``l_'' prefix. (For Solaris, SVR4, and
1342 SVR4-like systems.)])
1345 dnl Check for struct link_map with lm_ members which are indicative
1346 dnl of SunOS-like shared libraries
1348 AC_MSG_CHECKING(for member lm_addr in struct link_map)
1349 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members,
1350 [AC_TRY_COMPILE([#include <sys/types.h>
1352 [struct link_map lm; (void) lm.lm_addr;],
1353 gdb_cv_have_struct_link_map_with_lm_members=yes,
1354 gdb_cv_have_struct_link_map_with_lm_members=no)])
1355 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members)
1356 if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then
1357 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS, 1,
1358 [Define if <link.h> exists and defines struct link_map which has
1359 members with an ``lm_'' prefix. (For SunOS.)])
1362 dnl Check for struct so_map with som_ members which are found on
1363 dnl some *BSD systems.
1365 AC_MSG_CHECKING(for member som_addr in struct so_map)
1366 AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members,
1367 [AC_TRY_COMPILE([#include <sys/types.h>
1372 [struct so_map lm; (void) lm.som_addr;],
1373 gdb_cv_have_struct_so_map_with_som_members=yes,
1374 gdb_cv_have_struct_so_map_with_som_members=no)])
1375 AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members)
1376 if test $gdb_cv_have_struct_so_map_with_som_members = yes; then
1377 AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS, 1,
1378 [Define if <link.h> exists and defines a struct so_map which has
1379 members with an ``som_'' prefix. (Found on older *BSD systems.)])
1382 dnl Check for struct link_map32 type, which allows a 64-bit Solaris
1383 dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries.
1385 AC_MSG_CHECKING(for struct link_map32 in sys/link.h)
1386 AC_CACHE_VAL(gdb_cv_have_struct_link_map32,
1387 [AC_TRY_COMPILE([#define _SYSCALL32
1388 #include <sys/link.h>], [struct link_map32 l;],
1389 gdb_cv_have_struct_link_map32=yes,
1390 gdb_cv_have_struct_link_map32=no)])
1391 AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
1392 if test $gdb_cv_have_struct_link_map32 = yes; then
1393 AC_DEFINE(HAVE_STRUCT_LINK_MAP32, 1,
1394 [Define if <sys/link.h> has struct link_map32])
1395 AC_DEFINE(_SYSCALL32, 1,
1396 [Define if <sys/link.h> has link_map32 (solaris sparc-64 target)])
1400 # Check if the compiler supports the `long long' type.
1402 AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long,
1403 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1404 [[extern long long foo;]],
1405 [[switch (foo & 2) { case 0: return 1; }]])],
1406 gdb_cv_c_long_long=yes,
1407 gdb_cv_c_long_long=no)])
1408 if test $gdb_cv_c_long_long = yes; then
1409 AC_DEFINE(CC_HAS_LONG_LONG, 1,
1410 [Define to 1 if the compiler supports long long.])
1413 # Check if the compiler and runtime support printing long longs.
1415 AC_CACHE_CHECK([for long long support in printf],
1416 gdb_cv_printf_has_long_long,
1417 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1420 l = (l << 16) + 0x0123;
1421 l = (l << 16) + 0x4567;
1422 l = (l << 16) + 0x89ab;
1423 l = (l << 16) + 0xcdef;
1424 sprintf (buf, "0x%016llx", l);
1425 return (strcmp ("0x0123456789abcdef", buf));]])],
1426 gdb_cv_printf_has_long_long=yes,
1427 gdb_cv_printf_has_long_long=no,
1428 gdb_cv_printf_has_long_long=no)])
1429 if test $gdb_cv_printf_has_long_long = yes; then
1430 AC_DEFINE(PRINTF_HAS_LONG_LONG, 1,
1431 [Define to 1 if the "%ll" format works to print long longs.])
1434 # Check if the compiler and runtime support printing decfloats.
1436 AC_CACHE_CHECK([for decfloat support in printf],
1437 gdb_cv_printf_has_decfloat,
1438 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1440 _Decimal32 d32 = 1.2345df;
1441 _Decimal64 d64 = 1.2345dd;
1442 _Decimal128 d128 = 1.2345dl;
1443 sprintf (buf, "Decimal32: %H\nDecimal64: %D\nDecimal128: %DD", d32, d64, d128);
1444 return (strcmp ("Decimal32: 1.2345\nDecimal64: 1.2345\nDecimal128: 1.2345", buf));]])],
1445 gdb_cv_printf_has_decfloat=yes,
1446 gdb_cv_printf_has_decfloat=no,
1447 gdb_cv_printf_has_decfloat=no)])
1448 if test $gdb_cv_printf_has_decfloat = yes; then
1449 AC_DEFINE(PRINTF_HAS_DECFLOAT, 1,
1450 [Define to 1 if the "%H, %D and %DD" formats work to print decfloats.])
1453 # Check if the compiler supports the `long double' type. We can't use
1454 # AC_C_LONG_DOUBLE because that one does additional checks on the
1455 # constants defined in <float.h> that fail on some systems,
1456 # e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6.
1458 AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double,
1459 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])],
1460 gdb_cv_c_long_double=yes,
1461 gdb_cv_c_long_double=no)])
1462 if test $gdb_cv_c_long_double = yes; then
1463 AC_DEFINE(HAVE_LONG_DOUBLE, 1,
1464 [Define to 1 if the compiler supports long double.])
1467 # Check if the compiler and runtime support printing long doubles.
1469 AC_CACHE_CHECK([for long double support in printf],
1470 gdb_cv_printf_has_long_double,
1471 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1473 long double f = 3.141592653;
1474 sprintf (buf, "%Lg", f);
1475 return (strncmp ("3.14159", buf, 7));]])],
1476 gdb_cv_printf_has_long_double=yes,
1477 gdb_cv_printf_has_long_double=no,
1478 gdb_cv_printf_has_long_double=no)])
1479 if test $gdb_cv_printf_has_long_double = yes; then
1480 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1,
1481 [Define to 1 if the "%Lg" format works to print long doubles.])
1484 # Check if the compiler and runtime support scanning long doubles.
1486 AC_CACHE_CHECK([for long double support in scanf],
1487 gdb_cv_scanf_has_long_double,
1488 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
1489 [[#include <stdio.h>]],
1490 [[char *buf = "3.141592653";
1492 sscanf (buf, "%Lg", &f);
1493 return !(f > 3.14159 && f < 3.14160);]])],
1494 gdb_cv_scanf_has_long_double=yes,
1495 gdb_cv_scanf_has_long_double=no,
1496 gdb_cv_scanf_has_long_double=no)])
1497 if test $gdb_cv_scanf_has_long_double = yes; then
1498 AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1,
1499 [Define to 1 if the "%Lg" format works to scan long doubles.])
1504 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
1505 SAVE_LDFLAGS=$LDFLAGS
1508 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
1509 *) gdb_cv_bigtoc=-bbigtoc ;;
1512 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
1513 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
1514 LDFLAGS="${SAVE_LDFLAGS}"
1516 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
1520 AC_MSG_CHECKING(for the dynamic export flag)
1522 if test "${gdb_native}" = yes; then
1523 # The dynamically loaded libthread_db needs access to symbols in the gdb
1524 # executable. Older GNU ld supports --export-dynamic but --dynamic-list
1525 # may not be supported there.
1526 old_LDFLAGS="$LDFLAGS"
1527 # Older GNU ld supports --export-dynamic but --dynamic-list it does not.
1528 RDYNAMIC="-Wl,--dynamic-list=${srcdir}/proc-service.list"
1529 LDFLAGS="$LDFLAGS $RDYNAMIC"
1530 if test "${have_libpython}" = no; then
1531 AC_TRY_LINK([], [], [dynamic_list=true])
1533 # Workaround http://bugs.python.org/issue4434 where static
1534 # libpythonX.Y.a would get its symbols required for
1535 # pythonX.Y/lib-dynload/*.so modules hidden by -Wl,--dynamic-list.
1536 # Problem does not happen for the recommended libpythonX.Y.so linkage.
1537 old_CFLAGS="$CFLAGS"
1538 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
1541 [#include "]${have_libpython}[/Python.h"],
1544 err = PyRun_SimpleString ("import itertools\n");
1546 return err == 0 ? 0 : 1;]),
1547 [dynamic_list=true], [], [true])
1548 CFLAGS="$old_CFLAGS"
1550 LDFLAGS="$old_LDFLAGS"
1552 if $dynamic_list; then
1553 found="-Wl,--dynamic-list"
1554 RDYNAMIC='-Wl,--dynamic-list=$(srcdir)/proc-service.list'
1557 RDYNAMIC="-rdynamic"
1560 AC_MSG_RESULT($found)
1562 dnl For certain native configurations, we need to check whether thread
1563 dnl support can be built in or not.
1565 dnl Note that we only want this if we are both native (host == target),
1566 dnl and not doing a canadian cross build (build == host).
1568 if test ${build} = ${host} -a ${host} = ${target} ; then
1571 # See if thread_db library is around for Solaris thread debugging.
1572 # Note that we must explicitly test for version 1 of the library
1573 # because version 0 (present on Solaris 2.4 or earlier) doesn't have
1575 AC_MSG_CHECKING(for Solaris thread debugging library)
1576 if test -f /usr/lib/libthread_db.so.1 ; then
1578 AC_DEFINE(HAVE_THREAD_DB_LIB, 1,
1579 [Define if using Solaris thread debugging.])
1580 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
1581 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
1582 AC_CHECK_LIB(dl, dlopen)
1583 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} $RDYNAMIC"
1584 # Sun randomly tweaked the prototypes in <proc_service.h>
1586 AC_MSG_CHECKING(if <proc_service.h> is old)
1587 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
1589 #include <proc_service.h>
1591 (struct ps_prochandle*, psaddr_t, const void*, size_t);
1592 ],, gdb_cv_proc_service_is_old=no,
1593 gdb_cv_proc_service_is_old=yes)
1595 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
1596 if test $gdb_cv_proc_service_is_old = yes; then
1597 AC_DEFINE(PROC_SERVICE_IS_OLD, 1,
1598 [Define if <proc_service.h> on solaris uses int instead of
1599 size_t, and assorted other type changes.])
1606 AC_MSG_CHECKING(for AiX thread debugging library)
1607 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
1608 [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
1609 [#ifndef PTHDB_VERSION_3
1612 gdb_cv_have_aix_thread_debug=yes,
1613 gdb_cv_have_aix_thread_debug=no)])
1614 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
1615 if test $gdb_cv_have_aix_thread_debug = yes; then
1616 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
1617 CONFIG_OBS="${CONFIG_OBS} aix-thread.o"
1618 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
1620 # Older versions of AIX do not provide the declaration for
1621 # the getthrds function (it appears that it was introduced
1623 AC_CHECK_DECLS(getthrds, [], [], [[#include <procinfo.h>]])
1627 AC_SUBST(CONFIG_LDFLAGS)
1630 dnl See if we have a thread_db header file that has TD_NOTALLOC and
1631 dnl other error codes.
1632 if test "x$ac_cv_header_thread_db_h" = "xyes"; then
1633 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
1634 gdb_cv_thread_db_h_has_td_notalloc,
1636 [#include <thread_db.h>],
1637 [int i = TD_NOTALLOC;],
1638 gdb_cv_thread_db_h_has_td_notalloc=yes,
1639 gdb_cv_thread_db_h_has_td_notalloc=no
1642 AC_CACHE_CHECK([whether <thread_db.h> has TD_VERSION],
1643 gdb_cv_thread_db_h_has_td_version,
1645 [#include <thread_db.h>],
1646 [int i = TD_VERSION;],
1647 gdb_cv_thread_db_h_has_td_version=yes,
1648 gdb_cv_thread_db_h_has_td_version=no
1651 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTLS],
1652 gdb_cv_thread_db_h_has_td_notls,
1654 [#include <thread_db.h>],
1655 [int i = TD_NOTLS;],
1656 gdb_cv_thread_db_h_has_td_notls=yes,
1657 gdb_cv_thread_db_h_has_td_notls=no
1661 if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
1662 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
1663 [Define if <thread_db.h> has the TD_NOTALLOC error code.])
1665 if test "x$gdb_cv_thread_db_h_has_td_version" = "xyes"; then
1666 AC_DEFINE(THREAD_DB_HAS_TD_VERSION, 1,
1667 [Define if <thread_db.h> has the TD_VERSION error code.])
1669 if test "x$gdb_cv_thread_db_h_has_td_notls" = "xyes"; then
1670 AC_DEFINE(THREAD_DB_HAS_TD_NOTLS, 1,
1671 [Define if <thread_db.h> has the TD_NOTLS error code.])
1674 dnl See if we have a sys/syscall header file that has __NR_tkill.
1675 if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then
1676 AC_CACHE_CHECK([whether <sys/syscall.h> has __NR_tkill],
1677 gdb_cv_sys_syscall_h_has_tkill,
1679 [#include <sys/syscall.h>],
1680 [int i = __NR_tkill;],
1681 gdb_cv_sys_syscall_h_has_tkill=yes,
1682 gdb_cv_sys_syscall_h_has_tkill=no
1686 dnl See if we can issue tkill syscall.
1687 if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes" && test "x$ac_cv_func_syscall" = "xyes"; then
1688 AC_DEFINE(HAVE_TKILL_SYSCALL, 1, [Define if you support the tkill syscall.])
1691 dnl Check if we can disable the virtual address space randomization.
1692 dnl The functionality of setarch -R.
1693 AC_CHECK_DECLS([ADDR_NO_RANDOMIZE],,, [#include <sys/personality.h>])
1694 define([PERSONALITY_TEST], [AC_LANG_PROGRAM([#include <sys/personality.h>], [
1695 # if !HAVE_DECL_ADDR_NO_RANDOMIZE
1696 # define ADDR_NO_RANDOMIZE 0x0040000
1698 /* Test the flag could be set and stays set. */
1699 personality (personality (0xffffffff) | ADDR_NO_RANDOMIZE);
1700 if (!(personality (personality (0xffffffff)) & ADDR_NO_RANDOMIZE))
1702 AC_RUN_IFELSE([PERSONALITY_TEST],
1703 [have_personality=true],
1704 [have_personality=false],
1705 [AC_LINK_IFELSE([PERSONALITY_TEST],
1706 [have_personality=true],
1707 [have_personality=false])])
1708 if $have_personality
1710 AC_DEFINE([HAVE_PERSONALITY], 1,
1711 [Define if you support the personality syscall.])
1714 dnl Handle optional features that can be enabled.
1716 target_sysroot_reloc=0
1717 AC_ARG_WITH(sysroot,
1718 AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], [search for usr/lib et al within DIR]),
1720 case ${with_sysroot} in
1721 yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
1722 *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
1725 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
1727 if test "x$prefix" = xNONE; then
1728 test_prefix=/usr/local
1732 if test "x$exec_prefix" = xNONE || test "x$exec_prefix" = 'x${prefix}'; then
1733 test_exec_prefix=$test_prefix
1735 test_exec_prefix=$exec_prefix
1737 case ${TARGET_SYSTEM_ROOT} in
1738 "${test_prefix}"|"${test_prefix}/"*|\
1739 "${test_exec_prefix}"|"${test_exec_prefix}/"*|\
1740 '${prefix}'|'${prefix}/'*|\
1741 '${exec_prefix}'|'${exec_prefix}/'*)
1742 target_sysroot_reloc=1
1747 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"'
1749 TARGET_SYSTEM_ROOT_DEFINE="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE=$target_sysroot_reloc"
1750 AC_SUBST(TARGET_SYSTEM_ROOT)
1751 AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
1753 GDB_AC_WITH_DIR(SYSTEM_GDBINIT, system-gdbinit,
1754 [automatically load a system-wide gdbinit file],
1757 AC_ARG_ENABLE(werror,
1758 AS_HELP_STRING([--enable-werror], [treat compile warnings as errors]),
1759 [case "${enableval}" in
1760 yes | y) ERROR_ON_WARNING="yes" ;;
1761 no | n) ERROR_ON_WARNING="no" ;;
1762 *) AC_MSG_ERROR(bad value ${enableval} for --enable-werror) ;;
1765 # Enable -Werror by default when using gcc
1766 if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then
1767 ERROR_ON_WARNING=yes
1771 if test "${ERROR_ON_WARNING}" = yes ; then
1772 WERROR_CFLAGS="-Werror"
1775 # The entries after -Wno-pointer-sign are disabled warnings which may
1776 # be enabled in the future, which can not currently be used to build
1778 # NOTE: If you change this list, remember to update
1779 # gdb/doc/gdbint.texinfo.
1780 build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \
1781 -Wformat-nonliteral -Wno-pointer-sign \
1782 -Wno-unused -Wunused-value -Wunused-function \
1783 -Wno-switch -Wno-char-subscripts"
1785 # Enable -Wno-format by default when using gcc on mingw since many
1786 # GCC versions complain about %I64.
1788 *-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;;
1791 AC_ARG_ENABLE(build-warnings,
1792 AS_HELP_STRING([--enable-build-warnings], [enable build-time compiler warnings if gcc is used]),
1793 [case "${enableval}" in
1795 no) build_warnings="-w";;
1796 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1797 build_warnings="${build_warnings} ${t}";;
1798 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1799 build_warnings="${t} ${build_warnings}";;
1800 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1802 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1803 echo "Setting compiler warning flags = $build_warnings" 6>&1
1805 AC_ARG_ENABLE(gdb-build-warnings,
1806 AS_HELP_STRING([--enable-gdb-build-warnings], [enable GDB specific build-time compiler warnings if gcc is used]),
1807 [case "${enableval}" in
1809 no) build_warnings="-w";;
1810 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1811 build_warnings="${build_warnings} ${t}";;
1812 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1813 build_warnings="${t} ${build_warnings}";;
1814 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1816 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1817 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
1820 if test "x${build_warnings}" != x -a "x$GCC" = xyes
1822 AC_MSG_CHECKING(compiler warning flags)
1823 # Separate out the -Werror flag as some files just cannot be
1824 # compiled with it enabled.
1825 for w in ${build_warnings}; do
1827 -Werr*) WERROR_CFLAGS=-Werror ;;
1828 *) # Check that GCC accepts it
1829 saved_CFLAGS="$CFLAGS"
1831 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
1832 CFLAGS="$saved_CFLAGS"
1835 AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS})
1837 AC_SUBST(WARN_CFLAGS)
1838 AC_SUBST(WERROR_CFLAGS)
1840 # In the Cygwin environment, we need some additional flags.
1841 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
1842 [AC_EGREP_CPP(lose, [
1843 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
1845 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
1848 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
1849 SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o"
1851 *go32* ) SER_HARDWIRE=ser-go32.o ;;
1852 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
1853 *mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;;
1855 AC_SUBST(SER_HARDWIRE)
1857 # libreadline needs libuser32.a in a cygwin environment
1859 if test x$gdb_cv_os_cygwin = xyes; then
1860 WIN32LIBS="-luser32"
1862 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
1867 # The ser-tcp.c module requires sockets.
1870 AC_DEFINE(USE_WIN32API, 1,
1871 [Define if we should use the Windows API, instead of the
1872 POSIX API. On Windows, we use the Windows API when
1873 building for MinGW, but the POSIX API when building
1875 WIN32LIBS="$WIN32LIBS -lws2_32"
1880 # Add ELF support to GDB, but only if BFD includes ELF support.
1882 OLD_LDFLAGS=$LDFLAGS
1884 CFLAGS="$CFLAGS -I${srcdir}/../include -I../bfd -I${srcdir}/../bfd"
1885 LDFLAGS="$LDFLAGS -L../bfd -L../libiberty"
1886 intl=`echo $LIBINTL | sed 's,${top_builddir}/,,g'`
1887 # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
1888 if test "$plugins" = "yes"; then
1891 LIBS="-lbfd -liberty $intl $LIBS"
1892 AC_CACHE_CHECK([for ELF support in BFD], gdb_cv_var_elf,
1894 [#include <stdlib.h>
1896 #include "elf-bfd.h"
1898 [bfd *abfd = NULL; bfd_get_elf_phdr_upper_bound (abfd); ],
1899 gdb_cv_var_elf=yes, gdb_cv_var_elf=no)])
1900 if test $gdb_cv_var_elf = yes; then
1901 CONFIG_OBS="$CONFIG_OBS elfread.o"
1902 AC_DEFINE(HAVE_ELF, 1,
1903 [Define if ELF support should be included.])
1904 # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
1905 if test "$plugins" = "yes"; then
1906 OLD_LIBS="-ldl $OLD_LIBS"
1910 LDFLAGS=$OLD_LDFLAGS
1913 # Add any host-specific objects to GDB.
1914 CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
1916 LIBGUI="../libgui/src/libgui.a"
1917 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
1919 AC_SUBST(GUI_CFLAGS_X)
1923 AC_SUBST(WIN32LDAPP)
1926 *-*-cygwin* | *-*-mingw* )
1935 if test "${enable_gdbtk}" = "yes"; then
1937 # Gdbtk must have an absolute path to srcdir in order to run
1938 # properly when not installed.
1946 # If $no_tk is nonempty, then we can't do Tk, and there is no
1947 # point to doing Tcl.
1950 if test -z "${no_tcl}" -a -z "${no_tk}"; then
1953 # Check for in-tree tcl
1960 if test "${TCL_SRC_DIR}" = "${topdir}/tcl"; then
1964 # Find Tcl private headers
1965 if test x"${intree}" = xno; then
1966 CY_AC_TCL_PRIVATE_HEADERS
1967 TCL_INCLUDE="${TCL_INCLUDE_SPEC} ${TCL_PRIVATE_INCLUDE}"
1968 TCL_LIBRARY="${TCL_LIB_SPEC}"
1971 # If building tcl in the same src tree, private headers
1972 # are not needed, but we need to be sure to use the right
1974 TCL_INCLUDE="-I${TCL_SRC_DIR}/generic"
1975 TCL_LIBRARY="${TCL_BUILD_LIB_SPEC}"
1976 TCL_DEPS="../tcl/${configdir}${TCL_LIB_FILE}"
1978 AC_SUBST(TCL_INCLUDE)
1979 AC_SUBST(TCL_LIBRARY)
1984 # Check for in-tree Tk
1986 if test "${TK_SRC_DIR}" = "${topdir}/tk"; then
1990 # Find Tk private headers
1991 if test x"${intree}" = xno; then
1992 CY_AC_TK_PRIVATE_HEADERS
1993 TK_INCLUDE="${TK_INCLUDE_SPEC} ${TK_PRIVATE_INCLUDE}"
1994 TK_LIBRARY=${TK_LIB_SPEC}
1997 TK_INCLUDE="-I${TK_SRC_DIR}/generic"
1998 TK_LIBRARY="${TK_BUILD_LIB_SPEC}"
1999 TK_DEPS="../tk/${configdir}/${TK_LIB_FILE}"
2001 AC_SUBST(TK_INCLUDE)
2002 AC_SUBST(TK_LIBRARY)
2004 AC_SUBST(TK_XINCLUDES)
2006 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
2008 # Include some libraries that Tcl and Tk want.
2009 TCL_LIBS='$(LIBGUI) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
2010 # Yes, the ordering seems wrong here. But it isn't.
2011 # TK_LIBS is the list of libraries that need to be linked
2012 # after Tcl/Tk. Note that this isn't put into LIBS. If it
2013 # were in LIBS then any link tests after this point would
2014 # try to include things like `$(LIBGUI)', which wouldn't work.
2015 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
2017 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
2018 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
2019 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
2020 CONFIG_ALL="${CONFIG_ALL} all-gdbtk"
2021 CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk"
2022 CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk"
2023 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk"
2025 if test x$gdb_cv_os_cygwin = xyes; then
2026 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
2027 WIN32LDAPP="-Wl,--subsystem,console"
2028 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
2031 AC_CONFIG_SUBDIRS(gdbtk)
2039 AC_SUBST(GDBTK_CFLAGS)
2040 AC_SUBST(GDBTK_SRC_DIR)
2044 # Unlike the sim directory, whether a simulator is linked is controlled by
2045 # presence of a gdb_sim definition in the target configure.tgt entry.
2046 # This code just checks for a few cases where we'd like to ignore those
2047 # definitions, even when they're present in the '.mt' file. These cases
2048 # are when --disable-sim is specified, or if the simulator directory is
2049 # not part of the source tree.
2052 AS_HELP_STRING([--enable-sim], [link gdb with simulator]),
2053 [echo "enable_sim = $enable_sim";
2054 echo "enableval = ${enableval}";
2055 case "${enableval}" in
2056 yes) ignore_sim=false ;;
2057 no) ignore_sim=true ;;
2058 *) ignore_sim=false ;;
2062 if test ! -d "${srcdir}/../sim"; then
2068 if test "${ignore_sim}" = "false"; then
2069 if test x"${gdb_sim}" != x ; then
2071 SIM_OBS="remote-sim.o"
2072 AC_DEFINE(WITH_SIM, 1, [Define if the simulator is being linked in.])
2078 AC_SUBST(ENABLE_CFLAGS)
2079 AC_SUBST(PROFILE_CFLAGS)
2081 AC_SUBST(CONFIG_OBS)
2082 AC_SUBST(CONFIG_DEPS)
2083 AC_SUBST(CONFIG_SRCS)
2084 AC_SUBST(CONFIG_ALL)
2085 AC_SUBST(CONFIG_CLEAN)
2086 AC_SUBST(CONFIG_INSTALL)
2087 AC_SUBST(CONFIG_UNINSTALL)
2089 # List of host floatformats.
2090 AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat])
2091 AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat])
2092 AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat])
2094 # target_subdir is used by the testsuite to find the target libraries.
2096 if test "${host}" != "${target}"; then
2097 target_subdir="${target_alias}/"
2099 AC_SUBST(target_subdir)
2102 if test "${gdb_native}" = "yes"; then
2103 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
2104 if test ! -f ${host_makefile_frag}; then
2105 AC_MSG_ERROR("*** Gdb does not support native target ${host}")
2107 frags="$frags $host_makefile_frag"
2109 host_makefile_frag=/dev/null
2112 AC_SUBST_FILE(host_makefile_frag)
2116 if test "${gdb_native}" = "yes"; then
2117 # We pick this up from the host configuration file (.mh) because we
2118 # do not have a native configuration Makefile fragment.
2119 nativefile=`sed -n '
2120 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
2121 ' ${host_makefile_frag}`
2125 if test x"${gdb_osabi}" != x ; then
2126 AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
2127 [Define to the default OS ABI for this configuration.])
2130 # Enable multi-ice-gdb-server.
2131 AC_ARG_ENABLE(multi-ice,
2132 AS_HELP_STRING([--enable-multi-ice], [build the multi-ice-gdb-server]),
2136 *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;;
2138 if test "x$enable_multi_ice" = xyes; then
2139 AC_CONFIG_SUBDIRS(multi-ice)
2142 AC_ARG_ENABLE(gdbserver,
2143 AS_HELP_STRING([--enable-gdbserver],
2144 [automatically build gdbserver (yes/no/auto, default is auto)]),
2145 [case "${enableval}" in
2147 *) AC_MSG_ERROR(bad value ${enableval} for --enable-gdbserver option) ;;
2148 esac],[enable_gdbserver=auto])
2150 # We only build gdbserver automatically in a native configuration, and
2151 # only if the user did not explicitly disable its build.
2152 if test "$gdb_native" = "yes" -a "$enable_gdbserver" != "no"; then
2153 AC_MSG_CHECKING(whether gdbserver is supported on this host)
2154 if test "x$build_gdbserver" = xyes; then
2156 AC_CONFIG_SUBDIRS(gdbserver)
2157 gdbserver_build_enabled=yes
2163 # If the user explicitly request the gdbserver to be built, verify that
2164 # we were in fact able to enable it.
2165 if test "$enable_gdbserver" = "yes" -a "$gdbserver_build_enabled" != "yes"; then
2166 AC_MSG_ERROR(Automatic gdbserver build is not supported for this configuration)
2169 # If nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link
2170 # to an empty version.
2176 if test "${nativefile}" != ""; then
2177 case "${nativefile}" in
2178 nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;;
2179 * ) GDB_NM_FILE="${nativefile}"
2181 files="${files} ${GDB_NM_FILE}"
2182 links="${links} nm.h"
2183 AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}", [nativefile])
2185 AC_SUBST(GDB_NM_FILE)
2187 AC_LINK_FILES($files, $links)
2189 dnl Check for exe extension set on certain hosts (e.g. Win32)
2192 dnl Detect the character set used by this host.
2193 dnl At the moment, we just assume it's UTF-8.
2194 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8",
2195 [Define to be a string naming the default host character set.])
2197 AC_OUTPUT(Makefile .gdbinit:gdbinit.in doc/Makefile gnulib/Makefile data-directory/Makefile,
2199 case x$CONFIG_HEADERS in
2200 xconfig.h:config.in)