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