1 dnl Autoconf configure script for GDB, the GNU debugger.
2 dnl Copyright (C) 1995-2012 Free Software Foundation, Inc.
4 dnl This file is part of GDB.
6 dnl This program is free software; you can redistribute it and/or modify
7 dnl it under the terms of the GNU General Public License as published by
8 dnl the Free Software Foundation; either version 3 of the License, or
9 dnl (at your option) any later version.
11 dnl This program is distributed in the hope that it will be useful,
12 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
13 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 dnl GNU General Public License for more details.
16 dnl You should have received a copy of the GNU General Public License
17 dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
19 dnl Process this file with autoconf to produce a configure script.
23 AC_CONFIG_HEADER(config.h:config.in)
27 AC_USE_SYSTEM_EXTENSIONS
35 # Dependency checking.
37 ZW_PROG_COMPILER_DEPENDENCIES([CC])
39 # Check for the 'make' the user wants to use.
40 AC_CHECK_PROGS(MAKE, make)
42 case "`$MAKE --version 2>&1 | sed 1q`" in
47 AM_CONDITIONAL(GMAKE, test "$MAKE_IS_GNU" = yes)
50 dnl List of object files and targets accumulated by configure.
62 dnl Set up for gettext.
63 ZW_GNU_GETTEXT_SISTER_DIR
65 localedir='${datadir}/locale'
68 if test x"$USE_NLS" = xyes; then
69 CONFIG_ALL="$CONFIG_ALL all-po"
70 CONFIG_CLEAN="$CONFIG_CLEAN clean-po"
71 CONFIG_INSTALL="$CONFIG_INSTALL install-po"
72 CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po"
77 # For Makefile dependencies.
79 if test x"$STDINT_H" != x; then
80 GNULIB_STDINT_H=gnulib/$STDINT_H
82 AC_SUBST(GNULIB_STDINT_H)
85 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ])
88 # Do we have a single-tree copy of texinfo? Even if we do, we can't
89 # rely on it - libiberty is built before texinfo.
90 AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
91 if test "x$MAKEINFO" = "x"; then
92 AC_ERROR([makeinfo is required for compilation])
96 AC_ERROR([makeinfo is required for compilation])
102 # --split-size=5000000 may be already in $MAKEINFO from parent configure.
103 # Re-running configure in gdb/ would lose it so ensure it stays present.
104 MAKEINFOFLAGS=${MAKEINFOFLAGS---split-size=5000000}
105 AC_SUBST(MAKEINFOFLAGS)
107 MAKEINFO_EXTRA_FLAGS=""
108 AC_CACHE_CHECK([whether $MAKEINFO supports @click], gdb_cv_have_makeinfo_click,
109 [echo '@clicksequence{a @click{} b}' >conftest.texinfo
110 if eval "$MAKEINFO conftest.texinfo >&5 2>&5"; then
111 gdb_cv_have_makeinfo_click=yes
113 gdb_cv_have_makeinfo_click=no
115 if test x"$gdb_cv_have_makeinfo_click" = xyes; then
116 MAKEINFO_EXTRA_FLAGS="$MAKEINFO_EXTRA_FLAGS -DHAVE_MAKEINFO_CLICK"
118 AC_SUBST(MAKEINFO_EXTRA_FLAGS)
120 # GDB does not use automake, but gnulib does. This line lets us
121 # generate its Makefile.in.
122 AM_INIT_AUTOMAKE(gdb, UNUSED-VERSION, [no-define])
124 GDB_AC_WITH_DIR(DEBUGDIR, separate-debug-dir,
125 [look for global separate debug info in this path @<:@LIBDIR/debug@:>@],
128 # GDB's datadir relocation
130 GDB_AC_WITH_DIR(GDB_DATADIR, gdb-datadir,
131 [look for global separate data files in this path @<:@DATADIR/gdb@:>@],
134 AC_ARG_WITH(relocated-sources,
135 AS_HELP_STRING([--with-relocated-sources=PATH], [automatically relocate this path for source files]),
136 [reloc_srcdir="${withval}"
137 AC_DEFINE_DIR(RELOC_SRCDIR, reloc_srcdir,
138 [Relocated directory for source files. ])
141 AC_CONFIG_SUBDIRS(testsuite)
143 # Check whether to support alternative target configurations
144 AC_ARG_ENABLE(targets,
145 AS_HELP_STRING([--enable-targets=TARGETS], [alternative target configurations]),
146 [case "${enableval}" in
147 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
149 no) enable_targets= ;;
150 *) enable_targets=$enableval ;;
153 # Check whether to enable 64-bit support on 32-bit hosts
154 AC_ARG_ENABLE(64-bit-bfd,
155 AS_HELP_STRING([--enable-64-bit-bfd], [64-bit support (on hosts with narrower word sizes)]),
156 [case "${enableval}" in
159 *) AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;;
160 esac],[want64=false])dnl
162 # Provide defaults for some variables set by the per-host and per-target
164 gdb_host_obs=posix-hdep.o
166 if test "${target}" = "${host}"; then
172 . $srcdir/configure.host
174 # Accumulate some settings from configure.tgt over all enabled targets
179 for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
181 if test "$targ_alias" = "all"; then
184 # Canonicalize the secondary target names.
185 result=`$ac_config_sub $targ_alias 2>/dev/null`
186 if test -n "$result"; then
192 . ${srcdir}/configure.tgt
194 AS_IF([test -z "${gdb_target_obs}"],
195 [AC_MSG_ERROR([configuration ${targ} is unsupported.])])
197 # Target-specific object files
198 for i in ${gdb_target_obs}; do
199 case " $TARGET_OBS " in
202 TARGET_OBS="$TARGET_OBS ${i}"
207 # Check whether this target needs 64-bit CORE_ADDR
208 if test x${want64} = xfalse; then
209 . ${srcdir}/../bfd/config.bfd
214 if test x${all_targets} = xtrue; then
216 # We want all 64-bit targets if we either:
217 # - run on a 64-bit host or
218 # - already require 64-bit support for some other target or
219 # - the --enable-64-bit-bfd option was supplied
220 # Otherwise we only support all 32-bit targets.
222 # NOTE: This test must be in sync with the corresponding
225 if test x${want64} = xfalse; then
226 AC_CHECK_SIZEOF(long)
227 if test "x${ac_cv_sizeof_long}" = "x8"; then
231 if test x${want64} = xtrue; then
232 TARGET_OBS='$(ALL_TARGET_OBS) $(ALL_64_TARGET_OBS)'
234 TARGET_OBS='$(ALL_TARGET_OBS)'
240 # For other settings, only the main target counts.
244 targ=$target; . ${srcdir}/configure.tgt
246 # Fetch the default architecture and default target vector from BFD.
247 targ=$target; . $srcdir/../bfd/config.bfd
249 # We only want the first architecture, so strip off the others if
250 # there is more than one.
251 targ_archs=`echo $targ_archs | sed 's/ .*//'`
253 if test "x$targ_archs" != x; then
254 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs,
255 [Define to BFD's default architecture. ])
257 if test "x$targ_defvec" != x; then
258 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec,
259 [Define to BFD's default target vector. ])
262 # The CLI cannot be disabled yet, but may be in the future.
265 AC_ARG_ENABLE(gdbcli,
266 AS_HELP_STRING([--disable-gdbcli], [disable command-line interface (CLI)]),
271 AC_MSG_ERROR([the command-line interface cannot be disabled yet]) ;;
273 AC_MSG_ERROR([bad value $enableval for --enable-gdbcli]) ;;
276 if test x"$enable_gdbcli" = xyes; then
277 if test -d $srcdir/cli; then
278 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)"
279 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)"
280 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)"
281 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)"
287 AS_HELP_STRING([--disable-gdbmi], [disable machine-interface (MI)]),
292 AC_MSG_ERROR([bad value $enableval for --enable-gdbmi]) ;;
295 if test x"$enable_gdbmi" = xyes; then
296 if test -d $srcdir/mi; then
297 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)"
298 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)"
299 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)"
300 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)"
306 AS_HELP_STRING([--enable-tui], [enable full-screen terminal user interface (TUI)]),
311 AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
312 esac],enable_tui=auto)
316 AS_HELP_STRING([--enable-gdbtk], [enable gdbtk graphical user interface (GUI)]),
321 AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;;
323 [if test -d $srcdir/gdbtk; then
328 # We unconditionally disable gdbtk tests on selected platforms.
331 AC_MSG_WARN([gdbtk isn't supported on $host; disabling])
336 AC_ARG_WITH(libunwind,
337 AS_HELP_STRING([--with-libunwind], [use libunwind frame unwinding support]),
338 [case "${withval}" in
339 yes) enable_libunwind=yes ;;
340 no) enable_libunwind=no ;;
341 *) AC_MSG_ERROR(bad value ${withval} for GDB with-libunwind option) ;;
343 AC_CHECK_HEADERS(libunwind.h libunwind-ia64.h)
344 if test x"$ac_cv_header_libunwind_h" = xyes -a x"$ac_cv_header_libunwind_ia64_h" = xyes; then
345 enable_libunwind=yes;
349 if test x"$enable_libunwind" = xyes; then
350 AC_CHECK_HEADERS(libunwind.h libunwind-ia64.h)
351 AC_DEFINE(HAVE_LIBUNWIND, 1, [Define if libunwind library is being used.])
352 CONFIG_OBS="$CONFIG_OBS libunwind-frame.o"
353 CONFIG_DEPS="$CONFIG_DEPS libunwind-frame.o"
354 CONFIG_SRCS="$CONFIG_SRCS libunwind-frame.c"
358 AC_ARG_WITH(curses, AS_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
361 if test "$opt_curses" = "yes"; then
366 AC_ARG_ENABLE(profiling,
367 AS_HELP_STRING([--enable-profiling], [enable profiling of GDB]),
372 AC_MSG_ERROR([bad value $enableval for --enable-profile]) ;;
374 [enable_profiling=no])
376 AC_CHECK_FUNCS(monstartup _mcleanup)
377 AC_CACHE_CHECK([for _etext], ac_cv_var__etext,
382 [free (&_etext);], ac_cv_var__etext=yes, ac_cv_var__etext=no)])
383 if test $ac_cv_var__etext = yes; then
384 AC_DEFINE(HAVE__ETEXT, 1,
385 [Define to 1 if your system has the _etext variable. ])
387 AC_CACHE_CHECK([for etext], ac_cv_var_etext,
392 [free (&etext);], ac_cv_var_etext=yes, ac_cv_var_etext=no)])
393 if test $ac_cv_var_etext = yes; then
394 AC_DEFINE(HAVE_ETEXT, 1,
395 [Define to 1 if your system has the etext variable. ])
397 if test "$enable_profiling" = yes ; then
398 if test $ac_cv_func_monstartup = no || test $ac_cv_func__mcleanup = no; then
399 AC_MSG_ERROR(--enable-profiling requires monstartup and _mcleanup)
403 CFLAGS="$CFLAGS $PROFILE_CFLAGS"
405 AC_CACHE_CHECK([whether $CC supports -pg], ac_cv_cc_supports_pg,
406 [AC_TRY_COMPILE([], [int x;], ac_cv_cc_supports_pg=yes,
407 ac_cv_cc_supports_pg=no)])
409 if test $ac_cv_cc_supports_pg = no; then
410 AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg)
416 ACX_PKGVERSION([GDB])
417 ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/])
418 AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description])
419 AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address])
421 # --------------------- #
422 # Checks for programs. #
423 # --------------------- #
431 AC_CHECK_TOOL(AR, ar)
432 AC_CHECK_TOOL(DLLTOOL, dlltool)
433 AC_CHECK_TOOL(WINDRES, windres)
435 # Needed for GNU/Hurd.
436 AC_CHECK_TOOL(MIG, mig)
438 # ---------------------- #
439 # Checks for libraries. #
440 # ---------------------- #
442 # We might need to link with -lm; most simulators need it.
443 AC_CHECK_LIB(m, main)
445 # We need to link with -lw to get `wctype' on Solaris before Solaris
446 # 2.6. Solaris 2.6 and beyond have this function in libc, and have a
447 # libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1
448 # is known to have this problem). Therefore we avoid libw if we can.
449 AC_CHECK_FUNC(wctype, [],
450 [AC_CHECK_LIB(w, wctype)])
452 # Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
453 AC_SEARCH_LIBS(gethostbyname, nsl)
455 # Some systems (e.g. Solaris) have `socketpair' in libsocket.
456 AC_SEARCH_LIBS(socketpair, socket)
458 # Link in zlib if we can. This allows us to read compressed debug sections.
461 # On HP/UX we may need libxpdl for dlgetmodinfo (used by solib-pa64.c).
462 AC_SEARCH_LIBS(dlgetmodinfo, [dl xpdl])
466 # GDB may fork/exec the iconv program to get the list of supported character
467 # sets. Allow the user to specify where to find it.
468 # There are several factors affecting the choice of option name:
469 # - There is already --with-libiconv-prefix but we can't use it, it specifies
470 # the build-time location of libiconv files.
471 # - The program we need to find is iconv, which comes with glibc. The user
472 # doesn't necessarily have libiconv installed. Therefore naming this
473 # --with-libiconv-foo feels wrong.
474 # - We want the path to be relocatable, but GDB_AC_DEFINE_RELOCATABLE is
475 # defined to work on directories not files (though it really doesn't know
477 # - Calling this --with-iconv-prefix is perceived to cause too much confusion
478 # with --with-libiconv-prefix.
479 # Putting these together is why the option name is --with-iconv-bin.
481 AC_ARG_WITH(iconv-bin,
482 AS_HELP_STRING([--with-iconv-bin=PATH], [specify where to find the iconv program]),
483 [iconv_bin="${withval}"
484 AC_DEFINE_UNQUOTED([ICONV_BIN], ["${iconv_bin}"],
485 [Path of directory of iconv program.])
486 GDB_AC_DEFINE_RELOCATABLE(ICONV_BIN, iconv, ${iconv_bin})
489 # On alpha-osf, it appears that libtermcap and libcurses are not compatible.
490 # There is a very specific comment in /usr/include/curses.h explaining that
491 # termcap routines built into libcurses must not be used.
493 # The symptoms we observed so far is GDB unexpectedly changing
494 # the terminal settings when tgetent is called - this is particularly
495 # visible as the output is missing carriage returns, and so rapidly
496 # becomes very hard to read.
498 # The readline configure script has already decided that libtermcap
499 # was enough for its purposes, and so decided to build readline using
500 # libtermcap. Since the TUI mode requires curses, building GDB with
501 # TUI enabled results in both libraries to be used at the same time,
502 # which is not allowed. This basically means that GDB with TUI is
503 # broken on alpha-osf.
507 if test x"$enable_tui" = xyes; then
508 AC_MSG_ERROR([Building GDB with TUI mode is not supported on this host])
510 if test x"$enable_tui" = xauto; then
516 # For the TUI, we need enhanced curses functionality.
517 if test x"$enable_tui" != xno; then
522 if test x"$prefer_curses" = xyes; then
523 # FIXME: kettenis/20040905: We prefer ncurses over the vendor-supplied
524 # curses library because the latter might not provide all the
525 # functionality we need. However, this leads to problems on systems
526 # where the linker searches /usr/local/lib, but the compiler doesn't
527 # search /usr/local/include, if ncurses is installed in /usr/local. A
528 # default installation of ncurses on alpha*-dec-osf* will lead to such
530 AC_SEARCH_LIBS(waddstr, [ncurses cursesX curses])
532 if test "$ac_cv_search_waddstr" != no; then
537 # Check whether we should enable the TUI, but only do so if we really
539 if test x"$enable_tui" != xno; then
540 if test -d $srcdir/tui; then
541 if test "$curses_found" != no; then
542 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
543 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
544 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
545 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
547 if test x"$enable_tui" = xyes; then
548 AC_MSG_ERROR([no enhanced curses library found; disable TUI])
550 AC_MSG_WARN([no enhanced curses library found; disabling TUI])
556 # Since GDB uses Readline, we need termcap functionality. In many
557 # cases this will be provided by the curses library, but some systems
558 # have a seperate termcap library, or no curses library at all.
562 if test -d $srcdir/libtermcap; then
563 LIBS="../libtermcap/libtermcap.a $LIBS"
564 ac_cv_search_tgetent="../libtermcap/libtermcap.a"
567 ac_cv_search_tgetent="none required"
570 ac_cv_search_tgetent="none required"
571 CONFIG_OBS="$CONFIG_OBS windows-termcap.o"
575 # These are the libraries checked by Readline.
576 AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses])
578 if test "$ac_cv_search_tgetent" = no; then
579 AC_MSG_ERROR([no termcap library found])
582 AC_ARG_WITH([system-readline],
583 [AS_HELP_STRING([--with-system-readline],
584 [use installed readline library])])
586 if test "$with_system_readline" = yes; then
590 READLINE_TEXI_INCFLAG=
592 READLINE='$(READLINE_DIR)/libreadline.a'
593 READLINE_DEPS='$(READLINE)'
594 READLINE_CFLAGS='-I$(READLINE_SRC)/..'
595 READLINE_TEXI_INCFLAG='-I $(READLINE_DIR)'
598 AC_SUBST(READLINE_DEPS)
599 AC_SUBST(READLINE_CFLAGS)
600 AC_SUBST(READLINE_TEXI_INCFLAG)
602 # Generate jit-reader.h
604 # This is typedeffed to GDB_CORE_ADDR in jit-reader.h
607 AC_CHECK_SIZEOF(unsigned long long)
608 AC_CHECK_SIZEOF(unsigned long)
609 AC_CHECK_SIZEOF(unsigned __int128)
611 if test "x${ac_cv_sizeof_unsigned_long}" = "x8"; then
612 TARGET_PTR="unsigned long"
613 elif test "x${ac_cv_sizeof_unsigned_long_long}" = "x8"; then
614 TARGET_PTR="unsigned long long"
615 elif test "x${ac_cv_sizeof_unsigned___int128}" = "x16"; then
616 TARGET_PTR="unsigned __int128"
618 TARGET_PTR="unsigned long"
622 AC_CONFIG_FILES([jit-reader.h:jit-reader.in])
624 AC_SEARCH_LIBS(dlopen, dl)
626 GDB_AC_WITH_DIR([JIT_READER_DIR], [jit-reader-dir],
627 [directory to load the JIT readers from],
631 AS_HELP_STRING([--with-expat], [include expat support (auto/yes/no)]),
632 [], [with_expat=auto])
633 AC_MSG_CHECKING([whether to use expat])
634 AC_MSG_RESULT([$with_expat])
636 if test "${with_expat}" = no; then
637 AC_MSG_WARN([expat support disabled; some features may be unavailable.])
640 AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"],
641 [XML_Parser p = XML_ParserCreate (0);])
642 if test "$HAVE_LIBEXPAT" != yes; then
643 if test "$with_expat" = yes; then
644 AC_MSG_ERROR([expat is missing or unusable])
646 AC_MSG_WARN([expat is missing or unusable; some features may be unavailable.])
650 LIBS="$LIBS $LIBEXPAT"
651 AC_CHECK_FUNCS(XML_StopParser)
656 dnl Utility to simplify finding libpython.
658 dnl $2 = the shell variable to assign the result to
659 dnl If libpython is found we store $version here.
660 dnl $3 = additional flags to add to CPPFLAGS
661 dnl $4 = additional flags to add to LIBS
663 AC_DEFUN([AC_TRY_LIBPYTHON],
666 define([have_libpython_var],$2)
669 AC_MSG_CHECKING([for ${version}])
670 save_CPPFLAGS=$CPPFLAGS
672 CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
673 LIBS="$LIBS $new_LIBS"
674 found_usable_python=no
675 AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "Python.h"]],
676 [[Py_Initialize ();]]),
677 [have_libpython_var=${version}
678 found_usable_python=yes
679 PYTHON_CPPFLAGS=$new_CPPFLAGS
680 PYTHON_LIBS=$new_LIBS])
681 CPPFLAGS=$save_CPPFLAGS
683 AC_MSG_RESULT([${found_usable_python}])
686 dnl There are several different values for --with-python:
688 dnl no - Don't include python support.
689 dnl yes - Include python support, error if it's missing.
690 dnl If we find python in $PATH, use it to fetch configure options,
691 dnl otherwise assume the compiler can find it with no help from us.
692 dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn.
693 dnl auto - Same as "yes", but if python is missing from the system,
694 dnl fall back to "no".
695 dnl /path/to/python/exec-prefix -
696 dnl Use the python located in this directory.
697 dnl If /path/to/python/exec-prefix/bin/python exists, use it to find
698 dnl the compilation parameters. Otherwise use
699 dnl -I/path/to/python/exec-prefix/include,
700 dnl -L/path/to/python/exec-prefix/lib.
701 dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn.
702 dnl NOTE: This case is historical. It is what was done for 7.0/7.1
703 dnl but is deprecated.
704 dnl /path/to/python/executable -
705 dnl Run python-config.py with this version of python to fetch the
706 dnl compilation parameters.
707 dnl NOTE: This needn't be the real python executable.
708 dnl In a cross-compilation scenario (build != host), this could be
709 dnl a shell script that provides what python-config.py provides for
710 dnl --ldflags, --includes, --exec-prefix.
711 dnl python-executable -
712 dnl Find python-executable in $PATH, and then handle the same as
713 dnl /path/to/python/executable.
715 dnl If a python program is specified, it is used to run python-config.py and
716 dnl is passed --ldflags, --includes, --exec-prefix.
719 AS_HELP_STRING([--with-python@<:@=PYTHON@:>@], [include python support (auto/yes/no/<python-program>)]),
720 [], [with_python=auto])
721 AC_MSG_CHECKING([whether to use python])
722 AC_MSG_RESULT([$with_python])
724 if test "${with_python}" = no; then
725 AC_MSG_WARN([python support disabled; some features may be unavailable.])
728 case "${with_python}" in
730 if test -d ${with_python}; then
731 # Assume the python binary is ${with_python}/bin/python.
732 python_prog="${with_python}/bin/python"
734 # If python does not exit ${with_python}/bin, then try in
735 # ${with_python}. On Windows/MinGW, this is where the Python
737 if test ! -x "${python_prog}"; then
738 python_prog="${with_python}/python"
741 if test ! -x "${python_prog}"; then
742 # Fall back to gdb 7.0/7.1 behaviour.
744 python_prefix=${with_python}
746 elif test -x "${with_python}"; then
747 # While we can't run python compiled for $host (unless host == build),
748 # the user could write a script that provides the needed information,
749 # so we support that.
750 python_prog=${with_python}
753 AC_ERROR(invalid value for --with-python)
757 # Disallow --with-python=foo/bar.
758 AC_ERROR(invalid value for --with-python)
761 # The user has either specified auto, yes, or the name of the python
762 # program assumed to be in $PATH.
764 case "${with_python}" in
766 if test ${build} = ${host}; then
767 AC_PATH_PROG(python_prog_path, python, missing)
768 if test "${python_prog_path}" = missing; then
771 python_prog=${python_prog_path}
774 # Not much we can do except assume the cross-compiler will find the
780 # While we can't run python compiled for $host (unless host == build),
781 # the user could write a script that provides the needed information,
782 # so we support that.
783 python_prog="${with_python}"
784 AC_PATH_PROG(python_prog_path, ${python_prog}, missing)
785 if test "${python_prog_path}" = missing; then
786 AC_ERROR(unable to find python program ${python_prog})
792 if test "${python_prog}" != missing; then
793 # We have a python program to use, but it may be too old.
794 # Don't flag an error for --with-python=auto (the default).
795 have_python_config=yes
796 python_includes=`${python_prog} ${srcdir}/python/python-config.py --includes`
797 if test $? != 0; then
798 have_python_config=failed
799 if test "${with_python}" != auto; then
800 AC_ERROR(failure running python-config --includes)
803 python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags`
804 if test $? != 0; then
805 have_python_config=failed
806 if test "${with_python}" != auto; then
807 AC_ERROR(failure running python-config --ldflags)
810 python_prefix=`${python_prog} ${srcdir}/python/python-config.py --exec-prefix`
811 if test $? != 0; then
812 have_python_config=failed
813 if test "${with_python}" != auto; then
814 AC_ERROR(failure running python-config --exec-prefix)
818 # We do not have a python executable we can use to determine where
819 # to find the Python headers and libs. We cannot guess the include
820 # path from the python_prefix either, because that include path
821 # depends on the Python version. So, there is nothing much we can
822 # do except assume that the compiler will be able to find those files.
825 have_python_config=no
828 # If we have python-config, only try the configuration it provides.
829 # Otherwise fallback on the old way of trying different versions of
833 if test "${have_python_config}" = yes; then
834 # Determine the Python version by extracting "-lpython<version>"
835 # part of the python_libs. <version> is usually X.Y with X and Y
836 # being decimal numbers, but can also be XY (seen on Windows).
838 # The extraction is performed using sed with a regular expression.
839 # Initially, the regexp used was using the '?' quantifier to make
840 # the dot in the version number optional. Unfortunately, this
841 # does not work with non-GNU versions of sed because, because of
842 # what looks like a limitation (the '?' quantifier does not work
843 # with back-references). We work around this limitation by using
844 # the '*' quantifier instead. It means that, in theory, we might
845 # match unexpected version strings such as "-lpython2..7", but
846 # this seems unlikely in practice. And even if that happens,
847 # an error will be triggered later on, when checking that version
849 python_version=`echo " ${python_libs} " \
850 | sed -e 's,^.* -l\(python[[0-9]]*[[.]]*[[0-9]]*\).*$,\1,'`
851 case "${python_version}" in
853 AC_TRY_LIBPYTHON(${python_version}, have_libpython,
854 ${python_includes}, ${python_libs})
857 AC_MSG_ERROR([unable to determine python version from ${python_libs}])
860 elif test "${have_python_config}" != failed; then
861 if test "${have_libpython}" = no; then
862 AC_TRY_LIBPYTHON(python2.7, have_libpython,
863 ${python_includes}, "${python_libs} -lpython2.7")
865 if test "${have_libpython}" = no; then
866 AC_TRY_LIBPYTHON(python2.6, have_libpython,
867 ${python_includes}, "${python_libs} -lpython2.6")
869 if test ${have_libpython} = no; then
870 AC_TRY_LIBPYTHON(python2.5, have_libpython,
871 ${python_includes}, "${python_libs} -lpython2.5")
873 if test ${have_libpython} = no; then
874 AC_TRY_LIBPYTHON(python2.4, have_libpython,
875 ${python_includes}, "${python_libs} -lpython2.4")
878 if test "${have_libpython}" = python2.7 -o "${have_libpython}" = python27; then
879 AC_DEFINE(HAVE_LIBPYTHON2_7, 1, [Define if Python 2.7 is being used.])
880 elif test "${have_libpython}" = python2.6 -o "${have_libpython}" = python26; then
881 AC_DEFINE(HAVE_LIBPYTHON2_6, 1, [Define if Python 2.6 is being used.])
882 elif test "${have_libpython}" = python2.5 -o "${have_libpython}" = python25; then
883 AC_DEFINE(HAVE_LIBPYTHON2_5, 1, [Define if Python 2.5 is being used.])
884 elif test "${have_libpython}" = python2.4 -o "${have_libpython}" = python24; then
885 AC_DEFINE(HAVE_LIBPYTHON2_4, 1, [Define if Python 2.4 is being used.])
888 if test "${have_libpython}" = no; then
889 case "${with_python}" in
891 AC_MSG_ERROR([python is missing or unusable])
894 AC_MSG_WARN([python is missing or unusable; some features may be unavailable.])
897 AC_MSG_ERROR([no usable python found at ${with_python}])
901 if test -n "${python_prefix}"; then
902 AC_DEFINE_UNQUOTED(WITH_PYTHON_PATH, "${python_prefix}",
903 [Define if --with-python provides a path, either directly or via python-config.py --exec-prefix.])
904 GDB_AC_DEFINE_RELOCATABLE(PYTHON_PATH, python, ${python_prefix})
909 if test "${have_libpython}" != no; then
910 AC_DEFINE(HAVE_PYTHON, 1, [Define if Python interpreter is being linked in.])
911 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_PYTHON_OBS)"
912 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)"
913 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_PYTHON_SRCS)"
914 CONFIG_INSTALL="$CONFIG_INSTALL install-python"
915 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)"
917 # Flags needed to compile Python code (taken from python-config --cflags).
918 # We cannot call python-config directly because it will output whatever was
919 # used when compiling the Python interpreter itself, including flags which
920 # would make the python-related objects be compiled differently from the
921 # rest of GDB (e.g., -O2 and -fPIC).
922 if test "${GCC}" = yes; then
923 tentative_python_cflags="-fno-strict-aliasing -DNDEBUG -fwrapv"
926 if test "x${tentative_python_cflags}" != x; then
927 AC_MSG_CHECKING(compiler flags for python code)
928 for flag in ${tentative_python_cflags}; do
929 # Check that the compiler accepts it
930 saved_CFLAGS="$CFLAGS"
931 CFLAGS="$CFLAGS $flag"
932 AC_TRY_COMPILE([],[],PYTHON_CFLAGS="${PYTHON_CFLAGS} $flag",)
933 CFLAGS="$saved_CFLAGS"
935 AC_MSG_RESULT(${PYTHON_CFLAGS})
938 # On IRIX, type siginfo is not defined. Instead, sys/siginfo.h provides:
940 # #define siginfo __siginfo
942 # The problem is that including Python causes some XOPEN macros to be
943 # unilaterally defined, and that in turn causes _SGIAPI to evaluate
944 # to false. So, we work around this issue by defining siginfo ourself
945 # though the command-line.
947 irix*) if test "${GCC}" = yes; then
948 CPPFLAGS="$CPPFLAGS -Dsiginfo=__siginfo"
953 # Even if Python support is not compiled in, we need to have these files
955 CONFIG_OBS="$CONFIG_OBS python.o py-value.o py-prettyprint.o py-auto-load.o"
956 CONFIG_SRCS="$CONFIG_SRCS python/python.c python/py-value.c \
957 python/py-prettyprint.c python/py-auto-load.c"
959 AC_SUBST(PYTHON_CFLAGS)
960 AC_SUBST(PYTHON_CPPFLAGS)
961 AC_SUBST(PYTHON_LIBS)
963 # ------------------------- #
964 # Checks for header files. #
965 # ------------------------- #
970 # elf_hp.h is for HP/UX 64-bit shared library support.
971 # FIXME: kettenis/20030102: In most cases we include these (ctype.h, time.h)
972 # unconditionally, so what's the point in checking these?
973 AC_CHECK_HEADERS([nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \
974 thread_db.h gnu/libc-version.h signal.h stddef.h \
975 stdlib.h string.h memory.h strings.h sys/fault.h \
976 sys/file.h sys/filio.h sys/ioctl.h sys/param.h \
977 sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \
978 sys/reg.h sys/debugreg.h sys/select.h sys/syscall.h \
979 sys/types.h sys/wait.h wait.h termios.h termio.h \
980 sgtty.h unistd.h elf_hp.h ctype.h time.h locale.h \
982 AC_CHECK_HEADERS(link.h, [], [],
983 [#if HAVE_SYS_TYPES_H
984 # include <sys/types.h>
990 AC_CHECK_HEADERS(sys/proc.h, [], [],
991 [#if HAVE_SYS_PARAM_H
992 # include <sys/param.h>
995 AC_CHECK_HEADERS(sys/user.h, [], [],
996 [#if HAVE_SYS_PARAM_H
997 # include <sys/param.h>
1001 # On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash
1002 # between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
1003 # think that we don't have <curses.h> if we're using GCC.
1006 if test "$GCC" = yes; then
1007 AC_DEFINE(_MSE_INT_H, 1,
1008 [Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
1009 Solaris 2.[789] when using GCC. ])
1012 AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h ncurses/term.h)
1013 AC_CHECK_HEADERS(term.h, [], [],
1015 # include <curses.h>
1019 # ------------------------- #
1020 # Checks for declarations. #
1021 # ------------------------- #
1023 AC_CHECK_DECLS([free, malloc, realloc, strerror, strstr, getopt,
1024 snprintf, vsnprintf])
1027 # ----------------------- #
1028 # Checks for structures. #
1029 # ----------------------- #
1031 AC_CHECK_MEMBERS([struct stat.st_blocks, struct stat.st_blksize])
1033 # ------------------ #
1034 # Checks for types. #
1035 # ------------------ #
1038 AC_CHECK_TYPES(socklen_t, [], [],
1039 [#include <sys/types.h>
1040 #include <sys/socket.h>
1043 # ------------------------------------- #
1044 # Checks for compiler characteristics. #
1045 # ------------------------------------- #
1051 # ------------------------------ #
1052 # Checks for library functions. #
1053 # ------------------------------ #
1058 AC_CHECK_FUNCS([canonicalize_file_name realpath getrusage getuid \
1059 getgid pipe poll pread64 resize_term sbrk setpgid setpgrp setsid \
1060 sigaction sigprocmask sigsetmask socketpair syscall \
1061 ttrace wborder wresize setlocale iconvlist libiconvlist btowc \
1062 setrlimit getrlimit posix_madvise waitpid])
1065 # Check the return and argument types of ptrace. No canned test for
1066 # this, so roll our own.
1067 gdb_ptrace_headers='
1068 #if HAVE_SYS_TYPES_H
1069 # include <sys/types.h>
1071 #if HAVE_SYS_PTRACE_H
1072 # include <sys/ptrace.h>
1075 # include <unistd.h>
1078 # There is no point in checking if we don't have a prototype.
1079 AC_CHECK_DECLS(ptrace, [], [
1080 : ${gdb_cv_func_ptrace_ret='int'}
1081 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
1082 ], $gdb_ptrace_headers)
1083 # Check return type. Varargs (used on GNU/Linux) conflict with the
1084 # empty argument list, so check for that explicitly.
1085 AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret,
1086 AC_TRY_COMPILE($gdb_ptrace_headers,
1087 [extern long ptrace (enum __ptrace_request, ...);],
1088 gdb_cv_func_ptrace_ret='long',
1089 AC_TRY_COMPILE($gdb_ptrace_headers,
1090 [extern int ptrace ();],
1091 gdb_cv_func_ptrace_ret='int',
1092 gdb_cv_func_ptrace_ret='long')))
1093 AC_DEFINE_UNQUOTED(PTRACE_TYPE_RET, $gdb_cv_func_ptrace_ret,
1094 [Define as the return type of ptrace.])
1095 # Check argument types.
1096 AC_CACHE_CHECK([types of arguments for ptrace], gdb_cv_func_ptrace_args, [
1097 AC_TRY_COMPILE($gdb_ptrace_headers,
1098 [extern long ptrace (enum __ptrace_request, ...);],
1099 [gdb_cv_func_ptrace_args='int,int,long,long'],[
1100 for gdb_arg1 in 'int' 'long'; do
1101 for gdb_arg2 in 'pid_t' 'int' 'long'; do
1102 for gdb_arg3 in 'int *' 'caddr_t' 'int' 'long' 'void *'; do
1103 for gdb_arg4 in 'int' 'long'; do
1104 AC_TRY_COMPILE($gdb_ptrace_headers, [
1105 extern $gdb_cv_func_ptrace_ret
1106 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4);
1107 ], [gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4";
1109 for gdb_arg5 in 'int *' 'int' 'long'; do
1110 AC_TRY_COMPILE($gdb_ptrace_headers, [
1111 extern $gdb_cv_func_ptrace_ret
1112 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4, $gdb_arg5);
1114 gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4,$gdb_arg5";
1121 # Provide a safe default value.
1122 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
1124 ac_save_IFS=$IFS; IFS=','
1125 set dummy `echo "$gdb_cv_func_ptrace_args" | sed 's/\*/\*/g'`
1128 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG3, $[3],
1129 [Define to the type of arg 3 for ptrace.])
1130 if test -n "$[5]"; then
1131 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG5, $[5],
1132 [Define to the type of arg 5 for ptrace.])
1135 dnl AC_FUNC_SETPGRP does not work when cross compiling
1136 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
1137 if test "$cross_compiling" = no; then
1140 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
1144 if (setpgrp(1,1) == -1)
1148 ], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
1149 if test $ac_cv_func_setpgrp_void = yes; then
1150 AC_DEFINE(SETPGRP_VOID, 1)
1154 # Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't do
1155 # since sigsetjmp might only be defined as a macro.
1156 AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp,
1159 ], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);],
1160 gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)])
1161 if test $gdb_cv_func_sigsetjmp = yes; then
1162 AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ])
1165 # Assume we'll default to using the included libiberty regex.
1166 gdb_use_included_regex=yes
1168 # However, if the system regex is GNU regex, then default to *not*
1169 # using the included regex.
1172 [gdb_cv_have_gnu_regex],
1174 [#include <gnu-versions.h>],
1175 [#define REGEX_INTERFACE_VERSION 1
1176 #if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION
1177 # error "Version mismatch"
1179 gdb_cv_have_gnu_regex=yes,
1180 gdb_cv_have_gnu_regex=no)])
1181 if test $gdb_cv_have_gnu_regex = yes; then
1182 gdb_use_included_regex=no
1185 AC_ARG_WITH(included-regex,
1186 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)]),
1187 gdb_with_regex=$withval,
1188 gdb_with_regex=$gdb_use_included_regex)
1189 if test "$gdb_with_regex" = yes; then
1190 AC_DEFINE(USE_INCLUDED_REGEX, 1,
1191 [Define to 1 if the regex included in libiberty should be used.])
1194 # Check if <sys/proc.h> defines `struct thread' with a td_pcb member.
1195 AC_CHECK_MEMBERS([struct thread.td_pcb], [], [],
1196 [#include <sys/param.h>
1197 #include <sys/proc.h>
1200 # See if <sys/lwp.h> defines `struct lwp`.
1201 AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp,
1202 [AC_TRY_COMPILE([#include <sys/param.h>
1203 #include <sys/lwp.h>], [struct lwp l;],
1204 gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)])
1205 if test $gdb_cv_struct_lwp = yes; then
1206 AC_DEFINE(HAVE_STRUCT_LWP, 1,
1207 [Define to 1 if your system has struct lwp.])
1210 # See if <machine/reg.h> degines `struct reg'.
1211 AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg,
1212 [AC_TRY_COMPILE([#include <sys/types.h>
1213 #include <machine/reg.h>], [struct reg r;],
1214 gdb_cv_struct_reg=yes, gdb_cv_struct_reg=no)])
1215 if test $gdb_cv_struct_reg = yes; then
1216 AC_DEFINE(HAVE_STRUCT_REG, 1,
1217 [Define to 1 if your system has struct reg in <machine/reg.h>.])
1220 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
1221 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
1222 AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [],
1223 [#include <machine/reg.h>])
1225 # See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
1226 AC_MSG_CHECKING(for PTRACE_GETREGS)
1227 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
1228 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
1230 [gdb_cv_have_ptrace_getregs=yes],
1231 [gdb_cv_have_ptrace_getregs=no])])
1232 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
1233 if test $gdb_cv_have_ptrace_getregs = yes; then
1234 AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
1235 [Define if sys/ptrace.h defines the PTRACE_GETREGS request.])
1238 # See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
1239 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
1240 AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
1241 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
1242 [PTRACE_GETFPXREGS;],
1243 [gdb_cv_have_ptrace_getfpxregs=yes],
1244 [gdb_cv_have_ptrace_getfpxregs=no])])
1245 AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
1246 if test $gdb_cv_have_ptrace_getfpxregs = yes; then
1247 AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
1248 [Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.])
1251 # See if <sys/ptrace.h> provides the PT_GETDBREGS request.
1252 AC_MSG_CHECKING(for PT_GETDBREGS)
1253 AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
1254 [AC_TRY_COMPILE([#include <sys/types.h>
1255 #include <sys/ptrace.h>],
1257 [gdb_cv_have_pt_getdbregs=yes],
1258 [gdb_cv_have_pt_getdbregs=no])])
1259 AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
1260 if test $gdb_cv_have_pt_getdbregs = yes; then
1261 AC_DEFINE(HAVE_PT_GETDBREGS, 1,
1262 [Define if sys/ptrace.h defines the PT_GETDBREGS request.])
1265 # See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
1266 AC_MSG_CHECKING(for PT_GETXMMREGS)
1267 AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
1268 [AC_TRY_COMPILE([#include <sys/types.h>
1269 #include <sys/ptrace.h>],
1271 [gdb_cv_have_pt_getxmmregs=yes],
1272 [gdb_cv_have_pt_getxmmregs=no])])
1273 AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
1274 if test $gdb_cv_have_pt_getxmmregs = yes; then
1275 AC_DEFINE(HAVE_PT_GETXMMREGS, 1,
1276 [Define if sys/ptrace.h defines the PT_GETXMMREGS request.])
1279 # Detect which type of /proc is in use, such as for Unixware or Solaris.
1281 if test "${target}" = "${host}"; then
1283 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
1284 AC_DEFINE(NEW_PROC_API, 1,
1285 [Define if you want to use new multi-fd /proc interface
1286 (replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
1288 *-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]]*)
1289 AC_DEFINE(NEW_PROC_API, 1,
1290 [Define if you want to use new multi-fd /proc interface
1291 (replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
1294 # Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5.
1295 AC_DEFINE([_KMEMUSER], 1,
1296 [Define to 1 so <sys/proc.h> gets a definition of anon_hdl. Works
1297 around a <sys/proc.h> problem on IRIX 5.])
1302 if test "$ac_cv_header_sys_procfs_h" = yes; then
1303 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
1304 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
1305 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
1306 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
1307 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
1308 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
1309 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
1310 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
1311 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
1312 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
1313 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
1314 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
1315 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
1316 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
1319 dnl Check for broken prfpregset_t type
1321 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
1322 dnl prfpregset_t type (it's a typedef for the pointer to a struct
1323 dnl instead of the struct itself). We detect this here, and work
1324 dnl around it in gdb_proc_service.h.
1326 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
1327 AC_MSG_CHECKING(whether prfpregset_t type is broken)
1328 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
1329 [AC_TRY_RUN([#include <sys/procfs.h>
1332 if (sizeof (prfpregset_t) == sizeof (void *))
1336 gdb_cv_prfpregset_t_broken=no,
1337 gdb_cv_prfpregset_t_broken=yes,
1338 gdb_cv_prfpregset_t_broken=yes)])
1339 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
1340 if test $gdb_cv_prfpregset_t_broken = yes; then
1341 AC_DEFINE(PRFPREGSET_T_BROKEN, 1,
1342 [Define if the prfpregset_t type is broken.])
1346 dnl Check for PIOCSET ioctl entry
1348 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
1349 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
1350 [AC_TRY_COMPILE([#include <unistd.h>
1351 #include <sys/types.h>
1352 #include <sys/procfs.h>
1355 dummy = ioctl(0, PIOCSET, &dummy);
1357 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
1358 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
1359 if test $gdb_cv_have_procfs_piocset = yes; then
1360 AC_DEFINE(HAVE_PROCFS_PIOCSET, 1,
1361 [Define if ioctl argument PIOCSET is available.])
1365 dnl For native ports (host == target), check to see what kind of
1366 dnl legacy link.h support is needed. (See solib-legacy.c.)
1367 if test ${host} = ${target} ; then
1368 dnl Check for struct link_map with l_ members which are indicative
1369 dnl of SVR4-like shared libraries
1371 AC_MSG_CHECKING(for member l_addr in struct link_map)
1372 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members,
1373 [AC_TRY_COMPILE([#include <link.h>],
1374 [struct link_map lm; (void) lm.l_addr;],
1375 gdb_cv_have_struct_link_map_with_l_members=yes,
1376 gdb_cv_have_struct_link_map_with_l_members=no)])
1377 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members)
1378 if test $gdb_cv_have_struct_link_map_with_l_members = yes; then
1379 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS,1,
1380 [Define if <link.h> exists and defines struct link_map which has
1381 members with an ``l_'' prefix. (For Solaris, SVR4, and
1382 SVR4-like systems.)])
1385 dnl Check for struct link_map with lm_ members which are indicative
1386 dnl of SunOS-like shared libraries
1388 AC_MSG_CHECKING(for member lm_addr in struct link_map)
1389 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members,
1390 [AC_TRY_COMPILE([#include <sys/types.h>
1392 [struct link_map lm; (void) lm.lm_addr;],
1393 gdb_cv_have_struct_link_map_with_lm_members=yes,
1394 gdb_cv_have_struct_link_map_with_lm_members=no)])
1395 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members)
1396 if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then
1397 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS, 1,
1398 [Define if <link.h> exists and defines struct link_map which has
1399 members with an ``lm_'' prefix. (For SunOS.)])
1402 dnl Check for struct so_map with som_ members which are found on
1403 dnl some *BSD systems.
1405 AC_MSG_CHECKING(for member som_addr in struct so_map)
1406 AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members,
1407 [AC_TRY_COMPILE([#include <sys/types.h>
1412 [struct so_map lm; (void) lm.som_addr;],
1413 gdb_cv_have_struct_so_map_with_som_members=yes,
1414 gdb_cv_have_struct_so_map_with_som_members=no)])
1415 AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members)
1416 if test $gdb_cv_have_struct_so_map_with_som_members = yes; then
1417 AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS, 1,
1418 [Define if <link.h> exists and defines a struct so_map which has
1419 members with an ``som_'' prefix. (Found on older *BSD systems.)])
1422 dnl Check for struct link_map32 type, which allows a 64-bit Solaris
1423 dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries.
1425 AC_MSG_CHECKING(for struct link_map32 in sys/link.h)
1426 AC_CACHE_VAL(gdb_cv_have_struct_link_map32,
1427 [AC_TRY_COMPILE([#define _SYSCALL32
1428 #include <sys/link.h>], [struct link_map32 l;],
1429 gdb_cv_have_struct_link_map32=yes,
1430 gdb_cv_have_struct_link_map32=no)])
1431 AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
1432 if test $gdb_cv_have_struct_link_map32 = yes; then
1433 AC_DEFINE(HAVE_STRUCT_LINK_MAP32, 1,
1434 [Define if <sys/link.h> has struct link_map32])
1435 AC_DEFINE(_SYSCALL32, 1,
1436 [Define if <sys/link.h> has link_map32 (solaris sparc-64 target)])
1440 # Check if the compiler supports the `long long' type.
1442 AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long,
1443 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1444 [[extern long long foo;]],
1445 [[switch (foo & 2) { case 0: return 1; }]])],
1446 gdb_cv_c_long_long=yes,
1447 gdb_cv_c_long_long=no)])
1448 if test $gdb_cv_c_long_long = yes; then
1449 AC_DEFINE(CC_HAS_LONG_LONG, 1,
1450 [Define to 1 if the compiler supports long long.])
1453 # Check if the compiler and runtime support printing long longs.
1455 AC_CACHE_CHECK([for long long support in printf],
1456 gdb_cv_printf_has_long_long,
1457 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1460 l = (l << 16) + 0x0123;
1461 l = (l << 16) + 0x4567;
1462 l = (l << 16) + 0x89ab;
1463 l = (l << 16) + 0xcdef;
1464 sprintf (buf, "0x%016llx", l);
1465 return (strcmp ("0x0123456789abcdef", buf));]])],
1466 gdb_cv_printf_has_long_long=yes,
1467 gdb_cv_printf_has_long_long=no,
1468 gdb_cv_printf_has_long_long=no)])
1469 if test $gdb_cv_printf_has_long_long = yes; then
1470 AC_DEFINE(PRINTF_HAS_LONG_LONG, 1,
1471 [Define to 1 if the "%ll" format works to print long longs.])
1474 # Check if the compiler and runtime support printing decfloats.
1476 AC_CACHE_CHECK([for decfloat support in printf],
1477 gdb_cv_printf_has_decfloat,
1478 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1480 _Decimal32 d32 = 1.2345df;
1481 _Decimal64 d64 = 1.2345dd;
1482 _Decimal128 d128 = 1.2345dl;
1483 sprintf (buf, "Decimal32: %H\nDecimal64: %D\nDecimal128: %DD", d32, d64, d128);
1484 return (strcmp ("Decimal32: 1.2345\nDecimal64: 1.2345\nDecimal128: 1.2345", buf));]])],
1485 gdb_cv_printf_has_decfloat=yes,
1486 gdb_cv_printf_has_decfloat=no,
1487 gdb_cv_printf_has_decfloat=no)])
1488 if test $gdb_cv_printf_has_decfloat = yes; then
1489 AC_DEFINE(PRINTF_HAS_DECFLOAT, 1,
1490 [Define to 1 if the "%H, %D and %DD" formats work to print decfloats.])
1493 # Check if the compiler supports the `long double' type. We can't use
1494 # AC_C_LONG_DOUBLE because that one does additional checks on the
1495 # constants defined in <float.h> that fail on some systems,
1496 # e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6.
1498 AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double,
1499 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])],
1500 gdb_cv_c_long_double=yes,
1501 gdb_cv_c_long_double=no)])
1502 if test $gdb_cv_c_long_double = yes; then
1503 AC_DEFINE(HAVE_LONG_DOUBLE, 1,
1504 [Define to 1 if the compiler supports long double.])
1507 # Check if the compiler and runtime support printing long doubles.
1509 AC_CACHE_CHECK([for long double support in printf],
1510 gdb_cv_printf_has_long_double,
1511 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1513 long double f = 3.141592653;
1514 sprintf (buf, "%Lg", f);
1515 return (strncmp ("3.14159", buf, 7));]])],
1516 gdb_cv_printf_has_long_double=yes,
1517 gdb_cv_printf_has_long_double=no,
1518 gdb_cv_printf_has_long_double=no)])
1519 if test $gdb_cv_printf_has_long_double = yes; then
1520 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1,
1521 [Define to 1 if the "%Lg" format works to print long doubles.])
1524 # Check if the compiler and runtime support scanning long doubles.
1526 AC_CACHE_CHECK([for long double support in scanf],
1527 gdb_cv_scanf_has_long_double,
1528 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
1529 [[#include <stdio.h>]],
1530 [[char *buf = "3.141592653";
1532 sscanf (buf, "%Lg", &f);
1533 return !(f > 3.14159 && f < 3.14160);]])],
1534 gdb_cv_scanf_has_long_double=yes,
1535 gdb_cv_scanf_has_long_double=no,
1536 gdb_cv_scanf_has_long_double=no)])
1537 if test $gdb_cv_scanf_has_long_double = yes; then
1538 AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1,
1539 [Define to 1 if the "%Lg" format works to scan long doubles.])
1544 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
1545 SAVE_LDFLAGS=$LDFLAGS
1548 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
1549 *) gdb_cv_bigtoc=-bbigtoc ;;
1552 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
1553 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
1554 LDFLAGS="${SAVE_LDFLAGS}"
1556 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
1560 AC_MSG_CHECKING(for the dynamic export flag)
1562 if test "${gdb_native}" = yes; then
1563 # The dynamically loaded libthread_db needs access to symbols in the gdb
1564 # executable. Older GNU ld supports --export-dynamic but --dynamic-list
1565 # may not be supported there.
1566 old_LDFLAGS="$LDFLAGS"
1567 # Older GNU ld supports --export-dynamic but --dynamic-list it does not.
1568 RDYNAMIC="-Wl,--dynamic-list=${srcdir}/proc-service.list"
1569 LDFLAGS="$LDFLAGS $RDYNAMIC"
1570 if test "${have_libpython}" = no; then
1571 AC_TRY_LINK([], [], [dynamic_list=true])
1573 # Workaround http://bugs.python.org/issue4434 where static
1574 # libpythonX.Y.a would get its symbols required for
1575 # pythonX.Y/lib-dynload/*.so modules hidden by -Wl,--dynamic-list.
1576 # Problem does not happen for the recommended libpythonX.Y.so linkage.
1577 old_CFLAGS="$CFLAGS"
1578 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
1581 [#include "]${have_libpython}[/Python.h"],
1584 err = PyRun_SimpleString ("import itertools\n");
1586 return err == 0 ? 0 : 1;]),
1587 [dynamic_list=true], [], [true])
1588 CFLAGS="$old_CFLAGS"
1590 LDFLAGS="$old_LDFLAGS"
1592 if $dynamic_list; then
1593 found="-Wl,--dynamic-list"
1594 RDYNAMIC='-Wl,--dynamic-list=$(srcdir)/proc-service.list'
1597 RDYNAMIC="-rdynamic"
1600 AC_MSG_RESULT($found)
1602 dnl For certain native configurations, we need to check whether thread
1603 dnl support can be built in or not.
1605 dnl Note that we only want this if we are both native (host == target),
1606 dnl and not doing a canadian cross build (build == host).
1608 if test ${build} = ${host} -a ${host} = ${target} ; then
1611 # See if thread_db library is around for Solaris thread debugging.
1612 # Note that we must explicitly test for version 1 of the library
1613 # because version 0 (present on Solaris 2.4 or earlier) doesn't have
1615 AC_MSG_CHECKING(for Solaris thread debugging library)
1616 if test -f /usr/lib/libthread_db.so.1 ; then
1618 AC_DEFINE(HAVE_THREAD_DB_LIB, 1,
1619 [Define if using Solaris thread debugging.])
1620 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
1621 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
1622 AC_CHECK_LIB(dl, dlopen)
1623 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} $RDYNAMIC"
1624 # Sun randomly tweaked the prototypes in <proc_service.h>
1626 AC_MSG_CHECKING(if <proc_service.h> is old)
1627 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
1629 #include <proc_service.h>
1631 (struct ps_prochandle*, psaddr_t, const void*, size_t);
1632 ],, gdb_cv_proc_service_is_old=no,
1633 gdb_cv_proc_service_is_old=yes)
1635 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
1636 if test $gdb_cv_proc_service_is_old = yes; then
1637 AC_DEFINE(PROC_SERVICE_IS_OLD, 1,
1638 [Define if <proc_service.h> on solaris uses int instead of
1639 size_t, and assorted other type changes.])
1646 AC_MSG_CHECKING(for AiX thread debugging library)
1647 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
1648 [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
1649 [#ifndef PTHDB_VERSION_3
1652 gdb_cv_have_aix_thread_debug=yes,
1653 gdb_cv_have_aix_thread_debug=no)])
1654 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
1655 if test $gdb_cv_have_aix_thread_debug = yes; then
1656 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
1657 CONFIG_OBS="${CONFIG_OBS} aix-thread.o"
1658 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
1660 # Older versions of AIX do not provide the declaration for
1661 # the getthrds function (it appears that it was introduced
1663 AC_CHECK_DECLS(getthrds, [], [], [[#include <procinfo.h>]])
1667 AC_SUBST(CONFIG_LDFLAGS)
1670 dnl See if we have a thread_db header file that has TD_NOTALLOC and
1671 dnl other error codes.
1672 if test "x$ac_cv_header_thread_db_h" = "xyes"; then
1673 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
1674 gdb_cv_thread_db_h_has_td_notalloc,
1676 [#include <thread_db.h>],
1677 [int i = TD_NOTALLOC;],
1678 gdb_cv_thread_db_h_has_td_notalloc=yes,
1679 gdb_cv_thread_db_h_has_td_notalloc=no
1682 AC_CACHE_CHECK([whether <thread_db.h> has TD_VERSION],
1683 gdb_cv_thread_db_h_has_td_version,
1685 [#include <thread_db.h>],
1686 [int i = TD_VERSION;],
1687 gdb_cv_thread_db_h_has_td_version=yes,
1688 gdb_cv_thread_db_h_has_td_version=no
1691 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTLS],
1692 gdb_cv_thread_db_h_has_td_notls,
1694 [#include <thread_db.h>],
1695 [int i = TD_NOTLS;],
1696 gdb_cv_thread_db_h_has_td_notls=yes,
1697 gdb_cv_thread_db_h_has_td_notls=no
1701 if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
1702 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
1703 [Define if <thread_db.h> has the TD_NOTALLOC error code.])
1705 if test "x$gdb_cv_thread_db_h_has_td_version" = "xyes"; then
1706 AC_DEFINE(THREAD_DB_HAS_TD_VERSION, 1,
1707 [Define if <thread_db.h> has the TD_VERSION error code.])
1709 if test "x$gdb_cv_thread_db_h_has_td_notls" = "xyes"; then
1710 AC_DEFINE(THREAD_DB_HAS_TD_NOTLS, 1,
1711 [Define if <thread_db.h> has the TD_NOTLS error code.])
1714 dnl See if we have a sys/syscall header file that has __NR_tkill.
1715 if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then
1716 AC_CACHE_CHECK([whether <sys/syscall.h> has __NR_tkill],
1717 gdb_cv_sys_syscall_h_has_tkill,
1719 [#include <sys/syscall.h>],
1720 [int i = __NR_tkill;],
1721 gdb_cv_sys_syscall_h_has_tkill=yes,
1722 gdb_cv_sys_syscall_h_has_tkill=no
1726 dnl See if we can issue tkill syscall.
1727 if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes" && test "x$ac_cv_func_syscall" = "xyes"; then
1728 AC_DEFINE(HAVE_TKILL_SYSCALL, 1, [Define if you support the tkill syscall.])
1731 dnl Check if we can disable the virtual address space randomization.
1732 dnl The functionality of setarch -R.
1733 AC_CHECK_DECLS([ADDR_NO_RANDOMIZE],,, [#include <sys/personality.h>])
1734 define([PERSONALITY_TEST], [AC_LANG_PROGRAM([#include <sys/personality.h>], [
1735 # if !HAVE_DECL_ADDR_NO_RANDOMIZE
1736 # define ADDR_NO_RANDOMIZE 0x0040000
1738 /* Test the flag could be set and stays set. */
1739 personality (personality (0xffffffff) | ADDR_NO_RANDOMIZE);
1740 if (!(personality (personality (0xffffffff)) & ADDR_NO_RANDOMIZE))
1742 AC_RUN_IFELSE([PERSONALITY_TEST],
1743 [have_personality=true],
1744 [have_personality=false],
1745 [AC_LINK_IFELSE([PERSONALITY_TEST],
1746 [have_personality=true],
1747 [have_personality=false])])
1748 if $have_personality
1750 AC_DEFINE([HAVE_PERSONALITY], 1,
1751 [Define if you support the personality syscall.])
1754 dnl Handle optional features that can be enabled.
1756 target_sysroot_reloc=0
1757 AC_ARG_WITH(sysroot,
1758 AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], [search for usr/lib et al within DIR]),
1760 case ${with_sysroot} in
1761 yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
1762 *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
1765 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
1767 if test "x$prefix" = xNONE; then
1768 test_prefix=/usr/local
1772 if test "x$exec_prefix" = xNONE || test "x$exec_prefix" = 'x${prefix}'; then
1773 test_exec_prefix=$test_prefix
1775 test_exec_prefix=$exec_prefix
1777 case ${TARGET_SYSTEM_ROOT} in
1778 "${test_prefix}"|"${test_prefix}/"*|\
1779 "${test_exec_prefix}"|"${test_exec_prefix}/"*|\
1780 '${prefix}'|'${prefix}/'*|\
1781 '${exec_prefix}'|'${exec_prefix}/'*)
1782 target_sysroot_reloc=1
1787 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"'
1789 TARGET_SYSTEM_ROOT_DEFINE="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE=$target_sysroot_reloc"
1790 AC_SUBST(TARGET_SYSTEM_ROOT)
1791 AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
1793 GDB_AC_WITH_DIR(SYSTEM_GDBINIT, system-gdbinit,
1794 [automatically load a system-wide gdbinit file],
1797 AC_ARG_ENABLE(werror,
1798 AS_HELP_STRING([--enable-werror], [treat compile warnings as errors]),
1799 [case "${enableval}" in
1800 yes | y) ERROR_ON_WARNING="yes" ;;
1801 no | n) ERROR_ON_WARNING="no" ;;
1802 *) AC_MSG_ERROR(bad value ${enableval} for --enable-werror) ;;
1805 # Enable -Werror by default when using gcc
1806 if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then
1807 ERROR_ON_WARNING=yes
1811 if test "${ERROR_ON_WARNING}" = yes ; then
1812 WERROR_CFLAGS="-Werror"
1815 # The entries after -Wno-pointer-sign are disabled warnings which may
1816 # be enabled in the future, which can not currently be used to build
1818 # NOTE: If you change this list, remember to update
1819 # gdb/doc/gdbint.texinfo.
1820 build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \
1821 -Wformat-nonliteral -Wno-pointer-sign \
1822 -Wno-unused -Wunused-value -Wunused-function \
1823 -Wno-switch -Wno-char-subscripts"
1825 # Enable -Wno-format by default when using gcc on mingw since many
1826 # GCC versions complain about %I64.
1828 *-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;;
1831 AC_ARG_ENABLE(build-warnings,
1832 AS_HELP_STRING([--enable-build-warnings], [enable build-time compiler warnings if gcc is used]),
1833 [case "${enableval}" in
1835 no) build_warnings="-w";;
1836 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1837 build_warnings="${build_warnings} ${t}";;
1838 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1839 build_warnings="${t} ${build_warnings}";;
1840 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1842 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1843 echo "Setting compiler warning flags = $build_warnings" 6>&1
1845 AC_ARG_ENABLE(gdb-build-warnings,
1846 AS_HELP_STRING([--enable-gdb-build-warnings], [enable GDB specific build-time compiler warnings if gcc is used]),
1847 [case "${enableval}" in
1849 no) build_warnings="-w";;
1850 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1851 build_warnings="${build_warnings} ${t}";;
1852 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1853 build_warnings="${t} ${build_warnings}";;
1854 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1856 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1857 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
1860 if test "x${build_warnings}" != x -a "x$GCC" = xyes
1862 AC_MSG_CHECKING(compiler warning flags)
1863 # Separate out the -Werror flag as some files just cannot be
1864 # compiled with it enabled.
1865 for w in ${build_warnings}; do
1867 -Werr*) WERROR_CFLAGS=-Werror ;;
1868 *) # Check that GCC accepts it
1869 saved_CFLAGS="$CFLAGS"
1871 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
1872 CFLAGS="$saved_CFLAGS"
1875 AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS})
1877 AC_SUBST(WARN_CFLAGS)
1878 AC_SUBST(WERROR_CFLAGS)
1880 # In the Cygwin environment, we need some additional flags.
1881 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
1882 [AC_EGREP_CPP(lose, [
1883 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
1885 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
1888 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
1889 SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o"
1891 *go32* ) SER_HARDWIRE=ser-go32.o ;;
1892 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
1893 *mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;;
1895 AC_SUBST(SER_HARDWIRE)
1897 # libreadline needs libuser32.a in a cygwin environment
1899 if test x$gdb_cv_os_cygwin = xyes; then
1900 WIN32LIBS="-luser32"
1902 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
1907 # The ser-tcp.c module requires sockets.
1910 AC_DEFINE(USE_WIN32API, 1,
1911 [Define if we should use the Windows API, instead of the
1912 POSIX API. On Windows, we use the Windows API when
1913 building for MinGW, but the POSIX API when building
1915 WIN32LIBS="$WIN32LIBS -lws2_32"
1920 # Add ELF support to GDB, but only if BFD includes ELF support.
1922 OLD_LDFLAGS=$LDFLAGS
1924 CFLAGS="$CFLAGS -I${srcdir}/../include -I../bfd -I${srcdir}/../bfd"
1925 LDFLAGS="$LDFLAGS -L../bfd -L../libiberty"
1926 intl=`echo $LIBINTL | sed 's,${top_builddir}/,,g'`
1927 # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
1928 if test "$plugins" = "yes"; then
1931 LIBS="-lbfd -liberty $intl $LIBS"
1932 AC_CACHE_CHECK([for ELF support in BFD], gdb_cv_var_elf,
1934 [#include <stdlib.h>
1936 #include "elf-bfd.h"
1938 [bfd *abfd = NULL; bfd_get_elf_phdr_upper_bound (abfd); ],
1939 gdb_cv_var_elf=yes, gdb_cv_var_elf=no)])
1940 if test $gdb_cv_var_elf = yes; then
1941 CONFIG_OBS="$CONFIG_OBS elfread.o"
1942 AC_DEFINE(HAVE_ELF, 1,
1943 [Define if ELF support should be included.])
1944 # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
1945 if test "$plugins" = "yes"; then
1946 OLD_LIBS="-ldl $OLD_LIBS"
1950 LDFLAGS=$OLD_LDFLAGS
1953 # Add any host-specific objects to GDB.
1954 CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
1956 LIBGUI="../libgui/src/libgui.a"
1957 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
1959 AC_SUBST(GUI_CFLAGS_X)
1963 AC_SUBST(WIN32LDAPP)
1966 *-*-cygwin* | *-*-mingw* )
1975 if test "${enable_gdbtk}" = "yes"; then
1977 # Gdbtk must have an absolute path to srcdir in order to run
1978 # properly when not installed.
1986 # If $no_tk is nonempty, then we can't do Tk, and there is no
1987 # point to doing Tcl.
1990 if test -z "${no_tcl}" -a -z "${no_tk}"; then
1993 # Check for in-tree tcl
2000 if test "${TCL_SRC_DIR}" = "${topdir}/tcl"; then
2004 # Find Tcl private headers
2005 if test x"${intree}" = xno; then
2006 CY_AC_TCL_PRIVATE_HEADERS
2007 TCL_INCLUDE="${TCL_INCLUDE_SPEC} ${TCL_PRIVATE_INCLUDE}"
2008 TCL_LIBRARY="${TCL_LIB_SPEC}"
2011 # If building tcl in the same src tree, private headers
2012 # are not needed, but we need to be sure to use the right
2014 TCL_INCLUDE="-I${TCL_SRC_DIR}/generic"
2015 TCL_LIBRARY="${TCL_BUILD_LIB_SPEC}"
2016 TCL_DEPS="../tcl/${configdir}${TCL_LIB_FILE}"
2018 AC_SUBST(TCL_INCLUDE)
2019 AC_SUBST(TCL_LIBRARY)
2024 # Check for in-tree Tk
2026 if test "${TK_SRC_DIR}" = "${topdir}/tk"; then
2030 # Find Tk private headers
2031 if test x"${intree}" = xno; then
2032 CY_AC_TK_PRIVATE_HEADERS
2033 TK_INCLUDE="${TK_INCLUDE_SPEC} ${TK_PRIVATE_INCLUDE}"
2034 TK_LIBRARY=${TK_LIB_SPEC}
2037 TK_INCLUDE="-I${TK_SRC_DIR}/generic"
2038 TK_LIBRARY="${TK_BUILD_LIB_SPEC}"
2039 TK_DEPS="../tk/${configdir}/${TK_LIB_FILE}"
2041 AC_SUBST(TK_INCLUDE)
2042 AC_SUBST(TK_LIBRARY)
2044 AC_SUBST(TK_XINCLUDES)
2046 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
2048 # Include some libraries that Tcl and Tk want.
2049 TCL_LIBS='$(LIBGUI) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
2050 # Yes, the ordering seems wrong here. But it isn't.
2051 # TK_LIBS is the list of libraries that need to be linked
2052 # after Tcl/Tk. Note that this isn't put into LIBS. If it
2053 # were in LIBS then any link tests after this point would
2054 # try to include things like `$(LIBGUI)', which wouldn't work.
2055 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
2057 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
2058 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
2059 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
2060 CONFIG_ALL="${CONFIG_ALL} all-gdbtk"
2061 CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk"
2062 CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk"
2063 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk"
2065 if test x$gdb_cv_os_cygwin = xyes; then
2066 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
2067 WIN32LDAPP="-Wl,--subsystem,console"
2068 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
2071 AC_CONFIG_SUBDIRS(gdbtk)
2079 AC_SUBST(GDBTK_CFLAGS)
2080 AC_SUBST(GDBTK_SRC_DIR)
2084 # Unlike the sim directory, whether a simulator is linked is controlled by
2085 # presence of a gdb_sim definition in the target configure.tgt entry.
2086 # This code just checks for a few cases where we'd like to ignore those
2087 # definitions, even when they're present in the '.mt' file. These cases
2088 # are when --disable-sim is specified, or if the simulator directory is
2089 # not part of the source tree.
2092 AS_HELP_STRING([--enable-sim], [link gdb with simulator]),
2093 [echo "enable_sim = $enable_sim";
2094 echo "enableval = ${enableval}";
2095 case "${enableval}" in
2096 yes) ignore_sim=false ;;
2097 no) ignore_sim=true ;;
2098 *) ignore_sim=false ;;
2102 if test ! -d "${srcdir}/../sim"; then
2108 if test "${ignore_sim}" = "false"; then
2109 if test x"${gdb_sim}" != x ; then
2111 SIM_OBS="remote-sim.o"
2112 AC_DEFINE(WITH_SIM, 1, [Define if the simulator is being linked in.])
2118 AC_SUBST(ENABLE_CFLAGS)
2119 AC_SUBST(PROFILE_CFLAGS)
2121 AC_SUBST(CONFIG_OBS)
2122 AC_SUBST(CONFIG_DEPS)
2123 AC_SUBST(CONFIG_SRCS)
2124 AC_SUBST(CONFIG_ALL)
2125 AC_SUBST(CONFIG_CLEAN)
2126 AC_SUBST(CONFIG_INSTALL)
2127 AC_SUBST(CONFIG_UNINSTALL)
2129 # List of host floatformats.
2130 AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat])
2131 AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat])
2132 AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat])
2134 # target_subdir is used by the testsuite to find the target libraries.
2136 if test "${host}" != "${target}"; then
2137 target_subdir="${target_alias}/"
2139 AC_SUBST(target_subdir)
2142 if test "${gdb_native}" = "yes"; then
2143 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
2144 if test ! -f ${host_makefile_frag}; then
2145 AC_MSG_ERROR("*** Gdb does not support native target ${host}")
2147 frags="$frags $host_makefile_frag"
2149 host_makefile_frag=/dev/null
2152 AC_SUBST_FILE(host_makefile_frag)
2156 if test "${gdb_native}" = "yes"; then
2157 # We pick this up from the host configuration file (.mh) because we
2158 # do not have a native configuration Makefile fragment.
2159 nativefile=`sed -n '
2160 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
2161 ' ${host_makefile_frag}`
2165 if test x"${gdb_osabi}" != x ; then
2166 AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
2167 [Define to the default OS ABI for this configuration.])
2170 # Enable multi-ice-gdb-server.
2171 AC_ARG_ENABLE(multi-ice,
2172 AS_HELP_STRING([--enable-multi-ice], [build the multi-ice-gdb-server]),
2176 *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;;
2178 if test "x$enable_multi_ice" = xyes; then
2179 AC_CONFIG_SUBDIRS(multi-ice)
2182 AC_ARG_ENABLE(gdbserver,
2183 AS_HELP_STRING([--enable-gdbserver],
2184 [automatically build gdbserver (yes/no/auto, default is auto)]),
2185 [case "${enableval}" in
2187 *) AC_MSG_ERROR(bad value ${enableval} for --enable-gdbserver option) ;;
2188 esac],[enable_gdbserver=auto])
2190 # We only build gdbserver automatically in a native configuration, and
2191 # only if the user did not explicitly disable its build.
2192 if test "$gdb_native" = "yes" -a "$enable_gdbserver" != "no"; then
2193 AC_MSG_CHECKING(whether gdbserver is supported on this host)
2194 if test "x$build_gdbserver" = xyes; then
2196 AC_CONFIG_SUBDIRS(gdbserver)
2197 gdbserver_build_enabled=yes
2203 # If the user explicitly request the gdbserver to be built, verify that
2204 # we were in fact able to enable it.
2205 if test "$enable_gdbserver" = "yes" -a "$gdbserver_build_enabled" != "yes"; then
2206 AC_MSG_ERROR(Automatic gdbserver build is not supported for this configuration)
2209 # If nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link
2210 # to an empty version.
2216 if test "${nativefile}" != ""; then
2217 case "${nativefile}" in
2218 nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;;
2219 * ) GDB_NM_FILE="${nativefile}"
2221 files="${files} ${GDB_NM_FILE}"
2222 links="${links} nm.h"
2223 AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}", [nativefile])
2225 AC_SUBST(GDB_NM_FILE)
2227 AC_LINK_FILES($files, $links)
2229 dnl Check for exe extension set on certain hosts (e.g. Win32)
2232 dnl Detect the character set used by this host.
2233 dnl At the moment, we just assume it's UTF-8.
2234 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8",
2235 [Define to be a string naming the default host character set.])
2237 AC_OUTPUT(Makefile .gdbinit:gdbinit.in doc/Makefile gnulib/Makefile data-directory/Makefile,
2239 case x$CONFIG_HEADERS in
2240 xconfig.h:config.in)