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