configure.ac revision 1.5
1dnl Autoconf configure script for GDB, the GNU debugger. 2dnl Copyright (C) 1995-2015 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). 538AC_SEARCH_LIBS(kinfo_getvmmap, util, 539 [AC_DEFINE(HAVE_KINFO_GETVMMAP, 1, 540 [Define to 1 if your system has the kinfo_getvmmap function. ])]) 541 542AM_ICONV 543 544# GDB may fork/exec the iconv program to get the list of supported character 545# sets. Allow the user to specify where to find it. 546# There are several factors affecting the choice of option name: 547# - There is already --with-libiconv-prefix but we can't use it, it specifies 548# the build-time location of libiconv files. 549# - The program we need to find is iconv, which comes with glibc. The user 550# doesn't necessarily have libiconv installed. Therefore naming this 551# --with-libiconv-foo feels wrong. 552# - We want the path to be relocatable, but GDB_AC_DEFINE_RELOCATABLE is 553# defined to work on directories not files (though it really doesn't know 554# the difference). 555# - Calling this --with-iconv-prefix is perceived to cause too much confusion 556# with --with-libiconv-prefix. 557# Putting these together is why the option name is --with-iconv-bin. 558 559AC_ARG_WITH(iconv-bin, 560AS_HELP_STRING([--with-iconv-bin=PATH], [specify where to find the iconv program]), 561[iconv_bin="${withval}" 562 AC_DEFINE_UNQUOTED([ICONV_BIN], ["${iconv_bin}"], 563 [Path of directory of iconv program.]) 564 GDB_AC_DEFINE_RELOCATABLE(ICONV_BIN, iconv, ${iconv_bin}) 565]) 566 567# For the TUI, we need enhanced curses functionality. 568if test x"$enable_tui" != xno; then 569 prefer_curses=yes 570fi 571 572curses_found=no 573if test x"$prefer_curses" = xyes; then 574 # FIXME: kettenis/20040905: We prefer ncurses over the vendor-supplied 575 # curses library because the latter might not provide all the 576 # functionality we need. However, this leads to problems on systems 577 # where the linker searches /usr/local/lib, but the compiler doesn't 578 # search /usr/local/include, if ncurses is installed in /usr/local. A 579 # default installation of ncurses on alpha*-dec-osf* will lead to such 580 # a situation. 581 AC_SEARCH_LIBS(waddstr, [ncurses cursesX curses]) 582 583 if test "$ac_cv_search_waddstr" != no; then 584 curses_found=yes 585 fi 586fi 587 588# Check whether we should enable the TUI, but only do so if we really 589# can. 590if test x"$enable_tui" != xno; then 591 if test -d $srcdir/tui; then 592 if test "$curses_found" != no; then 593 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)" 594 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)" 595 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)" 596 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)" 597 else 598 if test x"$enable_tui" = xyes; then 599 AC_MSG_ERROR([no enhanced curses library found; disable TUI]) 600 else 601 AC_MSG_WARN([no enhanced curses library found; disabling TUI]) 602 fi 603 fi 604 fi 605fi 606 607# Since GDB uses Readline, we need termcap functionality. In many 608# cases this will be provided by the curses library, but some systems 609# have a seperate termcap library, or no curses library at all. 610 611case $host_os in 612 cygwin*) 613 if test -d $srcdir/libtermcap; then 614 LIBS="../libtermcap/libtermcap.a $LIBS" 615 ac_cv_search_tgetent="../libtermcap/libtermcap.a" 616 fi ;; 617 go32* | *djgpp*) 618 ac_cv_search_tgetent="none required" 619 ;; 620esac 621 622# These are the libraries checked by Readline. 623AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses]) 624 625if test "$ac_cv_search_tgetent" = no; then 626 CONFIG_OBS="$CONFIG_OBS stub-termcap.o" 627fi 628 629AC_ARG_WITH([system-readline], 630 [AS_HELP_STRING([--with-system-readline], 631 [use installed readline library])]) 632 633if test "$with_system_readline" = yes; then 634 READLINE=-lreadline 635 READLINE_DEPS= 636 READLINE_CFLAGS= 637 READLINE_TEXI_INCFLAG= 638else 639 READLINE='$(READLINE_DIR)/libreadline.a' 640 READLINE_DEPS='$(READLINE)' 641 READLINE_CFLAGS='-I$(READLINE_SRC)/..' 642 READLINE_TEXI_INCFLAG='-I $(READLINE_DIR)' 643fi 644AC_SUBST(READLINE) 645AC_SUBST(READLINE_DEPS) 646AC_SUBST(READLINE_CFLAGS) 647AC_SUBST(READLINE_TEXI_INCFLAG) 648 649# Generate jit-reader.h 650 651# This is typedeffed to GDB_CORE_ADDR in jit-reader.h 652TARGET_PTR= 653 654AC_CHECK_SIZEOF(unsigned long long) 655AC_CHECK_SIZEOF(unsigned long) 656AC_CHECK_SIZEOF(unsigned __int128) 657 658if test "x${ac_cv_sizeof_unsigned_long}" = "x8"; then 659 TARGET_PTR="unsigned long" 660elif test "x${ac_cv_sizeof_unsigned_long_long}" = "x8"; then 661 TARGET_PTR="unsigned long long" 662elif test "x${ac_cv_sizeof_unsigned___int128}" = "x16"; then 663 TARGET_PTR="unsigned __int128" 664else 665 TARGET_PTR="unsigned long" 666fi 667 668AC_SUBST(TARGET_PTR) 669AC_CONFIG_FILES([jit-reader.h:jit-reader.in]) 670 671AC_SEARCH_LIBS(dlopen, dl) 672 673GDB_AC_WITH_DIR([JIT_READER_DIR], [jit-reader-dir], 674 [directory to load the JIT readers from], 675 [${libdir}/gdb]) 676 677AC_ARG_WITH(expat, 678 AS_HELP_STRING([--with-expat], [include expat support (auto/yes/no)]), 679 [], [with_expat=auto]) 680AC_MSG_CHECKING([whether to use expat]) 681AC_MSG_RESULT([$with_expat]) 682 683if test "${with_expat}" = no; then 684 AC_MSG_WARN([expat support disabled; some features may be unavailable.]) 685 HAVE_LIBEXPAT=no 686else 687 AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"], 688 [XML_Parser p = XML_ParserCreate (0);]) 689 if test "$HAVE_LIBEXPAT" != yes; then 690 if test "$with_expat" = yes; then 691 AC_MSG_ERROR([expat is missing or unusable]) 692 else 693 AC_MSG_WARN([expat is missing or unusable; some features may be unavailable.]) 694 fi 695 else 696 save_LIBS=$LIBS 697 LIBS="$LIBS $LIBEXPAT" 698 AC_CHECK_FUNCS(XML_StopParser) 699 LIBS=$save_LIBS 700 fi 701fi 702 703# --------------------- # 704# Check for libpython. # 705# --------------------- # 706 707dnl Utility to simplify finding libpython. 708dnl $1 = pythonX.Y 709dnl $2 = the shell variable to assign the result to 710dnl If libpython is found we store $version here. 711dnl $3 = additional flags to add to CPPFLAGS 712dnl $4 = additional flags to add to LIBS 713 714AC_DEFUN([AC_TRY_LIBPYTHON], 715[ 716 version=$1 717 define([have_libpython_var],$2) 718 new_CPPFLAGS=$3 719 new_LIBS=$4 720 AC_MSG_CHECKING([for ${version}]) 721 save_CPPFLAGS=$CPPFLAGS 722 save_LIBS=$LIBS 723 CPPFLAGS="$CPPFLAGS $new_CPPFLAGS" 724 LIBS="$LIBS $new_LIBS" 725 found_usable_python=no 726 AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "Python.h"]], 727 [[Py_Initialize ();]]), 728 [have_libpython_var=${version} 729 found_usable_python=yes 730 PYTHON_CPPFLAGS=$new_CPPFLAGS 731 PYTHON_LIBS=$new_LIBS]) 732 CPPFLAGS=$save_CPPFLAGS 733 LIBS=$save_LIBS 734 AC_MSG_RESULT([${found_usable_python}]) 735]) 736 737dnl There are several different values for --with-python: 738dnl 739dnl no - Don't include python support. 740dnl yes - Include python support, error if it's missing. 741dnl If we find python in $PATH, use it to fetch configure options, 742dnl otherwise assume the compiler can find it with no help from us. 743dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn. 744dnl auto - Same as "yes", but if python is missing from the system, 745dnl fall back to "no". 746dnl /path/to/python/exec-prefix - 747dnl Use the python located in this directory. 748dnl If /path/to/python/exec-prefix/bin/python exists, use it to find 749dnl the compilation parameters. Otherwise use 750dnl -I/path/to/python/exec-prefix/include, 751dnl -L/path/to/python/exec-prefix/lib. 752dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn. 753dnl NOTE: This case is historical. It is what was done for 7.0/7.1 754dnl but is deprecated. 755dnl /path/to/python/executable - 756dnl Run python-config.py with this version of python to fetch the 757dnl compilation parameters. 758dnl NOTE: This needn't be the real python executable. 759dnl In a cross-compilation scenario (build != host), this could be 760dnl a shell script that provides what python-config.py provides for 761dnl --ldflags, --includes, --exec-prefix. 762dnl python-executable - 763dnl Find python-executable in $PATH, and then handle the same as 764dnl /path/to/python/executable. 765dnl 766dnl If a python program is specified, it is used to run python-config.py and 767dnl is passed --ldflags, --includes, --exec-prefix. 768 769AC_ARG_WITH(python, 770 AS_HELP_STRING([--with-python@<:@=PYTHON@:>@], [include python support (auto/yes/no/<python-program>)]), 771 [], [with_python=auto]) 772AC_MSG_CHECKING([whether to use python]) 773AC_MSG_RESULT([$with_python]) 774 775if test "${with_python}" = no; then 776 AC_MSG_WARN([python support disabled; some features may be unavailable.]) 777 have_libpython=no 778else 779 case "${with_python}" in 780 [[\\/]]* | ?:[[\\/]]*) 781 if test -d ${with_python}; then 782 # Assume the python binary is ${with_python}/bin/python. 783 python_prog="${with_python}/bin/python" 784 python_prefix= 785 # If python does not exit ${with_python}/bin, then try in 786 # ${with_python}. On Windows/MinGW, this is where the Python 787 # executable is. 788 if test ! -x "${python_prog}"; then 789 python_prog="${with_python}/python" 790 python_prefix= 791 fi 792 if test ! -x "${python_prog}"; then 793 # Fall back to gdb 7.0/7.1 behaviour. 794 python_prog=missing 795 python_prefix=${with_python} 796 fi 797 elif test -x "${with_python}"; then 798 # While we can't run python compiled for $host (unless host == build), 799 # the user could write a script that provides the needed information, 800 # so we support that. 801 python_prog=${with_python} 802 python_prefix= 803 else 804 AC_ERROR(invalid value for --with-python) 805 fi 806 ;; 807 */*) 808 # Disallow --with-python=foo/bar. 809 AC_ERROR(invalid value for --with-python) 810 ;; 811 *) 812 # The user has either specified auto, yes, or the name of the python 813 # program assumed to be in $PATH. 814 python_prefix= 815 case "${with_python}" in 816 yes | auto) 817 if test ${build} = ${host}; then 818 AC_PATH_PROG(python_prog_path, python, missing) 819 if test "${python_prog_path}" = missing; then 820 python_prog=missing 821 else 822 python_prog=${python_prog_path} 823 fi 824 else 825 # Not much we can do except assume the cross-compiler will find the 826 # right files. 827 python_prog=missing 828 fi 829 ;; 830 *) 831 # While we can't run python compiled for $host (unless host == build), 832 # the user could write a script that provides the needed information, 833 # so we support that. 834 python_prog="${with_python}" 835 AC_PATH_PROG(python_prog_path, ${python_prog}, missing) 836 if test "${python_prog_path}" = missing; then 837 AC_ERROR(unable to find python program ${python_prog}) 838 fi 839 ;; 840 esac 841 esac 842 843 if test "${python_prog}" != missing; then 844 # We have a python program to use, but it may be too old. 845 # Don't flag an error for --with-python=auto (the default). 846 have_python_config=yes 847 python_includes=`${python_prog} ${srcdir}/python/python-config.py --includes` 848 if test $? != 0; then 849 have_python_config=failed 850 if test "${with_python}" != auto; then 851 AC_ERROR(failure running python-config --includes) 852 fi 853 fi 854 python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags` 855 if test $? != 0; then 856 have_python_config=failed 857 if test "${with_python}" != auto; then 858 AC_ERROR(failure running python-config --ldflags) 859 fi 860 fi 861 python_prefix=`${python_prog} ${srcdir}/python/python-config.py --exec-prefix` 862 if test $? != 0; then 863 have_python_config=failed 864 if test "${with_python}" != auto; then 865 AC_ERROR(failure running python-config --exec-prefix) 866 fi 867 fi 868 else 869 # We do not have a python executable we can use to determine where 870 # to find the Python headers and libs. We cannot guess the include 871 # path from the python_prefix either, because that include path 872 # depends on the Python version. So, there is nothing much we can 873 # do except assume that the compiler will be able to find those files. 874 python_includes= 875 python_libs= 876 have_python_config=no 877 fi 878 879 # If we have python-config, only try the configuration it provides. 880 # Otherwise fallback on the old way of trying different versions of 881 # python in turn. 882 883 have_libpython=no 884 if test "${have_python_config}" = yes; then 885 # Determine the Python version by extracting "-lpython<version>" 886 # part of the python_libs. <version> is usually X.Y with X and Y 887 # being decimal numbers, but can also be XY (seen on Windows). 888 # 889 # The extraction is performed using sed with a regular expression. 890 # Initially, the regexp used was using the '?' quantifier to make 891 # the dot in the version number optional. Unfortunately, this 892 # does not work with non-GNU versions of sed because, because of 893 # what looks like a limitation (the '?' quantifier does not work 894 # with back-references). We work around this limitation by using 895 # the '*' quantifier instead. It means that, in theory, we might 896 # match unexpected version strings such as "-lpython2..7", but 897 # this seems unlikely in practice. And even if that happens, 898 # an error will be triggered later on, when checking that version 899 # number. 900 python_version=`echo " ${python_libs} " \ 901 | sed -e 's,^.* -l\(python[[0-9]]*[[.]]*[[0-9]]*\).*$,\1,'` 902 case "${python_version}" in 903 python*) 904 AC_TRY_LIBPYTHON(${python_version}, have_libpython, 905 ${python_includes}, ${python_libs}) 906 ;; 907 *) 908 AC_MSG_ERROR([unable to determine python version from ${python_libs}]) 909 ;; 910 esac 911 elif test "${have_python_config}" != failed; then 912 if test "${have_libpython}" = no; then 913 AC_TRY_LIBPYTHON(python2.7, have_libpython, 914 ${python_includes}, "${python_libs} -lpython2.7") 915 fi 916 if test "${have_libpython}" = no; then 917 AC_TRY_LIBPYTHON(python2.6, have_libpython, 918 ${python_includes}, "${python_libs} -lpython2.6") 919 fi 920 if test ${have_libpython} = no; then 921 AC_TRY_LIBPYTHON(python2.5, have_libpython, 922 ${python_includes}, "${python_libs} -lpython2.5") 923 fi 924 if test ${have_libpython} = no; then 925 AC_TRY_LIBPYTHON(python2.4, have_libpython, 926 ${python_includes}, "${python_libs} -lpython2.4") 927 fi 928 fi 929 if test "${have_libpython}" = python2.7 -o "${have_libpython}" = python27; then 930 AC_DEFINE(HAVE_LIBPYTHON2_7, 1, [Define if Python 2.7 is being used.]) 931 elif test "${have_libpython}" = python2.6 -o "${have_libpython}" = python26; then 932 AC_DEFINE(HAVE_LIBPYTHON2_6, 1, [Define if Python 2.6 is being used.]) 933 elif test "${have_libpython}" = python2.5 -o "${have_libpython}" = python25; then 934 AC_DEFINE(HAVE_LIBPYTHON2_5, 1, [Define if Python 2.5 is being used.]) 935 elif test "${have_libpython}" = python2.4 -o "${have_libpython}" = python24; then 936 AC_DEFINE(HAVE_LIBPYTHON2_4, 1, [Define if Python 2.4 is being used.]) 937 fi 938 939 if test "${have_libpython}" = no; then 940 case "${with_python}" in 941 yes) 942 AC_MSG_ERROR([python is missing or unusable]) 943 ;; 944 auto) 945 AC_MSG_WARN([python is missing or unusable; some features may be unavailable.]) 946 ;; 947 *) 948 AC_MSG_ERROR([no usable python found at ${with_python}]) 949 ;; 950 esac 951 else 952 if test -n "${python_prefix}"; then 953 AC_DEFINE_UNQUOTED(WITH_PYTHON_PATH, "${python_prefix}", 954 [Define if --with-python provides a path, either directly or via python-config.py --exec-prefix.]) 955 GDB_AC_DEFINE_RELOCATABLE(PYTHON_PATH, python, ${python_prefix}) 956 fi 957 fi 958fi 959 960if test "${have_libpython}" != no; then 961 AC_DEFINE(HAVE_PYTHON, 1, [Define if Python interpreter is being linked in.]) 962 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_PYTHON_OBS)" 963 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)" 964 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_PYTHON_SRCS)" 965 CONFIG_INSTALL="$CONFIG_INSTALL install-python" 966 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)" 967 968 # Flags needed to compile Python code (taken from python-config --cflags). 969 # We cannot call python-config directly because it will output whatever was 970 # used when compiling the Python interpreter itself, including flags which 971 # would make the python-related objects be compiled differently from the 972 # rest of GDB (e.g., -O2 and -fPIC). 973 if test "${GCC}" = yes; then 974 tentative_python_cflags="-fno-strict-aliasing -DNDEBUG -fwrapv" 975 fi 976 977 if test "x${tentative_python_cflags}" != x; then 978 AC_MSG_CHECKING(compiler flags for python code) 979 for flag in ${tentative_python_cflags}; do 980 # Check that the compiler accepts it 981 saved_CFLAGS="$CFLAGS" 982 CFLAGS="$CFLAGS $flag" 983 AC_TRY_COMPILE([],[],PYTHON_CFLAGS="${PYTHON_CFLAGS} $flag",) 984 CFLAGS="$saved_CFLAGS" 985 done 986 AC_MSG_RESULT(${PYTHON_CFLAGS}) 987 fi 988 989 # On x64 Windows, Python's include headers, and pyconfig.h in 990 # particular, rely on MS_WIN64 macro to detect that it's a 64bit 991 # version of Windows. Unfortunately, MS_WIN64 is only defined if 992 # _MSC_VER, a Microsoft-specific macro, is defined. So, when 993 # building on x64 Windows with GCC, we define MS_WIN64 ourselves. 994 # The issue was reported to the Python community, but still isn't 995 # solved as of 2012-10-02 (http://bugs.python.org/issue4709). 996 997 case "$gdb_host" in 998 mingw64) 999 if test "${GCC}" = yes; then 1000 CPPFLAGS="$CPPFLAGS -DMS_WIN64" 1001 fi 1002 ;; 1003 esac 1004 1005 # Note that "python -m threading" cannot be used to check for 1006 # threading support due to a bug in Python 2.7.3 1007 # (http://bugs.python.org/issue15567). 1008 AC_MSG_CHECKING(whether python supports threads) 1009 saved_CPPFLAGS="${CPPFLAGS}" 1010 CPPFLAGS="${PYTHON_CPPFLAGS}" 1011 # Note that the test is reversed so that python_has_threads=yes on 1012 # unexpected failures. 1013 AC_PREPROC_IFELSE(AC_LANG_SOURCE([[ 1014#include <Python.h> 1015#ifdef WITH_THREAD 1016# error 1017#endif 1018 ]]), [python_has_threads=no], [python_has_threads=yes]) 1019 AC_MSG_RESULT(${python_has_threads}) 1020 CPPFLAGS="${saved_CPPFLAGS}" 1021else 1022 # Even if Python support is not compiled in, we need to have this file 1023 # included so that the "python" command, et.al., still exists. 1024 CONFIG_OBS="$CONFIG_OBS python.o" 1025 CONFIG_SRCS="$CONFIG_SRCS python/python.c" 1026fi 1027AC_SUBST(PYTHON_CFLAGS) 1028AC_SUBST(PYTHON_CPPFLAGS) 1029AC_SUBST(PYTHON_LIBS) 1030AM_CONDITIONAL(HAVE_PYTHON, test "${have_libpython}" != no) 1031 1032# -------------------- # 1033# Check for libguile. # 1034# -------------------- # 1035 1036dnl Utility to simplify finding libguile. 1037dnl $1 = pkg-config-program 1038dnl $2 = space-separate list of guile versions to try 1039dnl $3 = yes|no, indicating whether to flag errors or ignore them 1040dnl $4 = the shell variable to assign the result to 1041dnl If libguile is found we store "yes" here. 1042 1043AC_DEFUN([AC_TRY_LIBGUILE], 1044[ 1045 pkg_config=$1 1046 guile_version_list=$2 1047 flag_errors=$3 1048 define([have_libguile_var],$4) 1049 found_usable_guile=checking 1050 AC_MSG_CHECKING([for usable guile from ${pkg_config}]) 1051 for guile_version in ${guile_version_list}; do 1052 ${pkg_config} --exists ${guile_version} 2>/dev/null 1053 if test $? != 0; then 1054 continue 1055 fi 1056 dnl pkg-config says the package exists, so if we get an error now, 1057 dnl that's bad. 1058 new_CPPFLAGS=`${pkg_config} --cflags ${guile_version}` 1059 if test $? != 0; then 1060 AC_MSG_ERROR([failure running pkg-config --cflags ${guile_version}]) 1061 fi 1062 new_LIBS=`${pkg_config} --libs ${guile_version}` 1063 if test $? != 0; then 1064 AC_MSG_ERROR([failure running pkg-config --libs ${guile_version}]) 1065 fi 1066 dnl If we get this far, great. 1067 found_usable_guile=${guile_version} 1068 break 1069 done 1070 if test "${found_usable_guile}" = "checking"; then 1071 if test "${flag_errors}" = "yes"; then 1072 AC_MSG_ERROR([unable to find usable guile version from "${guile_version_list}"]) 1073 else 1074 found_usable_guile=no 1075 fi 1076 fi 1077 dnl One final sanity check. 1078 dnl The user could have said --with-guile=python-2.7. 1079 if test "${found_usable_guile}" != no; then 1080 save_CPPFLAGS=$CPPFLAGS 1081 save_LIBS=$LIBS 1082 CPPFLAGS="$CPPFLAGS $new_CPPFLAGS" 1083 LIBS="$LIBS $new_LIBS" 1084 AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "libguile.h"]], 1085 [[scm_init_guile ();]]), 1086 [have_libguile_var=yes 1087 GUILE_CPPFLAGS=$new_CPPFLAGS 1088 GUILE_LIBS=$new_LIBS], 1089 [found_usable_guile=no]) 1090 dnl scm_set_automatic_finalization_enabled added in Guile 2.2. 1091 AC_CHECK_FUNC(scm_set_automatic_finalization_enabled, 1092 AC_DEFINE(HAVE_GUILE_MANUAL_FINALIZATION, 1, 1093 [Define if Guile supports manual finalization.]) 1094 ) 1095 CPPFLAGS=$save_CPPFLAGS 1096 LIBS=$save_LIBS 1097 if test "${found_usable_guile}" = no; then 1098 if test "${flag_errors}" = yes; then 1099 AC_MSG_FAILURE([linking guile version ${guile_version} test program failed]) 1100 fi 1101 fi 1102 fi 1103 AC_MSG_RESULT([${found_usable_guile}]) 1104]) 1105 1106dnl There are several different values for --with-guile: 1107dnl 1108dnl no - Don't include guile support. 1109dnl yes - Include guile support, error if it's missing. 1110dnl The pkg-config program must be in $PATH. 1111dnl auto - Same as "yes", but if guile is missing from the system, 1112dnl fall back to "no". 1113dnl guile-version [guile-version-choice-2 ...] - 1114dnl A space-separated list of guile package versions to try. 1115dnl These are passed to pkg-config as-is. 1116dnl E.g., guile-2.0 or guile-2.2-uninstalled 1117dnl This requires making sure PKG_CONFIG_PATH is set appropriately. 1118dnl /path/to/pkg-config - 1119dnl Use this pkg-config program. 1120dnl NOTE: This needn't be the "real" pkg-config program. 1121dnl It could be a shell script. It is invoked as: 1122dnl pkg-config --exists $version 1123dnl pkg-config --cflags $version 1124dnl pkg-config --libs $version 1125dnl pkg-config --variable guild $version 1126dnl The script will be called with $version having each value in 1127dnl $try_guile_versions until --exists indicates success. 1128 1129AC_ARG_WITH(guile, 1130 AS_HELP_STRING([--with-guile@<:@=GUILE@:>@], [include guile support (auto/yes/no/<guile-version>/<pkg-config-program>)]), 1131 [], [with_guile=auto]) 1132AC_MSG_CHECKING([whether to use guile]) 1133AC_MSG_RESULT([$with_guile]) 1134 1135dnl We check guile with pkg-config. 1136AC_PATH_PROG(pkg_config_prog_path, pkg-config, missing) 1137 1138try_guile_versions="guile-2.2 guile-2.0" 1139have_libguile=no 1140case "${with_guile}" in 1141no) 1142 AC_MSG_WARN([guile support disabled; some features will be unavailable.]) 1143 ;; 1144auto) 1145 if test "${pkg_config_prog_path}" = "missing"; then 1146 AC_MSG_WARN([pkg-config not found, guile support disabled]) 1147 else 1148 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, no, have_libguile) 1149 fi 1150 ;; 1151yes) 1152 if test "${pkg_config_prog_path}" = "missing"; then 1153 AC_MSG_ERROR([pkg-config not found]) 1154 fi 1155 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, yes, have_libguile) 1156 ;; 1157[[\\/]]* | ?:[[\\/]]*) 1158 if test -x "${with_guile}"; then 1159 AC_TRY_LIBGUILE(${with_guile}, ${try_guile_versions}, yes, have_libguile) 1160 else 1161 AC_MSG_ERROR([Guile config program not executable: ${with_guile}]) 1162 fi 1163 ;; 1164"" | */*) 1165 # Disallow --with=guile="" and --with-guile=foo/bar. 1166 AC_MSG_ERROR([invalid value for --with-guile]) 1167 ;; 1168*) 1169 # A space separate list of guile versions to try, in order. 1170 if test "${pkg_config_prog_path}" = "missing"; then 1171 AC_MSG_ERROR([pkg-config not found]) 1172 fi 1173 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${with_guile}, yes, have_libguile) 1174 ;; 1175esac 1176 1177if test "${have_libguile}" != no; then 1178 dnl Get the name of the 'guild' program. 1179 case "${with_guile}" in 1180 [[\\/]]* | ?:[[\\/]]*) 1181 GDB_GUILE_PROGRAM_NAMES(["${with_guile}"], ["${guile_version}"]) 1182 ;; 1183 *) 1184 GDB_GUILE_PROGRAM_NAMES(["${pkg_config_prog_path}"], ["${guile_version}"]) 1185 ;; 1186 esac 1187 1188 dnl Make sure guild can handle this host. 1189 GDB_TRY_GUILD([$srcdir/guile/lib/gdb/support.scm]) 1190 dnl If not, disable guile support. 1191 if test "$ac_cv_guild_ok" = no; then 1192 have_libguile=no 1193 AC_MSG_WARN(disabling guile support, $GUILD fails compiling for $host) 1194 fi 1195fi 1196 1197if test "${have_libguile}" != no; then 1198 AC_DEFINE(HAVE_GUILE, 1, [Define if Guile interpreter is being linked in.]) 1199 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_GUILE_OBS)" 1200 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_GUILE_DEPS)" 1201 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_GUILE_SRCS)" 1202 CONFIG_INSTALL="$CONFIG_INSTALL install-guile" 1203 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_GUILE_CFLAGS)" 1204 1205 dnl The 'scm_new_smob' function appeared in Guile 2.0.6. 1206 save_LIBS="$LIBS" 1207 save_CPPFLAGS="$CPPFLAGS" 1208 LIBS="$GUILE_LIBS" 1209 CPPFLAGS="$GUILE_CPPFLAGS" 1210 AC_CHECK_FUNCS([scm_new_smob]) 1211 LIBS="$save_LIBS" 1212 CPPFLAGS="$save_CPPFLAGS" 1213else 1214 # Even if Guile support is not compiled in, we need to have these files 1215 # included. 1216 CONFIG_OBS="$CONFIG_OBS guile.o" 1217 CONFIG_SRCS="$CONFIG_SRCS guile/guile.c" 1218fi 1219AC_SUBST(GUILE_CPPFLAGS) 1220AC_SUBST(GUILE_LIBS) 1221AM_CONDITIONAL(HAVE_GUILE, test "${have_libguile}" != no) 1222 1223# --------------------- # 1224# Check for libmcheck. # 1225# --------------------- # 1226 1227# Enable -lmcheck by default (it provides cheap-enough memory mangling), 1228# but turn it off if Python is enabled with threads, since -lmcheck is 1229# not thread safe (http://sourceware.org/bugzilla/show_bug.cgi?id=9939), 1230# and for releases. 1231if test \( "${have_libpython}" = "no" -o "${python_has_threads}" = "no" \) \ 1232 && $development; then 1233 libmcheck_default=yes 1234else 1235 libmcheck_default=no 1236fi 1237GDB_AC_LIBMCHECK(${libmcheck_default}) 1238 1239if test "$ENABLE_LIBMCHECK" = "yes" \ 1240 -a "${have_libpython}" != "no" \ 1241 -a "${python_has_threads}" = "yes" ; then 1242 AC_MSG_WARN(--enable-libmcheck may lead to spurious crashes if threads are used in python) 1243fi 1244 1245AC_ARG_WITH(intel_pt, 1246 AS_HELP_STRING([--with-intel-pt], [include Intel(R) Processor Trace support (auto/yes/no)]), 1247 [], [with_intel_pt=auto]) 1248AC_MSG_CHECKING([whether to use intel pt]) 1249AC_MSG_RESULT([$with_intel_pt]) 1250 1251if test "${with_intel_pt}" = no; then 1252 AC_MSG_WARN([Intel(R) Processor Trace support disabled; some features may be unavailable.]) 1253 HAVE_LIBIPT=no 1254else 1255 AC_LIB_HAVE_LINKFLAGS([ipt], [], [#include "intel-pt.h"], [pt_insn_alloc_decoder (0);]) 1256 if test "$HAVE_LIBIPT" != yes; then 1257 if test "$with_intel_pt" = yes; then 1258 AC_MSG_ERROR([libipt is missing or unusable]) 1259 else 1260 AC_MSG_WARN([libipt is missing or unusable; some features may be unavailable.]) 1261 fi 1262 fi 1263fi 1264 1265# ------------------------- # 1266# Checks for header files. # 1267# ------------------------- # 1268 1269AC_HEADER_STDC 1270# elf_hp.h is for HP/UX 64-bit shared library support. 1271AC_CHECK_HEADERS([nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \ 1272 thread_db.h \ 1273 sys/fault.h \ 1274 sys/file.h sys/filio.h sys/ioctl.h sys/param.h \ 1275 sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \ 1276 sys/reg.h sys/debugreg.h sys/select.h sys/syscall.h \ 1277 termios.h termio.h \ 1278 sgtty.h elf_hp.h \ 1279 dlfcn.h]) 1280AC_CHECK_HEADERS(sys/proc.h, [], [], 1281[#if HAVE_SYS_PARAM_H 1282# include <sys/param.h> 1283#endif 1284]) 1285AC_CHECK_HEADERS(sys/user.h, [], [], 1286[#if HAVE_SYS_PARAM_H 1287# include <sys/param.h> 1288#endif 1289]) 1290 1291# On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash 1292# between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to 1293# think that we don't have <curses.h> if we're using GCC. 1294case $host_os in 1295 solaris2.[[789]]) 1296 if test "$GCC" = yes; then 1297 AC_DEFINE(_MSE_INT_H, 1, 1298 [Define to 1 to avoid a clash between <widec.h> and <wchar.h> on 1299 Solaris 2.[789] when using GCC. ]) 1300 fi ;; 1301esac 1302AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h ncurses/term.h) 1303AC_CHECK_HEADERS(term.h, [], [], 1304[#if HAVE_CURSES_H 1305# include <curses.h> 1306#endif 1307]) 1308 1309# ------------------------- # 1310# Checks for declarations. # 1311# ------------------------- # 1312 1313libiberty_INIT 1314 1315AC_CHECK_DECLS([free, malloc, realloc, snprintf]) 1316AM_LC_MESSAGES 1317 1318# ----------------------- # 1319# Checks for structures. # 1320# ----------------------- # 1321 1322AC_CHECK_MEMBERS([struct stat.st_blocks, struct stat.st_blksize]) 1323 1324# ------------------ # 1325# Checks for types. # 1326# ------------------ # 1327 1328AC_TYPE_SIGNAL 1329AC_CHECK_TYPES(socklen_t, [], [], 1330[#include <sys/types.h> 1331#include <sys/socket.h> 1332]) 1333 1334# ------------------------------------- # 1335# Checks for compiler characteristics. # 1336# ------------------------------------- # 1337 1338AC_C_CONST 1339AC_C_INLINE 1340AC_C_BIGENDIAN 1341 1342# ------------------------------ # 1343# Checks for library functions. # 1344# ------------------------------ # 1345 1346AC_FUNC_MMAP 1347AC_FUNC_VFORK 1348AC_CHECK_FUNCS([getauxval getrusage getuid getgid \ 1349 pipe poll pread pread64 pwrite resize_term \ 1350 sbrk setpgid setpgrp setsid \ 1351 sigaction sigprocmask sigsetmask socketpair \ 1352 ttrace wborder wresize setlocale iconvlist libiconvlist btowc \ 1353 setrlimit getrlimit posix_madvise waitpid \ 1354 ptrace64 sigaltstack mkdtemp setns]) 1355AM_LANGINFO_CODESET 1356GDB_AC_COMMON 1357 1358# Check the return and argument types of ptrace. No canned test for 1359# this, so roll our own. 1360gdb_ptrace_headers=' 1361#include <sys/types.h> 1362#if HAVE_SYS_PTRACE_H 1363# include <sys/ptrace.h> 1364#endif 1365#if HAVE_UNISTD_H 1366# include <unistd.h> 1367#endif 1368' 1369# There is no point in checking if we don't have a prototype. 1370AC_CHECK_DECLS(ptrace, [], [ 1371 : ${gdb_cv_func_ptrace_ret='int'} 1372 : ${gdb_cv_func_ptrace_args='int,int,long,long'} 1373], $gdb_ptrace_headers) 1374# Check return type. Varargs (used on GNU/Linux) conflict with the 1375# empty argument list, so check for that explicitly. 1376AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret, 1377 AC_TRY_COMPILE($gdb_ptrace_headers, 1378 [extern long ptrace (enum __ptrace_request, ...);], 1379 gdb_cv_func_ptrace_ret='long', 1380 AC_TRY_COMPILE($gdb_ptrace_headers, 1381 [extern int ptrace ();], 1382 gdb_cv_func_ptrace_ret='int', 1383 gdb_cv_func_ptrace_ret='long'))) 1384AC_DEFINE_UNQUOTED(PTRACE_TYPE_RET, $gdb_cv_func_ptrace_ret, 1385 [Define as the return type of ptrace.]) 1386# Check argument types. 1387AC_CACHE_CHECK([types of arguments for ptrace], gdb_cv_func_ptrace_args, [ 1388 AC_TRY_COMPILE($gdb_ptrace_headers, 1389 [extern long ptrace (enum __ptrace_request, ...);], 1390 [gdb_cv_func_ptrace_args='int,int,long,long'],[ 1391for gdb_arg1 in 'int' 'long'; do 1392 for gdb_arg2 in 'pid_t' 'int' 'long'; do 1393 for gdb_arg3 in 'int *' 'caddr_t' 'int' 'long' 'void *'; do 1394 for gdb_arg4 in 'int' 'long' 'void *'; do 1395 AC_TRY_COMPILE($gdb_ptrace_headers, [ 1396extern $gdb_cv_func_ptrace_ret 1397 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4); 1398], [gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4"; 1399 break 4;]) 1400 for gdb_arg5 in 'int *' 'int' 'long'; do 1401 AC_TRY_COMPILE($gdb_ptrace_headers, [ 1402extern $gdb_cv_func_ptrace_ret 1403 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4, $gdb_arg5); 1404], [ 1405gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4,$gdb_arg5"; 1406 break 5;]) 1407 done 1408 done 1409 done 1410 done 1411done 1412# Provide a safe default value. 1413: ${gdb_cv_func_ptrace_args='int,int,long,long'} 1414])]) 1415ac_save_IFS=$IFS; IFS=',' 1416set dummy `echo "$gdb_cv_func_ptrace_args" | sed 's/\*/\*/g'` 1417IFS=$ac_save_IFS 1418shift 1419AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG3, $[3], 1420 [Define to the type of arg 3 for ptrace.]) 1421AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG4, $[4], 1422 [Define to the type of arg 4 for ptrace.]) 1423if test -n "$[5]"; then 1424 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG5, $[5], 1425 [Define to the type of arg 5 for ptrace.]) 1426fi 1427 1428dnl AC_FUNC_SETPGRP does not work when cross compiling 1429dnl Instead, assume we will have a prototype for setpgrp if cross compiling. 1430if test "$cross_compiling" = no; then 1431 AC_FUNC_SETPGRP 1432else 1433 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void, 1434 [AC_TRY_COMPILE([ 1435#include <unistd.h> 1436], [ 1437 if (setpgrp(1,1) == -1) 1438 exit (0); 1439 else 1440 exit (1); 1441], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)]) 1442if test $ac_cv_func_setpgrp_void = yes; then 1443 AC_DEFINE(SETPGRP_VOID, 1) 1444fi 1445fi 1446 1447# Assume we'll default to using the included libiberty regex. 1448gdb_use_included_regex=yes 1449 1450# However, if the system regex is GNU regex, then default to *not* 1451# using the included regex. 1452AC_CACHE_CHECK( 1453 [for GNU regex], 1454 [gdb_cv_have_gnu_regex], 1455 [AC_TRY_COMPILE( 1456 [#include <gnu-versions.h>], 1457 [#define REGEX_INTERFACE_VERSION 1 1458#if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION 1459# error "Version mismatch" 1460#endif], 1461 gdb_cv_have_gnu_regex=yes, 1462 gdb_cv_have_gnu_regex=no)]) 1463if test $gdb_cv_have_gnu_regex = yes; then 1464 gdb_use_included_regex=no 1465fi 1466 1467AC_ARG_WITH(included-regex, 1468 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)]), 1469 gdb_with_regex=$withval, 1470 gdb_with_regex=$gdb_use_included_regex) 1471if test "$gdb_with_regex" = yes; then 1472 AC_DEFINE(USE_INCLUDED_REGEX, 1, 1473 [Define to 1 if the regex included in libiberty should be used.]) 1474fi 1475 1476# Check if <sys/proc.h> defines `struct thread' with a td_pcb member. 1477AC_CHECK_MEMBERS([struct thread.td_pcb], [], [], 1478[#include <sys/param.h> 1479#include <sys/proc.h> 1480]) 1481 1482# See if <sys/lwp.h> defines `struct lwp`. 1483AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp, 1484[AC_TRY_COMPILE([#define _KMEMUSER 1485#include <sys/param.h> 1486#include <sys/lwp.h>], [struct lwp l;], 1487gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)]) 1488if test $gdb_cv_struct_lwp = yes; then 1489 AC_DEFINE(HAVE_STRUCT_LWP, 1, 1490 [Define to 1 if your system has struct lwp.]) 1491fi 1492 1493# See if <machine/reg.h> degines `struct reg'. 1494AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg, 1495[AC_TRY_COMPILE([#include <sys/types.h> 1496#include <machine/reg.h>], [struct reg r;], 1497gdb_cv_struct_reg=yes, gdb_cv_struct_reg=no)]) 1498if test $gdb_cv_struct_reg = yes; then 1499 AC_DEFINE(HAVE_STRUCT_REG, 1, 1500 [Define to 1 if your system has struct reg in <machine/reg.h>.]) 1501fi 1502 1503# See if <machine/reg.h> supports the %fs and %gs i386 segment registers. 1504# Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'. 1505AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [], 1506 [#include <machine/reg.h>]) 1507 1508# See if <sys/user.h> supports the %fs_base and %gs_bas amd64 segment registers. 1509# Older amd64 Linux's don't have the fs_base and gs_base members of 1510# `struct user_regs_struct'. 1511AC_CHECK_MEMBERS([struct user_regs_struct.fs_base, struct user_regs_struct.gs_base], 1512 [], [], [#include <sys/user.h>]) 1513 1514# See if <sys/ptrace.h> provides the PTRACE_GETREGS request. 1515AC_MSG_CHECKING(for PTRACE_GETREGS) 1516AC_CACHE_VAL(gdb_cv_have_ptrace_getregs, 1517[AC_TRY_COMPILE([#include <sys/ptrace.h>], 1518 [PTRACE_GETREGS;], 1519 [gdb_cv_have_ptrace_getregs=yes], 1520 [gdb_cv_have_ptrace_getregs=no])]) 1521AC_MSG_RESULT($gdb_cv_have_ptrace_getregs) 1522if test $gdb_cv_have_ptrace_getregs = yes; then 1523 AC_DEFINE(HAVE_PTRACE_GETREGS, 1, 1524 [Define if sys/ptrace.h defines the PTRACE_GETREGS request.]) 1525fi 1526 1527# See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request. 1528AC_MSG_CHECKING(for PTRACE_GETFPXREGS) 1529AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs, 1530[AC_TRY_COMPILE([#include <sys/ptrace.h>], 1531 [PTRACE_GETFPXREGS;], 1532 [gdb_cv_have_ptrace_getfpxregs=yes], 1533 [gdb_cv_have_ptrace_getfpxregs=no])]) 1534AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs) 1535if test $gdb_cv_have_ptrace_getfpxregs = yes; then 1536 AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1, 1537 [Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.]) 1538fi 1539 1540# See if <sys/ptrace.h> provides the PT_GETDBREGS request. 1541AC_MSG_CHECKING(for PT_GETDBREGS) 1542AC_CACHE_VAL(gdb_cv_have_pt_getdbregs, 1543[AC_TRY_COMPILE([#include <sys/types.h> 1544#include <sys/ptrace.h>], 1545 [PT_GETDBREGS;], 1546 [gdb_cv_have_pt_getdbregs=yes], 1547 [gdb_cv_have_pt_getdbregs=no])]) 1548AC_MSG_RESULT($gdb_cv_have_pt_getdbregs) 1549if test $gdb_cv_have_pt_getdbregs = yes; then 1550 AC_DEFINE(HAVE_PT_GETDBREGS, 1, 1551 [Define if sys/ptrace.h defines the PT_GETDBREGS request.]) 1552fi 1553 1554# See if <sys/ptrace.h> provides the PT_GETXMMREGS request. 1555AC_MSG_CHECKING(for PT_GETXMMREGS) 1556AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs, 1557[AC_TRY_COMPILE([#include <sys/types.h> 1558#include <sys/ptrace.h>], 1559 [PT_GETXMMREGS;], 1560 [gdb_cv_have_pt_getxmmregs=yes], 1561 [gdb_cv_have_pt_getxmmregs=no])]) 1562AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs) 1563if test $gdb_cv_have_pt_getxmmregs = yes; then 1564 AC_DEFINE(HAVE_PT_GETXMMREGS, 1, 1565 [Define if sys/ptrace.h defines the PT_GETXMMREGS request.]) 1566fi 1567 1568# Detect which type of /proc is in use, such as for Solaris. 1569 1570if test "${target}" = "${host}"; then 1571 case "${host}" in 1572 *-*-sysv4.2* | *-*-sysv5* ) 1573 AC_DEFINE(NEW_PROC_API, 1, 1574 [Define if you want to use new multi-fd /proc interface.]) 1575 ;; 1576 *-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]]*) 1577 AC_DEFINE(NEW_PROC_API, 1, 1578 [Define if you want to use new multi-fd /proc interface.]) 1579 ;; 1580 mips-sgi-irix5*) 1581 # Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5. 1582 AC_DEFINE([_KMEMUSER], 1, 1583 [Define to 1 so <sys/proc.h> gets a definition of anon_hdl. Works 1584 around a <sys/proc.h> problem on IRIX 5.]) 1585 ;; 1586 esac 1587fi 1588 1589if test "$ac_cv_header_sys_procfs_h" = yes; then 1590 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t) 1591 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t) 1592 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t) 1593 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t) 1594 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t) 1595 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t) 1596 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t) 1597 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t) 1598 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t) 1599 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t) 1600 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t) 1601 1602 1603 dnl Check for broken prfpregset_t type 1604 1605 dnl For Linux/i386, glibc 2.1.3 was released with a bogus 1606 dnl prfpregset_t type (it's a typedef for the pointer to a struct 1607 dnl instead of the struct itself). We detect this here, and work 1608 dnl around it in gdb_proc_service.h. 1609 1610 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then 1611 AC_MSG_CHECKING(whether prfpregset_t type is broken) 1612 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken, 1613 [AC_TRY_RUN([#include <sys/procfs.h> 1614 int main () 1615 { 1616 if (sizeof (prfpregset_t) == sizeof (void *)) 1617 return 1; 1618 return 0; 1619 }], 1620 gdb_cv_prfpregset_t_broken=no, 1621 gdb_cv_prfpregset_t_broken=yes, 1622 gdb_cv_prfpregset_t_broken=yes)]) 1623 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken) 1624 if test $gdb_cv_prfpregset_t_broken = yes; then 1625 AC_DEFINE(PRFPREGSET_T_BROKEN, 1, 1626 [Define if the prfpregset_t type is broken.]) 1627 fi 1628 fi 1629fi 1630 1631# Check if the compiler supports the `long long' type. 1632 1633AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long, 1634 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM( 1635[[extern long long foo;]], 1636[[switch (foo & 2) { case 0: return 1; }]])], 1637 gdb_cv_c_long_long=yes, 1638 gdb_cv_c_long_long=no)]) 1639if test $gdb_cv_c_long_long != yes; then 1640 # libdecnumber requires long long. 1641 AC_MSG_ERROR([Compiler must support long long for GDB.]) 1642fi 1643 1644# Check if the compiler and runtime support printing long longs. 1645 1646AC_CACHE_CHECK([for long long support in printf], 1647 gdb_cv_printf_has_long_long, 1648 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], 1649[[char buf[32]; 1650 long long l = 0; 1651 l = (l << 16) + 0x0123; 1652 l = (l << 16) + 0x4567; 1653 l = (l << 16) + 0x89ab; 1654 l = (l << 16) + 0xcdef; 1655 sprintf (buf, "0x%016llx", l); 1656 return (strcmp ("0x0123456789abcdef", buf));]])], 1657 gdb_cv_printf_has_long_long=yes, 1658 gdb_cv_printf_has_long_long=no, 1659 gdb_cv_printf_has_long_long=no)]) 1660if test $gdb_cv_printf_has_long_long = yes; then 1661 AC_DEFINE(PRINTF_HAS_LONG_LONG, 1, 1662 [Define to 1 if the "%ll" format works to print long longs.]) 1663fi 1664 1665# Check if the compiler and runtime support printing decfloats. 1666 1667AC_CACHE_CHECK([for decfloat support in printf], 1668 gdb_cv_printf_has_decfloat, 1669 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], 1670[[char buf[64]; 1671 _Decimal32 d32 = 1.2345df; 1672 _Decimal64 d64 = 1.2345dd; 1673 _Decimal128 d128 = 1.2345dl; 1674 sprintf (buf, "Decimal32: %H\nDecimal64: %D\nDecimal128: %DD", d32, d64, d128); 1675 return (strcmp ("Decimal32: 1.2345\nDecimal64: 1.2345\nDecimal128: 1.2345", buf));]])], 1676 gdb_cv_printf_has_decfloat=yes, 1677 gdb_cv_printf_has_decfloat=no, 1678 gdb_cv_printf_has_decfloat=no)]) 1679if test $gdb_cv_printf_has_decfloat = yes; then 1680 AC_DEFINE(PRINTF_HAS_DECFLOAT, 1, 1681 [Define to 1 if the "%H, %D and %DD" formats work to print decfloats.]) 1682fi 1683 1684# Check if the compiler supports the `long double' type. We can't use 1685# AC_C_LONG_DOUBLE because that one does additional checks on the 1686# constants defined in <float.h> that fail on some systems, 1687# e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6. 1688 1689AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double, 1690 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])], 1691 gdb_cv_c_long_double=yes, 1692 gdb_cv_c_long_double=no)]) 1693if test $gdb_cv_c_long_double = yes; then 1694 AC_DEFINE(HAVE_LONG_DOUBLE, 1, 1695 [Define to 1 if the compiler supports long double.]) 1696fi 1697 1698# Check if the compiler and runtime support printing long doubles. 1699 1700AC_CACHE_CHECK([for long double support in printf], 1701 gdb_cv_printf_has_long_double, 1702 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], 1703[[char buf[16]; 1704 long double f = 3.141592653; 1705 sprintf (buf, "%Lg", f); 1706 return (strncmp ("3.14159", buf, 7));]])], 1707 gdb_cv_printf_has_long_double=yes, 1708 gdb_cv_printf_has_long_double=no, 1709 gdb_cv_printf_has_long_double=no)]) 1710if test $gdb_cv_printf_has_long_double = yes; then 1711 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1, 1712 [Define to 1 if the "%Lg" format works to print long doubles.]) 1713fi 1714 1715# Check if the compiler and runtime support scanning long doubles. 1716 1717AC_CACHE_CHECK([for long double support in scanf], 1718 gdb_cv_scanf_has_long_double, 1719 [AC_RUN_IFELSE([AC_LANG_PROGRAM( 1720[[#include <stdio.h>]], 1721[[char *buf = "3.141592653"; 1722 long double f = 0; 1723 sscanf (buf, "%Lg", &f); 1724 return !(f > 3.14159 && f < 3.14160);]])], 1725 gdb_cv_scanf_has_long_double=yes, 1726 gdb_cv_scanf_has_long_double=no, 1727 gdb_cv_scanf_has_long_double=no)]) 1728if test $gdb_cv_scanf_has_long_double = yes; then 1729 AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1, 1730 [Define to 1 if the "%Lg" format works to scan long doubles.]) 1731fi 1732 1733case ${host_os} in 1734aix*) 1735 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [ 1736 SAVE_LDFLAGS=$LDFLAGS 1737 1738 case $GCC in 1739 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;; 1740 *) gdb_cv_bigtoc=-bbigtoc ;; 1741 esac 1742 1743 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc 1744 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=]) 1745 LDFLAGS="${SAVE_LDFLAGS}" 1746 ]) 1747 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}" 1748 ;; 1749esac 1750 1751AC_MSG_CHECKING(for the dynamic export flag) 1752dynamic_list=false 1753if test "${gdb_native}" = yes; then 1754 # The dynamically loaded libthread_db needs access to symbols in the gdb 1755 # executable. Older GNU ld supports --export-dynamic but --dynamic-list 1756 # may not be supported there. 1757 old_LDFLAGS="$LDFLAGS" 1758 # Older GNU ld supports --export-dynamic but --dynamic-list it does not. 1759 RDYNAMIC="-Wl,--dynamic-list=${srcdir}/proc-service.list" 1760 LDFLAGS="$LDFLAGS $RDYNAMIC" 1761 if test "${have_libpython}" = no; then 1762 AC_TRY_LINK([], [], [dynamic_list=true]) 1763 else 1764 # Workaround http://bugs.python.org/issue4434 where static 1765 # libpythonX.Y.a would get its symbols required for 1766 # pythonX.Y/lib-dynload/*.so modules hidden by -Wl,--dynamic-list. 1767 # Problem does not happen for the recommended libpythonX.Y.so linkage. 1768 old_CFLAGS="$CFLAGS" 1769 CFLAGS="$CFLAGS $PYTHON_CFLAGS" 1770 old_LIBS="$LIBS" 1771 LIBS="$LIBS $PYTHON_LIBS" 1772 AC_RUN_IFELSE( 1773 AC_LANG_PROGRAM( 1774 [#include "]${have_libpython}[/Python.h"], 1775 [int err; 1776 Py_Initialize (); 1777 err = PyRun_SimpleString ("import itertools\n"); 1778 Py_Finalize (); 1779 return err == 0 ? 0 : 1;]), 1780 [dynamic_list=true], [], [true]) 1781 LIBS="$old_LIBS" 1782 CFLAGS="$old_CFLAGS" 1783 fi 1784 LDFLAGS="$old_LDFLAGS" 1785fi 1786if $dynamic_list; then 1787 found="-Wl,--dynamic-list" 1788 RDYNAMIC='-Wl,--dynamic-list=$(srcdir)/proc-service.list' 1789else 1790 found="-rdynamic" 1791 RDYNAMIC="-rdynamic" 1792fi 1793AC_SUBST(RDYNAMIC) 1794AC_MSG_RESULT($found) 1795 1796dnl For certain native configurations, we need to check whether thread 1797dnl support can be built in or not. 1798dnl 1799dnl Note that we only want this if we are both native (host == target), 1800dnl and not doing a canadian cross build (build == host). 1801 1802if test ${build} = ${host} -a ${host} = ${target} ; then 1803 case ${host_os} in 1804 solaris*) 1805 # See if thread_db library is around for Solaris thread debugging. 1806 # Note that we must explicitly test for version 1 of the library 1807 # because version 0 (present on Solaris 2.4 or earlier) doesn't have 1808 # the same API. 1809 AC_MSG_CHECKING(for Solaris thread debugging library) 1810 if test -f /usr/lib/libthread_db.so.1 ; then 1811 AC_MSG_RESULT(yes) 1812 AC_DEFINE(HAVE_THREAD_DB_LIB, 1, 1813 [Define if using Solaris thread debugging.]) 1814 CONFIG_OBS="${CONFIG_OBS} sol-thread.o" 1815 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c" 1816 AC_CHECK_LIB(dl, dlopen) 1817 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} $RDYNAMIC" 1818 # Sun randomly tweaked the prototypes in <proc_service.h> 1819 # at one point. 1820 AC_MSG_CHECKING(if <proc_service.h> is old) 1821 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[ 1822 AC_TRY_COMPILE([ 1823 #include <proc_service.h> 1824 ps_err_e ps_pdwrite 1825 (struct ps_prochandle*, psaddr_t, const void*, size_t); 1826 ],, gdb_cv_proc_service_is_old=no, 1827 gdb_cv_proc_service_is_old=yes) 1828 ]) 1829 AC_MSG_RESULT($gdb_cv_proc_service_is_old) 1830 if test $gdb_cv_proc_service_is_old = yes; then 1831 AC_DEFINE(PROC_SERVICE_IS_OLD, 1, 1832 [Define if <proc_service.h> on solaris uses int instead of 1833 size_t, and assorted other type changes.]) 1834 fi 1835 else 1836 AC_MSG_RESULT(no) 1837 fi 1838 ;; 1839 aix*) 1840 AC_MSG_CHECKING(for AiX thread debugging library) 1841 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug, 1842 [AC_TRY_COMPILE([#include <sys/pthdebug.h>], 1843 [#ifndef PTHDB_VERSION_3 1844 #error 1845 #endif], 1846 gdb_cv_have_aix_thread_debug=yes, 1847 gdb_cv_have_aix_thread_debug=no)]) 1848 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug) 1849 if test $gdb_cv_have_aix_thread_debug = yes; then 1850 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c" 1851 CONFIG_OBS="${CONFIG_OBS} aix-thread.o" 1852 LIBS="$LIBS -lpthdebug" 1853 1854 # Older versions of AIX do not provide the declaration for 1855 # the getthrds function (it appears that it was introduced 1856 # with AIX 6.x). 1857 AC_CHECK_DECLS(getthrds, [], [], [[#include <procinfo.h>]]) 1858 fi 1859 ;; 1860 esac 1861 AC_SUBST(CONFIG_LDFLAGS) 1862fi 1863 1864dnl See if we have a thread_db header file that has TD_NOTALLOC and 1865dnl other error codes. 1866if test "x$ac_cv_header_thread_db_h" = "xyes"; then 1867 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC], 1868 gdb_cv_thread_db_h_has_td_notalloc, 1869 AC_TRY_COMPILE( 1870 [#include <thread_db.h>], 1871 [int i = TD_NOTALLOC;], 1872 gdb_cv_thread_db_h_has_td_notalloc=yes, 1873 gdb_cv_thread_db_h_has_td_notalloc=no 1874 ) 1875 ) 1876 AC_CACHE_CHECK([whether <thread_db.h> has TD_VERSION], 1877 gdb_cv_thread_db_h_has_td_version, 1878 AC_TRY_COMPILE( 1879 [#include <thread_db.h>], 1880 [int i = TD_VERSION;], 1881 gdb_cv_thread_db_h_has_td_version=yes, 1882 gdb_cv_thread_db_h_has_td_version=no 1883 ) 1884 ) 1885 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTLS], 1886 gdb_cv_thread_db_h_has_td_notls, 1887 AC_TRY_COMPILE( 1888 [#include <thread_db.h>], 1889 [int i = TD_NOTLS;], 1890 gdb_cv_thread_db_h_has_td_notls=yes, 1891 gdb_cv_thread_db_h_has_td_notls=no 1892 ) 1893 ) 1894fi 1895if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then 1896 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1, 1897 [Define if <thread_db.h> has the TD_NOTALLOC error code.]) 1898fi 1899if test "x$gdb_cv_thread_db_h_has_td_version" = "xyes"; then 1900 AC_DEFINE(THREAD_DB_HAS_TD_VERSION, 1, 1901 [Define if <thread_db.h> has the TD_VERSION error code.]) 1902fi 1903if test "x$gdb_cv_thread_db_h_has_td_notls" = "xyes"; then 1904 AC_DEFINE(THREAD_DB_HAS_TD_NOTLS, 1, 1905 [Define if <thread_db.h> has the TD_NOTLS error code.]) 1906fi 1907 1908dnl See if we have a sys/syscall header file that has __NR_tkill. 1909if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then 1910 AC_CACHE_CHECK([whether <sys/syscall.h> has __NR_tkill], 1911 gdb_cv_sys_syscall_h_has_tkill, 1912 AC_TRY_COMPILE( 1913 [#include <sys/syscall.h>], 1914 [int i = __NR_tkill;], 1915 gdb_cv_sys_syscall_h_has_tkill=yes, 1916 gdb_cv_sys_syscall_h_has_tkill=no 1917 ) 1918 ) 1919fi 1920dnl See if we can issue tkill syscall. 1921if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes"; then 1922 AC_CHECK_FUNC(syscall, 1923 AC_DEFINE(HAVE_TKILL_SYSCALL, 1, [Define if you support the tkill syscall.]) 1924 ) 1925fi 1926 1927dnl Check if we can disable the virtual address space randomization. 1928dnl The functionality of setarch -R. 1929AC_CHECK_DECLS([ADDR_NO_RANDOMIZE],,, [#include <sys/personality.h>]) 1930define([PERSONALITY_TEST], [AC_LANG_PROGRAM([#include <sys/personality.h>], [ 1931# if !HAVE_DECL_ADDR_NO_RANDOMIZE 1932# define ADDR_NO_RANDOMIZE 0x0040000 1933# endif 1934 /* Test the flag could be set and stays set. */ 1935 personality (personality (0xffffffff) | ADDR_NO_RANDOMIZE); 1936 if (!(personality (personality (0xffffffff)) & ADDR_NO_RANDOMIZE)) 1937 return 1])]) 1938AC_RUN_IFELSE([PERSONALITY_TEST], 1939 [have_personality=true], 1940 [have_personality=false], 1941 [AC_LINK_IFELSE([PERSONALITY_TEST], 1942 [have_personality=true], 1943 [have_personality=false])]) 1944if $have_personality 1945then 1946 AC_DEFINE([HAVE_PERSONALITY], 1, 1947 [Define if you support the personality syscall.]) 1948fi 1949 1950dnl Set the host's .gdbinit filename. 1951case $host_os in 1952 go32* | *djgpp*) 1953 gdbinit=gdb.ini 1954 ;; 1955 *) 1956 gdbinit=.gdbinit 1957 ;; 1958esac 1959AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.]) 1960 1961dnl Handle optional features that can be enabled. 1962 1963# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR, 1964# except that the argument to --with-sysroot is optional. 1965# --with-sysroot (or --with-sysroot=yes) sets the default sysroot path. 1966if test "x$with_sysroot" = xyes; then 1967 with_sysroot="${exec_prefix}/${target_alias}/sys-root" 1968fi 1969AC_ARG_WITH(sysroot, 1970 AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], 1971 [search for usr/lib et al within DIR]), 1972 [TARGET_SYSTEM_ROOT=$withval], [TARGET_SYSTEM_ROOT=]) 1973AC_DEFINE_DIR(TARGET_SYSTEM_ROOT, TARGET_SYSTEM_ROOT, 1974 [search for usr/lib et al within DIR]) 1975AC_SUBST(TARGET_SYSTEM_ROOT) 1976GDB_AC_DEFINE_RELOCATABLE(TARGET_SYSTEM_ROOT, sysroot, ${ac_define_dir}) 1977 1978GDB_AC_WITH_DIR(SYSTEM_GDBINIT, system-gdbinit, 1979 [automatically load a system-wide gdbinit file], 1980 []) 1981 1982AC_ARG_ENABLE(werror, 1983 AS_HELP_STRING([--enable-werror], [treat compile warnings as errors]), 1984 [case "${enableval}" in 1985 yes | y) ERROR_ON_WARNING="yes" ;; 1986 no | n) ERROR_ON_WARNING="no" ;; 1987 *) AC_MSG_ERROR(bad value ${enableval} for --enable-werror) ;; 1988 esac]) 1989 1990# Enable -Werror by default when using gcc in C mode. Leave it off 1991# for C++ until we're warning clean. Turn it off for releases. 1992if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" \ 1993 && test x"$enable_build_with_cxx" != x"yes" \ 1994 && $development; then 1995 ERROR_ON_WARNING=yes 1996fi 1997 1998WERROR_CFLAGS="" 1999if test "${ERROR_ON_WARNING}" = yes ; then 2000 WERROR_CFLAGS="-Werror" 2001fi 2002 2003# These options work in either C or C++ modes. 2004build_warnings="-Wall -Wpointer-arith \ 2005-Wno-unused -Wunused-value -Wunused-function \ 2006-Wno-switch -Wno-char-subscripts \ 2007-Wempty-body" 2008 2009# Now add in C and C++ specific options, depending on mode. 2010if test "$enable_build_with_cxx" = "yes"; then 2011 build_warnings="$build_warnings -Wno-sign-compare -Wno-write-strings \ 2012-Wno-narrowing" 2013else 2014 build_warnings="$build_warnings -Wpointer-sign -Wmissing-prototypes \ 2015-Wdeclaration-after-statement -Wmissing-parameter-type \ 2016-Wold-style-declaration -Wold-style-definition" 2017fi 2018 2019# Enable -Wno-format by default when using gcc on mingw since many 2020# GCC versions complain about %I64. 2021case "${host}" in 2022 *-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;; 2023 *) build_warnings="$build_warnings -Wformat-nonliteral" ;; 2024esac 2025 2026AC_ARG_ENABLE(build-warnings, 2027AS_HELP_STRING([--enable-build-warnings], [enable build-time compiler warnings if gcc is used]), 2028[case "${enableval}" in 2029 yes) ;; 2030 no) build_warnings="-w";; 2031 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"` 2032 build_warnings="${build_warnings} ${t}";; 2033 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"` 2034 build_warnings="${t} ${build_warnings}";; 2035 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;; 2036esac 2037if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then 2038 echo "Setting compiler warning flags = $build_warnings" 6>&1 2039fi])dnl 2040AC_ARG_ENABLE(gdb-build-warnings, 2041AS_HELP_STRING([--enable-gdb-build-warnings], [enable GDB specific build-time compiler warnings if gcc is used]), 2042[case "${enableval}" in 2043 yes) ;; 2044 no) build_warnings="-w";; 2045 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"` 2046 build_warnings="${build_warnings} ${t}";; 2047 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"` 2048 build_warnings="${t} ${build_warnings}";; 2049 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;; 2050esac 2051if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then 2052 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1 2053fi])dnl 2054 2055# The set of warnings supported by a C++ compiler is not the same as 2056# of the C compiler. 2057if test "$enable_build_with_cxx" = "yes"; then 2058 AC_LANG_PUSH([C++]) 2059fi 2060 2061WARN_CFLAGS="" 2062if test "x${build_warnings}" != x -a "x$GCC" = xyes 2063then 2064 AC_MSG_CHECKING(compiler warning flags) 2065 # Separate out the -Werror flag as some files just cannot be 2066 # compiled with it enabled. 2067 for w in ${build_warnings}; do 2068 case $w in 2069 -Werr*) WERROR_CFLAGS=-Werror ;; 2070 *) 2071 # Check whether GCC accepts it. 2072 saved_CFLAGS="$CFLAGS" 2073 CFLAGS="$CFLAGS $w" 2074 saved_CXXFLAGS="$CXXFLAGS" 2075 CXXFLAGS="$CXXFLAGS $w" 2076 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",) 2077 CFLAGS="$saved_CFLAGS" 2078 CXXFLAGS="$saved_CXXFLAGS" 2079 esac 2080 done 2081 AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS}) 2082fi 2083AC_SUBST(WARN_CFLAGS) 2084AC_SUBST(WERROR_CFLAGS) 2085 2086if test "$enable_build_with_cxx" = "yes"; then 2087 AC_LANG_POP([C++]) 2088fi 2089 2090# In the Cygwin environment, we need some additional flags. 2091AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin, 2092[AC_EGREP_CPP(^lose$, [ 2093#if defined (__CYGWIN__) || defined (__CYGWIN32__) 2094lose 2095#endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])]) 2096 2097 2098dnl Figure out which of the many generic ser-*.c files the _host_ supports. 2099SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o" 2100case ${host} in 2101 *go32* ) SER_HARDWIRE=ser-go32.o ;; 2102 *djgpp* ) SER_HARDWIRE=ser-go32.o ;; 2103 *mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;; 2104esac 2105AC_SUBST(SER_HARDWIRE) 2106 2107# libreadline needs libuser32.a in a cygwin environment 2108WIN32LIBS= 2109if test x$gdb_cv_os_cygwin = xyes; then 2110 WIN32LIBS="-luser32" 2111 case "${target}" in 2112 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp" 2113 ;; 2114 esac 2115fi 2116 2117# The ser-tcp.c module requires sockets. 2118case ${host} in 2119 *mingw32*) 2120 AC_DEFINE(USE_WIN32API, 1, 2121 [Define if we should use the Windows API, instead of the 2122 POSIX API. On Windows, we use the Windows API when 2123 building for MinGW, but the POSIX API when building 2124 for Cygwin.]) 2125 WIN32LIBS="$WIN32LIBS -lws2_32" 2126 ;; 2127esac 2128AC_SUBST(WIN32LIBS) 2129 2130# Add ELF support to GDB, but only if BFD includes ELF support. 2131GDB_AC_CHECK_BFD([for ELF support in BFD], gdb_cv_var_elf, 2132 [bfd_get_elf_phdr_upper_bound (NULL)], elf-bfd.h) 2133if test $gdb_cv_var_elf = yes; then 2134 CONFIG_OBS="$CONFIG_OBS elfread.o stap-probe.o dtrace-probe.o" 2135 AC_DEFINE(HAVE_ELF, 1, 2136 [Define if ELF support should be included.]) 2137 # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>. 2138 if test "$plugins" = "yes"; then 2139 AC_SEARCH_LIBS(dlopen, dl) 2140 fi 2141fi 2142 2143# Add macho support to GDB, but only if BFD includes it. 2144GDB_AC_CHECK_BFD([for Mach-O support in BFD], gdb_cv_var_macho, 2145 [bfd_mach_o_lookup_command (NULL, 0, NULL)], mach-o.h) 2146if test $gdb_cv_var_macho = yes; then 2147 CONFIG_OBS="$CONFIG_OBS machoread.o" 2148fi 2149 2150# Add any host-specific objects to GDB. 2151CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}" 2152 2153# If building on ELF, look for lzma support for embedded compressed debug info. 2154if test $gdb_cv_var_elf = yes; then 2155 AC_ARG_WITH(lzma, 2156 AS_HELP_STRING([--with-lzma], [support lzma compression (auto/yes/no)]), 2157 [], [with_lzma=auto]) 2158 AC_MSG_CHECKING([whether to use lzma]) 2159 AC_MSG_RESULT([$with_lzma]) 2160 2161 if test "${with_lzma}" != no; then 2162 AC_LIB_HAVE_LINKFLAGS([lzma], [], [#include "lzma.h"], 2163 [lzma_index_iter iter; 2164 lzma_index_iter_init (&iter, 0); 2165 lzma_mf_is_supported (LZMA_MF_HC3);]) 2166 if test "$HAVE_LIBLZMA" != yes; then 2167 if test "$with_lzma" = yes; then 2168 AC_MSG_ERROR([missing liblzma for --with-lzma]) 2169 fi 2170 fi 2171 fi 2172fi 2173 2174LIBGUI="../libgui/src/libgui.a" 2175GUI_CFLAGS_X="-I${srcdir}/../libgui/src" 2176AC_SUBST(LIBGUI) 2177AC_SUBST(GUI_CFLAGS_X) 2178 2179WIN32LDAPP= 2180AC_SUBST(WIN32LIBS) 2181AC_SUBST(WIN32LDAPP) 2182 2183case "${host}" in 2184*-*-cygwin* | *-*-mingw* ) 2185 configdir="win" 2186 ;; 2187*) 2188 configdir="unix" 2189 ;; 2190esac 2191 2192GDBTKLIBS= 2193if test "${enable_gdbtk}" = "yes"; then 2194 2195 # Gdbtk must have an absolute path to srcdir in order to run 2196 # properly when not installed. 2197 here=`pwd` 2198 cd ${srcdir} 2199 GDBTK_SRC_DIR=`pwd` 2200 cd $here 2201 2202 SC_PATH_TCLCONFIG 2203 2204 # If $no_tk is nonempty, then we can't do Tk, and there is no 2205 # point to doing Tcl. 2206 SC_PATH_TKCONFIG 2207 2208 if test -z "${no_tcl}" -a -z "${no_tk}"; then 2209 SC_LOAD_TCLCONFIG 2210 2211 # Check for in-tree tcl 2212 here=`pwd` 2213 cd ${srcdir}/.. 2214 topdir=`pwd` 2215 cd ${here} 2216 2217 intree="no" 2218 if test "${TCL_SRC_DIR}" = "${topdir}/tcl"; then 2219 intree="yes" 2220 fi 2221 2222 # Find Tcl private headers 2223 if test x"${intree}" = xno; then 2224 CY_AC_TCL_PRIVATE_HEADERS 2225 TCL_INCLUDE="${TCL_INCLUDE_SPEC} ${TCL_PRIVATE_INCLUDE}" 2226 TCL_LIBRARY="${TCL_LIB_SPEC}" 2227 TCL_DEPS="" 2228 else 2229 # If building tcl in the same src tree, private headers 2230 # are not needed, but we need to be sure to use the right 2231 # headers library 2232 TCL_INCLUDE="-I${TCL_SRC_DIR}/generic" 2233 TCL_LIBRARY="${TCL_BUILD_LIB_SPEC}" 2234 TCL_DEPS="../tcl/${configdir}${TCL_LIB_FILE}" 2235 fi 2236 AC_SUBST(TCL_INCLUDE) 2237 AC_SUBST(TCL_LIBRARY) 2238 AC_SUBST(TCL_DEPS) 2239 2240 SC_LOAD_TKCONFIG 2241 2242 # Check for in-tree Tk 2243 intree="no" 2244 if test "${TK_SRC_DIR}" = "${topdir}/tk"; then 2245 intree="yes" 2246 fi 2247 2248 # Find Tk private headers 2249 if test x"${intree}" = xno; then 2250 CY_AC_TK_PRIVATE_HEADERS 2251 TK_INCLUDE="${TK_INCLUDE_SPEC} ${TK_PRIVATE_INCLUDE}" 2252 TK_LIBRARY=${TK_LIB_SPEC} 2253 TK_DEPS="" 2254 else 2255 TK_INCLUDE="-I${TK_SRC_DIR}/generic" 2256 TK_LIBRARY="${TK_BUILD_LIB_SPEC}" 2257 TK_DEPS="../tk/${configdir}/${TK_LIB_FILE}" 2258 fi 2259 AC_SUBST(TK_INCLUDE) 2260 AC_SUBST(TK_LIBRARY) 2261 AC_SUBST(TK_DEPS) 2262 AC_SUBST(TK_XINCLUDES) 2263 2264 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)" 2265 2266 # Include some libraries that Tcl and Tk want. 2267 TCL_LIBS='$(LIBGUI) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)' 2268 # Yes, the ordering seems wrong here. But it isn't. 2269 # TK_LIBS is the list of libraries that need to be linked 2270 # after Tcl/Tk. Note that this isn't put into LIBS. If it 2271 # were in LIBS then any link tests after this point would 2272 # try to include things like `$(LIBGUI)', which wouldn't work. 2273 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}" 2274 2275 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)" 2276 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)" 2277 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)" 2278 CONFIG_ALL="${CONFIG_ALL} all-gdbtk" 2279 CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk" 2280 CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk" 2281 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk" 2282 2283 if test x$gdb_cv_os_cygwin = xyes; then 2284 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32" 2285 WIN32LDAPP="-Wl,--subsystem,console" 2286 CONFIG_OBS="${CONFIG_OBS} gdbres.o" 2287 fi 2288 2289 AC_CONFIG_SUBDIRS(gdbtk) 2290 fi 2291fi 2292 2293AC_SUBST(X_CFLAGS) 2294AC_SUBST(X_LDFLAGS) 2295AC_SUBST(X_LIBS) 2296AC_SUBST(GDBTKLIBS) 2297AC_SUBST(GDBTK_CFLAGS) 2298AC_SUBST(GDBTK_SRC_DIR) 2299 2300AC_PATH_X 2301 2302# Unlike the sim directory, whether a simulator is linked is controlled by 2303# presence of a gdb_sim definition in the target configure.tgt entry. 2304# This code just checks for a few cases where we'd like to ignore those 2305# definitions, even when they're present in the '.mt' file. These cases 2306# are when --disable-sim is specified, or if the simulator directory is 2307# not part of the source tree. 2308# 2309AC_ARG_ENABLE(sim, 2310AS_HELP_STRING([--enable-sim], [link gdb with simulator]), 2311[echo "enable_sim = $enable_sim"; 2312 echo "enableval = ${enableval}"; 2313 case "${enableval}" in 2314 yes) ignore_sim=false ;; 2315 no) ignore_sim=true ;; 2316 *) ignore_sim=false ;; 2317 esac], 2318[ignore_sim=false]) 2319 2320if test ! -d "${srcdir}/../sim"; then 2321 ignore_sim=true 2322fi 2323 2324SIM= 2325SIM_OBS= 2326if test "${ignore_sim}" = "false"; then 2327 if test x"${gdb_sim}" != x ; then 2328 SIM="${gdb_sim}" 2329 SIM_OBS="remote-sim.o" 2330 AC_DEFINE(WITH_SIM, 1, [Define if the simulator is being linked in.]) 2331 fi 2332fi 2333AC_SUBST(SIM) 2334AC_SUBST(SIM_OBS) 2335 2336AC_SUBST(ENABLE_CFLAGS) 2337AC_SUBST(PROFILE_CFLAGS) 2338 2339AC_SUBST(CONFIG_OBS) 2340AC_SUBST(CONFIG_DEPS) 2341AC_SUBST(CONFIG_SRCS) 2342AC_SUBST(CONFIG_ALL) 2343AC_SUBST(CONFIG_CLEAN) 2344AC_SUBST(CONFIG_INSTALL) 2345AC_SUBST(CONFIG_UNINSTALL) 2346 2347# List of host floatformats. 2348AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat]) 2349AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat]) 2350AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat]) 2351 2352# target_subdir is used by the testsuite to find the target libraries. 2353target_subdir= 2354if test "${host}" != "${target}"; then 2355 target_subdir="${target_alias}/" 2356fi 2357AC_SUBST(target_subdir) 2358 2359frags= 2360if test "${gdb_native}" = "yes"; then 2361 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh 2362 if test ! -f ${host_makefile_frag}; then 2363 AC_MSG_ERROR("*** Gdb does not support native target ${host}") 2364 fi 2365 frags="$frags $host_makefile_frag" 2366else 2367 host_makefile_frag=/dev/null 2368fi 2369 2370AC_SUBST_FILE(host_makefile_frag) 2371AC_SUBST(frags) 2372 2373changequote(,)dnl 2374if test "${gdb_native}" = "yes"; then 2375# We pick this up from the host configuration file (.mh) because we 2376# do not have a native configuration Makefile fragment. 2377nativefile=`sed -n ' 2378s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p 2379' ${host_makefile_frag}` 2380fi 2381changequote([,]) 2382 2383if test x"${gdb_osabi}" != x ; then 2384 AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi, 2385 [Define to the default OS ABI for this configuration.]) 2386fi 2387 2388# Enable multi-ice-gdb-server. 2389AC_ARG_ENABLE(multi-ice, 2390AS_HELP_STRING([--enable-multi-ice], [build the multi-ice-gdb-server]), 2391 [case $enableval in 2392 yes | no) 2393 ;; 2394 *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;; 2395 esac]) 2396if test "x$enable_multi_ice" = xyes; then 2397 AC_CONFIG_SUBDIRS(multi-ice) 2398fi 2399 2400AC_ARG_ENABLE(gdbserver, 2401AS_HELP_STRING([--enable-gdbserver], 2402 [automatically build gdbserver (yes/no/auto, default is auto)]), 2403[case "${enableval}" in 2404 yes| no|auto) ;; 2405 *) AC_MSG_ERROR(bad value ${enableval} for --enable-gdbserver option) ;; 2406esac],[enable_gdbserver=auto]) 2407 2408# We only build gdbserver automatically in a native configuration, and 2409# only if the user did not explicitly disable its build. 2410if test "$gdb_native" = "yes" -a "$enable_gdbserver" != "no"; then 2411 AC_MSG_CHECKING(whether gdbserver is supported on this host) 2412 if test "x$build_gdbserver" = xyes; then 2413 AC_MSG_RESULT(yes) 2414 AC_CONFIG_SUBDIRS(gdbserver) 2415 gdbserver_build_enabled=yes 2416 else 2417 AC_MSG_RESULT(no) 2418 fi 2419fi 2420 2421# If the user explicitly request the gdbserver to be built, verify that 2422# we were in fact able to enable it. 2423if test "$enable_gdbserver" = "yes" -a "$gdbserver_build_enabled" != "yes"; then 2424 AC_MSG_ERROR(Automatic gdbserver build is not supported for this configuration) 2425fi 2426 2427# Check for babeltrace and babeltrace-ctf 2428AC_ARG_WITH(babeltrace, 2429 AC_HELP_STRING([--with-babeltrace], [include babeltrace support (auto/yes/no)]), 2430 [], [with_babeltrace=auto]) 2431AC_MSG_CHECKING([whether to use babeltrace]) 2432AC_MSG_RESULT([$with_babeltrace]) 2433 2434if test "x$with_babeltrace" = "xno"; then 2435 AC_MSG_WARN([babletrace support disabled; GDB is unable to read CTF data.]) 2436else 2437 # Append -Werror to CFLAGS so that configure can catch the warning 2438 # "assignment from incompatible pointer type", which is related to 2439 # the babeltrace change from 1.0.3 to 1.1.0. Babeltrace 1.1.0 works 2440 # in GDB, while babeltrace 1.0.3 is broken. 2441 # AC_LIB_HAVE_LINKFLAGS may modify CPPFLAGS in it, so it should be 2442 # safe to save and restore CFLAGS here. 2443 saved_CFLAGS=$CFLAGS 2444 CFLAGS="$CFLAGS -Werror" 2445 AC_LIB_HAVE_LINKFLAGS([babeltrace], [babeltrace-ctf], 2446 [#include <babeltrace/babeltrace.h> 2447 #include <babeltrace/ctf/events.h> 2448 #include <babeltrace/ctf/iterator.h>], 2449 [struct bt_iter_pos *pos = bt_iter_get_pos (bt_ctf_get_iter (NULL)); 2450 struct bt_ctf_event *event = NULL; 2451 const struct bt_definition *scope; 2452 2453 bt_iter_set_pos (bt_ctf_get_iter (NULL), pos); 2454 scope = bt_ctf_get_top_level_scope (event, 2455 BT_STREAM_EVENT_HEADER); 2456 bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id")); 2457 ]) 2458 CFLAGS=$saved_CFLAGS 2459 2460 if test "$HAVE_LIBBABELTRACE" != yes; then 2461 if test "$with_babeltrace" = yes; then 2462 AC_MSG_ERROR([babeltrace is missing or unusable]) 2463 else 2464 AC_MSG_WARN([babeltrace is missing or unusable; GDB is unable to read CTF data.]) 2465 fi 2466 fi 2467fi 2468 2469# If nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link 2470# to an empty version. 2471 2472files= 2473links= 2474 2475rm -f nm.h 2476if test "${nativefile}" != ""; then 2477 case "${nativefile}" in 2478 nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;; 2479 * ) GDB_NM_FILE="${nativefile}" 2480 esac 2481 files="${files} ${GDB_NM_FILE}" 2482 links="${links} nm.h" 2483 AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}", [nativefile]) 2484fi 2485AC_SUBST(GDB_NM_FILE) 2486 2487AC_LINK_FILES($files, $links) 2488 2489dnl Check for exe extension set on certain hosts (e.g. Win32) 2490AC_EXEEXT 2491 2492dnl Detect the character set used by this host. 2493dnl At the moment, we just assume it's UTF-8. 2494AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8", 2495 [Define to be a string naming the default host character set.]) 2496 2497GDB_AC_TRANSFORM([gdb], [GDB_TRANSFORM_NAME]) 2498GDB_AC_TRANSFORM([gcore], [GCORE_TRANSFORM_NAME]) 2499AC_CONFIG_FILES([gcore], [chmod +x gcore]) 2500 2501AC_OUTPUT(Makefile gdb-gdb.gdb doc/Makefile data-directory/Makefile, 2502[ 2503case x$CONFIG_HEADERS in 2504xconfig.h:config.in) 2505echo > stamp-h ;; 2506esac 2507]) 2508 2509exit 0 2510