1dnl Autoconf configure script for GDB, the GNU debugger. 2dnl Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 3dnl 2005, 2006, 2007, 2008, 2009 4dnl Free Software Foundation, Inc. 5dnl 6dnl This file is part of GDB. 7dnl 8dnl This program is free software; you can redistribute it and/or modify 9dnl it under the terms of the GNU General Public License as published by 10dnl the Free Software Foundation; either version 3 of the License, or 11dnl (at your option) any later version. 12dnl 13dnl This program is distributed in the hope that it will be useful, 14dnl but WITHOUT ANY WARRANTY; without even the implied warranty of 15dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16dnl GNU General Public License for more details. 17dnl 18dnl You should have received a copy of the GNU General Public License 19dnl along with this program. If not, see <http://www.gnu.org/licenses/>. 20 21dnl Process this file with autoconf to produce a configure script. 22 23AC_PREREQ(2.59)dnl 24AC_INIT(main.c) 25AC_CONFIG_HEADER(config.h:config.in) 26AM_MAINTAINER_MODE 27 28AC_PROG_CC 29AC_USE_SYSTEM_EXTENSIONS 30gl_EARLY 31AM_PROG_CC_STDC 32 33AC_CONFIG_AUX_DIR(..) 34AC_CANONICAL_SYSTEM 35 36# Dependency checking. 37ZW_CREATE_DEPDIR 38ZW_PROG_COMPILER_DEPENDENCIES([CC]) 39 40# Check for the 'make' the user wants to use. 41AC_CHECK_PROGS(MAKE, make) 42MAKE_IS_GNU= 43case "`$MAKE --version 2>&1 | sed 1q`" in 44 *GNU*) 45 MAKE_IS_GNU=yes 46 ;; 47esac 48AM_CONDITIONAL(GMAKE, test "$MAKE_IS_GNU" = yes) 49AC_PROG_MAKE_SET 50 51dnl List of object files and targets accumulated by configure. 52 53CONFIG_OBS= 54CONFIG_DEPS= 55CONFIG_SRCS= 56ENABLE_CFLAGS= 57 58CONFIG_ALL= 59CONFIG_CLEAN= 60CONFIG_INSTALL= 61CONFIG_UNINSTALL= 62 63dnl Set up for gettext. 64ZW_GNU_GETTEXT_SISTER_DIR 65 66localedir='${datadir}/locale' 67AC_SUBST(localedir) 68 69if test x"$USE_NLS" = xyes; then 70 CONFIG_ALL="$CONFIG_ALL all-po" 71 CONFIG_CLEAN="$CONFIG_CLEAN clean-po" 72 CONFIG_INSTALL="$CONFIG_INSTALL install-po" 73 CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po" 74fi 75 76gl_INIT 77 78# For Makefile dependencies. 79GNULIB_STDINT_H= 80if test x"$STDINT_H" != x; then 81 GNULIB_STDINT_H=gnulib/$STDINT_H 82fi 83AC_SUBST(GNULIB_STDINT_H) 84 85PACKAGE=gdb 86AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ]) 87AC_SUBST(PACKAGE) 88 89# GDB does not use automake, but gnulib does. This line lets us 90# generate its Makefile.in. 91AM_INIT_AUTOMAKE(gdb, UNUSED-VERSION, [no-define]) 92 93GDB_AC_WITH_DIR(DEBUGDIR, separate-debug-dir, 94 [look for global separate debug info in this path @<:@LIBDIR/debug@:>@], 95 [${libdir}/debug]) 96 97# GDB's datadir relocation 98 99GDB_AC_WITH_DIR(GDB_DATADIR, gdb-datadir, 100 [look for global separate data files in this path @<:@DATADIR/gdb@:>@], 101 [${datadir}/gdb]) 102 103AC_ARG_WITH(relocated-sources, 104AS_HELP_STRING([--with-relocated-sources=PATH], [automatically relocate this path for source files]), 105[reloc_srcdir="${withval}" 106 AC_DEFINE_DIR(RELOC_SRCDIR, reloc_srcdir, 107 [Relocated directory for source files. ]) 108]) 109 110AC_CONFIG_SUBDIRS(doc testsuite) 111 112# Check whether to support alternative target configurations 113AC_ARG_ENABLE(targets, 114AS_HELP_STRING([--enable-targets=TARGETS], [alternative target configurations]), 115[case "${enableval}" in 116 yes | "") AC_ERROR(enable-targets option must specify target names or 'all') 117 ;; 118 no) enable_targets= ;; 119 *) enable_targets=$enableval ;; 120esac]) 121 122# Check whether to enable 64-bit support on 32-bit hosts 123AC_ARG_ENABLE(64-bit-bfd, 124AS_HELP_STRING([--enable-64-bit-bfd], [64-bit support (on hosts with narrower word sizes)]), 125[case "${enableval}" in 126 yes) want64=true ;; 127 no) want64=false ;; 128 *) AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;; 129esac],[want64=false])dnl 130 131# Provide defaults for some variables set by the per-host and per-target 132# configuration. 133gdb_host_obs=posix-hdep.o 134 135if test "${target}" = "${host}"; then 136 gdb_native=yes 137else 138 gdb_native=no 139fi 140 141. $srcdir/configure.host 142 143# Accumulate some settings from configure.tgt over all enabled targets 144 145TARGET_OBS= 146all_targets= 147 148for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'` 149do 150 if test "$targ_alias" = "all"; then 151 all_targets=true 152 else 153 # Canonicalize the secondary target names. 154 result=`$ac_config_sub $targ_alias 2>/dev/null` 155 if test -n "$result"; then 156 targ=$result 157 else 158 targ=$targ_alias 159 fi 160 161 . ${srcdir}/configure.tgt 162 163 # Target-specific object files 164 for i in ${gdb_target_obs}; do 165 case " $TARGET_OBS " in 166 *" ${i} "*) ;; 167 *) 168 TARGET_OBS="$TARGET_OBS ${i}" 169 ;; 170 esac 171 done 172 173 # Check whether this target needs 64-bit CORE_ADDR 174 if test x${want64} = xfalse; then 175 . ${srcdir}/../bfd/config.bfd 176 fi 177 fi 178done 179 180if test x${all_targets} = xtrue; then 181 182 # We want all 64-bit targets if we either: 183 # - run on a 64-bit host or 184 # - already require 64-bit support for some other target or 185 # - the --enable-64-bit-bfd option was supplied 186 # Otherwise we only support all 32-bit targets. 187 # 188 # NOTE: This test must be in sync with the corresponding 189 # tests in BFD! 190 191 if test x${want64} = xfalse; then 192 AC_CHECK_SIZEOF(long) 193 if test "x${ac_cv_sizeof_long}" = "x8"; then 194 want64=true 195 fi 196 fi 197 if test x${want64} = xtrue; then 198 TARGET_OBS='$(ALL_TARGET_OBS) $(ALL_64_TARGET_OBS)' 199 else 200 TARGET_OBS='$(ALL_TARGET_OBS)' 201 fi 202fi 203 204AC_SUBST(TARGET_OBS) 205 206# For other settings, only the main target counts. 207gdb_sim= 208gdb_osabi= 209build_gdbserver= 210targ=$target; . ${srcdir}/configure.tgt 211 212# Fetch the default architecture and default target vector from BFD. 213targ=$target; . $srcdir/../bfd/config.bfd 214 215# We only want the first architecture, so strip off the others if 216# there is more than one. 217targ_archs=`echo $targ_archs | sed 's/ .*//'` 218 219if test "x$targ_archs" != x; then 220 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs, 221 [Define to BFD's default architecture. ]) 222fi 223if test "x$targ_defvec" != x; then 224 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec, 225 [Define to BFD's default target vector. ]) 226fi 227 228# The CLI cannot be disabled yet, but may be in the future. 229 230# Enable CLI. 231AC_ARG_ENABLE(gdbcli, 232AS_HELP_STRING([--disable-gdbcli], [disable command-line interface (CLI)]), 233 [case $enableval in 234 yes) 235 ;; 236 no) 237 AC_MSG_ERROR([the command-line interface cannot be disabled yet]) ;; 238 *) 239 AC_MSG_ERROR([bad value $enableval for --enable-gdbcli]) ;; 240 esac], 241 [enable_gdbcli=yes]) 242if test x"$enable_gdbcli" = xyes; then 243 if test -d $srcdir/cli; then 244 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)" 245 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)" 246 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)" 247 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)" 248 fi 249fi 250 251# Enable MI. 252AC_ARG_ENABLE(gdbmi, 253AS_HELP_STRING([--disable-gdbmi], [disable machine-interface (MI)]), 254 [case $enableval in 255 yes | no) 256 ;; 257 *) 258 AC_MSG_ERROR([bad value $enableval for --enable-gdbmi]) ;; 259 esac], 260 [enable_gdbmi=yes]) 261if test x"$enable_gdbmi" = xyes; then 262 if test -d $srcdir/mi; then 263 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)" 264 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)" 265 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)" 266 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)" 267 fi 268fi 269 270# Enable TUI. 271AC_ARG_ENABLE(tui, 272AS_HELP_STRING([--enable-tui], [enable full-screen terminal user interface (TUI)]), 273 [case $enableval in 274 yes | no | auto) 275 ;; 276 *) 277 AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;; 278 esac],enable_tui=auto) 279 280# Enable gdbtk. 281AC_ARG_ENABLE(gdbtk, 282AS_HELP_STRING([--enable-gdbtk], [enable gdbtk graphical user interface (GUI)]), 283 [case $enableval in 284 yes | no) 285 ;; 286 *) 287 AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;; 288 esac], 289 [if test -d $srcdir/gdbtk; then 290 enable_gdbtk=yes 291 else 292 enable_gdbtk=no 293 fi]) 294# We unconditionally disable gdbtk tests on selected platforms. 295case $host_os in 296 go32* | windows*) 297 AC_MSG_WARN([gdbtk isn't supported on $host; disabling]) 298 enable_gdbtk=no ;; 299esac 300 301# Libunwind support. 302AC_ARG_WITH(libunwind, 303AS_HELP_STRING([--with-libunwind], [use libunwind frame unwinding support]), 304[case "${withval}" in 305 yes) enable_libunwind=yes ;; 306 no) enable_libunwind=no ;; 307 *) AC_MSG_ERROR(bad value ${withval} for GDB with-libunwind option) ;; 308esac],[ 309 AC_CHECK_HEADERS(libunwind.h libunwind-ia64.h) 310 if test x"$ac_cv_header_libunwind_h" = xyes -a x"$ac_cv_header_libunwind_ia64_h" = xyes; then 311 enable_libunwind=yes; 312 fi 313]) 314 315if test x"$enable_libunwind" = xyes; then 316 AC_CHECK_HEADERS(libunwind.h libunwind-ia64.h) 317 AC_DEFINE(HAVE_LIBUNWIND, 1, [Define if libunwind library is being used.]) 318 CONFIG_OBS="$CONFIG_OBS libunwind-frame.o" 319 CONFIG_DEPS="$CONFIG_DEPS libunwind-frame.o" 320 CONFIG_SRCS="$CONFIG_SRCS libunwind-frame.c" 321fi 322 323opt_curses=no 324AC_ARG_WITH(curses, AS_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval) 325 326prefer_curses=no 327if test "$opt_curses" = "yes"; then 328 prefer_curses=yes 329fi 330 331# Profiling support. 332AC_ARG_ENABLE(profiling, 333AS_HELP_STRING([--enable-profiling], [enable profiling of GDB]), 334 [case $enableval in 335 yes | no) 336 ;; 337 *) 338 AC_MSG_ERROR([bad value $enableval for --enable-profile]) ;; 339 esac], 340 [enable_profiling=no]) 341 342AC_CHECK_FUNCS(monstartup _mcleanup) 343AC_CACHE_CHECK([for _etext], ac_cv_var__etext, 344[AC_TRY_LINK( 345[#include <stdlib.h> 346extern char _etext; 347], 348[free (&_etext);], ac_cv_var__etext=yes, ac_cv_var__etext=no)]) 349if test $ac_cv_var__etext = yes; then 350 AC_DEFINE(HAVE__ETEXT, 1, 351 [Define to 1 if your system has the _etext variable. ]) 352fi 353AC_CACHE_CHECK([for etext], ac_cv_var_etext, 354[AC_TRY_LINK( 355[#include <stdlib.h> 356extern char etext; 357], 358[free (&etext);], ac_cv_var_etext=yes, ac_cv_var_etext=no)]) 359if test $ac_cv_var_etext = yes; then 360 AC_DEFINE(HAVE_ETEXT, 1, 361 [Define to 1 if your system has the etext variable. ]) 362fi 363if test "$enable_profiling" = yes ; then 364 if test $ac_cv_func_monstartup = no || test $ac_cv_func__mcleanup = no; then 365 AC_MSG_ERROR(--enable-profiling requires monstartup and _mcleanup) 366 fi 367 PROFILE_CFLAGS=-pg 368 OLD_CFLAGS="$CFLAGS" 369 CFLAGS="$CFLAGS $PROFILE_CFLAGS" 370 371 AC_CACHE_CHECK([whether $CC supports -pg], ac_cv_cc_supports_pg, 372 [AC_TRY_COMPILE([], [int x;], ac_cv_cc_supports_pg=yes, 373 ac_cv_cc_supports_pg=no)]) 374 375 if test $ac_cv_cc_supports_pg = no; then 376 AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg) 377 fi 378 379 CFLAGS="$OLD_CFLAGS" 380fi 381 382ACX_PKGVERSION([GDB]) 383ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/]) 384AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description]) 385AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address]) 386 387# --------------------- # 388# Checks for programs. # 389# --------------------- # 390 391AC_PROG_AWK 392AC_PROG_INSTALL 393AC_PROG_LN_S 394AC_PROG_RANLIB 395AC_PROG_YACC 396 397AC_CHECK_TOOL(AR, ar) 398AC_CHECK_TOOL(DLLTOOL, dlltool) 399AC_CHECK_TOOL(WINDRES, windres) 400 401# Needed for GNU/Hurd. 402AC_CHECK_TOOL(MIG, mig) 403 404# ---------------------- # 405# Checks for libraries. # 406# ---------------------- # 407 408# We might need to link with -lm; most simulators need it. 409AC_CHECK_LIB(m, main) 410 411# We need to link with -lw to get `wctype' on Solaris before Solaris 412# 2.6. Solaris 2.6 and beyond have this function in libc, and have a 413# libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1 414# is known to have this problem). Therefore we avoid libw if we can. 415AC_CHECK_FUNC(wctype, [], 416 [AC_CHECK_LIB(w, wctype)]) 417 418# Some systems (e.g. Solaris) have `gethostbyname' in libnsl. 419AC_SEARCH_LIBS(gethostbyname, nsl) 420 421# Some systems (e.g. Solaris) have `socketpair' in libsocket. 422AC_SEARCH_LIBS(socketpair, socket) 423 424# Link in zlib if we can. This allows us to read compressed debug sections. 425AC_SEARCH_LIBS(zlibVersion, z, [AC_CHECK_HEADERS(zlib.h)]) 426 427# On HP/UX we may need libxpdl for dlgetmodinfo (used by solib-pa64.c). 428AC_SEARCH_LIBS(dlgetmodinfo, [dl xpdl]) 429 430AM_ICONV 431 432# On alpha-osf, it appears that libtermcap and libcurses are not compatible. 433# There is a very specific comment in /usr/include/curses.h explaining that 434# termcap routines built into libcurses must not be used. 435# 436# The symptoms we observed so far is GDB unexpectedly changing 437# the terminal settings when tgetent is called - this is particularly 438# visible as the output is missing carriage returns, and so rapidly 439# becomes very hard to read. 440# 441# The readline configure script has already decided that libtermcap 442# was enough for its purposes, and so decided to build readline using 443# libtermcap. Since the TUI mode requires curses, building GDB with 444# TUI enabled results in both libraries to be used at the same time, 445# which is not allowed. This basically means that GDB with TUI is 446# broken on alpha-osf. 447 448case $host_os in 449 alpha*-*-osf* ) 450 if "$enable_tui" = "yes"; then 451 AC_MSG_ERROR([Building GDB with TUI mode is not supported on this host]) 452 fi 453 if "$enable_tui" = "auto"; then 454 enable_tui=no 455 fi 456 ;; 457esac 458 459# For the TUI, we need enhanced curses functionality. 460if test x"$enable_tui" != xno; then 461 prefer_curses=yes 462fi 463 464curses_found=no 465if test x"$prefer_curses" = xyes; then 466 # FIXME: kettenis/20040905: We prefer ncurses over the vendor-supplied 467 # curses library because the latter might not provide all the 468 # functionality we need. However, this leads to problems on systems 469 # where the linker searches /usr/local/lib, but the compiler doesn't 470 # search /usr/local/include, if ncurses is installed in /usr/local. A 471 # default installation of ncurses on alpha*-dec-osf* will lead to such 472 # a situation. 473 AC_SEARCH_LIBS(waddstr, [ncurses cursesX curses]) 474 475 if test "$ac_cv_search_waddstr" != no; then 476 curses_found=yes 477 fi 478fi 479 480# Check whether we should enable the TUI, but only do so if we really 481# can. 482if test x"$enable_tui" != xno; then 483 if test -d $srcdir/tui; then 484 if test "$curses_found" != no; then 485 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)" 486 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)" 487 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)" 488 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)" 489 CONFIG_ALL="${CONFIG_ALL} all-tui" 490 CONFIG_CLEAN="${CONFIG_CLEAN} clean-tui" 491 CONFIG_INSTALL="${CONFIG_INSTALL} install-tui" 492 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-tui" 493 else 494 if test x"$enable_tui" = xyes; then 495 AC_MSG_ERROR([no enhanced curses library found; disable TUI]) 496 else 497 AC_MSG_WARN([no enhanced curses library found; disabling TUI]) 498 fi 499 fi 500 fi 501fi 502 503# Since GDB uses Readline, we need termcap functionality. In many 504# cases this will be provided by the curses library, but some systems 505# have a seperate termcap library, or no curses library at all. 506 507case $host_os in 508 cygwin*) 509 if test -d $srcdir/libtermcap; then 510 LIBS="../libtermcap/libtermcap.a $LIBS" 511 ac_cv_search_tgetent="../libtermcap/libtermcap.a" 512 fi ;; 513 go32* | *djgpp*) 514 ac_cv_search_tgetent="none required" 515 ;; 516 *mingw32*) 517 ac_cv_search_tgetent="none required" 518 CONFIG_OBS="$CONFIG_OBS windows-termcap.o" 519 ;; 520esac 521 522# These are the libraries checked by Readline. 523AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses]) 524 525if test "$ac_cv_search_tgetent" = no; then 526 AC_MSG_ERROR([no termcap library found]) 527fi 528 529AC_ARG_WITH([system-readline], 530 [AS_HELP_STRING([--with-system-readline], 531 [use installed readline library])]) 532 533if test "$with_system_readline" = yes; then 534 READLINE=-lreadline 535 READLINE_DEPS= 536 READLINE_CFLAGS= 537else 538 READLINE='$(READLINE_DIR)/libreadline.a' 539 READLINE_DEPS='$(READLINE)' 540 READLINE_CFLAGS='-I$(READLINE_SRC)/..' 541fi 542AC_SUBST(READLINE) 543AC_SUBST(READLINE_DEPS) 544AC_SUBST(READLINE_CFLAGS) 545 546AC_ARG_WITH(expat, 547 AS_HELP_STRING([--with-expat], [include expat support (auto/yes/no)]), 548 [], [with_expat=auto]) 549AC_MSG_CHECKING([whether to use expat]) 550AC_MSG_RESULT([$with_expat]) 551 552if test "${with_expat}" = no; then 553 AC_MSG_WARN([expat support disabled; some features may be unavailable.]) 554 HAVE_LIBEXPAT=no 555else 556 AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"], 557 [XML_Parser p = XML_ParserCreate (0);]) 558 if test "$HAVE_LIBEXPAT" != yes; then 559 if test "$with_expat" = yes; then 560 AC_MSG_ERROR([expat is missing or unusable]) 561 else 562 AC_MSG_WARN([expat is missing or unusable; some features may be unavailable.]) 563 fi 564 else 565 save_LIBS=$LIBS 566 LIBS="$LIBS $LIBEXPAT" 567 AC_CHECK_FUNCS(XML_StopParser) 568 LIBS=$save_LIBS 569 fi 570fi 571 572dnl Utility to simplify finding libpython. 573AC_DEFUN([AC_TRY_LIBPYTHON], 574[ 575 version=$1 576 define([have_libpython_var],$2) 577 define([VERSION],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], 578 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) 579 [HAVE_LIB]VERSION=no 580 AC_MSG_CHECKING([for ${version}]) 581 save_LIBS=$LIBS 582 LIBS="$LIBS -l${version}" 583 AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "${version}/Python.h"]], 584 [[Py_Initialize ();]]), 585 [[HAVE_LIB]VERSION=yes 586 have_libpython_var=yes], 587 [LIBS=$save_LIBS]) 588 AC_MSG_RESULT([$[HAVE_LIB]VERSION]) 589]) 590 591AC_ARG_WITH(python, 592 AS_HELP_STRING([--with-python], [include python support (auto/yes/no/<path>)]), 593 [], [with_python=auto]) 594AC_MSG_CHECKING([whether to use python]) 595AC_MSG_RESULT([$with_python]) 596 597if test "${with_python}" = no; then 598 AC_MSG_WARN([python support disabled; some features may be unavailable.]) 599 have_libpython=no 600else 601 case "${with_python}" in 602 yes | auto) 603 # Leave as empty, use defaults. 604 python_includes= 605 python_libs= 606 ;; 607 /*) 608 python_includes="-I${with_python}/include" 609 python_libs="-L${with_python}/lib" 610 ;; 611 *) 612 AC_ERROR(invalid value for --with-python) 613 ;; 614 esac 615 616 save_CPPFLAGS=$CPPFLAGS 617 CPPFLAGS="$CPPFLAGS ${python_includes}" 618 save_LIBS=$LIBS 619 LIBS="$LIBS ${python_libs}" 620 have_libpython=no 621 if test "${have_libpython}" = no; then 622 AC_TRY_LIBPYTHON(python2.6, have_libpython) 623 if test "${HAVE_LIBPYTHON2_6}" = yes; then 624 AC_DEFINE(HAVE_LIBPYTHON2_6, 1, [Define if Python 2.6 is being used.]) 625 fi 626 fi 627 if test ${have_libpython} = no; then 628 AC_TRY_LIBPYTHON(python2.5, have_libpython) 629 if test "${HAVE_LIBPYTHON2_5}" = yes; then 630 AC_DEFINE(HAVE_LIBPYTHON2_5, 1, [Define if Python 2.5 is being used.]) 631 fi 632 fi 633 if test ${have_libpython} = no; then 634 AC_TRY_LIBPYTHON(python2.4, have_libpython) 635 if test "${HAVE_LIBPYTHON2_4}" = yes; then 636 AC_DEFINE(HAVE_LIBPYTHON2_4, 1, [Define if Python 2.4 is being used.]) 637 fi 638 fi 639 if test ${have_libpython} = no; then 640 case "${with_python}" in 641 yes) 642 AC_MSG_ERROR([python is missing or unusable]) 643 ;; 644 auto) 645 AC_MSG_WARN([python is missing or unusable; some features may be unavailable.]) 646 ;; 647 *) 648 AC_MSG_ERROR([no usable python found at ${with_python}]) 649 ;; 650 esac 651 CPPFLAGS=$save_CPPFLAGS 652 LIBS=$save_LIBS 653 fi 654fi 655 656if test "${have_libpython}" = yes; then 657 AC_DEFINE(HAVE_PYTHON, 1, [Define if Python interpreter is being linked in.]) 658 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_PYTHON_OBS)" 659 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)" 660 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_PYTHON_SRCS)" 661 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)" 662 663 # Flags needed to compile Python code (taken from python-config --cflags). 664 # We cannot call python-config directly because it will output whatever was 665 # used when compiling the Python interpreter itself, including flags which 666 # would make the python-related objects be compiled differently from the 667 # rest of GDB (e.g., -O2 and -fPIC). 668 if test "${GCC}" = yes; then 669 tentative_python_cflags="-fno-strict-aliasing -DNDEBUG -fwrapv" 670 fi 671 672 if test "x${tentative_python_cflags}" != x; then 673 AC_MSG_CHECKING(compiler flags for python code) 674 for flag in ${tentative_python_cflags}; do 675 # Check that the compiler accepts it 676 saved_CFLAGS="$CFLAGS" 677 CFLAGS="$CFLAGS $flag" 678 AC_TRY_COMPILE([],[],PYTHON_CFLAGS="${PYTHON_CFLAGS} $flag",) 679 CFLAGS="$saved_CFLAGS" 680 done 681 AC_MSG_RESULT(${PYTHON_CFLAGS}) 682 fi 683else 684 # Even if Python support is not compiled in, we need to have these files 685 # included in order to recognize the GDB command "python". 686 CONFIG_OBS="$CONFIG_OBS python.o py-value.o py-prettyprint.o" 687 CONFIG_SRCS="$CONFIG_SRCS python/python.c python/py-value.c python/py-prettyprint.c" 688fi 689AC_SUBST(PYTHON_CFLAGS) 690 691# ------------------------- # 692# Checks for header files. # 693# ------------------------- # 694 695AC_HEADER_DIRENT 696AC_HEADER_STAT 697AC_HEADER_STDC 698# elf_hp.h is for HP/UX 64-bit shared library support. 699# FIXME: kettenis/20030102: In most cases we include these (ctype.h, time.h) 700# unconditionally, so what's the point in checking these? 701AC_CHECK_HEADERS([nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \ 702 thread_db.h gnu/libc-version.h signal.h stddef.h \ 703 stdlib.h string.h memory.h strings.h sys/fault.h \ 704 sys/file.h sys/filio.h sys/ioctl.h sys/param.h \ 705 sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \ 706 sys/reg.h sys/debugreg.h sys/select.h sys/syscall.h \ 707 sys/types.h sys/wait.h wait.h termios.h termio.h \ 708 sgtty.h unistd.h elf_hp.h ctype.h time.h locale.h]) 709AC_CHECK_HEADERS(link.h, [], [], 710[#if HAVE_SYS_TYPES_H 711# include <sys/types.h> 712#endif 713#if HAVE_NLIST_H 714# include <nlist.h> 715#endif 716]) 717AC_CHECK_HEADERS(sys/proc.h, [], [], 718[#if HAVE_SYS_PARAM_H 719# include <sys/param.h> 720#endif 721]) 722AC_CHECK_HEADERS(sys/user.h, [], [], 723[#if HAVE_SYS_PARAM_H 724# include <sys/param.h> 725#endif 726]) 727 728# On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash 729# between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to 730# think that we don't have <curses.h> if we're using GCC. 731case $host_os in 732 solaris2.[[789]]) 733 if test "$GCC" = yes; then 734 AC_DEFINE(_MSE_INT_H, 1, 735 [Define to 1 to avoid a clash between <widec.h> and <wchar.h> on 736 Solaris 2.[789] when using GCC. ]) 737 fi ;; 738esac 739AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h ncurses/term.h) 740AC_CHECK_HEADERS(term.h, [], [], 741[#if HAVE_CURSES_H 742# include <curses.h> 743#endif 744]) 745 746# ------------------------- # 747# Checks for declarations. # 748# ------------------------- # 749 750AC_CHECK_DECLS([free, malloc, realloc, strerror, strstr, getopt, 751 snprintf, vsnprintf]) 752AM_LC_MESSAGES 753 754# ----------------------- # 755# Checks for structures. # 756# ----------------------- # 757 758AC_CHECK_MEMBERS([struct stat.st_blocks, struct stat.st_blksize]) 759 760# ------------------ # 761# Checks for types. # 762# ------------------ # 763 764AC_TYPE_SIGNAL 765AC_CHECK_TYPES(socklen_t, [], [], 766[#include <sys/types.h> 767#include <sys/socket.h> 768]) 769 770# ------------------------------------- # 771# Checks for compiler characteristics. # 772# ------------------------------------- # 773 774AC_C_CONST 775AC_C_INLINE 776AC_C_BIGENDIAN 777 778# ------------------------------ # 779# Checks for library functions. # 780# ------------------------------ # 781 782AC_FUNC_ALLOCA 783AC_FUNC_MMAP 784AC_FUNC_VFORK 785AC_CHECK_FUNCS([canonicalize_file_name realpath getrusage getuid \ 786 getgid pipe poll pread64 sbrk setpgid setpgrp setsid \ 787 sigaction sigprocmask sigsetmask socketpair syscall \ 788 ttrace wborder setlocale iconvlist libiconvlist btowc]) 789AM_LANGINFO_CODESET 790 791# Check the return and argument types of ptrace. No canned test for 792# this, so roll our own. 793gdb_ptrace_headers=' 794#if HAVE_SYS_TYPES_H 795# include <sys/types.h> 796#endif 797#if HAVE_SYS_PTRACE_H 798# include <sys/ptrace.h> 799#endif 800#if HAVE_UNISTD_H 801# include <unistd.h> 802#endif 803' 804# There is no point in checking if we don't have a prototype. 805AC_CHECK_DECLS(ptrace, [], [ 806 : ${gdb_cv_func_ptrace_ret='int'} 807 : ${gdb_cv_func_ptrace_args='int,int,long,long'} 808], $gdb_ptrace_headers) 809# Check return type. Varargs (used on GNU/Linux) conflict with the 810# empty argument list, so check for that explicitly. 811AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret, 812 AC_TRY_COMPILE($gdb_ptrace_headers, 813 [extern long ptrace (enum __ptrace_request, ...);], 814 gdb_cv_func_ptrace_ret='long', 815 AC_TRY_COMPILE($gdb_ptrace_headers, 816 [extern int ptrace ();], 817 gdb_cv_func_ptrace_ret='int', 818 gdb_cv_func_ptrace_ret='long'))) 819AC_DEFINE_UNQUOTED(PTRACE_TYPE_RET, $gdb_cv_func_ptrace_ret, 820 [Define as the return type of ptrace.]) 821# Check argument types. 822AC_CACHE_CHECK([types of arguments for ptrace], gdb_cv_func_ptrace_args, [ 823 AC_TRY_COMPILE($gdb_ptrace_headers, 824 [extern long ptrace (enum __ptrace_request, ...);], 825 [gdb_cv_func_ptrace_args='int,int,long,long'],[ 826for gdb_arg1 in 'int' 'long'; do 827 for gdb_arg2 in 'pid_t' 'int' 'long'; do 828 for gdb_arg3 in 'int *' 'caddr_t' 'int' 'long' 'void *'; do 829 for gdb_arg4 in 'int' 'long'; do 830 AC_TRY_COMPILE($gdb_ptrace_headers, [ 831extern $gdb_cv_func_ptrace_ret 832 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4); 833], [gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4"; 834 break 4;]) 835 for gdb_arg5 in 'int *' 'int' 'long'; do 836 AC_TRY_COMPILE($gdb_ptrace_headers, [ 837extern $gdb_cv_func_ptrace_ret 838 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4, $gdb_arg5); 839], [ 840gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4,$gdb_arg5"; 841 break 5;]) 842 done 843 done 844 done 845 done 846done 847# Provide a safe default value. 848: ${gdb_cv_func_ptrace_args='int,int,long,long'} 849])]) 850ac_save_IFS=$IFS; IFS=',' 851set dummy `echo "$gdb_cv_func_ptrace_args" | sed 's/\*/\*/g'` 852IFS=$ac_save_IFS 853shift 854AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG3, $[3], 855 [Define to the type of arg 3 for ptrace.]) 856if test -n "$[5]"; then 857 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG5, $[5], 858 [Define to the type of arg 5 for ptrace.]) 859fi 860 861dnl AC_FUNC_SETPGRP does not work when cross compiling 862dnl Instead, assume we will have a prototype for setpgrp if cross compiling. 863if test "$cross_compiling" = no; then 864 AC_FUNC_SETPGRP 865else 866 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void, 867 [AC_TRY_COMPILE([ 868#include <unistd.h> 869], [ 870 if (setpgrp(1,1) == -1) 871 exit (0); 872 else 873 exit (1); 874], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)]) 875if test $ac_cv_func_setpgrp_void = yes; then 876 AC_DEFINE(SETPGRP_VOID, 1) 877fi 878fi 879 880# Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't do 881# since sigsetjmp might only be defined as a macro. 882AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp, 883[AC_TRY_COMPILE([ 884#include <setjmp.h> 885], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);], 886gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)]) 887if test $gdb_cv_func_sigsetjmp = yes; then 888 AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ]) 889fi 890 891# Assume we'll default to using the included libiberty regex. 892gdb_use_included_regex=yes 893 894# However, if the system regex is GNU regex, then default to *not* 895# using the included regex. 896AC_CACHE_CHECK( 897 [for GNU regex], 898 [gdb_cv_have_gnu_regex], 899 [AC_TRY_COMPILE( 900 [#include <gnu-versions.h>], 901 [#define REGEX_INTERFACE_VERSION 1 902#if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION 903# error "Version mismatch" 904#endif], 905 gdb_cv_have_gnu_regex=yes, 906 gdb_cv_have_gnu_regex=no)]) 907if test $gdb_cv_have_gnu_regex = yes; then 908 gdb_use_included_regex=no 909fi 910 911AC_ARG_WITH(included-regex, 912 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)]), 913 gdb_with_regex=$withval, 914 gdb_with_regex=$gdb_use_included_regex) 915if test "$gdb_with_regex" = yes; then 916 AC_DEFINE(USE_INCLUDED_REGEX, 1, 917 [Define to 1 if the regex included in libiberty should be used.]) 918fi 919 920# Check if <sys/proc.h> defines `struct thread' with a td_pcb member. 921AC_CHECK_MEMBERS([struct thread.td_pcb], [], [], 922[#include <sys/param.h> 923#include <sys/proc.h> 924]) 925 926# See if <sys/lwp.h> defines `struct lwp`. 927AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp, 928[AC_TRY_COMPILE([#include <sys/param.h> 929#include <sys/lwp.h>], [struct lwp l;], 930gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)]) 931if test $gdb_cv_struct_lwp = yes; then 932 AC_DEFINE(HAVE_STRUCT_LWP, 1, 933 [Define to 1 if your system has struct lwp.]) 934fi 935 936# See if <machine/reg.h> degines `struct reg'. 937AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg, 938[AC_TRY_COMPILE([#include <sys/types.h> 939#include <machine/reg.h>], [struct reg r;], 940gdb_cv_struct_reg=yes, gdb_cv_struct_reg=no)]) 941if test $gdb_cv_struct_reg = yes; then 942 AC_DEFINE(HAVE_STRUCT_REG, 1, 943 [Define to 1 if your system has struct reg in <machine/reg.h>.]) 944fi 945 946# See if <machine/reg.h> supports the %fs and %gs i386 segment registers. 947# Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'. 948AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [], 949 [#include <machine/reg.h>]) 950 951# See if <sys/ptrace.h> provides the PTRACE_GETREGS request. 952AC_MSG_CHECKING(for PTRACE_GETREGS) 953AC_CACHE_VAL(gdb_cv_have_ptrace_getregs, 954[AC_TRY_COMPILE([#include <sys/ptrace.h>], 955 [PTRACE_GETREGS;], 956 [gdb_cv_have_ptrace_getregs=yes], 957 [gdb_cv_have_ptrace_getregs=no])]) 958AC_MSG_RESULT($gdb_cv_have_ptrace_getregs) 959if test $gdb_cv_have_ptrace_getregs = yes; then 960 AC_DEFINE(HAVE_PTRACE_GETREGS, 1, 961 [Define if sys/ptrace.h defines the PTRACE_GETREGS request.]) 962fi 963 964# See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request. 965AC_MSG_CHECKING(for PTRACE_GETFPXREGS) 966AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs, 967[AC_TRY_COMPILE([#include <sys/ptrace.h>], 968 [PTRACE_GETFPXREGS;], 969 [gdb_cv_have_ptrace_getfpxregs=yes], 970 [gdb_cv_have_ptrace_getfpxregs=no])]) 971AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs) 972if test $gdb_cv_have_ptrace_getfpxregs = yes; then 973 AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1, 974 [Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.]) 975fi 976 977# See if <sys/ptrace.h> provides the PT_GETDBREGS request. 978AC_MSG_CHECKING(for PT_GETDBREGS) 979AC_CACHE_VAL(gdb_cv_have_pt_getdbregs, 980[AC_TRY_COMPILE([#include <sys/types.h> 981#include <sys/ptrace.h>], 982 [PT_GETDBREGS;], 983 [gdb_cv_have_pt_getdbregs=yes], 984 [gdb_cv_have_pt_getdbregs=no])]) 985AC_MSG_RESULT($gdb_cv_have_pt_getdbregs) 986if test $gdb_cv_have_pt_getdbregs = yes; then 987 AC_DEFINE(HAVE_PT_GETDBREGS, 1, 988 [Define if sys/ptrace.h defines the PT_GETDBREGS request.]) 989fi 990 991# See if <sys/ptrace.h> provides the PT_GETXMMREGS request. 992AC_MSG_CHECKING(for PT_GETXMMREGS) 993AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs, 994[AC_TRY_COMPILE([#include <sys/types.h> 995#include <sys/ptrace.h>], 996 [PT_GETXMMREGS;], 997 [gdb_cv_have_pt_getxmmregs=yes], 998 [gdb_cv_have_pt_getxmmregs=no])]) 999AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs) 1000if test $gdb_cv_have_pt_getxmmregs = yes; then 1001 AC_DEFINE(HAVE_PT_GETXMMREGS, 1, 1002 [Define if sys/ptrace.h defines the PT_GETXMMREGS request.]) 1003fi 1004 1005# Detect which type of /proc is in use, such as for Unixware or Solaris. 1006 1007if test "${target}" = "${host}"; then 1008 case "${host}" in 1009 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* ) 1010 AC_DEFINE(NEW_PROC_API, 1, 1011 [Define if you want to use new multi-fd /proc interface 1012 (replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).]) 1013 ;; 1014 *-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]]*) 1015 AC_DEFINE(NEW_PROC_API, 1, 1016 [Define if you want to use new multi-fd /proc interface 1017 (replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).]) 1018 ;; 1019 mips-sgi-irix5*) 1020 # Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5. 1021 AC_DEFINE([_KMEMUSER], 1, 1022 [Define to 1 so <sys/proc.h> gets a definition of anon_hdl. Works 1023 around a <sys/proc.h> problem on IRIX 5.]) 1024 ;; 1025 esac 1026fi 1027 1028if test "$ac_cv_header_sys_procfs_h" = yes; then 1029 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t) 1030 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t) 1031 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t) 1032 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t) 1033 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t) 1034 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t) 1035 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t) 1036 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t) 1037 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t) 1038 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t) 1039 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t) 1040 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t) 1041 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t) 1042 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t) 1043 1044 1045 dnl Check for broken prfpregset_t type 1046 1047 dnl For Linux/i386, glibc 2.1.3 was released with a bogus 1048 dnl prfpregset_t type (it's a typedef for the pointer to a struct 1049 dnl instead of the struct itself). We detect this here, and work 1050 dnl around it in gdb_proc_service.h. 1051 1052 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then 1053 AC_MSG_CHECKING(whether prfpregset_t type is broken) 1054 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken, 1055 [AC_TRY_RUN([#include <sys/procfs.h> 1056 int main () 1057 { 1058 if (sizeof (prfpregset_t) == sizeof (void *)) 1059 return 1; 1060 return 0; 1061 }], 1062 gdb_cv_prfpregset_t_broken=no, 1063 gdb_cv_prfpregset_t_broken=yes, 1064 gdb_cv_prfpregset_t_broken=yes)]) 1065 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken) 1066 if test $gdb_cv_prfpregset_t_broken = yes; then 1067 AC_DEFINE(PRFPREGSET_T_BROKEN, 1, 1068 [Define if the prfpregset_t type is broken.]) 1069 fi 1070 fi 1071 1072 dnl Check for PIOCSET ioctl entry 1073 1074 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h) 1075 AC_CACHE_VAL(gdb_cv_have_procfs_piocset, 1076 [AC_TRY_COMPILE([#include <unistd.h> 1077#include <sys/types.h> 1078#include <sys/procfs.h> 1079], [ 1080 int dummy;; 1081 dummy = ioctl(0, PIOCSET, &dummy); 1082 ], 1083 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)]) 1084 AC_MSG_RESULT($gdb_cv_have_procfs_piocset) 1085 if test $gdb_cv_have_procfs_piocset = yes; then 1086 AC_DEFINE(HAVE_PROCFS_PIOCSET, 1, 1087 [Define if ioctl argument PIOCSET is available.]) 1088 fi 1089fi 1090 1091dnl For native ports (host == target), check to see what kind of 1092dnl legacy link.h support is needed. (See solib-legacy.c.) 1093if test ${host} = ${target} ; then 1094 dnl Check for struct link_map with l_ members which are indicative 1095 dnl of SVR4-like shared libraries 1096 1097 AC_MSG_CHECKING(for member l_addr in struct link_map) 1098 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members, 1099 [AC_TRY_COMPILE([#include <link.h>], 1100 [struct link_map lm; (void) lm.l_addr;], 1101 gdb_cv_have_struct_link_map_with_l_members=yes, 1102 gdb_cv_have_struct_link_map_with_l_members=no)]) 1103 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members) 1104 if test $gdb_cv_have_struct_link_map_with_l_members = yes; then 1105 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS,1, 1106 [Define if <link.h> exists and defines struct link_map which has 1107 members with an ``l_'' prefix. (For Solaris, SVR4, and 1108 SVR4-like systems.)]) 1109 fi 1110 1111 dnl Check for struct link_map with lm_ members which are indicative 1112 dnl of SunOS-like shared libraries 1113 1114 AC_MSG_CHECKING(for member lm_addr in struct link_map) 1115 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members, 1116 [AC_TRY_COMPILE([#include <sys/types.h> 1117#include <link.h>], 1118 [struct link_map lm; (void) lm.lm_addr;], 1119 gdb_cv_have_struct_link_map_with_lm_members=yes, 1120 gdb_cv_have_struct_link_map_with_lm_members=no)]) 1121 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members) 1122 if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then 1123 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS, 1, 1124 [Define if <link.h> exists and defines struct link_map which has 1125 members with an ``lm_'' prefix. (For SunOS.)]) 1126 fi 1127 1128 dnl Check for struct so_map with som_ members which are found on 1129 dnl some *BSD systems. 1130 1131 AC_MSG_CHECKING(for member som_addr in struct so_map) 1132 AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members, 1133 [AC_TRY_COMPILE([#include <sys/types.h> 1134#ifdef HAVE_NLIST_H 1135#include <nlist.h> 1136#endif 1137#include <link.h>], 1138 [struct so_map lm; (void) lm.som_addr;], 1139 gdb_cv_have_struct_so_map_with_som_members=yes, 1140 gdb_cv_have_struct_so_map_with_som_members=no)]) 1141 AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members) 1142 if test $gdb_cv_have_struct_so_map_with_som_members = yes; then 1143 AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS, 1, 1144 [Define if <link.h> exists and defines a struct so_map which has 1145 members with an ``som_'' prefix. (Found on older *BSD systems.)]) 1146 fi 1147 1148 dnl Check for struct link_map32 type, which allows a 64-bit Solaris 1149 dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries. 1150 1151 AC_MSG_CHECKING(for struct link_map32 in sys/link.h) 1152 AC_CACHE_VAL(gdb_cv_have_struct_link_map32, 1153 [AC_TRY_COMPILE([#define _SYSCALL32 1154#include <sys/link.h>], [struct link_map32 l;], 1155 gdb_cv_have_struct_link_map32=yes, 1156 gdb_cv_have_struct_link_map32=no)]) 1157 AC_MSG_RESULT($gdb_cv_have_struct_link_map32) 1158 if test $gdb_cv_have_struct_link_map32 = yes; then 1159 AC_DEFINE(HAVE_STRUCT_LINK_MAP32, 1, 1160 [Define if <sys/link.h> has struct link_map32]) 1161 AC_DEFINE(_SYSCALL32, 1, 1162 [Define if <sys/link.h> has link_map32 (solaris sparc-64 target)]) 1163 fi 1164fi 1165 1166# Check if the compiler supports the `long long' type. 1167 1168AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long, 1169 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM( 1170[[extern long long foo;]], 1171[[switch (foo & 2) { case 0: return 1; }]])], 1172 gdb_cv_c_long_long=yes, 1173 gdb_cv_c_long_long=no)]) 1174if test $gdb_cv_c_long_long = yes; then 1175 AC_DEFINE(CC_HAS_LONG_LONG, 1, 1176 [Define to 1 if the compiler supports long long.]) 1177fi 1178 1179# Check if the compiler and runtime support printing long longs. 1180 1181AC_CACHE_CHECK([for long long support in printf], 1182 gdb_cv_printf_has_long_long, 1183 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], 1184[[char buf[32]; 1185 long long l = 0; 1186 l = (l << 16) + 0x0123; 1187 l = (l << 16) + 0x4567; 1188 l = (l << 16) + 0x89ab; 1189 l = (l << 16) + 0xcdef; 1190 sprintf (buf, "0x%016llx", l); 1191 return (strcmp ("0x0123456789abcdef", buf));]])], 1192 gdb_cv_printf_has_long_long=yes, 1193 gdb_cv_printf_has_long_long=no, 1194 gdb_cv_printf_has_long_long=no)]) 1195if test $gdb_cv_printf_has_long_long = yes; then 1196 AC_DEFINE(PRINTF_HAS_LONG_LONG, 1, 1197 [Define to 1 if the "%ll" format works to print long longs.]) 1198fi 1199 1200# Check if the compiler and runtime support printing decfloats. 1201 1202AC_CACHE_CHECK([for decfloat support in printf], 1203 gdb_cv_printf_has_decfloat, 1204 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], 1205[[char buf[64]; 1206 _Decimal32 d32 = 1.2345df; 1207 _Decimal64 d64 = 1.2345dd; 1208 _Decimal128 d128 = 1.2345dl; 1209 sprintf (buf, "Decimal32: %H\nDecimal64: %D\nDecimal128: %DD", d32, d64, d128); 1210 return (strcmp ("Decimal32: 1.2345\nDecimal64: 1.2345\nDecimal128: 1.2345", buf));]])], 1211 gdb_cv_printf_has_decfloat=yes, 1212 gdb_cv_printf_has_decfloat=no, 1213 gdb_cv_printf_has_decfloat=no)]) 1214if test $gdb_cv_printf_has_decfloat = yes; then 1215 AC_DEFINE(PRINTF_HAS_DECFLOAT, 1, 1216 [Define to 1 if the "%H, %D and %DD" formats work to print decfloats.]) 1217fi 1218 1219# Check if the compiler supports the `long double' type. We can't use 1220# AC_C_LONG_DOUBLE because that one does additional checks on the 1221# constants defined in <float.h> that fail on some systems, 1222# e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6. 1223 1224AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double, 1225 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])], 1226 gdb_cv_c_long_double=yes, 1227 gdb_cv_c_long_double=no)]) 1228if test $gdb_cv_c_long_double = yes; then 1229 AC_DEFINE(HAVE_LONG_DOUBLE, 1, 1230 [Define to 1 if the compiler supports long double.]) 1231fi 1232 1233# Check if the compiler and runtime support printing long doubles. 1234 1235AC_CACHE_CHECK([for long double support in printf], 1236 gdb_cv_printf_has_long_double, 1237 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], 1238[[char buf[16]; 1239 long double f = 3.141592653; 1240 sprintf (buf, "%Lg", f); 1241 return (strncmp ("3.14159", buf, 7));]])], 1242 gdb_cv_printf_has_long_double=yes, 1243 gdb_cv_printf_has_long_double=no, 1244 gdb_cv_printf_has_long_double=no)]) 1245if test $gdb_cv_printf_has_long_double = yes; then 1246 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1, 1247 [Define to 1 if the "%Lg" format works to print long doubles.]) 1248fi 1249 1250# Check if the compiler and runtime support scanning long doubles. 1251 1252AC_CACHE_CHECK([for long double support in scanf], 1253 gdb_cv_scanf_has_long_double, 1254 [AC_RUN_IFELSE([AC_LANG_PROGRAM( 1255[[#include <stdio.h>]], 1256[[char *buf = "3.141592653"; 1257 long double f = 0; 1258 sscanf (buf, "%Lg", &f); 1259 return !(f > 3.14159 && f < 3.14160);]])], 1260 gdb_cv_scanf_has_long_double=yes, 1261 gdb_cv_scanf_has_long_double=no, 1262 gdb_cv_scanf_has_long_double=no)]) 1263if test $gdb_cv_scanf_has_long_double = yes; then 1264 AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1, 1265 [Define to 1 if the "%Lg" format works to scan long doubles.]) 1266fi 1267 1268case ${host_os} in 1269aix*) 1270 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [ 1271 SAVE_LDFLAGS=$LDFLAGS 1272 1273 case $GCC in 1274 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;; 1275 *) gdb_cv_bigtoc=-bbigtoc ;; 1276 esac 1277 1278 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc 1279 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=]) 1280 LDFLAGS="${SAVE_LDFLAGS}" 1281 ]) 1282 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}" 1283 ;; 1284esac 1285 1286 1287dnl For certain native configurations, we need to check whether thread 1288dnl support can be built in or not. 1289dnl 1290dnl Note that we only want this if we are both native (host == target), 1291dnl and not doing a canadian cross build (build == host). 1292 1293if test ${build} = ${host} -a ${host} = ${target} ; then 1294 case ${host_os} in 1295 hpux*) 1296 AC_MSG_CHECKING(for HPUX/OSF thread support) 1297 if test -f /usr/include/dce/cma_config.h ; then 1298 if test "$GCC" = "yes" ; then 1299 AC_MSG_RESULT(yes) 1300 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT, 1, 1301 [Define if you have HPUX threads]) 1302 CONFIG_OBS="${CONFIG_OBS} hpux-thread.o" 1303 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c" 1304 else 1305 AC_MSG_RESULT(no (suppressed because you are not using GCC)) 1306 fi 1307 else 1308 AC_MSG_RESULT(no) 1309 fi 1310 ;; 1311 solaris*) 1312 # See if thread_db library is around for Solaris thread debugging. 1313 # Note that we must explicitly test for version 1 of the library 1314 # because version 0 (present on Solaris 2.4 or earlier) doesn't have 1315 # the same API. 1316 AC_MSG_CHECKING(for Solaris thread debugging library) 1317 if test -f /usr/lib/libthread_db.so.1 ; then 1318 AC_MSG_RESULT(yes) 1319 AC_DEFINE(HAVE_THREAD_DB_LIB, 1, 1320 [Define if using Solaris thread debugging.]) 1321 CONFIG_OBS="${CONFIG_OBS} sol-thread.o" 1322 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c" 1323 AC_CHECK_LIB(dl, dlopen) 1324 if test "$GCC" = "yes" ; then 1325 # The GNU linker requires the -export-dynamic option to make 1326 # all symbols visible in the dynamic symbol table. 1327 hold_ldflags=$LDFLAGS 1328 AC_MSG_CHECKING(for the ld -export-dynamic flag) 1329 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic" 1330 AC_TRY_LINK(, [int i;], found=yes, found=no) 1331 LDFLAGS=$hold_ldflags 1332 AC_MSG_RESULT($found) 1333 if test $found = yes; then 1334 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic" 1335 fi 1336 fi 1337 # Sun randomly tweaked the prototypes in <proc_service.h> 1338 # at one point. 1339 AC_MSG_CHECKING(if <proc_service.h> is old) 1340 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[ 1341 AC_TRY_COMPILE([ 1342 #include <proc_service.h> 1343 ps_err_e ps_pdwrite 1344 (struct ps_prochandle*, psaddr_t, const void*, size_t); 1345 ],, gdb_cv_proc_service_is_old=no, 1346 gdb_cv_proc_service_is_old=yes) 1347 ]) 1348 AC_MSG_RESULT($gdb_cv_proc_service_is_old) 1349 if test $gdb_cv_proc_service_is_old = yes; then 1350 AC_DEFINE(PROC_SERVICE_IS_OLD, 1, 1351 [Define if <proc_service.h> on solaris uses int instead of 1352 size_t, and assorted other type changes.]) 1353 fi 1354 else 1355 AC_MSG_RESULT(no) 1356 fi 1357 ;; 1358 aix*) 1359 AC_MSG_CHECKING(for AiX thread debugging library) 1360 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug, 1361 [AC_TRY_COMPILE([#include <sys/pthdebug.h>], 1362 [#ifndef PTHDB_VERSION_3 1363 #error 1364 #endif], 1365 gdb_cv_have_aix_thread_debug=yes, 1366 gdb_cv_have_aix_thread_debug=no)]) 1367 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug) 1368 if test $gdb_cv_have_aix_thread_debug = yes; then 1369 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c" 1370 CONFIG_OBS="${CONFIG_OBS} aix-thread.o" 1371 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug" 1372 fi 1373 ;; 1374 esac 1375 AC_SUBST(CONFIG_LDFLAGS) 1376fi 1377 1378dnl See if we have a thread_db header file that has TD_NOTALLOC and 1379dnl other error codes. 1380if test "x$ac_cv_header_thread_db_h" = "xyes"; then 1381 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC], 1382 gdb_cv_thread_db_h_has_td_notalloc, 1383 AC_TRY_COMPILE( 1384 [#include <thread_db.h>], 1385 [int i = TD_NOTALLOC;], 1386 gdb_cv_thread_db_h_has_td_notalloc=yes, 1387 gdb_cv_thread_db_h_has_td_notalloc=no 1388 ) 1389 ) 1390 AC_CACHE_CHECK([whether <thread_db.h> has TD_VERSION], 1391 gdb_cv_thread_db_h_has_td_version, 1392 AC_TRY_COMPILE( 1393 [#include <thread_db.h>], 1394 [int i = TD_VERSION;], 1395 gdb_cv_thread_db_h_has_td_version=yes, 1396 gdb_cv_thread_db_h_has_td_version=no 1397 ) 1398 ) 1399 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTLS], 1400 gdb_cv_thread_db_h_has_td_notls, 1401 AC_TRY_COMPILE( 1402 [#include <thread_db.h>], 1403 [int i = TD_NOTLS;], 1404 gdb_cv_thread_db_h_has_td_notls=yes, 1405 gdb_cv_thread_db_h_has_td_notls=no 1406 ) 1407 ) 1408fi 1409if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then 1410 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1, 1411 [Define if <thread_db.h> has the TD_NOTALLOC error code.]) 1412fi 1413if test "x$gdb_cv_thread_db_h_has_td_version" = "xyes"; then 1414 AC_DEFINE(THREAD_DB_HAS_TD_VERSION, 1, 1415 [Define if <thread_db.h> has the TD_VERSION error code.]) 1416fi 1417if test "x$gdb_cv_thread_db_h_has_td_notls" = "xyes"; then 1418 AC_DEFINE(THREAD_DB_HAS_TD_NOTLS, 1, 1419 [Define if <thread_db.h> has the TD_NOTLS error code.]) 1420fi 1421 1422dnl See if we have a sys/syscall header file that has __NR_tkill. 1423if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then 1424 AC_CACHE_CHECK([whether <sys/syscall.h> has __NR_tkill], 1425 gdb_cv_sys_syscall_h_has_tkill, 1426 AC_TRY_COMPILE( 1427 [#include <sys/syscall.h>], 1428 [int i = __NR_tkill;], 1429 gdb_cv_sys_syscall_h_has_tkill=yes, 1430 gdb_cv_sys_syscall_h_has_tkill=no 1431 ) 1432 ) 1433fi 1434dnl See if we can issue tkill syscall. 1435if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes" && test "x$ac_cv_func_syscall" = "xyes"; then 1436 AC_DEFINE(HAVE_TKILL_SYSCALL, 1, [Define if you support the tkill syscall.]) 1437fi 1438 1439dnl Check if we can disable the virtual address space randomization. 1440dnl The functionality of setarch -R. 1441AC_CHECK_DECLS([ADDR_NO_RANDOMIZE],,, [#include <sys/personality.h>]) 1442define([PERSONALITY_TEST], [AC_LANG_PROGRAM([#include <sys/personality.h>], [ 1443# if !HAVE_DECL_ADDR_NO_RANDOMIZE 1444# define ADDR_NO_RANDOMIZE 0x0040000 1445# endif 1446 /* Test the flag could be set and stays set. */ 1447 personality (personality (0xffffffff) | ADDR_NO_RANDOMIZE); 1448 if (!(personality (personality (0xffffffff)) & ADDR_NO_RANDOMIZE)) 1449 return 1])]) 1450AC_RUN_IFELSE([PERSONALITY_TEST], 1451 [have_personality=true], 1452 [have_personality=false], 1453 [AC_LINK_IFELSE([PERSONALITY_TEST], 1454 [have_personality=true], 1455 [have_personality=false])]) 1456if $have_personality 1457then 1458 AC_DEFINE([HAVE_PERSONALITY], 1, 1459 [Define if you support the personality syscall.]) 1460fi 1461 1462dnl Handle optional features that can be enabled. 1463 1464target_sysroot_reloc=0 1465AC_ARG_WITH(sysroot, 1466AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], [search for usr/lib et al within DIR]), 1467[ 1468 case ${with_sysroot} in 1469 yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;; 1470 *) TARGET_SYSTEM_ROOT=$with_sysroot ;; 1471 esac 1472 1473 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"' 1474 1475 if test "x$prefix" = xNONE; then 1476 test_prefix=/usr/local 1477 else 1478 test_prefix=$prefix 1479 fi 1480 if test "x$exec_prefix" = xNONE || test "x$exec_prefix" = 'x${prefix}'; then 1481 test_exec_prefix=$test_prefix 1482 else 1483 test_exec_prefix=$exec_prefix 1484 fi 1485 case ${TARGET_SYSTEM_ROOT} in 1486 "${test_prefix}"|"${test_prefix}/"*|\ 1487 "${test_exec_prefix}"|"${test_exec_prefix}/"*|\ 1488 '${prefix}'|'${prefix}/'*|\ 1489 '${exec_prefix}'|'${exec_prefix}/'*) 1490 target_sysroot_reloc=1 1491 ;; 1492 esac 1493], [ 1494 TARGET_SYSTEM_ROOT= 1495 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"' 1496]) 1497TARGET_SYSTEM_ROOT_DEFINE="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE=$target_sysroot_reloc" 1498AC_SUBST(TARGET_SYSTEM_ROOT) 1499AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE) 1500 1501GDB_AC_WITH_DIR(SYSTEM_GDBINIT, system-gdbinit, 1502 [automatically load a system-wide gdbinit file], 1503 []) 1504 1505AC_ARG_ENABLE(werror, 1506 AS_HELP_STRING([--enable-werror], [treat compile warnings as errors]), 1507 [case "${enableval}" in 1508 yes | y) ERROR_ON_WARNING="yes" ;; 1509 no | n) ERROR_ON_WARNING="no" ;; 1510 *) AC_MSG_ERROR(bad value ${enableval} for --enable-werror) ;; 1511 esac]) 1512 1513WERROR_CFLAGS="" 1514if test "${ERROR_ON_WARNING}" = yes ; then 1515 WERROR_CFLAGS="-Werror" 1516fi 1517 1518# The entries after -Wno-pointer-sign are disabled warnings which may 1519# be enabled in the future, which can not currently be used to build 1520# GDB. 1521# NOTE: If you change this list, remember to update 1522# gdb/doc/gdbint.texinfo. 1523build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \ 1524-Wformat-nonliteral -Wno-pointer-sign \ 1525-Wno-unused -Wno-switch -Wno-char-subscripts" 1526 1527# Enable -Wno-format by default when using gcc on mingw since many 1528# GCC versions complain about %I64. 1529case "${host}" in 1530 *-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;; 1531esac 1532 1533AC_ARG_ENABLE(build-warnings, 1534AS_HELP_STRING([--enable-build-warnings], [enable build-time compiler warnings if gcc is used]), 1535[case "${enableval}" in 1536 yes) ;; 1537 no) build_warnings="-w";; 1538 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"` 1539 build_warnings="${build_warnings} ${t}";; 1540 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"` 1541 build_warnings="${t} ${build_warnings}";; 1542 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;; 1543esac 1544if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then 1545 echo "Setting compiler warning flags = $build_warnings" 6>&1 1546fi])dnl 1547AC_ARG_ENABLE(gdb-build-warnings, 1548AS_HELP_STRING([--enable-gdb-build-warnings], [enable GDB specific build-time compiler warnings if gcc is used]), 1549[case "${enableval}" in 1550 yes) ;; 1551 no) build_warnings="-w";; 1552 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"` 1553 build_warnings="${build_warnings} ${t}";; 1554 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"` 1555 build_warnings="${t} ${build_warnings}";; 1556 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;; 1557esac 1558if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then 1559 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1 1560fi])dnl 1561WARN_CFLAGS="" 1562if test "x${build_warnings}" != x -a "x$GCC" = xyes 1563then 1564 AC_MSG_CHECKING(compiler warning flags) 1565 # Separate out the -Werror flag as some files just cannot be 1566 # compiled with it enabled. 1567 for w in ${build_warnings}; do 1568 case $w in 1569 -Werr*) WERROR_CFLAGS=-Werror ;; 1570 *) # Check that GCC accepts it 1571 saved_CFLAGS="$CFLAGS" 1572 CFLAGS="$CFLAGS $w" 1573 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",) 1574 CFLAGS="$saved_CFLAGS" 1575 esac 1576 done 1577 AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS}) 1578fi 1579AC_SUBST(WARN_CFLAGS) 1580AC_SUBST(WERROR_CFLAGS) 1581 1582# In the Cygwin environment, we need some additional flags. 1583AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin, 1584[AC_EGREP_CPP(lose, [ 1585#if defined (__CYGWIN__) || defined (__CYGWIN32__) 1586lose 1587#endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])]) 1588 1589 1590dnl Figure out which of the many generic ser-*.c files the _host_ supports. 1591SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o" 1592case ${host} in 1593 *go32* ) SER_HARDWIRE=ser-go32.o ;; 1594 *djgpp* ) SER_HARDWIRE=ser-go32.o ;; 1595 *mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;; 1596esac 1597AC_SUBST(SER_HARDWIRE) 1598 1599# libreadline needs libuser32.a in a cygwin environment 1600WIN32LIBS= 1601if test x$gdb_cv_os_cygwin = xyes; then 1602 WIN32LIBS="-luser32" 1603 case "${target}" in 1604 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp" 1605 ;; 1606 esac 1607fi 1608 1609# The ser-tcp.c module requires sockets. 1610case ${host} in 1611 *mingw32*) 1612 AC_DEFINE(USE_WIN32API, 1, 1613 [Define if we should use the Windows API, instead of the 1614 POSIX API. On Windows, we use the Windows API when 1615 building for MinGW, but the POSIX API when building 1616 for Cygwin.]) 1617 WIN32LIBS="$WIN32LIBS -lws2_32" 1618 ;; 1619esac 1620AC_SUBST(WIN32LIBS) 1621 1622# Add ELF support to GDB, but only if BFD includes ELF support. 1623OLD_CFLAGS=$CFLAGS 1624OLD_LDFLAGS=$LDFLAGS 1625OLD_LIBS=$LIBS 1626CFLAGS="$CFLAGS -I${srcdir}/../include -I../bfd -I${srcdir}/../bfd" 1627LDFLAGS="$LDFLAGS -L../bfd -L../libiberty" 1628intl=`echo $LIBINTL | sed 's,${top_builddir}/,,g'` 1629LIBS="-lbfd -liberty $intl $LIBS" 1630AC_CACHE_CHECK([for ELF support in BFD], gdb_cv_var_elf, 1631[AC_TRY_LINK( 1632[#include <stdlib.h> 1633#include "bfd.h" 1634#include "elf-bfd.h" 1635], 1636[bfd *abfd = NULL; bfd_get_elf_phdr_upper_bound (abfd); ], 1637gdb_cv_var_elf=yes, gdb_cv_var_elf=no)]) 1638if test $gdb_cv_var_elf = yes; then 1639 CONFIG_OBS="$CONFIG_OBS elfread.o" 1640 AC_DEFINE(HAVE_ELF, 1, 1641 [Define if ELF support should be included.]) 1642fi 1643CFLAGS=$OLD_CFLAGS 1644LDFLAGS=$OLD_LDFLAGS 1645LIBS=$OLD_LIBS 1646 1647# Add any host-specific objects to GDB. 1648CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}" 1649 1650LIBGUI="../libgui/src/libgui.a" 1651GUI_CFLAGS_X="-I${srcdir}/../libgui/src" 1652AC_SUBST(LIBGUI) 1653AC_SUBST(GUI_CFLAGS_X) 1654 1655WIN32LDAPP= 1656AC_SUBST(WIN32LIBS) 1657AC_SUBST(WIN32LDAPP) 1658 1659case "${host}" in 1660*-*-cygwin* | *-*-mingw* ) 1661 configdir="win" 1662 ;; 1663*) 1664 configdir="unix" 1665 ;; 1666esac 1667 1668GDBTKLIBS= 1669if test "${enable_gdbtk}" = "yes"; then 1670 1671 # Gdbtk must have an absolute path to srcdir in order to run 1672 # properly when not installed. 1673 here=`pwd` 1674 cd ${srcdir} 1675 GDBTK_SRC_DIR=`pwd` 1676 cd $here 1677 1678 SC_PATH_TCLCONFIG 1679 1680 # If $no_tk is nonempty, then we can't do Tk, and there is no 1681 # point to doing Tcl. 1682 SC_PATH_TKCONFIG 1683 1684 if test -z "${no_tcl}" -a -z "${no_tk}"; then 1685 SC_LOAD_TCLCONFIG 1686 1687 # Check for in-tree tcl 1688 here=`pwd` 1689 cd ${srcdir}/.. 1690 topdir=`pwd` 1691 cd ${here} 1692 1693 intree="no" 1694 if test "${TCL_SRC_DIR}" = "${topdir}/tcl"; then 1695 intree="yes" 1696 fi 1697 1698 # Find Tcl private headers 1699 if test x"${intree}" = xno; then 1700 CY_AC_TCL_PRIVATE_HEADERS 1701 TCL_INCLUDE="${TCL_INCLUDE_SPEC} ${TCL_PRIVATE_INCLUDE}" 1702 TCL_LIBRARY="${TCL_LIB_SPEC}" 1703 TCL_DEPS="" 1704 else 1705 # If building tcl in the same src tree, private headers 1706 # are not needed, but we need to be sure to use the right 1707 # headers library 1708 TCL_INCLUDE="-I${TCL_SRC_DIR}/generic" 1709 TCL_LIBRARY="${TCL_BUILD_LIB_SPEC}" 1710 TCL_DEPS="../tcl/${configdir}${TCL_LIB_FILE}" 1711 fi 1712 AC_SUBST(TCL_INCLUDE) 1713 AC_SUBST(TCL_LIBRARY) 1714 AC_SUBST(TCL_DEPS) 1715 1716 SC_LOAD_TKCONFIG 1717 1718 # Check for in-tree Tk 1719 intree="no" 1720 if test "${TK_SRC_DIR}" = "${topdir}/tk"; then 1721 intree="yes" 1722 fi 1723 1724 # Find Tk private headers 1725 if test x"${intree}" = xno; then 1726 CY_AC_TK_PRIVATE_HEADERS 1727 TK_INCLUDE="${TK_INCLUDE_SPEC} ${TK_PRIVATE_INCLUDE}" 1728 TK_LIBRARY=${TK_LIB_SPEC} 1729 TK_DEPS="" 1730 else 1731 TK_INCLUDE="-I${TK_SRC_DIR}/generic" 1732 TK_LIBRARY="${TK_BUILD_LIB_SPEC}" 1733 TK_DEPS="../tk/${configdir}/${TK_LIB_FILE}" 1734 fi 1735 AC_SUBST(TK_INCLUDE) 1736 AC_SUBST(TK_LIBRARY) 1737 AC_SUBST(TK_DEPS) 1738 AC_SUBST(TK_XINCLUDES) 1739 1740 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)" 1741 1742 # Include some libraries that Tcl and Tk want. 1743 TCL_LIBS='$(LIBGUI) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)' 1744 # Yes, the ordering seems wrong here. But it isn't. 1745 # TK_LIBS is the list of libraries that need to be linked 1746 # after Tcl/Tk. Note that this isn't put into LIBS. If it 1747 # were in LIBS then any link tests after this point would 1748 # try to include things like `$(LIBGUI)', which wouldn't work. 1749 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}" 1750 1751 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)" 1752 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)" 1753 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)" 1754 CONFIG_ALL="${CONFIG_ALL} all-gdbtk" 1755 CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk" 1756 CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk" 1757 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk" 1758 1759 if test x$gdb_cv_os_cygwin = xyes; then 1760 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32" 1761 WIN32LDAPP="-Wl,--subsystem,console" 1762 CONFIG_OBS="${CONFIG_OBS} gdbres.o" 1763 fi 1764 1765 AC_CONFIG_SUBDIRS(gdbtk) 1766 fi 1767fi 1768 1769AC_SUBST(X_CFLAGS) 1770AC_SUBST(X_LDFLAGS) 1771AC_SUBST(X_LIBS) 1772AC_SUBST(GDBTKLIBS) 1773AC_SUBST(GDBTK_CFLAGS) 1774AC_SUBST(GDBTK_SRC_DIR) 1775 1776AC_PATH_X 1777 1778# Unlike the sim directory, whether a simulator is linked is controlled by 1779# presence of a gdb_sim definition in the target configure.tgt entry. 1780# This code just checks for a few cases where we'd like to ignore those 1781# definitions, even when they're present in the '.mt' file. These cases 1782# are when --disable-sim is specified, or if the simulator directory is 1783# not part of the source tree. 1784# 1785AC_ARG_ENABLE(sim, 1786AS_HELP_STRING([--enable-sim], [link gdb with simulator]), 1787[echo "enable_sim = $enable_sim"; 1788 echo "enableval = ${enableval}"; 1789 case "${enableval}" in 1790 yes) ignore_sim=false ;; 1791 no) ignore_sim=true ;; 1792 *) ignore_sim=false ;; 1793 esac], 1794[ignore_sim=false]) 1795 1796if test ! -d "${srcdir}/../sim"; then 1797 ignore_sim=true 1798fi 1799 1800SIM= 1801SIM_OBS= 1802if test "${ignore_sim}" = "false"; then 1803 if test x"${gdb_sim}" != x ; then 1804 SIM="${gdb_sim}" 1805 SIM_OBS="remote-sim.o" 1806 AC_DEFINE(WITH_SIM, 1, [Define if the simulator is being linked in.]) 1807 fi 1808fi 1809AC_SUBST(SIM) 1810AC_SUBST(SIM_OBS) 1811 1812AC_SUBST(ENABLE_CFLAGS) 1813AC_SUBST(PROFILE_CFLAGS) 1814 1815AC_SUBST(CONFIG_OBS) 1816AC_SUBST(CONFIG_DEPS) 1817AC_SUBST(CONFIG_SRCS) 1818AC_SUBST(CONFIG_ALL) 1819AC_SUBST(CONFIG_CLEAN) 1820AC_SUBST(CONFIG_INSTALL) 1821AC_SUBST(CONFIG_UNINSTALL) 1822 1823# List of host floatformats. 1824AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat]) 1825AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat]) 1826AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat]) 1827 1828# target_subdir is used by the testsuite to find the target libraries. 1829target_subdir= 1830if test "${host}" != "${target}"; then 1831 target_subdir="${target_alias}/" 1832fi 1833AC_SUBST(target_subdir) 1834 1835frags= 1836if test "${gdb_native}" = "yes"; then 1837 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh 1838 if test ! -f ${host_makefile_frag}; then 1839 AC_MSG_ERROR("*** Gdb does not support native target ${host}") 1840 fi 1841 frags="$frags $host_makefile_frag" 1842else 1843 host_makefile_frag=/dev/null 1844fi 1845 1846AC_SUBST_FILE(host_makefile_frag) 1847AC_SUBST(frags) 1848 1849changequote(,)dnl 1850if test "${gdb_native}" = "yes"; then 1851# We pick this up from the host configuration file (.mh) because we 1852# do not have a native configuration Makefile fragment. 1853nativefile=`sed -n ' 1854s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p 1855' ${host_makefile_frag}` 1856fi 1857changequote([,]) 1858 1859if test x"${gdb_osabi}" != x ; then 1860 AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi, 1861 [Define to the default OS ABI for this configuration.]) 1862fi 1863 1864# Enable multi-ice-gdb-server. 1865AC_ARG_ENABLE(multi-ice, 1866AS_HELP_STRING([--enable-multi-ice], [build the multi-ice-gdb-server]), 1867 [case $enableval in 1868 yes | no) 1869 ;; 1870 *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;; 1871 esac]) 1872if test "x$enable_multi_ice" = xyes; then 1873 AC_CONFIG_SUBDIRS(multi-ice) 1874fi 1875 1876# We only build gdbserver automatically in a native configuration. 1877if test "$gdb_native" = "yes"; then 1878 AC_MSG_CHECKING(whether gdbserver is supported on this host) 1879 if test "x$build_gdbserver" = xyes; then 1880 AC_MSG_RESULT(yes) 1881 AC_CONFIG_SUBDIRS(gdbserver) 1882 else 1883 AC_MSG_RESULT(no) 1884 fi 1885fi 1886 1887# If nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link 1888# to an empty version. 1889 1890files= 1891links= 1892 1893rm -f nm.h 1894if test "${nativefile}" != ""; then 1895 case "${nativefile}" in 1896 nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;; 1897 * ) GDB_NM_FILE="${nativefile}" 1898 esac 1899 files="${files} ${GDB_NM_FILE}" 1900 links="${links} nm.h" 1901 AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}", [nativefile]) 1902fi 1903AC_SUBST(GDB_NM_FILE) 1904 1905AC_LINK_FILES($files, $links) 1906 1907dnl Check for exe extension set on certain hosts (e.g. Win32) 1908AC_EXEEXT 1909 1910dnl Detect the character set used by this host. 1911dnl At the moment, we just assume it's UTF-8. 1912AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8", 1913 [Define to be a string naming the default host character set.]) 1914 1915AC_OUTPUT(Makefile .gdbinit:gdbinit.in gnulib/Makefile, 1916[ 1917case x$CONFIG_HEADERS in 1918xconfig.h:config.in) 1919echo > stamp-h ;; 1920esac 1921]) 1922 1923exit 0 1924