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