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