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