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