Add --enable-build-with-cxx configure switch
[deliverable/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_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
This page took 0.078805 seconds and 5 git commands to generate.