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 # Do we have a single-tree copy of texinfo? Even if we do, we can't
91 # rely on it - libiberty is built before texinfo.
92 AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
93 if test "x$MAKEINFO" = "x"; then
94 AC_ERROR([makeinfo is required for compilation])
98 AC_ERROR([makeinfo is required for compilation])
104 # --split-size=5000000 may be already in $MAKEINFO from parent configure.
105 # Re-running configure in gdb/ would lose it so ensure it stays present.
106 MAKEINFOFLAGS=${MAKEINFOFLAGS---split-size=5000000}
107 AC_SUBST(MAKEINFOFLAGS)
109 MAKEINFO_EXTRA_FLAGS=""
110 AC_CACHE_CHECK([whether $MAKEINFO supports @click], gdb_cv_have_makeinfo_click,
111 [echo '@clicksequence{a @click{} b}' >conftest.texinfo
112 if eval "$MAKEINFO conftest.texinfo >&5 2>&5"; then
113 gdb_cv_have_makeinfo_click=yes
115 gdb_cv_have_makeinfo_click=no
117 if test x"$gdb_cv_have_makeinfo_click" = xyes; then
118 MAKEINFO_EXTRA_FLAGS="$MAKEINFO_EXTRA_FLAGS -DHAVE_MAKEINFO_CLICK"
120 AC_SUBST(MAKEINFO_EXTRA_FLAGS)
122 # GDB does not use automake, but gnulib does. This line lets us
123 # generate its Makefile.in.
124 AM_INIT_AUTOMAKE(gdb, UNUSED-VERSION, [no-define])
126 GDB_AC_WITH_DIR(DEBUGDIR, separate-debug-dir,
127 [look for global separate debug info in this path @<:@LIBDIR/debug@:>@],
130 # GDB's datadir relocation
132 GDB_AC_WITH_DIR(GDB_DATADIR, gdb-datadir,
133 [look for global separate data files in this path @<:@DATADIR/gdb@:>@],
136 AC_ARG_WITH(relocated-sources,
137 AS_HELP_STRING([--with-relocated-sources=PATH], [automatically relocate this path for source files]),
138 [reloc_srcdir="${withval}"
139 AC_DEFINE_DIR(RELOC_SRCDIR, reloc_srcdir,
140 [Relocated directory for source files. ])
143 AC_CONFIG_SUBDIRS(testsuite)
145 # Check whether to support alternative target configurations
146 AC_ARG_ENABLE(targets,
147 AS_HELP_STRING([--enable-targets=TARGETS], [alternative target configurations]),
148 [case "${enableval}" in
149 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
151 no) enable_targets= ;;
152 *) enable_targets=$enableval ;;
155 # Check whether to enable 64-bit support on 32-bit hosts
156 AC_ARG_ENABLE(64-bit-bfd,
157 AS_HELP_STRING([--enable-64-bit-bfd], [64-bit support (on hosts with narrower word sizes)]),
158 [case "${enableval}" in
161 *) AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;;
162 esac],[want64=false])dnl
164 # Provide defaults for some variables set by the per-host and per-target
166 gdb_host_obs=posix-hdep.o
168 if test "${target}" = "${host}"; then
174 . $srcdir/configure.host
176 # Accumulate some settings from configure.tgt over all enabled targets
181 for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
183 if test "$targ_alias" = "all"; then
186 # Canonicalize the secondary target names.
187 result=`$ac_config_sub $targ_alias 2>/dev/null`
188 if test -n "$result"; then
194 . ${srcdir}/configure.tgt
196 AS_IF([test -z "${gdb_target_obs}"],
197 [AC_MSG_ERROR([configuration ${targ} is unsupported.])])
199 # Target-specific object files
200 for i in ${gdb_target_obs}; do
201 case " $TARGET_OBS " in
204 TARGET_OBS="$TARGET_OBS ${i}"
209 # Check whether this target needs 64-bit CORE_ADDR
210 if test x${want64} = xfalse; then
211 . ${srcdir}/../bfd/config.bfd
216 if test x${all_targets} = xtrue; then
218 # We want all 64-bit targets if we either:
219 # - run on a 64-bit host or
220 # - already require 64-bit support for some other target or
221 # - the --enable-64-bit-bfd option was supplied
222 # Otherwise we only support all 32-bit targets.
224 # NOTE: This test must be in sync with the corresponding
227 if test x${want64} = xfalse; then
228 AC_CHECK_SIZEOF(long)
229 if test "x${ac_cv_sizeof_long}" = "x8"; then
233 if test x${want64} = xtrue; then
234 TARGET_OBS='$(ALL_TARGET_OBS) $(ALL_64_TARGET_OBS)'
236 TARGET_OBS='$(ALL_TARGET_OBS)'
242 # For other settings, only the main target counts.
246 targ=$target; . ${srcdir}/configure.tgt
248 # Fetch the default architecture and default target vector from BFD.
249 targ=$target; . $srcdir/../bfd/config.bfd
251 # We only want the first architecture, so strip off the others if
252 # there is more than one.
253 targ_archs=`echo $targ_archs | sed 's/ .*//'`
255 if test "x$targ_archs" != x; then
256 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs,
257 [Define to BFD's default architecture. ])
259 if test "x$targ_defvec" != x; then
260 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec,
261 [Define to BFD's default target vector. ])
264 # The CLI cannot be disabled yet, but may be in the future.
267 AC_ARG_ENABLE(gdbcli,
268 AS_HELP_STRING([--disable-gdbcli], [disable command-line interface (CLI)]),
273 AC_MSG_ERROR([the command-line interface cannot be disabled yet]) ;;
275 AC_MSG_ERROR([bad value $enableval for --enable-gdbcli]) ;;
278 if test x"$enable_gdbcli" = xyes; then
279 if test -d $srcdir/cli; then
280 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)"
281 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)"
282 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)"
283 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)"
289 AS_HELP_STRING([--disable-gdbmi], [disable machine-interface (MI)]),
294 AC_MSG_ERROR([bad value $enableval for --enable-gdbmi]) ;;
297 if test x"$enable_gdbmi" = xyes; then
298 if test -d $srcdir/mi; then
299 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)"
300 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)"
301 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)"
302 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)"
308 AS_HELP_STRING([--enable-tui], [enable full-screen terminal user interface (TUI)]),
313 AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
314 esac],enable_tui=auto)
318 AS_HELP_STRING([--enable-gdbtk], [enable gdbtk graphical user interface (GUI)]),
323 AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;;
325 [if test -d $srcdir/gdbtk; then
330 # We unconditionally disable gdbtk tests on selected platforms.
333 AC_MSG_WARN([gdbtk isn't supported on $host; disabling])
338 AC_ARG_WITH(libunwind,
339 AS_HELP_STRING([--with-libunwind], [use libunwind frame unwinding support]),
340 [case "${withval}" in
341 yes) enable_libunwind=yes ;;
342 no) enable_libunwind=no ;;
343 *) AC_MSG_ERROR(bad value ${withval} for GDB with-libunwind option) ;;
345 AC_CHECK_HEADERS(libunwind.h libunwind-ia64.h)
346 if test x"$ac_cv_header_libunwind_h" = xyes -a x"$ac_cv_header_libunwind_ia64_h" = xyes; then
347 enable_libunwind=yes;
351 if test x"$enable_libunwind" = xyes; then
352 AC_CHECK_HEADERS(libunwind.h libunwind-ia64.h)
353 AC_DEFINE(HAVE_LIBUNWIND, 1, [Define if libunwind library is being used.])
354 CONFIG_OBS="$CONFIG_OBS libunwind-frame.o"
355 CONFIG_DEPS="$CONFIG_DEPS libunwind-frame.o"
356 CONFIG_SRCS="$CONFIG_SRCS libunwind-frame.c"
360 AC_ARG_WITH(curses, AS_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
363 if test "$opt_curses" = "yes"; then
368 AC_ARG_ENABLE(profiling,
369 AS_HELP_STRING([--enable-profiling], [enable profiling of GDB]),
374 AC_MSG_ERROR([bad value $enableval for --enable-profile]) ;;
376 [enable_profiling=no])
378 AC_CHECK_FUNCS(monstartup _mcleanup)
379 AC_CACHE_CHECK([for _etext], ac_cv_var__etext,
384 [free (&_etext);], ac_cv_var__etext=yes, ac_cv_var__etext=no)])
385 if test $ac_cv_var__etext = yes; then
386 AC_DEFINE(HAVE__ETEXT, 1,
387 [Define to 1 if your system has the _etext variable. ])
389 AC_CACHE_CHECK([for etext], ac_cv_var_etext,
394 [free (&etext);], ac_cv_var_etext=yes, ac_cv_var_etext=no)])
395 if test $ac_cv_var_etext = yes; then
396 AC_DEFINE(HAVE_ETEXT, 1,
397 [Define to 1 if your system has the etext variable. ])
399 if test "$enable_profiling" = yes ; then
400 if test $ac_cv_func_monstartup = no || test $ac_cv_func__mcleanup = no; then
401 AC_MSG_ERROR(--enable-profiling requires monstartup and _mcleanup)
405 CFLAGS="$CFLAGS $PROFILE_CFLAGS"
407 AC_CACHE_CHECK([whether $CC supports -pg], ac_cv_cc_supports_pg,
408 [AC_TRY_COMPILE([], [int x;], ac_cv_cc_supports_pg=yes,
409 ac_cv_cc_supports_pg=no)])
411 if test $ac_cv_cc_supports_pg = no; then
412 AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg)
418 ACX_PKGVERSION([GDB])
419 ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/])
420 AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description])
421 AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address])
423 # --------------------- #
424 # Checks for programs. #
425 # --------------------- #
433 AC_CHECK_TOOL(AR, ar)
434 AC_CHECK_TOOL(DLLTOOL, dlltool)
435 AC_CHECK_TOOL(WINDRES, windres)
437 # Needed for GNU/Hurd.
438 AC_CHECK_TOOL(MIG, mig)
440 # ---------------------- #
441 # Checks for libraries. #
442 # ---------------------- #
444 # We might need to link with -lm; most simulators need it.
445 AC_CHECK_LIB(m, main)
447 # We need to link with -lw to get `wctype' on Solaris before Solaris
448 # 2.6. Solaris 2.6 and beyond have this function in libc, and have a
449 # libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1
450 # is known to have this problem). Therefore we avoid libw if we can.
451 AC_CHECK_FUNC(wctype, [],
452 [AC_CHECK_LIB(w, wctype)])
454 # Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
455 AC_SEARCH_LIBS(gethostbyname, nsl)
457 # Some systems (e.g. Solaris) have `socketpair' in libsocket.
458 AC_SEARCH_LIBS(socketpair, socket)
460 # Link in zlib if we can. This allows us to read compressed debug sections.
463 # On HP/UX we may need libxpdl for dlgetmodinfo (used by solib-pa64.c).
464 AC_SEARCH_LIBS(dlgetmodinfo, [dl xpdl])
468 # GDB may fork/exec the iconv program to get the list of supported character
469 # sets. Allow the user to specify where to find it.
470 # There are several factors affecting the choice of option name:
471 # - There is already --with-libiconv-prefix but we can't use it, it specifies
472 # the build-time location of libiconv files.
473 # - The program we need to find is iconv, which comes with glibc. The user
474 # doesn't necessarily have libiconv installed. Therefore naming this
475 # --with-libiconv-foo feels wrong.
476 # - We want the path to be relocatable, but GDB_AC_DEFINE_RELOCATABLE is
477 # defined to work on directories not files (though it really doesn't know
479 # - Calling this --with-iconv-prefix is perceived to cause too much confusion
480 # with --with-libiconv-prefix.
481 # Putting these together is why the option name is --with-iconv-bin.
483 AC_ARG_WITH(iconv-bin,
484 AS_HELP_STRING([--with-iconv-bin=PATH], [specify where to find the iconv program]),
485 [iconv_bin="${withval}"
486 AC_DEFINE_UNQUOTED([ICONV_BIN], ["${iconv_bin}"],
487 [Path of directory of iconv program.])
488 GDB_AC_DEFINE_RELOCATABLE(ICONV_BIN, iconv, ${iconv_bin})
491 # On alpha-osf, it appears that libtermcap and libcurses are not compatible.
492 # There is a very specific comment in /usr/include/curses.h explaining that
493 # termcap routines built into libcurses must not be used.
495 # The symptoms we observed so far is GDB unexpectedly changing
496 # the terminal settings when tgetent is called - this is particularly
497 # visible as the output is missing carriage returns, and so rapidly
498 # becomes very hard to read.
500 # The readline configure script has already decided that libtermcap
501 # was enough for its purposes, and so decided to build readline using
502 # libtermcap. Since the TUI mode requires curses, building GDB with
503 # TUI enabled results in both libraries to be used at the same time,
504 # which is not allowed. This basically means that GDB with TUI is
505 # broken on alpha-osf.
509 if test x"$enable_tui" = xyes; then
510 AC_MSG_ERROR([Building GDB with TUI mode is not supported on this host])
512 if test x"$enable_tui" = xauto; then
518 # For the TUI, we need enhanced curses functionality.
519 if test x"$enable_tui" != xno; then
524 if test x"$prefer_curses" = xyes; then
525 # FIXME: kettenis/20040905: We prefer ncurses over the vendor-supplied
526 # curses library because the latter might not provide all the
527 # functionality we need. However, this leads to problems on systems
528 # where the linker searches /usr/local/lib, but the compiler doesn't
529 # search /usr/local/include, if ncurses is installed in /usr/local. A
530 # default installation of ncurses on alpha*-dec-osf* will lead to such
532 AC_SEARCH_LIBS(waddstr, [ncurses cursesX curses])
534 if test "$ac_cv_search_waddstr" != no; then
539 # Check whether we should enable the TUI, but only do so if we really
541 if test x"$enable_tui" != xno; then
542 if test -d $srcdir/tui; then
543 if test "$curses_found" != no; then
544 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
545 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
546 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
547 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
548 CONFIG_ALL="${CONFIG_ALL} all-tui"
549 CONFIG_CLEAN="${CONFIG_CLEAN} clean-tui"
550 CONFIG_INSTALL="${CONFIG_INSTALL} install-tui"
551 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-tui"
553 if test x"$enable_tui" = xyes; then
554 AC_MSG_ERROR([no enhanced curses library found; disable TUI])
556 AC_MSG_WARN([no enhanced curses library found; disabling TUI])
562 # Since GDB uses Readline, we need termcap functionality. In many
563 # cases this will be provided by the curses library, but some systems
564 # have a seperate termcap library, or no curses library at all.
568 if test -d $srcdir/libtermcap; then
569 LIBS="../libtermcap/libtermcap.a $LIBS"
570 ac_cv_search_tgetent="../libtermcap/libtermcap.a"
573 ac_cv_search_tgetent="none required"
576 ac_cv_search_tgetent="none required"
577 CONFIG_OBS="$CONFIG_OBS windows-termcap.o"
581 # These are the libraries checked by Readline.
582 AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses])
584 if test "$ac_cv_search_tgetent" = no; then
585 AC_MSG_ERROR([no termcap library found])
588 AC_ARG_WITH([system-readline],
589 [AS_HELP_STRING([--with-system-readline],
590 [use installed readline library])])
592 if test "$with_system_readline" = yes; then
596 READLINE_TEXI_INCFLAG=
598 READLINE='$(READLINE_DIR)/libreadline.a'
599 READLINE_DEPS='$(READLINE)'
600 READLINE_CFLAGS='-I$(READLINE_SRC)/..'
601 READLINE_TEXI_INCFLAG='-I $(READLINE_DIR)'
604 AC_SUBST(READLINE_DEPS)
605 AC_SUBST(READLINE_CFLAGS)
606 AC_SUBST(READLINE_TEXI_INCFLAG)
608 # Generate jit-reader.h
610 # This is typedeffed to GDB_CORE_ADDR in jit-reader.h
613 AC_CHECK_SIZEOF(unsigned long long)
614 AC_CHECK_SIZEOF(unsigned long)
615 AC_CHECK_SIZEOF(unsigned __int128)
617 if test "x${ac_cv_sizeof_unsigned_long}" = "x8"; then
618 TARGET_PTR="unsigned long"
619 elif test "x${ac_cv_sizeof_unsigned_long_long}" = "x8"; then
620 TARGET_PTR="unsigned long long"
621 elif test "x${ac_cv_sizeof_unsigned___int128}" = "x16"; then
622 TARGET_PTR="unsigned __int128"
624 TARGET_PTR="unsigned long"
628 AC_CONFIG_FILES([jit-reader.h:jit-reader.in])
630 GDB_AC_WITH_DIR([JIT_READER_DIR], [jit-reader-dir],
631 [directory to load the JIT readers from],
635 AS_HELP_STRING([--with-expat], [include expat support (auto/yes/no)]),
636 [], [with_expat=auto])
637 AC_MSG_CHECKING([whether to use expat])
638 AC_MSG_RESULT([$with_expat])
640 if test "${with_expat}" = no; then
641 AC_MSG_WARN([expat support disabled; some features may be unavailable.])
644 AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"],
645 [XML_Parser p = XML_ParserCreate (0);])
646 if test "$HAVE_LIBEXPAT" != yes; then
647 if test "$with_expat" = yes; then
648 AC_MSG_ERROR([expat is missing or unusable])
650 AC_MSG_WARN([expat is missing or unusable; some features may be unavailable.])
654 LIBS="$LIBS $LIBEXPAT"
655 AC_CHECK_FUNCS(XML_StopParser)
660 dnl Utility to simplify finding libpython.
662 dnl $2 = the shell variable to assign the result to
663 dnl If libpython is found we store $version here.
664 dnl $3 = additional flags to add to CPPFLAGS
665 dnl $4 = additional flags to add to LIBS
667 AC_DEFUN([AC_TRY_LIBPYTHON],
670 define([have_libpython_var],$2)
673 AC_MSG_CHECKING([for ${version}])
674 save_CPPFLAGS=$CPPFLAGS
676 CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
677 LIBS="$LIBS $new_LIBS"
678 found_usable_python=no
679 AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "Python.h"]],
680 [[Py_Initialize ();]]),
681 [have_libpython_var=${version}
682 found_usable_python=yes
683 PYTHON_CPPFLAGS=$new_CPPFLAGS
684 PYTHON_LIBS=$new_LIBS])
685 CPPFLAGS=$save_CPPFLAGS
687 AC_MSG_RESULT([${found_usable_python}])
690 dnl There are several different values for --with-python:
692 dnl no - Don't include python support.
693 dnl yes - Include python support, error if it's missing.
694 dnl If we find python in $PATH, use it to fetch configure options,
695 dnl otherwise assume the compiler can find it with no help from us.
696 dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn.
697 dnl auto - Same as "yes", but if python is missing from the system,
698 dnl fall back to "no".
699 dnl /path/to/python/exec-prefix -
700 dnl Use the python located in this directory.
701 dnl If /path/to/python/exec-prefix/bin/python exists, use it to find
702 dnl the compilation parameters. Otherwise use
703 dnl -I/path/to/python/exec-prefix/include,
704 dnl -L/path/to/python/exec-prefix/lib.
705 dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn.
706 dnl NOTE: This case is historical. It is what was done for 7.0/7.1
707 dnl but is deprecated.
708 dnl /path/to/python/executable -
709 dnl Run python-config.py with this version of python to fetch the
710 dnl compilation parameters.
711 dnl NOTE: This needn't be the real python executable.
712 dnl In a cross-compilation scenario (build != host), this could be
713 dnl a shell script that provides what python-config.py provides for
714 dnl --ldflags, --includes, --exec-prefix.
715 dnl python-executable -
716 dnl Find python-executable in $PATH, and then handle the same as
717 dnl /path/to/python/executable.
719 dnl If a python program is specified, it is used to run python-config.py and
720 dnl is passed --ldflags, --includes, --exec-prefix.
723 AS_HELP_STRING([--with-python@<:@=PYTHON@:>@], [include python support (auto/yes/no/<python-program>)]),
724 [], [with_python=auto])
725 AC_MSG_CHECKING([whether to use python])
726 AC_MSG_RESULT([$with_python])
728 if test "${with_python}" = no; then
729 AC_MSG_WARN([python support disabled; some features may be unavailable.])
732 case "${with_python}" in
734 if test -d ${with_python}; then
735 # Assume the python binary is ${with_python}/bin/python.
736 python_prog="${with_python}/bin/python"
738 # If python does not exit ${with_python}/bin, then try in
739 # ${with_python}. On Windows/MinGW, this is where the Python
741 if test ! -x "${python_prog}"; then
742 python_prog="${with_python}/python"
745 if test ! -x "${python_prog}"; then
746 # Fall back to gdb 7.0/7.1 behaviour.
748 python_prefix=${with_python}
750 elif test -x "${with_python}"; then
751 # While we can't run python compiled for $host (unless host == build),
752 # the user could write a script that provides the needed information,
753 # so we support that.
754 python_prog=${with_python}
757 AC_ERROR(invalid value for --with-python)
761 # Disallow --with-python=foo/bar.
762 AC_ERROR(invalid value for --with-python)
765 # The user has either specified auto, yes, or the name of the python
766 # program assumed to be in $PATH.
768 case "${with_python}" in
770 if test ${build} = ${host}; then
771 AC_PATH_PROG(python_prog_path, python, missing)
772 if test "${python_prog_path}" = missing; then
775 python_prog=${python_prog_path}
778 # Not much we can do except assume the cross-compiler will find the
784 # While we can't run python compiled for $host (unless host == build),
785 # the user could write a script that provides the needed information,
786 # so we support that.
787 python_prog="${with_python}"
788 AC_PATH_PROG(python_prog_path, ${python_prog}, missing)
789 if test "${python_prog_path}" = missing; then
790 AC_ERROR(unable to find python program ${python_prog})
796 if test "${python_prog}" != missing; then
797 # We have a python program to use, but it may be too old.
798 # Don't flag an error for --with-python=auto (the default).
799 have_python_config=yes
800 python_includes=`${python_prog} ${srcdir}/python/python-config.py --includes`
801 if test $? != 0; then
802 have_python_config=failed
803 if test "${with_python}" != auto; then
804 AC_ERROR(failure running python-config --includes)
807 python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags`
808 if test $? != 0; then
809 have_python_config=failed
810 if test "${with_python}" != auto; then
811 AC_ERROR(failure running python-config --ldflags)
814 python_prefix=`${python_prog} ${srcdir}/python/python-config.py --exec-prefix`
815 if test $? != 0; then
816 have_python_config=failed
817 if test "${with_python}" != auto; then
818 AC_ERROR(failure running python-config --exec-prefix)
822 # We do not have a python executable we can use to determine where
823 # to find the Python headers and libs. We cannot guess the include
824 # path from the python_prefix either, because that include path
825 # depends on the Python version. So, there is nothing much we can
826 # do except assume that the compiler will be able to find those files.
829 have_python_config=no
832 # If we have python-config, only try the configuration it provides.
833 # Otherwise fallback on the old way of trying different versions of
837 if test "${have_python_config}" = yes; then
838 # Determine the Python version by extracting "-lpython<version>"
839 # part of the python_libs. <version> is usually X.Y with X and Y
840 # being decimal numbers, but can also be XY (seen on Windows).
842 # The extraction is performed using sed with a regular expression.
843 # Initially, the regexp used was using the '?' quantifier to make
844 # the dot in the version number optional. Unfortunately, this
845 # does not work with non-GNU versions of sed because, because of
846 # what looks like a limitation (the '?' quantifier does not work
847 # with back-references). We work around this limitation by using
848 # the '*' quantifier instead. It means that, in theory, we might
849 # match unexpected version strings such as "-lpython2..7", but
850 # this seems unlikely in practice. And even if that happens,
851 # an error will be triggered later on, when checking that version
853 python_version=`echo " ${python_libs} " \
854 | sed -e 's,^.* -l\(python[[0-9]]*[[.]]*[[0-9]]*\).*$,\1,'`
855 case "${python_version}" in
857 AC_TRY_LIBPYTHON(${python_version}, have_libpython,
858 ${python_includes}, ${python_libs})
861 AC_MSG_ERROR([unable to determine python version from ${python_libs}])
864 elif test "${have_python_config}" != failed; then
865 if test "${have_libpython}" = no; then
866 AC_TRY_LIBPYTHON(python2.7, have_libpython,
867 ${python_includes}, "${python_libs} -lpython2.7")
869 if test "${have_libpython}" = no; then
870 AC_TRY_LIBPYTHON(python2.6, have_libpython,
871 ${python_includes}, "${python_libs} -lpython2.6")
873 if test ${have_libpython} = no; then
874 AC_TRY_LIBPYTHON(python2.5, have_libpython,
875 ${python_includes}, "${python_libs} -lpython2.5")
877 if test ${have_libpython} = no; then
878 AC_TRY_LIBPYTHON(python2.4, have_libpython,
879 ${python_includes}, "${python_libs} -lpython2.4")
882 if test "${have_libpython}" = python2.7 -o "${have_libpython}" = python27; then
883 AC_DEFINE(HAVE_LIBPYTHON2_7, 1, [Define if Python 2.7 is being used.])
884 elif test "${have_libpython}" = python2.6 -o "${have_libpython}" = python26; then
885 AC_DEFINE(HAVE_LIBPYTHON2_6, 1, [Define if Python 2.6 is being used.])
886 elif test "${have_libpython}" = python2.5 -o "${have_libpython}" = python25; then
887 AC_DEFINE(HAVE_LIBPYTHON2_5, 1, [Define if Python 2.5 is being used.])
888 elif test "${have_libpython}" = python2.4 -o "${have_libpython}" = python24; then
889 AC_DEFINE(HAVE_LIBPYTHON2_4, 1, [Define if Python 2.4 is being used.])
892 if test "${have_libpython}" = no; then
893 case "${with_python}" in
895 AC_MSG_ERROR([python is missing or unusable])
898 AC_MSG_WARN([python is missing or unusable; some features may be unavailable.])
901 AC_MSG_ERROR([no usable python found at ${with_python}])
905 if test -n "${python_prefix}"; then
906 AC_DEFINE_UNQUOTED(WITH_PYTHON_PATH, "${python_prefix}",
907 [Define if --with-python provides a path, either directly or via python-config.py --exec-prefix.])
908 GDB_AC_DEFINE_RELOCATABLE(PYTHON_PATH, python, ${python_prefix})
913 if test "${have_libpython}" != no; then
914 AC_DEFINE(HAVE_PYTHON, 1, [Define if Python interpreter is being linked in.])
915 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_PYTHON_OBS)"
916 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)"
917 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_PYTHON_SRCS)"
918 CONFIG_INSTALL="$CONFIG_INSTALL install-python"
919 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)"
921 # Flags needed to compile Python code (taken from python-config --cflags).
922 # We cannot call python-config directly because it will output whatever was
923 # used when compiling the Python interpreter itself, including flags which
924 # would make the python-related objects be compiled differently from the
925 # rest of GDB (e.g., -O2 and -fPIC).
926 if test "${GCC}" = yes; then
927 tentative_python_cflags="-fno-strict-aliasing -DNDEBUG -fwrapv"
930 if test "x${tentative_python_cflags}" != x; then
931 AC_MSG_CHECKING(compiler flags for python code)
932 for flag in ${tentative_python_cflags}; do
933 # Check that the compiler accepts it
934 saved_CFLAGS="$CFLAGS"
935 CFLAGS="$CFLAGS $flag"
936 AC_TRY_COMPILE([],[],PYTHON_CFLAGS="${PYTHON_CFLAGS} $flag",)
937 CFLAGS="$saved_CFLAGS"
939 AC_MSG_RESULT(${PYTHON_CFLAGS})
942 # On IRIX, type siginfo is not defined. Instead, sys/siginfo.h provides:
944 # #define siginfo __siginfo
946 # The problem is that including Python causes some XOPEN macros to be
947 # unilaterally defined, and that in turn causes _SGIAPI to evaluate
948 # to false. So, we work around this issue by defining siginfo ourself
949 # though the command-line.
951 irix*) if test "${GCC}" = yes; then
952 CPPFLAGS="$CPPFLAGS -Dsiginfo=__siginfo"
957 # Even if Python support is not compiled in, we need to have these files
959 CONFIG_OBS="$CONFIG_OBS python.o py-value.o py-prettyprint.o py-auto-load.o"
960 CONFIG_SRCS="$CONFIG_SRCS python/python.c python/py-value.c \
961 python/py-prettyprint.c python/py-auto-load.c"
963 AC_SUBST(PYTHON_CFLAGS)
964 AC_SUBST(PYTHON_CPPFLAGS)
965 AC_SUBST(PYTHON_LIBS)
967 # ------------------------- #
968 # Checks for header files. #
969 # ------------------------- #
974 # elf_hp.h is for HP/UX 64-bit shared library support.
975 # FIXME: kettenis/20030102: In most cases we include these (ctype.h, time.h)
976 # unconditionally, so what's the point in checking these?
977 AC_CHECK_HEADERS([nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \
978 thread_db.h gnu/libc-version.h signal.h stddef.h \
979 stdlib.h string.h memory.h strings.h sys/fault.h \
980 sys/file.h sys/filio.h sys/ioctl.h sys/param.h \
981 sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \
982 sys/reg.h sys/debugreg.h sys/select.h sys/syscall.h \
983 sys/types.h sys/wait.h wait.h termios.h termio.h \
984 sgtty.h unistd.h elf_hp.h ctype.h time.h locale.h])
985 AC_CHECK_HEADERS(link.h, [], [],
986 [#if HAVE_SYS_TYPES_H
987 # include <sys/types.h>
993 AC_CHECK_HEADERS(sys/proc.h, [], [],
994 [#if HAVE_SYS_PARAM_H
995 # include <sys/param.h>
998 AC_CHECK_HEADERS(sys/user.h, [], [],
999 [#if HAVE_SYS_PARAM_H
1000 # include <sys/param.h>
1004 # On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash
1005 # between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
1006 # think that we don't have <curses.h> if we're using GCC.
1009 if test "$GCC" = yes; then
1010 AC_DEFINE(_MSE_INT_H, 1,
1011 [Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
1012 Solaris 2.[789] when using GCC. ])
1015 AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h ncurses/term.h)
1016 AC_CHECK_HEADERS(term.h, [], [],
1018 # include <curses.h>
1022 # ------------------------- #
1023 # Checks for declarations. #
1024 # ------------------------- #
1026 AC_CHECK_DECLS([free, malloc, realloc, strerror, strstr, getopt,
1027 snprintf, vsnprintf])
1030 # ----------------------- #
1031 # Checks for structures. #
1032 # ----------------------- #
1034 AC_CHECK_MEMBERS([struct stat.st_blocks, struct stat.st_blksize])
1036 # ------------------ #
1037 # Checks for types. #
1038 # ------------------ #
1041 AC_CHECK_TYPES(socklen_t, [], [],
1042 [#include <sys/types.h>
1043 #include <sys/socket.h>
1046 # ------------------------------------- #
1047 # Checks for compiler characteristics. #
1048 # ------------------------------------- #
1054 # ------------------------------ #
1055 # Checks for library functions. #
1056 # ------------------------------ #
1061 AC_CHECK_FUNCS([canonicalize_file_name realpath getrusage getuid \
1062 getgid pipe poll pread64 resize_term sbrk setpgid setpgrp setsid \
1063 sigaction sigprocmask sigsetmask socketpair syscall \
1064 ttrace wborder wresize setlocale iconvlist libiconvlist btowc \
1065 setrlimit getrlimit posix_madvise waitpid])
1068 # Check the return and argument types of ptrace. No canned test for
1069 # this, so roll our own.
1070 gdb_ptrace_headers='
1071 #if HAVE_SYS_TYPES_H
1072 # include <sys/types.h>
1074 #if HAVE_SYS_PTRACE_H
1075 # include <sys/ptrace.h>
1078 # include <unistd.h>
1081 # There is no point in checking if we don't have a prototype.
1082 AC_CHECK_DECLS(ptrace, [], [
1083 : ${gdb_cv_func_ptrace_ret='int'}
1084 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
1085 ], $gdb_ptrace_headers)
1086 # Check return type. Varargs (used on GNU/Linux) conflict with the
1087 # empty argument list, so check for that explicitly.
1088 AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret,
1089 AC_TRY_COMPILE($gdb_ptrace_headers,
1090 [extern long ptrace (enum __ptrace_request, ...);],
1091 gdb_cv_func_ptrace_ret='long',
1092 AC_TRY_COMPILE($gdb_ptrace_headers,
1093 [extern int ptrace ();],
1094 gdb_cv_func_ptrace_ret='int',
1095 gdb_cv_func_ptrace_ret='long')))
1096 AC_DEFINE_UNQUOTED(PTRACE_TYPE_RET, $gdb_cv_func_ptrace_ret,
1097 [Define as the return type of ptrace.])
1098 # Check argument types.
1099 AC_CACHE_CHECK([types of arguments for ptrace], gdb_cv_func_ptrace_args, [
1100 AC_TRY_COMPILE($gdb_ptrace_headers,
1101 [extern long ptrace (enum __ptrace_request, ...);],
1102 [gdb_cv_func_ptrace_args='int,int,long,long'],[
1103 for gdb_arg1 in 'int' 'long'; do
1104 for gdb_arg2 in 'pid_t' 'int' 'long'; do
1105 for gdb_arg3 in 'int *' 'caddr_t' 'int' 'long' 'void *'; do
1106 for gdb_arg4 in 'int' 'long'; do
1107 AC_TRY_COMPILE($gdb_ptrace_headers, [
1108 extern $gdb_cv_func_ptrace_ret
1109 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4);
1110 ], [gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4";
1112 for gdb_arg5 in 'int *' 'int' 'long'; do
1113 AC_TRY_COMPILE($gdb_ptrace_headers, [
1114 extern $gdb_cv_func_ptrace_ret
1115 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4, $gdb_arg5);
1117 gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4,$gdb_arg5";
1124 # Provide a safe default value.
1125 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
1127 ac_save_IFS=$IFS; IFS=','
1128 set dummy `echo "$gdb_cv_func_ptrace_args" | sed 's/\*/\*/g'`
1131 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG3, $[3],
1132 [Define to the type of arg 3 for ptrace.])
1133 if test -n "$[5]"; then
1134 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG5, $[5],
1135 [Define to the type of arg 5 for ptrace.])
1138 dnl AC_FUNC_SETPGRP does not work when cross compiling
1139 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
1140 if test "$cross_compiling" = no; then
1143 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
1147 if (setpgrp(1,1) == -1)
1151 ], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
1152 if test $ac_cv_func_setpgrp_void = yes; then
1153 AC_DEFINE(SETPGRP_VOID, 1)
1157 # Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't do
1158 # since sigsetjmp might only be defined as a macro.
1159 AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp,
1162 ], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);],
1163 gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)])
1164 if test $gdb_cv_func_sigsetjmp = yes; then
1165 AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ])
1168 # Assume we'll default to using the included libiberty regex.
1169 gdb_use_included_regex=yes
1171 # However, if the system regex is GNU regex, then default to *not*
1172 # using the included regex.
1175 [gdb_cv_have_gnu_regex],
1177 [#include <gnu-versions.h>],
1178 [#define REGEX_INTERFACE_VERSION 1
1179 #if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION
1180 # error "Version mismatch"
1182 gdb_cv_have_gnu_regex=yes,
1183 gdb_cv_have_gnu_regex=no)])
1184 if test $gdb_cv_have_gnu_regex = yes; then
1185 gdb_use_included_regex=no
1188 AC_ARG_WITH(included-regex,
1189 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)]),
1190 gdb_with_regex=$withval,
1191 gdb_with_regex=$gdb_use_included_regex)
1192 if test "$gdb_with_regex" = yes; then
1193 AC_DEFINE(USE_INCLUDED_REGEX, 1,
1194 [Define to 1 if the regex included in libiberty should be used.])
1197 # Check if <sys/proc.h> defines `struct thread' with a td_pcb member.
1198 AC_CHECK_MEMBERS([struct thread.td_pcb], [], [],
1199 [#include <sys/param.h>
1200 #include <sys/proc.h>
1203 # See if <sys/lwp.h> defines `struct lwp`.
1204 AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp,
1205 [AC_TRY_COMPILE([#include <sys/param.h>
1206 #include <sys/lwp.h>], [struct lwp l;],
1207 gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)])
1208 if test $gdb_cv_struct_lwp = yes; then
1209 AC_DEFINE(HAVE_STRUCT_LWP, 1,
1210 [Define to 1 if your system has struct lwp.])
1213 # See if <machine/reg.h> degines `struct reg'.
1214 AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg,
1215 [AC_TRY_COMPILE([#include <sys/types.h>
1216 #include <machine/reg.h>], [struct reg r;],
1217 gdb_cv_struct_reg=yes, gdb_cv_struct_reg=no)])
1218 if test $gdb_cv_struct_reg = yes; then
1219 AC_DEFINE(HAVE_STRUCT_REG, 1,
1220 [Define to 1 if your system has struct reg in <machine/reg.h>.])
1223 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
1224 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
1225 AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [],
1226 [#include <machine/reg.h>])
1228 # See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
1229 AC_MSG_CHECKING(for PTRACE_GETREGS)
1230 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
1231 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
1233 [gdb_cv_have_ptrace_getregs=yes],
1234 [gdb_cv_have_ptrace_getregs=no])])
1235 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
1236 if test $gdb_cv_have_ptrace_getregs = yes; then
1237 AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
1238 [Define if sys/ptrace.h defines the PTRACE_GETREGS request.])
1241 # See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
1242 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
1243 AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
1244 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
1245 [PTRACE_GETFPXREGS;],
1246 [gdb_cv_have_ptrace_getfpxregs=yes],
1247 [gdb_cv_have_ptrace_getfpxregs=no])])
1248 AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
1249 if test $gdb_cv_have_ptrace_getfpxregs = yes; then
1250 AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
1251 [Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.])
1254 # See if <sys/ptrace.h> provides the PT_GETDBREGS request.
1255 AC_MSG_CHECKING(for PT_GETDBREGS)
1256 AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
1257 [AC_TRY_COMPILE([#include <sys/types.h>
1258 #include <sys/ptrace.h>],
1260 [gdb_cv_have_pt_getdbregs=yes],
1261 [gdb_cv_have_pt_getdbregs=no])])
1262 AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
1263 if test $gdb_cv_have_pt_getdbregs = yes; then
1264 AC_DEFINE(HAVE_PT_GETDBREGS, 1,
1265 [Define if sys/ptrace.h defines the PT_GETDBREGS request.])
1268 # See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
1269 AC_MSG_CHECKING(for PT_GETXMMREGS)
1270 AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
1271 [AC_TRY_COMPILE([#include <sys/types.h>
1272 #include <sys/ptrace.h>],
1274 [gdb_cv_have_pt_getxmmregs=yes],
1275 [gdb_cv_have_pt_getxmmregs=no])])
1276 AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
1277 if test $gdb_cv_have_pt_getxmmregs = yes; then
1278 AC_DEFINE(HAVE_PT_GETXMMREGS, 1,
1279 [Define if sys/ptrace.h defines the PT_GETXMMREGS request.])
1282 # Detect which type of /proc is in use, such as for Unixware or Solaris.
1284 if test "${target}" = "${host}"; then
1286 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
1287 AC_DEFINE(NEW_PROC_API, 1,
1288 [Define if you want to use new multi-fd /proc interface
1289 (replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
1291 *-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]]*)
1292 AC_DEFINE(NEW_PROC_API, 1,
1293 [Define if you want to use new multi-fd /proc interface
1294 (replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
1297 # Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5.
1298 AC_DEFINE([_KMEMUSER], 1,
1299 [Define to 1 so <sys/proc.h> gets a definition of anon_hdl. Works
1300 around a <sys/proc.h> problem on IRIX 5.])
1305 if test "$ac_cv_header_sys_procfs_h" = yes; then
1306 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
1307 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
1308 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
1309 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
1310 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
1311 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
1312 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
1313 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
1314 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
1315 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
1316 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
1317 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
1318 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
1319 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
1322 dnl Check for broken prfpregset_t type
1324 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
1325 dnl prfpregset_t type (it's a typedef for the pointer to a struct
1326 dnl instead of the struct itself). We detect this here, and work
1327 dnl around it in gdb_proc_service.h.
1329 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
1330 AC_MSG_CHECKING(whether prfpregset_t type is broken)
1331 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
1332 [AC_TRY_RUN([#include <sys/procfs.h>
1335 if (sizeof (prfpregset_t) == sizeof (void *))
1339 gdb_cv_prfpregset_t_broken=no,
1340 gdb_cv_prfpregset_t_broken=yes,
1341 gdb_cv_prfpregset_t_broken=yes)])
1342 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
1343 if test $gdb_cv_prfpregset_t_broken = yes; then
1344 AC_DEFINE(PRFPREGSET_T_BROKEN, 1,
1345 [Define if the prfpregset_t type is broken.])
1349 dnl Check for PIOCSET ioctl entry
1351 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
1352 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
1353 [AC_TRY_COMPILE([#include <unistd.h>
1354 #include <sys/types.h>
1355 #include <sys/procfs.h>
1358 dummy = ioctl(0, PIOCSET, &dummy);
1360 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
1361 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
1362 if test $gdb_cv_have_procfs_piocset = yes; then
1363 AC_DEFINE(HAVE_PROCFS_PIOCSET, 1,
1364 [Define if ioctl argument PIOCSET is available.])
1368 dnl For native ports (host == target), check to see what kind of
1369 dnl legacy link.h support is needed. (See solib-legacy.c.)
1370 if test ${host} = ${target} ; then
1371 dnl Check for struct link_map with l_ members which are indicative
1372 dnl of SVR4-like shared libraries
1374 AC_MSG_CHECKING(for member l_addr in struct link_map)
1375 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members,
1376 [AC_TRY_COMPILE([#include <link.h>],
1377 [struct link_map lm; (void) lm.l_addr;],
1378 gdb_cv_have_struct_link_map_with_l_members=yes,
1379 gdb_cv_have_struct_link_map_with_l_members=no)])
1380 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members)
1381 if test $gdb_cv_have_struct_link_map_with_l_members = yes; then
1382 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS,1,
1383 [Define if <link.h> exists and defines struct link_map which has
1384 members with an ``l_'' prefix. (For Solaris, SVR4, and
1385 SVR4-like systems.)])
1388 dnl Check for struct link_map with lm_ members which are indicative
1389 dnl of SunOS-like shared libraries
1391 AC_MSG_CHECKING(for member lm_addr in struct link_map)
1392 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members,
1393 [AC_TRY_COMPILE([#include <sys/types.h>
1395 [struct link_map lm; (void) lm.lm_addr;],
1396 gdb_cv_have_struct_link_map_with_lm_members=yes,
1397 gdb_cv_have_struct_link_map_with_lm_members=no)])
1398 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members)
1399 if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then
1400 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS, 1,
1401 [Define if <link.h> exists and defines struct link_map which has
1402 members with an ``lm_'' prefix. (For SunOS.)])
1405 dnl Check for struct so_map with som_ members which are found on
1406 dnl some *BSD systems.
1408 AC_MSG_CHECKING(for member som_addr in struct so_map)
1409 AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members,
1410 [AC_TRY_COMPILE([#include <sys/types.h>
1415 [struct so_map lm; (void) lm.som_addr;],
1416 gdb_cv_have_struct_so_map_with_som_members=yes,
1417 gdb_cv_have_struct_so_map_with_som_members=no)])
1418 AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members)
1419 if test $gdb_cv_have_struct_so_map_with_som_members = yes; then
1420 AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS, 1,
1421 [Define if <link.h> exists and defines a struct so_map which has
1422 members with an ``som_'' prefix. (Found on older *BSD systems.)])
1425 dnl Check for struct link_map32 type, which allows a 64-bit Solaris
1426 dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries.
1428 AC_MSG_CHECKING(for struct link_map32 in sys/link.h)
1429 AC_CACHE_VAL(gdb_cv_have_struct_link_map32,
1430 [AC_TRY_COMPILE([#define _SYSCALL32
1431 #include <sys/link.h>], [struct link_map32 l;],
1432 gdb_cv_have_struct_link_map32=yes,
1433 gdb_cv_have_struct_link_map32=no)])
1434 AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
1435 if test $gdb_cv_have_struct_link_map32 = yes; then
1436 AC_DEFINE(HAVE_STRUCT_LINK_MAP32, 1,
1437 [Define if <sys/link.h> has struct link_map32])
1438 AC_DEFINE(_SYSCALL32, 1,
1439 [Define if <sys/link.h> has link_map32 (solaris sparc-64 target)])
1443 # Check if the compiler supports the `long long' type.
1445 AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long,
1446 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1447 [[extern long long foo;]],
1448 [[switch (foo & 2) { case 0: return 1; }]])],
1449 gdb_cv_c_long_long=yes,
1450 gdb_cv_c_long_long=no)])
1451 if test $gdb_cv_c_long_long = yes; then
1452 AC_DEFINE(CC_HAS_LONG_LONG, 1,
1453 [Define to 1 if the compiler supports long long.])
1456 # Check if the compiler and runtime support printing long longs.
1458 AC_CACHE_CHECK([for long long support in printf],
1459 gdb_cv_printf_has_long_long,
1460 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1463 l = (l << 16) + 0x0123;
1464 l = (l << 16) + 0x4567;
1465 l = (l << 16) + 0x89ab;
1466 l = (l << 16) + 0xcdef;
1467 sprintf (buf, "0x%016llx", l);
1468 return (strcmp ("0x0123456789abcdef", buf));]])],
1469 gdb_cv_printf_has_long_long=yes,
1470 gdb_cv_printf_has_long_long=no,
1471 gdb_cv_printf_has_long_long=no)])
1472 if test $gdb_cv_printf_has_long_long = yes; then
1473 AC_DEFINE(PRINTF_HAS_LONG_LONG, 1,
1474 [Define to 1 if the "%ll" format works to print long longs.])
1477 # Check if the compiler and runtime support printing decfloats.
1479 AC_CACHE_CHECK([for decfloat support in printf],
1480 gdb_cv_printf_has_decfloat,
1481 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1483 _Decimal32 d32 = 1.2345df;
1484 _Decimal64 d64 = 1.2345dd;
1485 _Decimal128 d128 = 1.2345dl;
1486 sprintf (buf, "Decimal32: %H\nDecimal64: %D\nDecimal128: %DD", d32, d64, d128);
1487 return (strcmp ("Decimal32: 1.2345\nDecimal64: 1.2345\nDecimal128: 1.2345", buf));]])],
1488 gdb_cv_printf_has_decfloat=yes,
1489 gdb_cv_printf_has_decfloat=no,
1490 gdb_cv_printf_has_decfloat=no)])
1491 if test $gdb_cv_printf_has_decfloat = yes; then
1492 AC_DEFINE(PRINTF_HAS_DECFLOAT, 1,
1493 [Define to 1 if the "%H, %D and %DD" formats work to print decfloats.])
1496 # Check if the compiler supports the `long double' type. We can't use
1497 # AC_C_LONG_DOUBLE because that one does additional checks on the
1498 # constants defined in <float.h> that fail on some systems,
1499 # e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6.
1501 AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double,
1502 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])],
1503 gdb_cv_c_long_double=yes,
1504 gdb_cv_c_long_double=no)])
1505 if test $gdb_cv_c_long_double = yes; then
1506 AC_DEFINE(HAVE_LONG_DOUBLE, 1,
1507 [Define to 1 if the compiler supports long double.])
1510 # Check if the compiler and runtime support printing long doubles.
1512 AC_CACHE_CHECK([for long double support in printf],
1513 gdb_cv_printf_has_long_double,
1514 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1516 long double f = 3.141592653;
1517 sprintf (buf, "%Lg", f);
1518 return (strncmp ("3.14159", buf, 7));]])],
1519 gdb_cv_printf_has_long_double=yes,
1520 gdb_cv_printf_has_long_double=no,
1521 gdb_cv_printf_has_long_double=no)])
1522 if test $gdb_cv_printf_has_long_double = yes; then
1523 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1,
1524 [Define to 1 if the "%Lg" format works to print long doubles.])
1527 # Check if the compiler and runtime support scanning long doubles.
1529 AC_CACHE_CHECK([for long double support in scanf],
1530 gdb_cv_scanf_has_long_double,
1531 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
1532 [[#include <stdio.h>]],
1533 [[char *buf = "3.141592653";
1535 sscanf (buf, "%Lg", &f);
1536 return !(f > 3.14159 && f < 3.14160);]])],
1537 gdb_cv_scanf_has_long_double=yes,
1538 gdb_cv_scanf_has_long_double=no,
1539 gdb_cv_scanf_has_long_double=no)])
1540 if test $gdb_cv_scanf_has_long_double = yes; then
1541 AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1,
1542 [Define to 1 if the "%Lg" format works to scan long doubles.])
1547 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
1548 SAVE_LDFLAGS=$LDFLAGS
1551 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
1552 *) gdb_cv_bigtoc=-bbigtoc ;;
1555 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
1556 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
1557 LDFLAGS="${SAVE_LDFLAGS}"
1559 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
1563 AC_MSG_CHECKING(for the dynamic export flag)
1565 if test "${gdb_native}" = yes; then
1566 # The dynamically loaded libthread_db needs access to symbols in the gdb
1567 # executable. Older GNU ld supports --export-dynamic but --dynamic-list
1568 # may not be supported there.
1569 old_LDFLAGS="$LDFLAGS"
1570 # Older GNU ld supports --export-dynamic but --dynamic-list it does not.
1571 RDYNAMIC="-Wl,--dynamic-list=${srcdir}/proc-service.list"
1572 LDFLAGS="$LDFLAGS $RDYNAMIC"
1573 if test "${have_libpython}" = no; then
1574 AC_TRY_LINK([], [], [dynamic_list=true])
1576 # Workaround http://bugs.python.org/issue4434 where static
1577 # libpythonX.Y.a would get its symbols required for
1578 # pythonX.Y/lib-dynload/*.so modules hidden by -Wl,--dynamic-list.
1579 # Problem does not happen for the recommended libpythonX.Y.so linkage.
1580 old_CFLAGS="$CFLAGS"
1581 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
1584 [#include "]${have_libpython}[/Python.h"],
1587 err = PyRun_SimpleString ("import itertools\n");
1589 return err == 0 ? 0 : 1;]),
1590 [dynamic_list=true], [], [true])
1591 CFLAGS="$old_CFLAGS"
1593 LDFLAGS="$old_LDFLAGS"
1595 if $dynamic_list; then
1596 found="-Wl,--dynamic-list"
1597 RDYNAMIC='-Wl,--dynamic-list=$(srcdir)/proc-service.list'
1600 RDYNAMIC="-rdynamic"
1603 AC_MSG_RESULT($found)
1605 dnl For certain native configurations, we need to check whether thread
1606 dnl support can be built in or not.
1608 dnl Note that we only want this if we are both native (host == target),
1609 dnl and not doing a canadian cross build (build == host).
1611 if test ${build} = ${host} -a ${host} = ${target} ; then
1614 # See if thread_db library is around for Solaris thread debugging.
1615 # Note that we must explicitly test for version 1 of the library
1616 # because version 0 (present on Solaris 2.4 or earlier) doesn't have
1618 AC_MSG_CHECKING(for Solaris thread debugging library)
1619 if test -f /usr/lib/libthread_db.so.1 ; then
1621 AC_DEFINE(HAVE_THREAD_DB_LIB, 1,
1622 [Define if using Solaris thread debugging.])
1623 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
1624 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
1625 AC_CHECK_LIB(dl, dlopen)
1626 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} $RDYNAMIC"
1627 # Sun randomly tweaked the prototypes in <proc_service.h>
1629 AC_MSG_CHECKING(if <proc_service.h> is old)
1630 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
1632 #include <proc_service.h>
1634 (struct ps_prochandle*, psaddr_t, const void*, size_t);
1635 ],, gdb_cv_proc_service_is_old=no,
1636 gdb_cv_proc_service_is_old=yes)
1638 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
1639 if test $gdb_cv_proc_service_is_old = yes; then
1640 AC_DEFINE(PROC_SERVICE_IS_OLD, 1,
1641 [Define if <proc_service.h> on solaris uses int instead of
1642 size_t, and assorted other type changes.])
1649 AC_MSG_CHECKING(for AiX thread debugging library)
1650 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
1651 [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
1652 [#ifndef PTHDB_VERSION_3
1655 gdb_cv_have_aix_thread_debug=yes,
1656 gdb_cv_have_aix_thread_debug=no)])
1657 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
1658 if test $gdb_cv_have_aix_thread_debug = yes; then
1659 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
1660 CONFIG_OBS="${CONFIG_OBS} aix-thread.o"
1661 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
1663 # Older versions of AIX do not provide the declaration for
1664 # the getthrds function (it appears that it was introduced
1666 AC_CHECK_DECLS(getthrds, [], [], [[#include <procinfo.h>]])
1670 AC_SUBST(CONFIG_LDFLAGS)
1673 dnl See if we have a thread_db header file that has TD_NOTALLOC and
1674 dnl other error codes.
1675 if test "x$ac_cv_header_thread_db_h" = "xyes"; then
1676 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
1677 gdb_cv_thread_db_h_has_td_notalloc,
1679 [#include <thread_db.h>],
1680 [int i = TD_NOTALLOC;],
1681 gdb_cv_thread_db_h_has_td_notalloc=yes,
1682 gdb_cv_thread_db_h_has_td_notalloc=no
1685 AC_CACHE_CHECK([whether <thread_db.h> has TD_VERSION],
1686 gdb_cv_thread_db_h_has_td_version,
1688 [#include <thread_db.h>],
1689 [int i = TD_VERSION;],
1690 gdb_cv_thread_db_h_has_td_version=yes,
1691 gdb_cv_thread_db_h_has_td_version=no
1694 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTLS],
1695 gdb_cv_thread_db_h_has_td_notls,
1697 [#include <thread_db.h>],
1698 [int i = TD_NOTLS;],
1699 gdb_cv_thread_db_h_has_td_notls=yes,
1700 gdb_cv_thread_db_h_has_td_notls=no
1704 if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
1705 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
1706 [Define if <thread_db.h> has the TD_NOTALLOC error code.])
1708 if test "x$gdb_cv_thread_db_h_has_td_version" = "xyes"; then
1709 AC_DEFINE(THREAD_DB_HAS_TD_VERSION, 1,
1710 [Define if <thread_db.h> has the TD_VERSION error code.])
1712 if test "x$gdb_cv_thread_db_h_has_td_notls" = "xyes"; then
1713 AC_DEFINE(THREAD_DB_HAS_TD_NOTLS, 1,
1714 [Define if <thread_db.h> has the TD_NOTLS error code.])
1717 dnl See if we have a sys/syscall header file that has __NR_tkill.
1718 if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then
1719 AC_CACHE_CHECK([whether <sys/syscall.h> has __NR_tkill],
1720 gdb_cv_sys_syscall_h_has_tkill,
1722 [#include <sys/syscall.h>],
1723 [int i = __NR_tkill;],
1724 gdb_cv_sys_syscall_h_has_tkill=yes,
1725 gdb_cv_sys_syscall_h_has_tkill=no
1729 dnl See if we can issue tkill syscall.
1730 if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes" && test "x$ac_cv_func_syscall" = "xyes"; then
1731 AC_DEFINE(HAVE_TKILL_SYSCALL, 1, [Define if you support the tkill syscall.])
1734 dnl Check if we can disable the virtual address space randomization.
1735 dnl The functionality of setarch -R.
1736 AC_CHECK_DECLS([ADDR_NO_RANDOMIZE],,, [#include <sys/personality.h>])
1737 define([PERSONALITY_TEST], [AC_LANG_PROGRAM([#include <sys/personality.h>], [
1738 # if !HAVE_DECL_ADDR_NO_RANDOMIZE
1739 # define ADDR_NO_RANDOMIZE 0x0040000
1741 /* Test the flag could be set and stays set. */
1742 personality (personality (0xffffffff) | ADDR_NO_RANDOMIZE);
1743 if (!(personality (personality (0xffffffff)) & ADDR_NO_RANDOMIZE))
1745 AC_RUN_IFELSE([PERSONALITY_TEST],
1746 [have_personality=true],
1747 [have_personality=false],
1748 [AC_LINK_IFELSE([PERSONALITY_TEST],
1749 [have_personality=true],
1750 [have_personality=false])])
1751 if $have_personality
1753 AC_DEFINE([HAVE_PERSONALITY], 1,
1754 [Define if you support the personality syscall.])
1757 dnl Handle optional features that can be enabled.
1759 target_sysroot_reloc=0
1760 AC_ARG_WITH(sysroot,
1761 AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], [search for usr/lib et al within DIR]),
1763 case ${with_sysroot} in
1764 yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
1765 *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
1768 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
1770 if test "x$prefix" = xNONE; then
1771 test_prefix=/usr/local
1775 if test "x$exec_prefix" = xNONE || test "x$exec_prefix" = 'x${prefix}'; then
1776 test_exec_prefix=$test_prefix
1778 test_exec_prefix=$exec_prefix
1780 case ${TARGET_SYSTEM_ROOT} in
1781 "${test_prefix}"|"${test_prefix}/"*|\
1782 "${test_exec_prefix}"|"${test_exec_prefix}/"*|\
1783 '${prefix}'|'${prefix}/'*|\
1784 '${exec_prefix}'|'${exec_prefix}/'*)
1785 target_sysroot_reloc=1
1790 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"'
1792 TARGET_SYSTEM_ROOT_DEFINE="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE=$target_sysroot_reloc"
1793 AC_SUBST(TARGET_SYSTEM_ROOT)
1794 AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
1796 GDB_AC_WITH_DIR(SYSTEM_GDBINIT, system-gdbinit,
1797 [automatically load a system-wide gdbinit file],
1800 AC_ARG_ENABLE(werror,
1801 AS_HELP_STRING([--enable-werror], [treat compile warnings as errors]),
1802 [case "${enableval}" in
1803 yes | y) ERROR_ON_WARNING="yes" ;;
1804 no | n) ERROR_ON_WARNING="no" ;;
1805 *) AC_MSG_ERROR(bad value ${enableval} for --enable-werror) ;;
1808 # Enable -Werror by default when using gcc
1809 if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then
1810 ERROR_ON_WARNING=yes
1814 if test "${ERROR_ON_WARNING}" = yes ; then
1815 WERROR_CFLAGS="-Werror"
1818 # The entries after -Wno-pointer-sign are disabled warnings which may
1819 # be enabled in the future, which can not currently be used to build
1821 # NOTE: If you change this list, remember to update
1822 # gdb/doc/gdbint.texinfo.
1823 build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \
1824 -Wformat-nonliteral -Wno-pointer-sign \
1825 -Wno-unused -Wunused-value -Wunused-function \
1826 -Wno-switch -Wno-char-subscripts"
1828 # Enable -Wno-format by default when using gcc on mingw since many
1829 # GCC versions complain about %I64.
1831 *-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;;
1834 AC_ARG_ENABLE(build-warnings,
1835 AS_HELP_STRING([--enable-build-warnings], [enable build-time compiler warnings if gcc is used]),
1836 [case "${enableval}" in
1838 no) build_warnings="-w";;
1839 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1840 build_warnings="${build_warnings} ${t}";;
1841 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1842 build_warnings="${t} ${build_warnings}";;
1843 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1845 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1846 echo "Setting compiler warning flags = $build_warnings" 6>&1
1848 AC_ARG_ENABLE(gdb-build-warnings,
1849 AS_HELP_STRING([--enable-gdb-build-warnings], [enable GDB specific build-time compiler warnings if gcc is used]),
1850 [case "${enableval}" in
1852 no) build_warnings="-w";;
1853 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1854 build_warnings="${build_warnings} ${t}";;
1855 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1856 build_warnings="${t} ${build_warnings}";;
1857 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1859 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1860 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
1863 if test "x${build_warnings}" != x -a "x$GCC" = xyes
1865 AC_MSG_CHECKING(compiler warning flags)
1866 # Separate out the -Werror flag as some files just cannot be
1867 # compiled with it enabled.
1868 for w in ${build_warnings}; do
1870 -Werr*) WERROR_CFLAGS=-Werror ;;
1871 *) # Check that GCC accepts it
1872 saved_CFLAGS="$CFLAGS"
1874 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
1875 CFLAGS="$saved_CFLAGS"
1878 AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS})
1880 AC_SUBST(WARN_CFLAGS)
1881 AC_SUBST(WERROR_CFLAGS)
1883 # In the Cygwin environment, we need some additional flags.
1884 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
1885 [AC_EGREP_CPP(lose, [
1886 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
1888 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
1891 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
1892 SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o"
1894 *go32* ) SER_HARDWIRE=ser-go32.o ;;
1895 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
1896 *mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;;
1898 AC_SUBST(SER_HARDWIRE)
1900 # libreadline needs libuser32.a in a cygwin environment
1902 if test x$gdb_cv_os_cygwin = xyes; then
1903 WIN32LIBS="-luser32"
1905 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
1910 # The ser-tcp.c module requires sockets.
1913 AC_DEFINE(USE_WIN32API, 1,
1914 [Define if we should use the Windows API, instead of the
1915 POSIX API. On Windows, we use the Windows API when
1916 building for MinGW, but the POSIX API when building
1918 WIN32LIBS="$WIN32LIBS -lws2_32"
1923 # Add ELF support to GDB, but only if BFD includes ELF support.
1925 OLD_LDFLAGS=$LDFLAGS
1927 CFLAGS="$CFLAGS -I${srcdir}/../include -I../bfd -I${srcdir}/../bfd"
1928 LDFLAGS="$LDFLAGS -L../bfd -L../libiberty"
1929 intl=`echo $LIBINTL | sed 's,${top_builddir}/,,g'`
1930 # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
1931 if test "$plugins" = "yes"; then
1934 LIBS="-lbfd -liberty $intl $LIBS"
1935 AC_CACHE_CHECK([for ELF support in BFD], gdb_cv_var_elf,
1937 [#include <stdlib.h>
1939 #include "elf-bfd.h"
1941 [bfd *abfd = NULL; bfd_get_elf_phdr_upper_bound (abfd); ],
1942 gdb_cv_var_elf=yes, gdb_cv_var_elf=no)])
1943 if test $gdb_cv_var_elf = yes; then
1944 CONFIG_OBS="$CONFIG_OBS elfread.o"
1945 AC_DEFINE(HAVE_ELF, 1,
1946 [Define if ELF support should be included.])
1947 # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
1948 if test "$plugins" = "yes"; then
1949 OLD_LIBS="-ldl $OLD_LIBS"
1953 LDFLAGS=$OLD_LDFLAGS
1956 # Add any host-specific objects to GDB.
1957 CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
1959 LIBGUI="../libgui/src/libgui.a"
1960 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
1962 AC_SUBST(GUI_CFLAGS_X)
1966 AC_SUBST(WIN32LDAPP)
1969 *-*-cygwin* | *-*-mingw* )
1978 if test "${enable_gdbtk}" = "yes"; then
1980 # Gdbtk must have an absolute path to srcdir in order to run
1981 # properly when not installed.
1989 # If $no_tk is nonempty, then we can't do Tk, and there is no
1990 # point to doing Tcl.
1993 if test -z "${no_tcl}" -a -z "${no_tk}"; then
1996 # Check for in-tree tcl
2003 if test "${TCL_SRC_DIR}" = "${topdir}/tcl"; then
2007 # Find Tcl private headers
2008 if test x"${intree}" = xno; then
2009 CY_AC_TCL_PRIVATE_HEADERS
2010 TCL_INCLUDE="${TCL_INCLUDE_SPEC} ${TCL_PRIVATE_INCLUDE}"
2011 TCL_LIBRARY="${TCL_LIB_SPEC}"
2014 # If building tcl in the same src tree, private headers
2015 # are not needed, but we need to be sure to use the right
2017 TCL_INCLUDE="-I${TCL_SRC_DIR}/generic"
2018 TCL_LIBRARY="${TCL_BUILD_LIB_SPEC}"
2019 TCL_DEPS="../tcl/${configdir}${TCL_LIB_FILE}"
2021 AC_SUBST(TCL_INCLUDE)
2022 AC_SUBST(TCL_LIBRARY)
2027 # Check for in-tree Tk
2029 if test "${TK_SRC_DIR}" = "${topdir}/tk"; then
2033 # Find Tk private headers
2034 if test x"${intree}" = xno; then
2035 CY_AC_TK_PRIVATE_HEADERS
2036 TK_INCLUDE="${TK_INCLUDE_SPEC} ${TK_PRIVATE_INCLUDE}"
2037 TK_LIBRARY=${TK_LIB_SPEC}
2040 TK_INCLUDE="-I${TK_SRC_DIR}/generic"
2041 TK_LIBRARY="${TK_BUILD_LIB_SPEC}"
2042 TK_DEPS="../tk/${configdir}/${TK_LIB_FILE}"
2044 AC_SUBST(TK_INCLUDE)
2045 AC_SUBST(TK_LIBRARY)
2047 AC_SUBST(TK_XINCLUDES)
2049 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
2051 # Include some libraries that Tcl and Tk want.
2052 TCL_LIBS='$(LIBGUI) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
2053 # Yes, the ordering seems wrong here. But it isn't.
2054 # TK_LIBS is the list of libraries that need to be linked
2055 # after Tcl/Tk. Note that this isn't put into LIBS. If it
2056 # were in LIBS then any link tests after this point would
2057 # try to include things like `$(LIBGUI)', which wouldn't work.
2058 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
2060 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
2061 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
2062 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
2063 CONFIG_ALL="${CONFIG_ALL} all-gdbtk"
2064 CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk"
2065 CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk"
2066 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk"
2068 if test x$gdb_cv_os_cygwin = xyes; then
2069 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
2070 WIN32LDAPP="-Wl,--subsystem,console"
2071 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
2074 AC_CONFIG_SUBDIRS(gdbtk)
2082 AC_SUBST(GDBTK_CFLAGS)
2083 AC_SUBST(GDBTK_SRC_DIR)
2087 # Unlike the sim directory, whether a simulator is linked is controlled by
2088 # presence of a gdb_sim definition in the target configure.tgt entry.
2089 # This code just checks for a few cases where we'd like to ignore those
2090 # definitions, even when they're present in the '.mt' file. These cases
2091 # are when --disable-sim is specified, or if the simulator directory is
2092 # not part of the source tree.
2095 AS_HELP_STRING([--enable-sim], [link gdb with simulator]),
2096 [echo "enable_sim = $enable_sim";
2097 echo "enableval = ${enableval}";
2098 case "${enableval}" in
2099 yes) ignore_sim=false ;;
2100 no) ignore_sim=true ;;
2101 *) ignore_sim=false ;;
2105 if test ! -d "${srcdir}/../sim"; then
2111 if test "${ignore_sim}" = "false"; then
2112 if test x"${gdb_sim}" != x ; then
2114 SIM_OBS="remote-sim.o"
2115 AC_DEFINE(WITH_SIM, 1, [Define if the simulator is being linked in.])
2121 AC_SUBST(ENABLE_CFLAGS)
2122 AC_SUBST(PROFILE_CFLAGS)
2124 AC_SUBST(CONFIG_OBS)
2125 AC_SUBST(CONFIG_DEPS)
2126 AC_SUBST(CONFIG_SRCS)
2127 AC_SUBST(CONFIG_ALL)
2128 AC_SUBST(CONFIG_CLEAN)
2129 AC_SUBST(CONFIG_INSTALL)
2130 AC_SUBST(CONFIG_UNINSTALL)
2132 # List of host floatformats.
2133 AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat])
2134 AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat])
2135 AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat])
2137 # target_subdir is used by the testsuite to find the target libraries.
2139 if test "${host}" != "${target}"; then
2140 target_subdir="${target_alias}/"
2142 AC_SUBST(target_subdir)
2145 if test "${gdb_native}" = "yes"; then
2146 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
2147 if test ! -f ${host_makefile_frag}; then
2148 AC_MSG_ERROR("*** Gdb does not support native target ${host}")
2150 frags="$frags $host_makefile_frag"
2152 host_makefile_frag=/dev/null
2155 AC_SUBST_FILE(host_makefile_frag)
2159 if test "${gdb_native}" = "yes"; then
2160 # We pick this up from the host configuration file (.mh) because we
2161 # do not have a native configuration Makefile fragment.
2162 nativefile=`sed -n '
2163 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
2164 ' ${host_makefile_frag}`
2168 if test x"${gdb_osabi}" != x ; then
2169 AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
2170 [Define to the default OS ABI for this configuration.])
2173 # Enable multi-ice-gdb-server.
2174 AC_ARG_ENABLE(multi-ice,
2175 AS_HELP_STRING([--enable-multi-ice], [build the multi-ice-gdb-server]),
2179 *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;;
2181 if test "x$enable_multi_ice" = xyes; then
2182 AC_CONFIG_SUBDIRS(multi-ice)
2185 AC_ARG_ENABLE(gdbserver,
2186 AS_HELP_STRING([--enable-gdbserver],
2187 [automatically build gdbserver (yes/no/auto, default is auto)]),
2188 [case "${enableval}" in
2190 *) AC_MSG_ERROR(bad value ${enableval} for --enable-gdbserver option) ;;
2191 esac],[enable_gdbserver=auto])
2193 # We only build gdbserver automatically in a native configuration, and
2194 # only if the user did not explicitly disable its build.
2195 if test "$gdb_native" = "yes" -a "$enable_gdbserver" != "no"; then
2196 AC_MSG_CHECKING(whether gdbserver is supported on this host)
2197 if test "x$build_gdbserver" = xyes; then
2199 AC_CONFIG_SUBDIRS(gdbserver)
2200 gdbserver_build_enabled=yes
2206 # If the user explicitly request the gdbserver to be built, verify that
2207 # we were in fact able to enable it.
2208 if test "$enable_gdbserver" = "yes" -a "$gdbserver_build_enabled" != "yes"; then
2209 AC_MSG_ERROR(Automatic gdbserver build is not supported for this configuration)
2212 # If nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link
2213 # to an empty version.
2219 if test "${nativefile}" != ""; then
2220 case "${nativefile}" in
2221 nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;;
2222 * ) GDB_NM_FILE="${nativefile}"
2224 files="${files} ${GDB_NM_FILE}"
2225 links="${links} nm.h"
2226 AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}", [nativefile])
2228 AC_SUBST(GDB_NM_FILE)
2230 AC_LINK_FILES($files, $links)
2232 dnl Check for exe extension set on certain hosts (e.g. Win32)
2235 dnl Detect the character set used by this host.
2236 dnl At the moment, we just assume it's UTF-8.
2237 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8",
2238 [Define to be a string naming the default host character set.])
2240 AC_OUTPUT(Makefile .gdbinit:gdbinit.in doc/Makefile gnulib/Makefile data-directory/Makefile,
2242 case x$CONFIG_HEADERS in
2243 xconfig.h:config.in)