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