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