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