configure.ac revision 1.6
1dnl Autoconf configure script for GDB, the GNU debugger. 2dnl Copyright (C) 1995-2016 Free Software Foundation, Inc. 3dnl 4dnl This file is part of GDB. 5dnl 6dnl This program is free software; you can redistribute it and/or modify 7dnl it under the terms of the GNU General Public License as published by 8dnl the Free Software Foundation; either version 3 of the License, or 9dnl (at your option) any later version. 10dnl 11dnl This program is distributed in the hope that it will be useful, 12dnl but WITHOUT ANY WARRANTY; without even the implied warranty of 13dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14dnl GNU General Public License for more details. 15dnl 16dnl You should have received a copy of the GNU General Public License 17dnl along with this program. If not, see <http://www.gnu.org/licenses/>. 18 19dnl Process this file with autoconf to produce a configure script. 20 21AC_PREREQ(2.59)dnl 22AC_INIT(main.c) 23AC_CONFIG_HEADER(config.h:config.in) 24AM_MAINTAINER_MODE 25 26# Set the 'development' global. 27. $srcdir/../bfd/development.sh 28 29AC_PROG_CC 30AC_PROG_CXX 31 32AC_USE_SYSTEM_EXTENSIONS 33ACX_LARGEFILE 34AM_PROG_CC_STDC 35AM_PROG_INSTALL_STRIP 36 37AC_CONFIG_AUX_DIR(..) 38AC_CANONICAL_SYSTEM 39AC_ARG_PROGRAM 40 41# See if we are building with C++, and substitute COMPILER. 42GDB_AC_BUILD_WITH_CXX 43 44# Dependency checking. 45ZW_CREATE_DEPDIR 46ZW_PROG_COMPILER_DEPENDENCIES([CC]) 47 48# Check for the 'make' the user wants to use. 49AC_CHECK_PROGS(MAKE, make) 50MAKE_IS_GNU= 51case "`$MAKE --version 2>&1 | sed 1q`" in 52 *GNU*) 53 MAKE_IS_GNU=yes 54 ;; 55esac 56AM_CONDITIONAL(GMAKE, test "$MAKE_IS_GNU" = yes) 57AC_PROG_MAKE_SET 58 59gnulib_extra_configure_args= 60# If large-file support is disabled, make sure gnulib does the same. 61if test "$enable_largefile" = no; then 62gnulib_extra_configure_args="$gnulib_extra_configure_args --disable-largefile" 63fi 64 65# Configure gnulib. We need to build gnulib under some other 66# directory not "gnulib", to avoid the problem of both GDB and 67# GDBserver wanting to build it in the same directory, when building 68# in the source dir. 69ACX_CONFIGURE_DIR(["gnulib"], ["build-gnulib"], 70 ["$gnulib_extra_configure_args"]) 71 72dnl List of object files and targets accumulated by configure. 73 74CONFIG_OBS= 75CONFIG_DEPS= 76CONFIG_SRCS= 77ENABLE_CFLAGS= 78 79CONFIG_ALL= 80CONFIG_CLEAN= 81CONFIG_INSTALL= 82CONFIG_UNINSTALL= 83 84dnl Set up for gettext. 85ZW_GNU_GETTEXT_SISTER_DIR 86 87localedir='${datadir}/locale' 88AC_SUBST(localedir) 89 90if test x"$USE_NLS" = xyes; then 91 CONFIG_ALL="$CONFIG_ALL all-po" 92 CONFIG_CLEAN="$CONFIG_CLEAN clean-po" 93 CONFIG_INSTALL="$CONFIG_INSTALL install-po" 94 CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po" 95fi 96 97GNULIB=build-gnulib/import 98 99# For Makefile dependencies. 100GNULIB_STDINT_H= 101if test x"$STDINT_H" != x; then 102 GNULIB_STDINT_H=$GNULIB/$STDINT_H 103fi 104AC_SUBST(GNULIB_STDINT_H) 105 106PACKAGE=gdb 107AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ]) 108AC_SUBST(PACKAGE) 109 110# We never need to detect it in this sub-configure. 111# But preserve it for config.status --recheck. 112AC_ARG_VAR(MAKEINFO, 113 [Parent configure detects if it is of sufficient version.]) 114AC_ARG_VAR(MAKEINFOFLAGS, 115 [Parameters for MAKEINFO.]) 116 117MAKEINFO_EXTRA_FLAGS="" 118AC_CACHE_CHECK([whether $MAKEINFO supports @click], gdb_cv_have_makeinfo_click, 119 [echo '@clicksequence{a @click{} b}' >conftest.texinfo 120 if eval "$MAKEINFO conftest.texinfo >&5 2>&5"; then 121 gdb_cv_have_makeinfo_click=yes 122 else 123 gdb_cv_have_makeinfo_click=no 124 fi]) 125if test x"$gdb_cv_have_makeinfo_click" = xyes; then 126 MAKEINFO_EXTRA_FLAGS="$MAKEINFO_EXTRA_FLAGS -DHAVE_MAKEINFO_CLICK" 127fi 128AC_SUBST(MAKEINFO_EXTRA_FLAGS) 129 130GDB_AC_WITH_DIR(DEBUGDIR, separate-debug-dir, 131 [look for global separate debug info in this path @<:@LIBDIR/debug@:>@], 132 [${libdir}/debug]) 133 134# We can't pass paths as command line arguments. 135# Mingw32 tries to be clever and will convert the paths for us. 136# For example -DBINDIR="/usr/local/bin" passed on the command line may get 137# converted to -DBINDIR="E:/msys/mingw32/msys/1.0/local/bin". 138# This breaks GDB's relocatable path conversions since paths passed in 139# config.h would not get so translated, the path prefixes no longer match. 140AC_DEFINE_DIR(BINDIR, bindir, [Directory of programs.]) 141 142# GDB's datadir relocation 143 144GDB_AC_WITH_DIR(GDB_DATADIR, gdb-datadir, 145 [look for global separate data files in this path @<:@DATADIR/gdb@:>@], 146 [${datadir}/gdb]) 147 148AC_ARG_WITH(relocated-sources, 149AS_HELP_STRING([--with-relocated-sources=PATH], [automatically relocate this path for source files]), 150[reloc_srcdir="${withval}" 151 AC_DEFINE_DIR(RELOC_SRCDIR, reloc_srcdir, 152 [Relocated directory for source files. ]) 153]) 154 155AC_MSG_CHECKING([for default auto-load directory]) 156AC_ARG_WITH(auto-load-dir, 157AS_HELP_STRING([--with-auto-load-dir=PATH], 158 [directories from which to load auto-loaded scripts @<:@$debugdir:$datadir/auto-load@:>@]),, 159 [with_auto_load_dir='$debugdir:$datadir/auto-load']) 160escape_dir=`echo $with_auto_load_dir | sed 's/[[$]]\(datadir\|debugdir\)\>/\\\\\\\\\\\\&/g'` 161AC_DEFINE_DIR(AUTO_LOAD_DIR, escape_dir, 162 [Directories from which to load auto-loaded scripts.]) 163AC_MSG_RESULT([$with_auto_load_dir]) 164 165AC_MSG_CHECKING([for default auto-load safe-path]) 166AC_ARG_WITH(auto-load-safe-path, 167AS_HELP_STRING([--with-auto-load-safe-path=PATH], 168 [directories safe to hold auto-loaded files @<:@--with-auto-load-dir@:>@]) 169AS_HELP_STRING([--without-auto-load-safe-path], 170 [do not restrict auto-loaded files locations]), 171 [if test "$with_auto_load_safe_path" = "no"; then 172 with_auto_load_safe_path="/" 173 fi], 174[with_auto_load_safe_path="$with_auto_load_dir"]) 175escape_dir=`echo $with_auto_load_safe_path | sed 's/[[$]]\(datadir\|debugdir\)\>/\\\\\\\\\\\\&/g'` 176AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escape_dir, 177 [Directories safe to hold auto-loaded files.]) 178AC_MSG_RESULT([$with_auto_load_safe_path]) 179 180AC_CONFIG_SUBDIRS(testsuite) 181 182# Check whether to support alternative target configurations 183AC_ARG_ENABLE(targets, 184AS_HELP_STRING([--enable-targets=TARGETS], [alternative target configurations]), 185[case "${enableval}" in 186 yes | "") AC_ERROR(enable-targets option must specify target names or 'all') 187 ;; 188 no) enable_targets= ;; 189 *) enable_targets=$enableval ;; 190esac]) 191 192# Check whether to enable 64-bit support on 32-bit hosts 193AC_ARG_ENABLE(64-bit-bfd, 194AS_HELP_STRING([--enable-64-bit-bfd], [64-bit support (on hosts with narrower word sizes)]), 195[case "${enableval}" in 196 yes) want64=true ;; 197 no) want64=false ;; 198 *) AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;; 199esac],[want64=false])dnl 200 201# Provide defaults for some variables set by the per-host and per-target 202# configuration. 203gdb_host_obs=posix-hdep.o 204 205if test "${target}" = "${host}"; then 206 gdb_native=yes 207else 208 gdb_native=no 209fi 210 211. $srcdir/configure.host 212 213# Add in the common host objects. 214. $srcdir/common/common.host 215gdb_host_obs="$gdb_host_obs $common_host_obs" 216 217# Accumulate some settings from configure.tgt over all enabled targets 218 219TARGET_OBS= 220all_targets= 221HAVE_NATIVE_GCORE_TARGET= 222 223for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'` 224do 225 if test "$targ_alias" = "all"; then 226 all_targets=true 227 else 228 # Canonicalize the secondary target names. 229 result=`$ac_config_sub $targ_alias 2>/dev/null` 230 if test -n "$result"; then 231 targ=$result 232 else 233 targ=$targ_alias 234 fi 235 236 . ${srcdir}/configure.tgt 237 238 AS_IF([test -z "${gdb_target_obs}"], 239 [AC_MSG_ERROR([configuration ${targ} is unsupported.])]) 240 241 # Target-specific object files 242 for i in ${gdb_target_obs}; do 243 case " $TARGET_OBS " in 244 *" ${i} "*) ;; 245 *) 246 TARGET_OBS="$TARGET_OBS ${i}" 247 ;; 248 esac 249 done 250 251 # Check whether this target needs 64-bit CORE_ADDR 252 if test x${want64} = xfalse; then 253 . ${srcdir}/../bfd/config.bfd 254 fi 255 256 # Check whether this target is native and supports gcore. 257 if test $gdb_native = yes -a "$targ_alias" = "$target_alias" \ 258 && $gdb_have_gcore; then 259 HAVE_NATIVE_GCORE_TARGET=1 260 fi 261 fi 262done 263 264if test x${all_targets} = xtrue; then 265 266 # We want all 64-bit targets if we either: 267 # - run on a 64-bit host or 268 # - already require 64-bit support for some other target or 269 # - the --enable-64-bit-bfd option was supplied 270 # Otherwise we only support all 32-bit targets. 271 # 272 # NOTE: This test must be in sync with the corresponding 273 # tests in BFD! 274 275 if test x${want64} = xfalse; then 276 AC_CHECK_SIZEOF(long) 277 if test "x${ac_cv_sizeof_long}" = "x8"; then 278 want64=true 279 fi 280 fi 281 if test x${want64} = xtrue; then 282 TARGET_OBS='$(ALL_TARGET_OBS) $(ALL_64_TARGET_OBS)' 283 else 284 TARGET_OBS='$(ALL_TARGET_OBS)' 285 fi 286fi 287 288AC_SUBST(TARGET_OBS) 289AC_SUBST(HAVE_NATIVE_GCORE_TARGET) 290 291# For other settings, only the main target counts. 292gdb_sim= 293gdb_osabi= 294build_gdbserver= 295targ=$target; . ${srcdir}/configure.tgt 296 297# Fetch the default architecture and default target vector from BFD. 298targ=$target; . $srcdir/../bfd/config.bfd 299 300# We only want the first architecture, so strip off the others if 301# there is more than one. 302targ_archs=`echo $targ_archs | sed 's/ .*//'` 303 304if test "x$targ_archs" != x; then 305 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs, 306 [Define to BFD's default architecture. ]) 307fi 308if test "x$targ_defvec" != x; then 309 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec, 310 [Define to BFD's default target vector. ]) 311fi 312 313# The CLI cannot be disabled yet, but may be in the future. 314 315# Enable CLI. 316AC_ARG_ENABLE(gdbcli, 317AS_HELP_STRING([--disable-gdbcli], [disable command-line interface (CLI)]), 318 [case $enableval in 319 yes) 320 ;; 321 no) 322 AC_MSG_ERROR([the command-line interface cannot be disabled yet]) ;; 323 *) 324 AC_MSG_ERROR([bad value $enableval for --enable-gdbcli]) ;; 325 esac], 326 [enable_gdbcli=yes]) 327if test x"$enable_gdbcli" = xyes; then 328 if test -d $srcdir/cli; then 329 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)" 330 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)" 331 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)" 332 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)" 333 fi 334fi 335 336# Enable MI. 337AC_ARG_ENABLE(gdbmi, 338AS_HELP_STRING([--disable-gdbmi], [disable machine-interface (MI)]), 339 [case $enableval in 340 yes | no) 341 ;; 342 *) 343 AC_MSG_ERROR([bad value $enableval for --enable-gdbmi]) ;; 344 esac], 345 [enable_gdbmi=yes]) 346if test x"$enable_gdbmi" = xyes; then 347 if test -d $srcdir/mi; then 348 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)" 349 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)" 350 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)" 351 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)" 352 fi 353fi 354 355# Enable TUI. 356AC_ARG_ENABLE(tui, 357AS_HELP_STRING([--enable-tui], [enable full-screen terminal user interface (TUI)]), 358 [case $enableval in 359 yes | no | auto) 360 ;; 361 *) 362 AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;; 363 esac],enable_tui=auto) 364 365# Enable gdbtk. 366AC_ARG_ENABLE(gdbtk, 367AS_HELP_STRING([--enable-gdbtk], [enable gdbtk graphical user interface (GUI)]), 368 [case $enableval in 369 yes | no) 370 ;; 371 *) 372 AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;; 373 esac], 374 [if test -d $srcdir/gdbtk; then 375 enable_gdbtk=yes 376 else 377 enable_gdbtk=no 378 fi]) 379# We unconditionally disable gdbtk tests on selected platforms. 380case $host_os in 381 go32* | windows*) 382 AC_MSG_WARN([gdbtk isn't supported on $host; disabling]) 383 enable_gdbtk=no ;; 384esac 385 386# Libunwind support for ia64. 387 388AC_ARG_WITH(libunwind-ia64, 389AS_HELP_STRING([--with-libunwind-ia64], 390 [use libunwind frame unwinding for ia64 targets]),, 391 [with_libunwind_ia64=auto]) 392 393# Backward compatibility option. 394if test "${with_libunwind+set}" = set; then 395 if test x"$with_libunwind_ia64" != xauto; then 396 AC_MSG_ERROR( 397 [option --with-libunwind is deprecated, use --with-libunwind-ia64]) 398 fi 399 AC_MSG_WARN([option --with-libunwind is deprecated, use --with-libunwind-ia64]) 400 with_libunwind_ia64="$with_libunwind" 401fi 402 403case "$with_libunwind_ia64" in 404 yes | no) 405 ;; 406 auto) 407 AC_CHECK_HEADERS(libunwind-ia64.h) 408 with_libunwind_ia64=$ac_cv_header_libunwind_ia64_h 409 ;; 410 *) 411 AC_MSG_ERROR( 412 [bad value $with_libunwind_ia64 for GDB --with-libunwind-ia64 option]) 413 ;; 414esac 415 416if test x"$with_libunwind_ia64" = xyes; then 417 AC_CHECK_HEADERS(libunwind-ia64.h) 418 if test x"$ac_cv_header_libunwind_ia64_h" != xyes; then 419 AC_MSG_ERROR([GDB option --with-libunwind-ia64 requires libunwind-ia64.h]) 420 fi 421 CONFIG_OBS="$CONFIG_OBS ia64-libunwind-tdep.o" 422 CONFIG_DEPS="$CONFIG_DEPS ia64-libunwind-tdep.o" 423 CONFIG_SRCS="$CONFIG_SRCS ia64-libunwind-tdep.c" 424fi 425 426opt_curses=no 427AC_ARG_WITH(curses, AS_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval) 428 429prefer_curses=no 430if test "$opt_curses" = "yes"; then 431 prefer_curses=yes 432fi 433 434# Profiling support. 435AC_ARG_ENABLE(profiling, 436AS_HELP_STRING([--enable-profiling], [enable profiling of GDB]), 437 [case $enableval in 438 yes | no) 439 ;; 440 *) 441 AC_MSG_ERROR([bad value $enableval for --enable-profile]) ;; 442 esac], 443 [enable_profiling=no]) 444 445AC_CHECK_FUNCS(monstartup _mcleanup) 446AC_CACHE_CHECK([for _etext], ac_cv_var__etext, 447[AC_TRY_LINK( 448[#include <stdlib.h> 449extern char _etext; 450], 451[free (&_etext);], ac_cv_var__etext=yes, ac_cv_var__etext=no)]) 452if test $ac_cv_var__etext = yes; then 453 AC_DEFINE(HAVE__ETEXT, 1, 454 [Define to 1 if your system has the _etext variable. ]) 455fi 456AC_CACHE_CHECK([for etext], ac_cv_var_etext, 457[AC_TRY_LINK( 458[#include <stdlib.h> 459extern char etext; 460], 461[free (&etext);], ac_cv_var_etext=yes, ac_cv_var_etext=no)]) 462if test $ac_cv_var_etext = yes; then 463 AC_DEFINE(HAVE_ETEXT, 1, 464 [Define to 1 if your system has the etext variable. ]) 465fi 466if test "$enable_profiling" = yes ; then 467 if test $ac_cv_func_monstartup = no || test $ac_cv_func__mcleanup = no; then 468 AC_MSG_ERROR(--enable-profiling requires monstartup and _mcleanup) 469 fi 470 PROFILE_CFLAGS=-pg 471 OLD_CFLAGS="$CFLAGS" 472 CFLAGS="$CFLAGS $PROFILE_CFLAGS" 473 474 AC_CACHE_CHECK([whether $CC supports -pg], ac_cv_cc_supports_pg, 475 [AC_TRY_COMPILE([], [int x;], ac_cv_cc_supports_pg=yes, 476 ac_cv_cc_supports_pg=no)]) 477 478 if test $ac_cv_cc_supports_pg = no; then 479 AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg) 480 fi 481 482 CFLAGS="$OLD_CFLAGS" 483fi 484 485ACX_PKGVERSION([GDB]) 486ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/]) 487AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description]) 488AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address]) 489 490# --------------------- # 491# Checks for programs. # 492# --------------------- # 493 494AC_PROG_AWK 495AC_PROG_INSTALL 496AC_PROG_LN_S 497AC_PROG_RANLIB 498AC_PROG_YACC 499 500AC_CHECK_TOOL(AR, ar) 501AC_CHECK_TOOL(DLLTOOL, dlltool) 502AC_CHECK_TOOL(WINDRES, windres) 503 504case $host_os in 505 gnu*) 506 # Needed for GNU Hurd hosts. 507 AC_CHECK_TOOL(MIG, mig) 508 if test x"$MIG" = x; then 509 AC_MSG_ERROR([MIG not found but required for $host hosts]) 510 fi 511 ;; 512esac 513 514# ---------------------- # 515# Checks for libraries. # 516# ---------------------- # 517 518# We might need to link with -lm; most simulators need it. 519AC_CHECK_LIB(m, main) 520 521# We need to link with -lw to get `wctype' on Solaris before Solaris 522# 2.6. Solaris 2.6 and beyond have this function in libc, and have a 523# libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1 524# is known to have this problem). Therefore we avoid libw if we can. 525AC_CHECK_FUNC(wctype, [], 526 [AC_CHECK_LIB(w, wctype)]) 527 528# Some systems (e.g. Solaris) have `gethostbyname' in libnsl. 529AC_SEARCH_LIBS(gethostbyname, nsl) 530 531# Some systems (e.g. Solaris) have `socketpair' in libsocket. 532AC_SEARCH_LIBS(socketpair, socket) 533 534# Link in zlib if we can. This allows us to read compressed debug sections. 535AM_ZLIB 536 537# On FreeBSD we may need libutil for kinfo_getvmmap (used by fbsd-nat.c). 538# On GNU/kFreeBSD systems, FreeBSD libutil is renamed to libutil-freebsd. 539AC_SEARCH_LIBS(kinfo_getvmmap, util util-freebsd, 540 [AC_DEFINE(HAVE_KINFO_GETVMMAP, 1, 541 [Define to 1 if your system has the kinfo_getvmmap function. ])]) 542 543AM_ICONV 544 545# GDB may fork/exec the iconv program to get the list of supported character 546# sets. Allow the user to specify where to find it. 547# There are several factors affecting the choice of option name: 548# - There is already --with-libiconv-prefix but we can't use it, it specifies 549# the build-time location of libiconv files. 550# - The program we need to find is iconv, which comes with glibc. The user 551# doesn't necessarily have libiconv installed. Therefore naming this 552# --with-libiconv-foo feels wrong. 553# - We want the path to be relocatable, but GDB_AC_DEFINE_RELOCATABLE is 554# defined to work on directories not files (though it really doesn't know 555# the difference). 556# - Calling this --with-iconv-prefix is perceived to cause too much confusion 557# with --with-libiconv-prefix. 558# Putting these together is why the option name is --with-iconv-bin. 559 560AC_ARG_WITH(iconv-bin, 561AS_HELP_STRING([--with-iconv-bin=PATH], [specify where to find the iconv program]), 562[iconv_bin="${withval}" 563 AC_DEFINE_UNQUOTED([ICONV_BIN], ["${iconv_bin}"], 564 [Path of directory of iconv program.]) 565 GDB_AC_DEFINE_RELOCATABLE(ICONV_BIN, iconv, ${iconv_bin}) 566]) 567 568# For the TUI, we need enhanced curses functionality. 569if test x"$enable_tui" != xno; then 570 prefer_curses=yes 571fi 572 573curses_found=no 574if test x"$prefer_curses" = xyes; then 575 # FIXME: kettenis/20040905: We prefer ncurses over the vendor-supplied 576 # curses library because the latter might not provide all the 577 # functionality we need. However, this leads to problems on systems 578 # where the linker searches /usr/local/lib, but the compiler doesn't 579 # search /usr/local/include, if ncurses is installed in /usr/local. A 580 # default installation of ncurses on alpha*-dec-osf* will lead to such 581 # a situation. 582 AC_SEARCH_LIBS(waddstr, [ncurses cursesX curses]) 583 584 if test "$ac_cv_search_waddstr" != no; then 585 curses_found=yes 586 fi 587fi 588 589# Check whether we should enable the TUI, but only do so if we really 590# can. 591if test x"$enable_tui" != xno; then 592 if test -d $srcdir/tui; then 593 if test "$curses_found" != no; then 594 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)" 595 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)" 596 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)" 597 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)" 598 else 599 if test x"$enable_tui" = xyes; then 600 AC_MSG_ERROR([no enhanced curses library found; disable TUI]) 601 else 602 AC_MSG_WARN([no enhanced curses library found; disabling TUI]) 603 fi 604 fi 605 fi 606fi 607 608# Since GDB uses Readline, we need termcap functionality. In many 609# cases this will be provided by the curses library, but some systems 610# have a seperate termcap library, or no curses library at all. 611 612case $host_os in 613 cygwin*) 614 if test -d $srcdir/libtermcap; then 615 LIBS="../libtermcap/libtermcap.a $LIBS" 616 ac_cv_search_tgetent="../libtermcap/libtermcap.a" 617 fi ;; 618 go32* | *djgpp*) 619 ac_cv_search_tgetent="none required" 620 ;; 621esac 622 623# These are the libraries checked by Readline. 624AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses]) 625 626if test "$ac_cv_search_tgetent" = no; then 627 CONFIG_OBS="$CONFIG_OBS stub-termcap.o" 628fi 629 630AC_ARG_WITH([system-readline], 631 [AS_HELP_STRING([--with-system-readline], 632 [use installed readline library])]) 633 634if test "$with_system_readline" = yes; then 635 READLINE=-lreadline 636 READLINE_DEPS= 637 READLINE_CFLAGS= 638 READLINE_TEXI_INCFLAG= 639else 640 READLINE='$(READLINE_DIR)/libreadline.a' 641 READLINE_DEPS='$(READLINE)' 642 READLINE_CFLAGS='-I$(READLINE_SRC)/..' 643 READLINE_TEXI_INCFLAG='-I $(READLINE_DIR)' 644fi 645AC_SUBST(READLINE) 646AC_SUBST(READLINE_DEPS) 647AC_SUBST(READLINE_CFLAGS) 648AC_SUBST(READLINE_TEXI_INCFLAG) 649 650# Generate jit-reader.h 651 652# This is typedeffed to GDB_CORE_ADDR in jit-reader.h 653TARGET_PTR= 654 655AC_CHECK_SIZEOF(unsigned long long) 656AC_CHECK_SIZEOF(unsigned long) 657AC_CHECK_SIZEOF(unsigned __int128) 658 659if test "x${ac_cv_sizeof_unsigned_long}" = "x8"; then 660 TARGET_PTR="unsigned long" 661elif test "x${ac_cv_sizeof_unsigned_long_long}" = "x8"; then 662 TARGET_PTR="unsigned long long" 663elif test "x${ac_cv_sizeof_unsigned___int128}" = "x16"; then 664 TARGET_PTR="unsigned __int128" 665else 666 TARGET_PTR="unsigned long" 667fi 668 669AC_SUBST(TARGET_PTR) 670AC_CONFIG_FILES([jit-reader.h:jit-reader.in]) 671 672AC_SEARCH_LIBS(dlopen, dl) 673 674GDB_AC_WITH_DIR([JIT_READER_DIR], [jit-reader-dir], 675 [directory to load the JIT readers from], 676 [${libdir}/gdb]) 677 678AC_ARG_WITH(expat, 679 AS_HELP_STRING([--with-expat], [include expat support (auto/yes/no)]), 680 [], [with_expat=auto]) 681AC_MSG_CHECKING([whether to use expat]) 682AC_MSG_RESULT([$with_expat]) 683 684if test "${with_expat}" = no; then 685 AC_MSG_WARN([expat support disabled; some features may be unavailable.]) 686 HAVE_LIBEXPAT=no 687else 688 AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"], 689 [XML_Parser p = XML_ParserCreate (0);]) 690 if test "$HAVE_LIBEXPAT" != yes; then 691 if test "$with_expat" = yes; then 692 AC_MSG_ERROR([expat is missing or unusable]) 693 else 694 AC_MSG_WARN([expat is missing or unusable; some features may be unavailable.]) 695 fi 696 else 697 save_LIBS=$LIBS 698 LIBS="$LIBS $LIBEXPAT" 699 AC_CHECK_FUNCS(XML_StopParser) 700 LIBS=$save_LIBS 701 fi 702fi 703 704# --------------------- # 705# Check for libpython. # 706# --------------------- # 707 708dnl Utility to simplify finding libpython. 709dnl $1 = pythonX.Y 710dnl $2 = the shell variable to assign the result to 711dnl If libpython is found we store $version here. 712dnl $3 = additional flags to add to CPPFLAGS 713dnl $4 = additional flags to add to LIBS 714 715AC_DEFUN([AC_TRY_LIBPYTHON], 716[ 717 version=$1 718 define([have_libpython_var],$2) 719 new_CPPFLAGS=$3 720 new_LIBS=$4 721 AC_MSG_CHECKING([for ${version}]) 722 save_CPPFLAGS=$CPPFLAGS 723 save_LIBS=$LIBS 724 CPPFLAGS="$CPPFLAGS $new_CPPFLAGS" 725 LIBS="$LIBS $new_LIBS" 726 found_usable_python=no 727 AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "Python.h"]], 728 [[Py_Initialize ();]]), 729 [have_libpython_var=${version} 730 found_usable_python=yes 731 PYTHON_CPPFLAGS=$new_CPPFLAGS 732 PYTHON_LIBS=$new_LIBS]) 733 CPPFLAGS=$save_CPPFLAGS 734 LIBS=$save_LIBS 735 AC_MSG_RESULT([${found_usable_python}]) 736]) 737 738dnl There are several different values for --with-python: 739dnl 740dnl no - Don't include python support. 741dnl yes - Include python support, error if it's missing. 742dnl If we find python in $PATH, use it to fetch configure options, 743dnl otherwise assume the compiler can find it with no help from us. 744dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn. 745dnl auto - Same as "yes", but if python is missing from the system, 746dnl fall back to "no". 747dnl /path/to/python/exec-prefix - 748dnl Use the python located in this directory. 749dnl If /path/to/python/exec-prefix/bin/python exists, use it to find 750dnl the compilation parameters. Otherwise use 751dnl -I/path/to/python/exec-prefix/include, 752dnl -L/path/to/python/exec-prefix/lib. 753dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn. 754dnl NOTE: This case is historical. It is what was done for 7.0/7.1 755dnl but is deprecated. 756dnl /path/to/python/executable - 757dnl Run python-config.py with this version of python to fetch the 758dnl compilation parameters. 759dnl NOTE: This needn't be the real python executable. 760dnl In a cross-compilation scenario (build != host), this could be 761dnl a shell script that provides what python-config.py provides for 762dnl --ldflags, --includes, --exec-prefix. 763dnl python-executable - 764dnl Find python-executable in $PATH, and then handle the same as 765dnl /path/to/python/executable. 766dnl 767dnl If a python program is specified, it is used to run python-config.py and 768dnl is passed --ldflags, --includes, --exec-prefix. 769 770AC_ARG_WITH(python, 771 AS_HELP_STRING([--with-python@<:@=PYTHON@:>@], [include python support (auto/yes/no/<python-program>)]), 772 [], [with_python=auto]) 773AC_MSG_CHECKING([whether to use python]) 774AC_MSG_RESULT([$with_python]) 775 776if test "${with_python}" = no; then 777 AC_MSG_WARN([python support disabled; some features may be unavailable.]) 778 have_libpython=no 779else 780 case "${with_python}" in 781 [[\\/]]* | ?:[[\\/]]*) 782 if test -d ${with_python}; then 783 # Assume the python binary is ${with_python}/bin/python. 784 python_prog="${with_python}/bin/python" 785 python_prefix= 786 # If python does not exit ${with_python}/bin, then try in 787 # ${with_python}. On Windows/MinGW, this is where the Python 788 # executable is. 789 if test ! -x "${python_prog}"; then 790 python_prog="${with_python}/python" 791 python_prefix= 792 fi 793 if test ! -x "${python_prog}"; then 794 # Fall back to gdb 7.0/7.1 behaviour. 795 python_prog=missing 796 python_prefix=${with_python} 797 fi 798 elif test -x "${with_python}"; then 799 # While we can't run python compiled for $host (unless host == build), 800 # the user could write a script that provides the needed information, 801 # so we support that. 802 python_prog=${with_python} 803 python_prefix= 804 else 805 AC_ERROR(invalid value for --with-python) 806 fi 807 ;; 808 */*) 809 # Disallow --with-python=foo/bar. 810 AC_ERROR(invalid value for --with-python) 811 ;; 812 *) 813 # The user has either specified auto, yes, or the name of the python 814 # program assumed to be in $PATH. 815 python_prefix= 816 case "${with_python}" in 817 yes | auto) 818 if test ${build} = ${host}; then 819 AC_PATH_PROG(python_prog_path, python, missing) 820 if test "${python_prog_path}" = missing; then 821 python_prog=missing 822 else 823 python_prog=${python_prog_path} 824 fi 825 else 826 # Not much we can do except assume the cross-compiler will find the 827 # right files. 828 python_prog=missing 829 fi 830 ;; 831 *) 832 # While we can't run python compiled for $host (unless host == build), 833 # the user could write a script that provides the needed information, 834 # so we support that. 835 python_prog="${with_python}" 836 AC_PATH_PROG(python_prog_path, ${python_prog}, missing) 837 if test "${python_prog_path}" = missing; then 838 AC_ERROR(unable to find python program ${python_prog}) 839 fi 840 ;; 841 esac 842 esac 843 844 if test "${python_prog}" != missing; then 845 # We have a python program to use, but it may be too old. 846 # Don't flag an error for --with-python=auto (the default). 847 have_python_config=yes 848 python_includes=`${python_prog} ${srcdir}/python/python-config.py --includes` 849 if test $? != 0; then 850 have_python_config=failed 851 if test "${with_python}" != auto; then 852 AC_ERROR(failure running python-config --includes) 853 fi 854 fi 855 python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags` 856 if test $? != 0; then 857 have_python_config=failed 858 if test "${with_python}" != auto; then 859 AC_ERROR(failure running python-config --ldflags) 860 fi 861 fi 862 python_prefix=`${python_prog} ${srcdir}/python/python-config.py --exec-prefix` 863 if test $? != 0; then 864 have_python_config=failed 865 if test "${with_python}" != auto; then 866 AC_ERROR(failure running python-config --exec-prefix) 867 fi 868 fi 869 else 870 # We do not have a python executable we can use to determine where 871 # to find the Python headers and libs. We cannot guess the include 872 # path from the python_prefix either, because that include path 873 # depends on the Python version. So, there is nothing much we can 874 # do except assume that the compiler will be able to find those files. 875 python_includes= 876 python_libs= 877 have_python_config=no 878 fi 879 880 # If we have python-config, only try the configuration it provides. 881 # Otherwise fallback on the old way of trying different versions of 882 # python in turn. 883 884 have_libpython=no 885 if test "${have_python_config}" = yes; then 886 # Determine the Python version by extracting "-lpython<version>" 887 # part of the python_libs. <version> is usually X.Y with X and Y 888 # being decimal numbers, but can also be XY (seen on Windows). 889 # 890 # The extraction is performed using sed with a regular expression. 891 # Initially, the regexp used was using the '?' quantifier to make 892 # the dot in the version number optional. Unfortunately, this 893 # does not work with non-GNU versions of sed because, because of 894 # what looks like a limitation (the '?' quantifier does not work 895 # with back-references). We work around this limitation by using 896 # the '*' quantifier instead. It means that, in theory, we might 897 # match unexpected version strings such as "-lpython2..7", but 898 # this seems unlikely in practice. And even if that happens, 899 # an error will be triggered later on, when checking that version 900 # number. 901 python_version=`echo " ${python_libs} " \ 902 | sed -e 's,^.* -l\(python[[0-9]]*[[.]]*[[0-9]]*\).*$,\1,'` 903 case "${python_version}" in 904 python*) 905 AC_TRY_LIBPYTHON(${python_version}, have_libpython, 906 ${python_includes}, ${python_libs}) 907 ;; 908 *) 909 AC_MSG_ERROR([unable to determine python version from ${python_libs}]) 910 ;; 911 esac 912 elif test "${have_python_config}" != failed; then 913 if test "${have_libpython}" = no; then 914 AC_TRY_LIBPYTHON(python2.7, have_libpython, 915 ${python_includes}, "${python_libs} -lpython2.7") 916 fi 917 if test "${have_libpython}" = no; then 918 AC_TRY_LIBPYTHON(python2.6, have_libpython, 919 ${python_includes}, "${python_libs} -lpython2.6") 920 fi 921 if test ${have_libpython} = no; then 922 AC_TRY_LIBPYTHON(python2.5, have_libpython, 923 ${python_includes}, "${python_libs} -lpython2.5") 924 fi 925 if test ${have_libpython} = no; then 926 AC_TRY_LIBPYTHON(python2.4, have_libpython, 927 ${python_includes}, "${python_libs} -lpython2.4") 928 fi 929 fi 930 if test "${have_libpython}" = python2.7 -o "${have_libpython}" = python27; then 931 AC_DEFINE(HAVE_LIBPYTHON2_7, 1, [Define if Python 2.7 is being used.]) 932 elif test "${have_libpython}" = python2.6 -o "${have_libpython}" = python26; then 933 AC_DEFINE(HAVE_LIBPYTHON2_6, 1, [Define if Python 2.6 is being used.]) 934 elif test "${have_libpython}" = python2.5 -o "${have_libpython}" = python25; then 935 AC_DEFINE(HAVE_LIBPYTHON2_5, 1, [Define if Python 2.5 is being used.]) 936 elif test "${have_libpython}" = python2.4 -o "${have_libpython}" = python24; then 937 AC_DEFINE(HAVE_LIBPYTHON2_4, 1, [Define if Python 2.4 is being used.]) 938 fi 939 940 if test "${have_libpython}" = no; then 941 case "${with_python}" in 942 yes) 943 AC_MSG_ERROR([python is missing or unusable]) 944 ;; 945 auto) 946 AC_MSG_WARN([python is missing or unusable; some features may be unavailable.]) 947 ;; 948 *) 949 AC_MSG_ERROR([no usable python found at ${with_python}]) 950 ;; 951 esac 952 else 953 if test -n "${python_prefix}"; then 954 AC_DEFINE_UNQUOTED(WITH_PYTHON_PATH, "${python_prefix}", 955 [Define if --with-python provides a path, either directly or via python-config.py --exec-prefix.]) 956 GDB_AC_DEFINE_RELOCATABLE(PYTHON_PATH, python, ${python_prefix}) 957 fi 958 fi 959fi 960 961if test "${have_libpython}" != no; then 962 AC_DEFINE(HAVE_PYTHON, 1, [Define if Python interpreter is being linked in.]) 963 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_PYTHON_OBS)" 964 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)" 965 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_PYTHON_SRCS)" 966 CONFIG_INSTALL="$CONFIG_INSTALL install-python" 967 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)" 968 969 # Flags needed to compile Python code (taken from python-config --cflags). 970 # We cannot call python-config directly because it will output whatever was 971 # used when compiling the Python interpreter itself, including flags which 972 # would make the python-related objects be compiled differently from the 973 # rest of GDB (e.g., -O2 and -fPIC). 974 if test "${GCC}" = yes; then 975 tentative_python_cflags="-fno-strict-aliasing -DNDEBUG -fwrapv" 976 fi 977 978 if test "x${tentative_python_cflags}" != x; then 979 AC_MSG_CHECKING(compiler flags for python code) 980 for flag in ${tentative_python_cflags}; do 981 # Check that the compiler accepts it 982 saved_CFLAGS="$CFLAGS" 983 CFLAGS="$CFLAGS $flag" 984 AC_TRY_COMPILE([],[],PYTHON_CFLAGS="${PYTHON_CFLAGS} $flag",) 985 CFLAGS="$saved_CFLAGS" 986 done 987 AC_MSG_RESULT(${PYTHON_CFLAGS}) 988 fi 989 990 # On x64 Windows, Python's include headers, and pyconfig.h in 991 # particular, rely on MS_WIN64 macro to detect that it's a 64bit 992 # version of Windows. Unfortunately, MS_WIN64 is only defined if 993 # _MSC_VER, a Microsoft-specific macro, is defined. So, when 994 # building on x64 Windows with GCC, we define MS_WIN64 ourselves. 995 # The issue was reported to the Python community, but still isn't 996 # solved as of 2012-10-02 (http://bugs.python.org/issue4709). 997 998 case "$gdb_host" in 999 mingw64) 1000 if test "${GCC}" = yes; then 1001 CPPFLAGS="$CPPFLAGS -DMS_WIN64" 1002 fi 1003 ;; 1004 esac 1005 1006 # Note that "python -m threading" cannot be used to check for 1007 # threading support due to a bug in Python 2.7.3 1008 # (http://bugs.python.org/issue15567). 1009 AC_MSG_CHECKING(whether python supports threads) 1010 saved_CPPFLAGS="${CPPFLAGS}" 1011 CPPFLAGS="${PYTHON_CPPFLAGS}" 1012 # Note that the test is reversed so that python_has_threads=yes on 1013 # unexpected failures. 1014 AC_PREPROC_IFELSE(AC_LANG_SOURCE([[ 1015#include <Python.h> 1016#ifdef WITH_THREAD 1017# error 1018#endif 1019 ]]), [python_has_threads=no], [python_has_threads=yes]) 1020 AC_MSG_RESULT(${python_has_threads}) 1021 CPPFLAGS="${saved_CPPFLAGS}" 1022else 1023 # Even if Python support is not compiled in, we need to have this file 1024 # included so that the "python" command, et.al., still exists. 1025 CONFIG_OBS="$CONFIG_OBS python.o" 1026 CONFIG_SRCS="$CONFIG_SRCS python/python.c" 1027fi 1028 1029# Work around Python http://bugs.python.org/issue10112. See also 1030# http://bugs.python.org/issue11410, otherwise -Wl,--dynamic-list has 1031# no effect. Note that the only test after this that uses Python is 1032# the -rdynamic/-Wl,--dynamic-list test, and we do want that one to be 1033# run without -export-dynamic too. 1034PYTHON_LIBS=`echo $PYTHON_LIBS | sed -e 's/-Xlinker -export-dynamic//'` 1035 1036AC_SUBST(PYTHON_CFLAGS) 1037AC_SUBST(PYTHON_CPPFLAGS) 1038AC_SUBST(PYTHON_LIBS) 1039AM_CONDITIONAL(HAVE_PYTHON, test "${have_libpython}" != no) 1040 1041# -------------------- # 1042# Check for libguile. # 1043# -------------------- # 1044 1045dnl Utility to simplify finding libguile. 1046dnl $1 = pkg-config-program 1047dnl $2 = space-separate list of guile versions to try 1048dnl $3 = yes|no, indicating whether to flag errors or ignore them 1049dnl $4 = the shell variable to assign the result to 1050dnl If libguile is found we store "yes" here. 1051 1052AC_DEFUN([AC_TRY_LIBGUILE], 1053[ 1054 pkg_config=$1 1055 guile_version_list=$2 1056 flag_errors=$3 1057 define([have_libguile_var],$4) 1058 found_usable_guile=checking 1059 AC_MSG_CHECKING([for usable guile from ${pkg_config}]) 1060 for guile_version in ${guile_version_list}; do 1061 ${pkg_config} --exists ${guile_version} 2>/dev/null 1062 if test $? != 0; then 1063 continue 1064 fi 1065 dnl pkg-config says the package exists, so if we get an error now, 1066 dnl that's bad. 1067 new_CPPFLAGS=`${pkg_config} --cflags ${guile_version}` 1068 if test $? != 0; then 1069 AC_MSG_ERROR([failure running pkg-config --cflags ${guile_version}]) 1070 fi 1071 new_LIBS=`${pkg_config} --libs ${guile_version}` 1072 if test $? != 0; then 1073 AC_MSG_ERROR([failure running pkg-config --libs ${guile_version}]) 1074 fi 1075 dnl If we get this far, great. 1076 found_usable_guile=${guile_version} 1077 break 1078 done 1079 if test "${found_usable_guile}" = "checking"; then 1080 if test "${flag_errors}" = "yes"; then 1081 AC_MSG_ERROR([unable to find usable guile version from "${guile_version_list}"]) 1082 else 1083 found_usable_guile=no 1084 fi 1085 fi 1086 dnl One final sanity check. 1087 dnl The user could have said --with-guile=python-2.7. 1088 if test "${found_usable_guile}" != no; then 1089 save_CPPFLAGS=$CPPFLAGS 1090 save_LIBS=$LIBS 1091 CPPFLAGS="$CPPFLAGS $new_CPPFLAGS" 1092 LIBS="$LIBS $new_LIBS" 1093 AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "libguile.h"]], 1094 [[scm_init_guile ();]]), 1095 [have_libguile_var=yes 1096 GUILE_CPPFLAGS=$new_CPPFLAGS 1097 GUILE_LIBS=$new_LIBS], 1098 [found_usable_guile=no]) 1099 dnl scm_set_automatic_finalization_enabled added in Guile 2.2. 1100 AC_CHECK_FUNC(scm_set_automatic_finalization_enabled, 1101 AC_DEFINE(HAVE_GUILE_MANUAL_FINALIZATION, 1, 1102 [Define if Guile supports manual finalization.]) 1103 ) 1104 CPPFLAGS=$save_CPPFLAGS 1105 LIBS=$save_LIBS 1106 if test "${found_usable_guile}" = no; then 1107 if test "${flag_errors}" = yes; then 1108 AC_MSG_FAILURE([linking guile version ${guile_version} test program failed]) 1109 fi 1110 fi 1111 fi 1112 AC_MSG_RESULT([${found_usable_guile}]) 1113]) 1114 1115dnl There are several different values for --with-guile: 1116dnl 1117dnl no - Don't include guile support. 1118dnl yes - Include guile support, error if it's missing. 1119dnl The pkg-config program must be in $PATH. 1120dnl auto - Same as "yes", but if guile is missing from the system, 1121dnl fall back to "no". 1122dnl guile-version [guile-version-choice-2 ...] - 1123dnl A space-separated list of guile package versions to try. 1124dnl These are passed to pkg-config as-is. 1125dnl E.g., guile-2.0 or guile-2.2-uninstalled 1126dnl This requires making sure PKG_CONFIG_PATH is set appropriately. 1127dnl /path/to/pkg-config - 1128dnl Use this pkg-config program. 1129dnl NOTE: This needn't be the "real" pkg-config program. 1130dnl It could be a shell script. It is invoked as: 1131dnl pkg-config --exists $version 1132dnl pkg-config --cflags $version 1133dnl pkg-config --libs $version 1134dnl pkg-config --variable guild $version 1135dnl The script will be called with $version having each value in 1136dnl $try_guile_versions until --exists indicates success. 1137 1138AC_ARG_WITH(guile, 1139 AS_HELP_STRING([--with-guile@<:@=GUILE@:>@], [include guile support (auto/yes/no/<guile-version>/<pkg-config-program>)]), 1140 [], [with_guile=auto]) 1141AC_MSG_CHECKING([whether to use guile]) 1142AC_MSG_RESULT([$with_guile]) 1143 1144dnl We check guile with pkg-config. 1145AC_PATH_PROG(pkg_config_prog_path, pkg-config, missing) 1146 1147try_guile_versions="guile-2.2 guile-2.0" 1148have_libguile=no 1149case "${with_guile}" in 1150no) 1151 AC_MSG_WARN([guile support disabled; some features will be unavailable.]) 1152 ;; 1153auto) 1154 if test "${pkg_config_prog_path}" = "missing"; then 1155 AC_MSG_WARN([pkg-config not found, guile support disabled]) 1156 else 1157 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, no, have_libguile) 1158 fi 1159 ;; 1160yes) 1161 if test "${pkg_config_prog_path}" = "missing"; then 1162 AC_MSG_ERROR([pkg-config not found]) 1163 fi 1164 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, yes, have_libguile) 1165 ;; 1166[[\\/]]* | ?:[[\\/]]*) 1167 if test -x "${with_guile}"; then 1168 AC_TRY_LIBGUILE(${with_guile}, ${try_guile_versions}, yes, have_libguile) 1169 else 1170 AC_MSG_ERROR([Guile config program not executable: ${with_guile}]) 1171 fi 1172 ;; 1173"" | */*) 1174 # Disallow --with=guile="" and --with-guile=foo/bar. 1175 AC_MSG_ERROR([invalid value for --with-guile]) 1176 ;; 1177*) 1178 # A space separate list of guile versions to try, in order. 1179 if test "${pkg_config_prog_path}" = "missing"; then 1180 AC_MSG_ERROR([pkg-config not found]) 1181 fi 1182 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${with_guile}, yes, have_libguile) 1183 ;; 1184esac 1185 1186if test "${have_libguile}" != no; then 1187 dnl Get the name of the 'guild' program. 1188 case "${with_guile}" in 1189 [[\\/]]* | ?:[[\\/]]*) 1190 GDB_GUILE_PROGRAM_NAMES(["${with_guile}"], ["${guile_version}"]) 1191 ;; 1192 *) 1193 GDB_GUILE_PROGRAM_NAMES(["${pkg_config_prog_path}"], ["${guile_version}"]) 1194 ;; 1195 esac 1196 1197 dnl Make sure guild can handle this host. 1198 GDB_TRY_GUILD([$srcdir/guile/lib/gdb/support.scm]) 1199 dnl If not, disable guile support. 1200 if test "$ac_cv_guild_ok" = no; then 1201 have_libguile=no 1202 AC_MSG_WARN(disabling guile support, $GUILD fails compiling for $host) 1203 fi 1204fi 1205 1206if test "${have_libguile}" != no; then 1207 AC_DEFINE(HAVE_GUILE, 1, [Define if Guile interpreter is being linked in.]) 1208 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_GUILE_OBS)" 1209 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_GUILE_DEPS)" 1210 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_GUILE_SRCS)" 1211 CONFIG_INSTALL="$CONFIG_INSTALL install-guile" 1212 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_GUILE_CFLAGS)" 1213 1214 dnl The 'scm_new_smob' function appeared in Guile 2.0.6. 1215 save_LIBS="$LIBS" 1216 save_CPPFLAGS="$CPPFLAGS" 1217 LIBS="$GUILE_LIBS" 1218 CPPFLAGS="$GUILE_CPPFLAGS" 1219 AC_CHECK_FUNCS([scm_new_smob]) 1220 LIBS="$save_LIBS" 1221 CPPFLAGS="$save_CPPFLAGS" 1222else 1223 # Even if Guile support is not compiled in, we need to have these files 1224 # included. 1225 CONFIG_OBS="$CONFIG_OBS guile.o" 1226 CONFIG_SRCS="$CONFIG_SRCS guile/guile.c" 1227fi 1228AC_SUBST(GUILE_CPPFLAGS) 1229AC_SUBST(GUILE_LIBS) 1230AM_CONDITIONAL(HAVE_GUILE, test "${have_libguile}" != no) 1231 1232# --------------------- # 1233# Check for libmcheck. # 1234# --------------------- # 1235 1236# Enable -lmcheck by default (it provides cheap-enough memory mangling), 1237# but turn it off if Python is enabled with threads, since -lmcheck is 1238# not thread safe (http://sourceware.org/bugzilla/show_bug.cgi?id=9939), 1239# and for releases. 1240if test \( "${have_libpython}" = "no" -o "${python_has_threads}" = "no" \) \ 1241 && $development; then 1242 libmcheck_default=yes 1243else 1244 libmcheck_default=no 1245fi 1246GDB_AC_LIBMCHECK(${libmcheck_default}) 1247 1248if test "$ENABLE_LIBMCHECK" = "yes" \ 1249 -a "${have_libpython}" != "no" \ 1250 -a "${python_has_threads}" = "yes" ; then 1251 AC_MSG_WARN(--enable-libmcheck may lead to spurious crashes if threads are used in python) 1252fi 1253 1254AC_ARG_WITH(intel_pt, 1255 AS_HELP_STRING([--with-intel-pt], [include Intel Processor Trace support (auto/yes/no)]), 1256 [], [with_intel_pt=auto]) 1257AC_MSG_CHECKING([whether to use intel pt]) 1258AC_MSG_RESULT([$with_intel_pt]) 1259 1260if test "${with_intel_pt}" = no; then 1261 AC_MSG_WARN([Intel Processor Trace support disabled; some features may be unavailable.]) 1262 HAVE_LIBIPT=no 1263else 1264 AC_PREPROC_IFELSE(AC_LANG_SOURCE([[ 1265#include <linux/perf_event.h> 1266#ifndef PERF_ATTR_SIZE_VER5 1267# error 1268#endif 1269 ]]), [perf_event=yes], [perf_event=no]) 1270 if test "$perf_event" != yes; then 1271 if test "$with_intel_pt" = yes; then 1272 AC_MSG_ERROR([linux/perf_event.h missing or too old]) 1273 else 1274 AC_MSG_WARN([linux/perf_event.h missing or too old; some features may be unavailable.]) 1275 fi 1276 fi 1277 1278 AC_LIB_HAVE_LINKFLAGS([ipt], [], [#include "intel-pt.h"], [pt_insn_alloc_decoder (0);]) 1279 if test "$HAVE_LIBIPT" != yes; then 1280 if test "$with_intel_pt" = yes; then 1281 AC_MSG_ERROR([libipt is missing or unusable]) 1282 else 1283 AC_MSG_WARN([libipt is missing or unusable; some features may be unavailable.]) 1284 fi 1285 fi 1286fi 1287 1288# ------------------------- # 1289# Checks for header files. # 1290# ------------------------- # 1291 1292AC_HEADER_STDC 1293# elf_hp.h is for HP/UX 64-bit shared library support. 1294AC_CHECK_HEADERS([nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \ 1295 thread_db.h \ 1296 sys/fault.h \ 1297 sys/file.h sys/filio.h sys/ioctl.h sys/param.h \ 1298 sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \ 1299 sys/reg.h sys/debugreg.h sys/select.h sys/syscall.h \ 1300 termios.h termio.h \ 1301 sgtty.h elf_hp.h \ 1302 dlfcn.h]) 1303AC_CHECK_HEADERS(sys/proc.h, [], [], 1304[#if HAVE_SYS_PARAM_H 1305# include <sys/param.h> 1306#endif 1307]) 1308AC_CHECK_HEADERS(sys/user.h, [], [], 1309[#if HAVE_SYS_PARAM_H 1310# include <sys/param.h> 1311#endif 1312]) 1313 1314# On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash 1315# between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to 1316# think that we don't have <curses.h> if we're using GCC. 1317case $host_os in 1318 solaris2.[[789]]) 1319 if test "$GCC" = yes; then 1320 AC_DEFINE(_MSE_INT_H, 1, 1321 [Define to 1 to avoid a clash between <widec.h> and <wchar.h> on 1322 Solaris 2.[789] when using GCC. ]) 1323 fi ;; 1324esac 1325AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h ncurses/term.h) 1326AC_CHECK_HEADERS(term.h, [], [], 1327[#if HAVE_CURSES_H 1328# include <curses.h> 1329#endif 1330]) 1331 1332# ------------------------- # 1333# Checks for declarations. # 1334# ------------------------- # 1335 1336libiberty_INIT 1337 1338AC_CHECK_DECLS([free, malloc, realloc, snprintf]) 1339AM_LC_MESSAGES 1340 1341# ----------------------- # 1342# Checks for structures. # 1343# ----------------------- # 1344 1345AC_CHECK_MEMBERS([struct stat.st_blocks, struct stat.st_blksize]) 1346 1347# ------------------ # 1348# Checks for types. # 1349# ------------------ # 1350 1351AC_CHECK_TYPES(socklen_t, [], [], 1352[#include <sys/types.h> 1353#include <sys/socket.h> 1354]) 1355 1356# ------------------------------------- # 1357# Checks for compiler characteristics. # 1358# ------------------------------------- # 1359 1360AC_C_CONST 1361AC_C_INLINE 1362AC_C_BIGENDIAN 1363 1364# ------------------------------ # 1365# Checks for library functions. # 1366# ------------------------------ # 1367 1368AC_FUNC_MMAP 1369AC_FUNC_VFORK 1370AC_CHECK_FUNCS([getauxval getrusage getuid getgid \ 1371 pipe poll pread pread64 pwrite resize_term \ 1372 sbrk setpgid setpgrp setsid \ 1373 sigaction sigprocmask sigsetmask socketpair \ 1374 ttrace wborder wresize setlocale iconvlist libiconvlist btowc \ 1375 setrlimit getrlimit posix_madvise waitpid \ 1376 ptrace64 sigaltstack mkdtemp setns]) 1377AM_LANGINFO_CODESET 1378GDB_AC_COMMON 1379 1380# Check the return and argument types of ptrace. 1381GDB_AC_PTRACE 1382 1383dnl AC_FUNC_SETPGRP does not work when cross compiling 1384dnl Instead, assume we will have a prototype for setpgrp if cross compiling. 1385if test "$cross_compiling" = no; then 1386 AC_FUNC_SETPGRP 1387else 1388 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void, 1389 [AC_TRY_COMPILE([ 1390#include <unistd.h> 1391], [ 1392 if (setpgrp(1,1) == -1) 1393 exit (0); 1394 else 1395 exit (1); 1396], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)]) 1397if test $ac_cv_func_setpgrp_void = yes; then 1398 AC_DEFINE(SETPGRP_VOID, 1) 1399fi 1400fi 1401 1402# Assume we'll default to using the included libiberty regex. 1403gdb_use_included_regex=yes 1404 1405# However, if the system regex is GNU regex, then default to *not* 1406# using the included regex. 1407AC_CACHE_CHECK( 1408 [for GNU regex], 1409 [gdb_cv_have_gnu_regex], 1410 [AC_TRY_COMPILE( 1411 [#include <gnu-versions.h>], 1412 [#define REGEX_INTERFACE_VERSION 1 1413#if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION 1414# error "Version mismatch" 1415#endif], 1416 gdb_cv_have_gnu_regex=yes, 1417 gdb_cv_have_gnu_regex=no)]) 1418if test $gdb_cv_have_gnu_regex = yes; then 1419 gdb_use_included_regex=no 1420fi 1421 1422AC_ARG_WITH(included-regex, 1423 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)]), 1424 gdb_with_regex=$withval, 1425 gdb_with_regex=$gdb_use_included_regex) 1426if test "$gdb_with_regex" = yes; then 1427 AC_DEFINE(USE_INCLUDED_REGEX, 1, 1428 [Define to 1 if the regex included in libiberty should be used.]) 1429fi 1430 1431# Check if <sys/proc.h> defines `struct thread' with a td_pcb member. 1432AC_CHECK_MEMBERS([struct thread.td_pcb], [], [], 1433[#include <sys/param.h> 1434#include <sys/proc.h> 1435]) 1436 1437# See if <sys/lwp.h> defines `struct lwp`. 1438AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp, 1439[AC_TRY_COMPILE([#define _KMEMUSER 1440#include <sys/param.h> 1441#include <sys/lwp.h>], [struct lwp l;], 1442gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)]) 1443if test $gdb_cv_struct_lwp = yes; then 1444 AC_DEFINE(HAVE_STRUCT_LWP, 1, 1445 [Define to 1 if your system has struct lwp.]) 1446fi 1447 1448# See if <machine/reg.h> degines `struct reg'. 1449AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg, 1450[AC_TRY_COMPILE([#include <sys/types.h> 1451#include <machine/reg.h>], [struct reg r;], 1452gdb_cv_struct_reg=yes, gdb_cv_struct_reg=no)]) 1453if test $gdb_cv_struct_reg = yes; then 1454 AC_DEFINE(HAVE_STRUCT_REG, 1, 1455 [Define to 1 if your system has struct reg in <machine/reg.h>.]) 1456fi 1457 1458# See if <machine/reg.h> supports the %fs and %gs i386 segment registers. 1459# Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'. 1460AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [], 1461 [#include <sys/types.h> 1462#include <machine/reg.h>]) 1463 1464# See if <sys/user.h> supports the %fs_base and %gs_bas amd64 segment registers. 1465# Older amd64 Linux's don't have the fs_base and gs_base members of 1466# `struct user_regs_struct'. 1467AC_CHECK_MEMBERS([struct user_regs_struct.fs_base, struct user_regs_struct.gs_base], 1468 [], [], [#include <sys/user.h>]) 1469 1470# See if <sys/ptrace.h> provides the PTRACE_GETREGS request. 1471AC_MSG_CHECKING(for PTRACE_GETREGS) 1472AC_CACHE_VAL(gdb_cv_have_ptrace_getregs, 1473[AC_TRY_COMPILE([#include <sys/ptrace.h>], 1474 [PTRACE_GETREGS;], 1475 [gdb_cv_have_ptrace_getregs=yes], 1476 [gdb_cv_have_ptrace_getregs=no])]) 1477AC_MSG_RESULT($gdb_cv_have_ptrace_getregs) 1478if test $gdb_cv_have_ptrace_getregs = yes; then 1479 AC_DEFINE(HAVE_PTRACE_GETREGS, 1, 1480 [Define if sys/ptrace.h defines the PTRACE_GETREGS request.]) 1481fi 1482 1483# See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request. 1484AC_MSG_CHECKING(for PTRACE_GETFPXREGS) 1485AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs, 1486[AC_TRY_COMPILE([#include <sys/ptrace.h>], 1487 [PTRACE_GETFPXREGS;], 1488 [gdb_cv_have_ptrace_getfpxregs=yes], 1489 [gdb_cv_have_ptrace_getfpxregs=no])]) 1490AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs) 1491if test $gdb_cv_have_ptrace_getfpxregs = yes; then 1492 AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1, 1493 [Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.]) 1494fi 1495 1496# See if <sys/ptrace.h> provides the PT_GETDBREGS request. 1497AC_MSG_CHECKING(for PT_GETDBREGS) 1498AC_CACHE_VAL(gdb_cv_have_pt_getdbregs, 1499[AC_TRY_COMPILE([#include <sys/types.h> 1500#include <sys/ptrace.h>], 1501 [PT_GETDBREGS;], 1502 [gdb_cv_have_pt_getdbregs=yes], 1503 [gdb_cv_have_pt_getdbregs=no])]) 1504AC_MSG_RESULT($gdb_cv_have_pt_getdbregs) 1505if test $gdb_cv_have_pt_getdbregs = yes; then 1506 AC_DEFINE(HAVE_PT_GETDBREGS, 1, 1507 [Define if sys/ptrace.h defines the PT_GETDBREGS request.]) 1508fi 1509 1510# See if <sys/ptrace.h> provides the PT_GETXMMREGS request. 1511AC_MSG_CHECKING(for PT_GETXMMREGS) 1512AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs, 1513[AC_TRY_COMPILE([#include <sys/types.h> 1514#include <sys/ptrace.h>], 1515 [PT_GETXMMREGS;], 1516 [gdb_cv_have_pt_getxmmregs=yes], 1517 [gdb_cv_have_pt_getxmmregs=no])]) 1518AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs) 1519if test $gdb_cv_have_pt_getxmmregs = yes; then 1520 AC_DEFINE(HAVE_PT_GETXMMREGS, 1, 1521 [Define if sys/ptrace.h defines the PT_GETXMMREGS request.]) 1522fi 1523 1524# See if <sys/ptrace.h> supports LWP names on FreeBSD 1525# Older FreeBSD versions don't have the pl_tdname member of 1526# `struct ptrace_lwpinfo'. 1527AC_CHECK_MEMBERS([struct ptrace_lwpinfo.pl_tdname], [], [], 1528 [#include <sys/ptrace.h>]) 1529 1530# See if <sys/ptrace.h> supports syscall fields on FreeBSD. The 1531# pl_syscall_code member of `struct ptrace_lwpinfo' was added in 1532# FreeBSD 10.3. 1533AC_CHECK_MEMBERS([struct ptrace_lwpinfo.pl_syscall_code], [], [], 1534 [#include <sys/ptrace.h>]) 1535 1536# Detect which type of /proc is in use, such as for Solaris. 1537 1538if test "${target}" = "${host}"; then 1539 case "${host}" in 1540 *-*-sysv4.2* | *-*-sysv5* ) 1541 AC_DEFINE(NEW_PROC_API, 1, 1542 [Define if you want to use new multi-fd /proc interface.]) 1543 ;; 1544 *-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]]*) 1545 AC_DEFINE(NEW_PROC_API, 1, 1546 [Define if you want to use new multi-fd /proc interface.]) 1547 ;; 1548 mips-sgi-irix5*) 1549 # Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5. 1550 AC_DEFINE([_KMEMUSER], 1, 1551 [Define to 1 so <sys/proc.h> gets a definition of anon_hdl. Works 1552 around a <sys/proc.h> problem on IRIX 5.]) 1553 ;; 1554 esac 1555fi 1556 1557if test "$ac_cv_header_sys_procfs_h" = yes; then 1558 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t) 1559 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t) 1560 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t) 1561 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t) 1562 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t) 1563 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t) 1564 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t) 1565 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t) 1566 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t) 1567 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t) 1568 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t) 1569 1570 1571 dnl Check for broken prfpregset_t type 1572 1573 dnl For Linux/i386, glibc 2.1.3 was released with a bogus 1574 dnl prfpregset_t type (it's a typedef for the pointer to a struct 1575 dnl instead of the struct itself). We detect this here, and work 1576 dnl around it in gdb_proc_service.h. 1577 1578 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then 1579 AC_MSG_CHECKING(whether prfpregset_t type is broken) 1580 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken, 1581 [AC_TRY_RUN([#include <sys/procfs.h> 1582 int main () 1583 { 1584 if (sizeof (prfpregset_t) == sizeof (void *)) 1585 return 1; 1586 return 0; 1587 }], 1588 gdb_cv_prfpregset_t_broken=no, 1589 gdb_cv_prfpregset_t_broken=yes, 1590 gdb_cv_prfpregset_t_broken=yes)]) 1591 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken) 1592 if test $gdb_cv_prfpregset_t_broken = yes; then 1593 AC_DEFINE(PRFPREGSET_T_BROKEN, 1, 1594 [Define if the prfpregset_t type is broken.]) 1595 fi 1596 fi 1597fi 1598 1599# Check if the compiler supports the `long long' type. 1600 1601AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long, 1602 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM( 1603[[extern long long foo;]], 1604[[switch (foo & 2) { case 0: return 1; }]])], 1605 gdb_cv_c_long_long=yes, 1606 gdb_cv_c_long_long=no)]) 1607if test $gdb_cv_c_long_long != yes; then 1608 # libdecnumber requires long long. 1609 AC_MSG_ERROR([Compiler must support long long for GDB.]) 1610fi 1611 1612# Check if the compiler and runtime support printing long longs. 1613 1614AC_CACHE_CHECK([for long long support in printf], 1615 gdb_cv_printf_has_long_long, 1616 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], 1617[[char buf[32]; 1618 long long l = 0; 1619 l = (l << 16) + 0x0123; 1620 l = (l << 16) + 0x4567; 1621 l = (l << 16) + 0x89ab; 1622 l = (l << 16) + 0xcdef; 1623 sprintf (buf, "0x%016llx", l); 1624 return (strcmp ("0x0123456789abcdef", buf));]])], 1625 gdb_cv_printf_has_long_long=yes, 1626 gdb_cv_printf_has_long_long=no, 1627 gdb_cv_printf_has_long_long=no)]) 1628if test $gdb_cv_printf_has_long_long = yes; then 1629 AC_DEFINE(PRINTF_HAS_LONG_LONG, 1, 1630 [Define to 1 if the "%ll" format works to print long longs.]) 1631fi 1632 1633# Check if the compiler and runtime support printing decfloats. 1634 1635AC_CACHE_CHECK([for decfloat support in printf], 1636 gdb_cv_printf_has_decfloat, 1637 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], 1638[[char buf[64]; 1639 _Decimal32 d32 = 1.2345df; 1640 _Decimal64 d64 = 1.2345dd; 1641 _Decimal128 d128 = 1.2345dl; 1642 sprintf (buf, "Decimal32: %H\nDecimal64: %D\nDecimal128: %DD", d32, d64, d128); 1643 return (strcmp ("Decimal32: 1.2345\nDecimal64: 1.2345\nDecimal128: 1.2345", buf));]])], 1644 gdb_cv_printf_has_decfloat=yes, 1645 gdb_cv_printf_has_decfloat=no, 1646 gdb_cv_printf_has_decfloat=no)]) 1647if test $gdb_cv_printf_has_decfloat = yes; then 1648 AC_DEFINE(PRINTF_HAS_DECFLOAT, 1, 1649 [Define to 1 if the "%H, %D and %DD" formats work to print decfloats.]) 1650fi 1651 1652# Check if the compiler supports the `long double' type. We can't use 1653# AC_C_LONG_DOUBLE because that one does additional checks on the 1654# constants defined in <float.h> that fail on some systems, 1655# e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6. 1656 1657AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double, 1658 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])], 1659 gdb_cv_c_long_double=yes, 1660 gdb_cv_c_long_double=no)]) 1661if test $gdb_cv_c_long_double = yes; then 1662 AC_DEFINE(HAVE_LONG_DOUBLE, 1, 1663 [Define to 1 if the compiler supports long double.]) 1664fi 1665 1666# Check if the compiler and runtime support printing long doubles. 1667 1668AC_CACHE_CHECK([for long double support in printf], 1669 gdb_cv_printf_has_long_double, 1670 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], 1671[[char buf[16]; 1672 long double f = 3.141592653; 1673 sprintf (buf, "%Lg", f); 1674 return (strncmp ("3.14159", buf, 7));]])], 1675 gdb_cv_printf_has_long_double=yes, 1676 gdb_cv_printf_has_long_double=no, 1677 gdb_cv_printf_has_long_double=no)]) 1678if test $gdb_cv_printf_has_long_double = yes; then 1679 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1, 1680 [Define to 1 if the "%Lg" format works to print long doubles.]) 1681fi 1682 1683# Check if the compiler and runtime support scanning long doubles. 1684 1685AC_CACHE_CHECK([for long double support in scanf], 1686 gdb_cv_scanf_has_long_double, 1687 [AC_RUN_IFELSE([AC_LANG_PROGRAM( 1688[[#include <stdio.h>]], 1689[[char *buf = "3.141592653"; 1690 long double f = 0; 1691 sscanf (buf, "%Lg", &f); 1692 return !(f > 3.14159 && f < 3.14160);]])], 1693 gdb_cv_scanf_has_long_double=yes, 1694 gdb_cv_scanf_has_long_double=no, 1695 gdb_cv_scanf_has_long_double=no)]) 1696if test $gdb_cv_scanf_has_long_double = yes; then 1697 AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1, 1698 [Define to 1 if the "%Lg" format works to scan long doubles.]) 1699fi 1700 1701case ${host_os} in 1702aix*) 1703 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [ 1704 SAVE_LDFLAGS=$LDFLAGS 1705 1706 case $GCC in 1707 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;; 1708 *) gdb_cv_bigtoc=-bbigtoc ;; 1709 esac 1710 1711 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc 1712 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=]) 1713 LDFLAGS="${SAVE_LDFLAGS}" 1714 ]) 1715 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}" 1716 ;; 1717esac 1718 1719AC_MSG_CHECKING(for the dynamic export flag) 1720dynamic_list=false 1721if test "${gdb_native}" = yes; then 1722 # The dynamically loaded libthread_db needs access to symbols in the gdb 1723 # executable. Older GNU ld supports --export-dynamic but --dynamic-list 1724 # may not be supported there. 1725 old_LDFLAGS="$LDFLAGS" 1726 # Older GNU ld supports --export-dynamic but --dynamic-list it does not. 1727 RDYNAMIC="-Wl,--dynamic-list=${srcdir}/proc-service.list" 1728 LDFLAGS="$LDFLAGS $RDYNAMIC" 1729 if test "${have_libpython}" = no; then 1730 AC_TRY_LINK([], [], [dynamic_list=true]) 1731 else 1732 # Workaround http://bugs.python.org/issue4434 where static 1733 # libpythonX.Y.a would get its symbols required for 1734 # pythonX.Y/lib-dynload/*.so modules hidden by -Wl,--dynamic-list. 1735 # Problem does not happen for the recommended libpythonX.Y.so linkage. 1736 1737 # Note the workaround for Python 1738 # http://bugs.python.org/issue10112 earlier has removed 1739 # -export-dynamic from PYTHON_LIBS. That's exactly what we want 1740 # here too, as otherwise it'd make this -Wl,--dynamic-list test 1741 # always pass. 1742 old_CFLAGS="$CFLAGS" 1743 CFLAGS="$CFLAGS $PYTHON_CFLAGS" 1744 old_LIBS="$LIBS" 1745 LIBS="$LIBS $PYTHON_LIBS" 1746 old_CPPFLAGS="$CPPFLAGS" 1747 CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS" 1748 AC_RUN_IFELSE( 1749 AC_LANG_PROGRAM( 1750 [#include "Python.h"], 1751 [int err; 1752 Py_Initialize (); 1753 err = PyRun_SimpleString ("import itertools\n"); 1754 Py_Finalize (); 1755 return err == 0 ? 0 : 1;]), 1756 [dynamic_list=true], [], [true]) 1757 LIBS="$old_LIBS" 1758 CFLAGS="$old_CFLAGS" 1759 CPPFLAGS="$old_CPPFLAGS" 1760 fi 1761 LDFLAGS="$old_LDFLAGS" 1762fi 1763if $dynamic_list; then 1764 found="-Wl,--dynamic-list" 1765 RDYNAMIC='-Wl,--dynamic-list=$(srcdir)/proc-service.list' 1766else 1767 found="-rdynamic" 1768 RDYNAMIC="-rdynamic" 1769fi 1770AC_SUBST(RDYNAMIC) 1771AC_MSG_RESULT($found) 1772 1773dnl For certain native configurations, we need to check whether thread 1774dnl support can be built in or not. 1775dnl 1776dnl Note that we only want this if we are both native (host == target), 1777dnl and not doing a canadian cross build (build == host). 1778 1779if test ${build} = ${host} -a ${host} = ${target} ; then 1780 case ${host_os} in 1781 solaris*) 1782 # See if thread_db library is around for Solaris thread debugging. 1783 # Note that we must explicitly test for version 1 of the library 1784 # because version 0 (present on Solaris 2.4 or earlier) doesn't have 1785 # the same API. 1786 AC_MSG_CHECKING(for Solaris thread debugging library) 1787 if test -f /usr/lib/libthread_db.so.1 ; then 1788 AC_MSG_RESULT(yes) 1789 AC_DEFINE(HAVE_THREAD_DB_LIB, 1, 1790 [Define if using Solaris thread debugging.]) 1791 CONFIG_OBS="${CONFIG_OBS} sol-thread.o" 1792 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c" 1793 AC_CHECK_LIB(dl, dlopen) 1794 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} $RDYNAMIC" 1795 # Sun randomly tweaked the prototypes in <proc_service.h> 1796 # at one point. 1797 AC_MSG_CHECKING(if <proc_service.h> is old) 1798 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[ 1799 AC_TRY_COMPILE([ 1800 #include <proc_service.h> 1801 ps_err_e ps_pdwrite 1802 (struct ps_prochandle*, psaddr_t, const void*, size_t); 1803 ],, gdb_cv_proc_service_is_old=no, 1804 gdb_cv_proc_service_is_old=yes) 1805 ]) 1806 AC_MSG_RESULT($gdb_cv_proc_service_is_old) 1807 if test $gdb_cv_proc_service_is_old = yes; then 1808 AC_DEFINE(PROC_SERVICE_IS_OLD, 1, 1809 [Define if <proc_service.h> on solaris uses int instead of 1810 size_t, and assorted other type changes.]) 1811 fi 1812 else 1813 AC_MSG_RESULT(no) 1814 fi 1815 ;; 1816 aix*) 1817 AC_MSG_CHECKING(for AiX thread debugging library) 1818 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug, 1819 [AC_TRY_COMPILE([#include <sys/pthdebug.h>], 1820 [#ifndef PTHDB_VERSION_3 1821 #error 1822 #endif], 1823 gdb_cv_have_aix_thread_debug=yes, 1824 gdb_cv_have_aix_thread_debug=no)]) 1825 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug) 1826 if test $gdb_cv_have_aix_thread_debug = yes; then 1827 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c" 1828 CONFIG_OBS="${CONFIG_OBS} aix-thread.o" 1829 LIBS="$LIBS -lpthdebug" 1830 1831 # Older versions of AIX do not provide the declaration for 1832 # the getthrds function (it appears that it was introduced 1833 # with AIX 6.x). 1834 AC_CHECK_DECLS(getthrds, [], [], [[#include <procinfo.h>]]) 1835 fi 1836 ;; 1837 esac 1838 AC_SUBST(CONFIG_LDFLAGS) 1839fi 1840 1841dnl See if we have a thread_db header file that has TD_NOTALLOC and 1842dnl other error codes. 1843if test "x$ac_cv_header_thread_db_h" = "xyes"; then 1844 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC], 1845 gdb_cv_thread_db_h_has_td_notalloc, 1846 AC_TRY_COMPILE( 1847 [#include <thread_db.h>], 1848 [int i = TD_NOTALLOC;], 1849 gdb_cv_thread_db_h_has_td_notalloc=yes, 1850 gdb_cv_thread_db_h_has_td_notalloc=no 1851 ) 1852 ) 1853 AC_CACHE_CHECK([whether <thread_db.h> has TD_VERSION], 1854 gdb_cv_thread_db_h_has_td_version, 1855 AC_TRY_COMPILE( 1856 [#include <thread_db.h>], 1857 [int i = TD_VERSION;], 1858 gdb_cv_thread_db_h_has_td_version=yes, 1859 gdb_cv_thread_db_h_has_td_version=no 1860 ) 1861 ) 1862 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTLS], 1863 gdb_cv_thread_db_h_has_td_notls, 1864 AC_TRY_COMPILE( 1865 [#include <thread_db.h>], 1866 [int i = TD_NOTLS;], 1867 gdb_cv_thread_db_h_has_td_notls=yes, 1868 gdb_cv_thread_db_h_has_td_notls=no 1869 ) 1870 ) 1871fi 1872if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then 1873 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1, 1874 [Define if <thread_db.h> has the TD_NOTALLOC error code.]) 1875fi 1876if test "x$gdb_cv_thread_db_h_has_td_version" = "xyes"; then 1877 AC_DEFINE(THREAD_DB_HAS_TD_VERSION, 1, 1878 [Define if <thread_db.h> has the TD_VERSION error code.]) 1879fi 1880if test "x$gdb_cv_thread_db_h_has_td_notls" = "xyes"; then 1881 AC_DEFINE(THREAD_DB_HAS_TD_NOTLS, 1, 1882 [Define if <thread_db.h> has the TD_NOTLS error code.]) 1883fi 1884 1885dnl Check if we can disable the virtual address space randomization. 1886dnl The functionality of setarch -R. 1887AC_CHECK_DECLS([ADDR_NO_RANDOMIZE],,, [#include <sys/personality.h>]) 1888define([PERSONALITY_TEST], [AC_LANG_PROGRAM([#include <sys/personality.h>], [ 1889# if !HAVE_DECL_ADDR_NO_RANDOMIZE 1890# define ADDR_NO_RANDOMIZE 0x0040000 1891# endif 1892 /* Test the flag could be set and stays set. */ 1893 personality (personality (0xffffffff) | ADDR_NO_RANDOMIZE); 1894 if (!(personality (personality (0xffffffff)) & ADDR_NO_RANDOMIZE)) 1895 return 1])]) 1896AC_RUN_IFELSE([PERSONALITY_TEST], 1897 [have_personality=true], 1898 [have_personality=false], 1899 [AC_LINK_IFELSE([PERSONALITY_TEST], 1900 [have_personality=true], 1901 [have_personality=false])]) 1902if $have_personality 1903then 1904 AC_DEFINE([HAVE_PERSONALITY], 1, 1905 [Define if you support the personality syscall.]) 1906fi 1907 1908dnl Set the host's .gdbinit filename. 1909case $host_os in 1910 go32* | *djgpp*) 1911 gdbinit=gdb.ini 1912 ;; 1913 *) 1914 gdbinit=.gdbinit 1915 ;; 1916esac 1917AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.]) 1918 1919dnl Handle optional features that can be enabled. 1920 1921# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR, 1922# except that the argument to --with-sysroot is optional. 1923# --with-sysroot (or --with-sysroot=yes) sets the default sysroot path. 1924if test "x$with_sysroot" = xyes; then 1925 with_sysroot="${exec_prefix}/${target_alias}/sys-root" 1926fi 1927AC_ARG_WITH(sysroot, 1928 AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], 1929 [search for usr/lib et al within DIR]), 1930 [TARGET_SYSTEM_ROOT=$withval], [TARGET_SYSTEM_ROOT=]) 1931AC_DEFINE_DIR(TARGET_SYSTEM_ROOT, TARGET_SYSTEM_ROOT, 1932 [search for usr/lib et al within DIR]) 1933AC_SUBST(TARGET_SYSTEM_ROOT) 1934GDB_AC_DEFINE_RELOCATABLE(TARGET_SYSTEM_ROOT, sysroot, ${ac_define_dir}) 1935 1936GDB_AC_WITH_DIR(SYSTEM_GDBINIT, system-gdbinit, 1937 [automatically load a system-wide gdbinit file], 1938 []) 1939 1940AM_GDB_WARNINGS 1941 1942# In the Cygwin environment, we need some additional flags. 1943AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin, 1944[AC_EGREP_CPP(^lose$, [ 1945#if defined (__CYGWIN__) || defined (__CYGWIN32__) 1946lose 1947#endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])]) 1948 1949 1950dnl Figure out which of the many generic ser-*.c files the _host_ supports. 1951SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o" 1952case ${host} in 1953 *go32* ) SER_HARDWIRE=ser-go32.o ;; 1954 *djgpp* ) SER_HARDWIRE=ser-go32.o ;; 1955 *mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;; 1956esac 1957AC_SUBST(SER_HARDWIRE) 1958 1959# libreadline needs libuser32.a in a cygwin environment 1960WIN32LIBS= 1961if test x$gdb_cv_os_cygwin = xyes; then 1962 WIN32LIBS="-luser32" 1963 case "${target}" in 1964 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp" 1965 ;; 1966 esac 1967fi 1968 1969# The ser-tcp.c module requires sockets. 1970case ${host} in 1971 *mingw32*) 1972 AC_DEFINE(USE_WIN32API, 1, 1973 [Define if we should use the Windows API, instead of the 1974 POSIX API. On Windows, we use the Windows API when 1975 building for MinGW, but the POSIX API when building 1976 for Cygwin.]) 1977 WIN32LIBS="$WIN32LIBS -lws2_32" 1978 ;; 1979esac 1980AC_SUBST(WIN32LIBS) 1981 1982# Add ELF support to GDB, but only if BFD includes ELF support. 1983GDB_AC_CHECK_BFD([for ELF support in BFD], gdb_cv_var_elf, 1984 [bfd_get_elf_phdr_upper_bound (NULL)], elf-bfd.h) 1985if test $gdb_cv_var_elf = yes; then 1986 CONFIG_OBS="$CONFIG_OBS elfread.o stap-probe.o dtrace-probe.o" 1987 AC_DEFINE(HAVE_ELF, 1, 1988 [Define if ELF support should be included.]) 1989 # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>. 1990 if test "$plugins" = "yes"; then 1991 AC_SEARCH_LIBS(dlopen, dl) 1992 fi 1993fi 1994 1995# Add macho support to GDB, but only if BFD includes it. 1996GDB_AC_CHECK_BFD([for Mach-O support in BFD], gdb_cv_var_macho, 1997 [bfd_mach_o_lookup_command (NULL, 0, NULL)], mach-o.h) 1998if test $gdb_cv_var_macho = yes; then 1999 CONFIG_OBS="$CONFIG_OBS machoread.o" 2000fi 2001 2002# Add any host-specific objects to GDB. 2003CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}" 2004 2005# If building on ELF, look for lzma support for embedded compressed debug info. 2006if test $gdb_cv_var_elf = yes; then 2007 AC_ARG_WITH(lzma, 2008 AS_HELP_STRING([--with-lzma], [support lzma compression (auto/yes/no)]), 2009 [], [with_lzma=auto]) 2010 AC_MSG_CHECKING([whether to use lzma]) 2011 AC_MSG_RESULT([$with_lzma]) 2012 2013 if test "${with_lzma}" != no; then 2014 AC_LIB_HAVE_LINKFLAGS([lzma], [], [#include "lzma.h"], 2015 [lzma_index_iter iter; 2016 lzma_index_iter_init (&iter, 0); 2017 lzma_mf_is_supported (LZMA_MF_HC3);]) 2018 if test "$HAVE_LIBLZMA" != yes; then 2019 if test "$with_lzma" = yes; then 2020 AC_MSG_ERROR([missing liblzma for --with-lzma]) 2021 fi 2022 fi 2023 fi 2024fi 2025 2026LIBGUI="../libgui/src/libgui.a" 2027GUI_CFLAGS_X="-I${srcdir}/../libgui/src" 2028AC_SUBST(LIBGUI) 2029AC_SUBST(GUI_CFLAGS_X) 2030 2031WIN32LDAPP= 2032AC_SUBST(WIN32LIBS) 2033AC_SUBST(WIN32LDAPP) 2034 2035case "${host}" in 2036*-*-cygwin* | *-*-mingw* ) 2037 configdir="win" 2038 ;; 2039*) 2040 configdir="unix" 2041 ;; 2042esac 2043 2044GDBTKLIBS= 2045if test "${enable_gdbtk}" = "yes"; then 2046 2047 # Gdbtk must have an absolute path to srcdir in order to run 2048 # properly when not installed. 2049 here=`pwd` 2050 cd ${srcdir} 2051 GDBTK_SRC_DIR=`pwd` 2052 cd $here 2053 2054 SC_PATH_TCLCONFIG 2055 2056 # If $no_tk is nonempty, then we can't do Tk, and there is no 2057 # point to doing Tcl. 2058 SC_PATH_TKCONFIG 2059 2060 if test -z "${no_tcl}" -a -z "${no_tk}"; then 2061 SC_LOAD_TCLCONFIG 2062 2063 # Check for in-tree tcl 2064 here=`pwd` 2065 cd ${srcdir}/.. 2066 topdir=`pwd` 2067 cd ${here} 2068 2069 intree="no" 2070 if test "${TCL_SRC_DIR}" = "${topdir}/tcl"; then 2071 intree="yes" 2072 fi 2073 2074 # Find Tcl private headers 2075 if test x"${intree}" = xno; then 2076 CY_AC_TCL_PRIVATE_HEADERS 2077 TCL_INCLUDE="${TCL_INCLUDE_SPEC} ${TCL_PRIVATE_INCLUDE}" 2078 TCL_LIBRARY="${TCL_LIB_SPEC}" 2079 TCL_DEPS="" 2080 else 2081 # If building tcl in the same src tree, private headers 2082 # are not needed, but we need to be sure to use the right 2083 # headers library 2084 TCL_INCLUDE="-I${TCL_SRC_DIR}/generic" 2085 TCL_LIBRARY="${TCL_BUILD_LIB_SPEC}" 2086 TCL_DEPS="../tcl/${configdir}${TCL_LIB_FILE}" 2087 fi 2088 AC_SUBST(TCL_INCLUDE) 2089 AC_SUBST(TCL_LIBRARY) 2090 AC_SUBST(TCL_DEPS) 2091 2092 SC_LOAD_TKCONFIG 2093 2094 # Check for in-tree Tk 2095 intree="no" 2096 if test "${TK_SRC_DIR}" = "${topdir}/tk"; then 2097 intree="yes" 2098 fi 2099 2100 # Find Tk private headers 2101 if test x"${intree}" = xno; then 2102 CY_AC_TK_PRIVATE_HEADERS 2103 TK_INCLUDE="${TK_INCLUDE_SPEC} ${TK_PRIVATE_INCLUDE}" 2104 TK_LIBRARY=${TK_LIB_SPEC} 2105 TK_DEPS="" 2106 else 2107 TK_INCLUDE="-I${TK_SRC_DIR}/generic" 2108 TK_LIBRARY="${TK_BUILD_LIB_SPEC}" 2109 TK_DEPS="../tk/${configdir}/${TK_LIB_FILE}" 2110 fi 2111 AC_SUBST(TK_INCLUDE) 2112 AC_SUBST(TK_LIBRARY) 2113 AC_SUBST(TK_DEPS) 2114 AC_SUBST(TK_XINCLUDES) 2115 2116 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)" 2117 2118 # Include some libraries that Tcl and Tk want. 2119 TCL_LIBS='$(LIBGUI) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)' 2120 # Yes, the ordering seems wrong here. But it isn't. 2121 # TK_LIBS is the list of libraries that need to be linked 2122 # after Tcl/Tk. Note that this isn't put into LIBS. If it 2123 # were in LIBS then any link tests after this point would 2124 # try to include things like `$(LIBGUI)', which wouldn't work. 2125 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}" 2126 2127 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)" 2128 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)" 2129 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)" 2130 CONFIG_ALL="${CONFIG_ALL} all-gdbtk" 2131 CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk" 2132 CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk" 2133 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk" 2134 2135 if test x$gdb_cv_os_cygwin = xyes; then 2136 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32" 2137 WIN32LDAPP="-Wl,--subsystem,console" 2138 CONFIG_OBS="${CONFIG_OBS} gdbres.o" 2139 fi 2140 2141 AC_CONFIG_SUBDIRS(gdbtk) 2142 fi 2143fi 2144 2145AC_SUBST(X_CFLAGS) 2146AC_SUBST(X_LDFLAGS) 2147AC_SUBST(X_LIBS) 2148AC_SUBST(GDBTKLIBS) 2149AC_SUBST(GDBTK_CFLAGS) 2150AC_SUBST(GDBTK_SRC_DIR) 2151 2152AC_PATH_X 2153 2154# Unlike the sim directory, whether a simulator is linked is controlled by 2155# presence of a gdb_sim definition in the target configure.tgt entry. 2156# This code just checks for a few cases where we'd like to ignore those 2157# definitions, even when they're present in the '.mt' file. These cases 2158# are when --disable-sim is specified, or if the simulator directory is 2159# not part of the source tree. 2160# 2161AC_ARG_ENABLE(sim, 2162AS_HELP_STRING([--enable-sim], [link gdb with simulator]), 2163[echo "enable_sim = $enable_sim"; 2164 echo "enableval = ${enableval}"; 2165 case "${enableval}" in 2166 yes) ignore_sim=false ;; 2167 no) ignore_sim=true ;; 2168 *) ignore_sim=false ;; 2169 esac], 2170[ignore_sim=false]) 2171 2172if test ! -d "${srcdir}/../sim"; then 2173 ignore_sim=true 2174fi 2175 2176SIM= 2177SIM_OBS= 2178if test "${ignore_sim}" = "false"; then 2179 if test x"${gdb_sim}" != x ; then 2180 SIM="${gdb_sim}" 2181 SIM_OBS="remote-sim.o" 2182 AC_DEFINE(WITH_SIM, 1, [Define if the simulator is being linked in.]) 2183 2184 # Some tdep code should only be compiled in when the ppc sim is 2185 # built. PR sim/13418. 2186 case $target in 2187 powerpc*-*-*) 2188 AC_DEFINE(WITH_PPC_SIM, 1, [Define if the PPC simulator is being linked in.]) 2189 ;; 2190 esac 2191 fi 2192fi 2193AC_SUBST(SIM) 2194AC_SUBST(SIM_OBS) 2195 2196AC_SUBST(ENABLE_CFLAGS) 2197AC_SUBST(PROFILE_CFLAGS) 2198 2199AC_SUBST(CONFIG_OBS) 2200AC_SUBST(CONFIG_DEPS) 2201AC_SUBST(CONFIG_SRCS) 2202AC_SUBST(CONFIG_ALL) 2203AC_SUBST(CONFIG_CLEAN) 2204AC_SUBST(CONFIG_INSTALL) 2205AC_SUBST(CONFIG_UNINSTALL) 2206 2207# List of host floatformats. 2208AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat]) 2209AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat]) 2210AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat]) 2211 2212# target_subdir is used by the testsuite to find the target libraries. 2213target_subdir= 2214if test "${host}" != "${target}"; then 2215 target_subdir="${target_alias}/" 2216fi 2217AC_SUBST(target_subdir) 2218 2219frags= 2220if test "${gdb_native}" = "yes"; then 2221 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh 2222 if test ! -f ${host_makefile_frag}; then 2223 AC_MSG_ERROR("*** Gdb does not support native target ${host}") 2224 fi 2225 frags="$frags $host_makefile_frag" 2226else 2227 host_makefile_frag=/dev/null 2228fi 2229 2230AC_SUBST_FILE(host_makefile_frag) 2231AC_SUBST(frags) 2232 2233changequote(,)dnl 2234if test "${gdb_native}" = "yes"; then 2235# We pick this up from the host configuration file (.mh) because we 2236# do not have a native configuration Makefile fragment. 2237nativefile=`sed -n ' 2238s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p 2239' ${host_makefile_frag}` 2240fi 2241changequote([,]) 2242 2243if test x"${gdb_osabi}" != x ; then 2244 AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi, 2245 [Define to the default OS ABI for this configuration.]) 2246fi 2247 2248# Enable multi-ice-gdb-server. 2249AC_ARG_ENABLE(multi-ice, 2250AS_HELP_STRING([--enable-multi-ice], [build the multi-ice-gdb-server]), 2251 [case $enableval in 2252 yes | no) 2253 ;; 2254 *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;; 2255 esac]) 2256if test "x$enable_multi_ice" = xyes; then 2257 AC_CONFIG_SUBDIRS(multi-ice) 2258fi 2259 2260AC_ARG_ENABLE(gdbserver, 2261AS_HELP_STRING([--enable-gdbserver], 2262 [automatically build gdbserver (yes/no/auto, default is auto)]), 2263[case "${enableval}" in 2264 yes| no|auto) ;; 2265 *) AC_MSG_ERROR(bad value ${enableval} for --enable-gdbserver option) ;; 2266esac],[enable_gdbserver=auto]) 2267 2268# We only build gdbserver automatically in a native configuration, and 2269# only if the user did not explicitly disable its build. 2270if test "$gdb_native" = "yes" -a "$enable_gdbserver" != "no"; then 2271 AC_MSG_CHECKING(whether gdbserver is supported on this host) 2272 if test "x$build_gdbserver" = xyes; then 2273 AC_MSG_RESULT(yes) 2274 AC_CONFIG_SUBDIRS(gdbserver) 2275 gdbserver_build_enabled=yes 2276 else 2277 AC_MSG_RESULT(no) 2278 fi 2279fi 2280 2281# If the user explicitly request the gdbserver to be built, verify that 2282# we were in fact able to enable it. 2283if test "$enable_gdbserver" = "yes" -a "$gdbserver_build_enabled" != "yes"; then 2284 AC_MSG_ERROR(Automatic gdbserver build is not supported for this configuration) 2285fi 2286 2287# Check for babeltrace and babeltrace-ctf 2288AC_ARG_WITH(babeltrace, 2289 AC_HELP_STRING([--with-babeltrace], [include babeltrace support (auto/yes/no)]), 2290 [], [with_babeltrace=auto]) 2291AC_MSG_CHECKING([whether to use babeltrace]) 2292AC_MSG_RESULT([$with_babeltrace]) 2293 2294if test "x$with_babeltrace" = "xno"; then 2295 AC_MSG_WARN([babletrace support disabled; GDB is unable to read CTF data.]) 2296else 2297 # Append -Werror to CFLAGS so that configure can catch the warning 2298 # "assignment from incompatible pointer type", which is related to 2299 # the babeltrace change from 1.0.3 to 1.1.0. Babeltrace 1.1.0 works 2300 # in GDB, while babeltrace 1.0.3 is broken. 2301 # AC_LIB_HAVE_LINKFLAGS may modify CPPFLAGS in it, so it should be 2302 # safe to save and restore CFLAGS here. 2303 saved_CFLAGS=$CFLAGS 2304 CFLAGS="$CFLAGS -Werror" 2305 AC_LIB_HAVE_LINKFLAGS([babeltrace], [babeltrace-ctf], 2306 [#include <babeltrace/babeltrace.h> 2307 #include <babeltrace/ctf/events.h> 2308 #include <babeltrace/ctf/iterator.h>], 2309 [struct bt_iter_pos *pos = bt_iter_get_pos (bt_ctf_get_iter (NULL)); 2310 struct bt_ctf_event *event = NULL; 2311 const struct bt_definition *scope; 2312 2313 pos->type = BT_SEEK_BEGIN; 2314 bt_iter_set_pos (bt_ctf_get_iter (NULL), pos); 2315 scope = bt_ctf_get_top_level_scope (event, 2316 BT_STREAM_EVENT_HEADER); 2317 bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id")); 2318 ]) 2319 CFLAGS=$saved_CFLAGS 2320 2321 if test "$HAVE_LIBBABELTRACE" != yes; then 2322 if test "$with_babeltrace" = yes; then 2323 AC_MSG_ERROR([babeltrace is missing or unusable]) 2324 else 2325 AC_MSG_WARN([babeltrace is missing or unusable; GDB is unable to read CTF data.]) 2326 fi 2327 fi 2328fi 2329 2330# If nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link 2331# to an empty version. 2332 2333files= 2334links= 2335 2336rm -f nm.h 2337if test "${nativefile}" != ""; then 2338 case "${nativefile}" in 2339 nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;; 2340 * ) GDB_NM_FILE="${nativefile}" 2341 esac 2342 files="${files} ${GDB_NM_FILE}" 2343 links="${links} nm.h" 2344 AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}", [nativefile]) 2345fi 2346AC_SUBST(GDB_NM_FILE) 2347 2348dnl Add dependency for xsltproc if building with maintainer-mode enabled. 2349AC_PATH_PROGS(XSLTPROC, xsltproc, missing) 2350if test "x$USE_MAINTAINER_MODE" = xyes; then 2351 if test "${XSLTPROC}" = missing; then 2352 AC_ERROR(unable to find xsltproc. maintainer-mode requires xsltproc.) 2353 fi 2354fi 2355AC_SUBST(XSLTPROC) 2356 2357AC_LINK_FILES($files, $links) 2358 2359dnl Check for exe extension set on certain hosts (e.g. Win32) 2360AC_EXEEXT 2361 2362dnl Detect the character set used by this host. 2363dnl At the moment, we just assume it's UTF-8. 2364AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8", 2365 [Define to be a string naming the default host character set.]) 2366 2367if $development; then 2368 AC_DEFINE(GDB_SELF_TEST, 1, 2369 [Define if self-testing features should be enabled]) 2370fi 2371 2372GDB_AC_TRANSFORM([gdb], [GDB_TRANSFORM_NAME]) 2373GDB_AC_TRANSFORM([gcore], [GCORE_TRANSFORM_NAME]) 2374AC_CONFIG_FILES([gcore], [chmod +x gcore]) 2375AC_CONFIG_FILES([Makefile gdb-gdb.gdb doc/Makefile data-directory/Makefile], 2376[ 2377case x$CONFIG_HEADERS in 2378xconfig.h:config.in) 2379echo > stamp-h ;; 2380esac 2381]) 2382 2383AC_OUTPUT 2384