Move safe_strerror to common/
[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_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 ac_cv_search_tgetent="none required"
615 CONFIG_OBS="$CONFIG_OBS windows-termcap.o"
616 ;;
617 esac
618
619 # These are the libraries checked by Readline.
620 AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses])
621
622 if test "$ac_cv_search_tgetent" = no; then
623 AC_MSG_ERROR([no termcap library found])
624 fi
625
626 AC_ARG_WITH([system-readline],
627 [AS_HELP_STRING([--with-system-readline],
628 [use installed readline library])])
629
630 if test "$with_system_readline" = yes; then
631 READLINE=-lreadline
632 READLINE_DEPS=
633 READLINE_CFLAGS=
634 READLINE_TEXI_INCFLAG=
635 else
636 READLINE='$(READLINE_DIR)/libreadline.a'
637 READLINE_DEPS='$(READLINE)'
638 READLINE_CFLAGS='-I$(READLINE_SRC)/..'
639 READLINE_TEXI_INCFLAG='-I $(READLINE_DIR)'
640 fi
641 AC_SUBST(READLINE)
642 AC_SUBST(READLINE_DEPS)
643 AC_SUBST(READLINE_CFLAGS)
644 AC_SUBST(READLINE_TEXI_INCFLAG)
645
646 # Generate jit-reader.h
647
648 # This is typedeffed to GDB_CORE_ADDR in jit-reader.h
649 TARGET_PTR=
650
651 AC_CHECK_SIZEOF(unsigned long long)
652 AC_CHECK_SIZEOF(unsigned long)
653 AC_CHECK_SIZEOF(unsigned __int128)
654
655 if test "x${ac_cv_sizeof_unsigned_long}" = "x8"; then
656 TARGET_PTR="unsigned long"
657 elif test "x${ac_cv_sizeof_unsigned_long_long}" = "x8"; then
658 TARGET_PTR="unsigned long long"
659 elif test "x${ac_cv_sizeof_unsigned___int128}" = "x16"; then
660 TARGET_PTR="unsigned __int128"
661 else
662 TARGET_PTR="unsigned long"
663 fi
664
665 AC_SUBST(TARGET_PTR)
666 AC_CONFIG_FILES([jit-reader.h:jit-reader.in])
667
668 AC_SEARCH_LIBS(dlopen, dl)
669
670 GDB_AC_WITH_DIR([JIT_READER_DIR], [jit-reader-dir],
671 [directory to load the JIT readers from],
672 [${libdir}/gdb])
673
674 AC_ARG_WITH(expat,
675 AS_HELP_STRING([--with-expat], [include expat support (auto/yes/no)]),
676 [], [with_expat=auto])
677 AC_MSG_CHECKING([whether to use expat])
678 AC_MSG_RESULT([$with_expat])
679
680 if test "${with_expat}" = no; then
681 AC_MSG_WARN([expat support disabled; some features may be unavailable.])
682 HAVE_LIBEXPAT=no
683 else
684 AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"],
685 [XML_Parser p = XML_ParserCreate (0);])
686 if test "$HAVE_LIBEXPAT" != yes; then
687 if test "$with_expat" = yes; then
688 AC_MSG_ERROR([expat is missing or unusable])
689 else
690 AC_MSG_WARN([expat is missing or unusable; some features may be unavailable.])
691 fi
692 else
693 save_LIBS=$LIBS
694 LIBS="$LIBS $LIBEXPAT"
695 AC_CHECK_FUNCS(XML_StopParser)
696 LIBS=$save_LIBS
697 fi
698 fi
699
700 # --------------------- #
701 # Check for libpython. #
702 # --------------------- #
703
704 dnl Utility to simplify finding libpython.
705 dnl $1 = pythonX.Y
706 dnl $2 = the shell variable to assign the result to
707 dnl If libpython is found we store $version here.
708 dnl $3 = additional flags to add to CPPFLAGS
709 dnl $4 = additional flags to add to LIBS
710
711 AC_DEFUN([AC_TRY_LIBPYTHON],
712 [
713 version=$1
714 define([have_libpython_var],$2)
715 new_CPPFLAGS=$3
716 new_LIBS=$4
717 AC_MSG_CHECKING([for ${version}])
718 save_CPPFLAGS=$CPPFLAGS
719 save_LIBS=$LIBS
720 CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
721 LIBS="$LIBS $new_LIBS"
722 found_usable_python=no
723 AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "Python.h"]],
724 [[Py_Initialize ();]]),
725 [have_libpython_var=${version}
726 found_usable_python=yes
727 PYTHON_CPPFLAGS=$new_CPPFLAGS
728 PYTHON_LIBS=$new_LIBS])
729 CPPFLAGS=$save_CPPFLAGS
730 LIBS=$save_LIBS
731 AC_MSG_RESULT([${found_usable_python}])
732 ])
733
734 dnl There are several different values for --with-python:
735 dnl
736 dnl no - Don't include python support.
737 dnl yes - Include python support, error if it's missing.
738 dnl If we find python in $PATH, use it to fetch configure options,
739 dnl otherwise assume the compiler can find it with no help from us.
740 dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn.
741 dnl auto - Same as "yes", but if python is missing from the system,
742 dnl fall back to "no".
743 dnl /path/to/python/exec-prefix -
744 dnl Use the python located in this directory.
745 dnl If /path/to/python/exec-prefix/bin/python exists, use it to find
746 dnl the compilation parameters. Otherwise use
747 dnl -I/path/to/python/exec-prefix/include,
748 dnl -L/path/to/python/exec-prefix/lib.
749 dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn.
750 dnl NOTE: This case is historical. It is what was done for 7.0/7.1
751 dnl but is deprecated.
752 dnl /path/to/python/executable -
753 dnl Run python-config.py with this version of python to fetch the
754 dnl compilation parameters.
755 dnl NOTE: This needn't be the real python executable.
756 dnl In a cross-compilation scenario (build != host), this could be
757 dnl a shell script that provides what python-config.py provides for
758 dnl --ldflags, --includes, --exec-prefix.
759 dnl python-executable -
760 dnl Find python-executable in $PATH, and then handle the same as
761 dnl /path/to/python/executable.
762 dnl
763 dnl If a python program is specified, it is used to run python-config.py and
764 dnl is passed --ldflags, --includes, --exec-prefix.
765
766 AC_ARG_WITH(python,
767 AS_HELP_STRING([--with-python@<:@=PYTHON@:>@], [include python support (auto/yes/no/<python-program>)]),
768 [], [with_python=auto])
769 AC_MSG_CHECKING([whether to use python])
770 AC_MSG_RESULT([$with_python])
771
772 if test "${with_python}" = no; then
773 AC_MSG_WARN([python support disabled; some features may be unavailable.])
774 have_libpython=no
775 else
776 case "${with_python}" in
777 [[\\/]]* | ?:[[\\/]]*)
778 if test -d ${with_python}; then
779 # Assume the python binary is ${with_python}/bin/python.
780 python_prog="${with_python}/bin/python"
781 python_prefix=
782 # If python does not exit ${with_python}/bin, then try in
783 # ${with_python}. On Windows/MinGW, this is where the Python
784 # executable is.
785 if test ! -x "${python_prog}"; then
786 python_prog="${with_python}/python"
787 python_prefix=
788 fi
789 if test ! -x "${python_prog}"; then
790 # Fall back to gdb 7.0/7.1 behaviour.
791 python_prog=missing
792 python_prefix=${with_python}
793 fi
794 elif test -x "${with_python}"; then
795 # While we can't run python compiled for $host (unless host == build),
796 # the user could write a script that provides the needed information,
797 # so we support that.
798 python_prog=${with_python}
799 python_prefix=
800 else
801 AC_ERROR(invalid value for --with-python)
802 fi
803 ;;
804 */*)
805 # Disallow --with-python=foo/bar.
806 AC_ERROR(invalid value for --with-python)
807 ;;
808 *)
809 # The user has either specified auto, yes, or the name of the python
810 # program assumed to be in $PATH.
811 python_prefix=
812 case "${with_python}" in
813 yes | auto)
814 if test ${build} = ${host}; then
815 AC_PATH_PROG(python_prog_path, python, missing)
816 if test "${python_prog_path}" = missing; then
817 python_prog=missing
818 else
819 python_prog=${python_prog_path}
820 fi
821 else
822 # Not much we can do except assume the cross-compiler will find the
823 # right files.
824 python_prog=missing
825 fi
826 ;;
827 *)
828 # While we can't run python compiled for $host (unless host == build),
829 # the user could write a script that provides the needed information,
830 # so we support that.
831 python_prog="${with_python}"
832 AC_PATH_PROG(python_prog_path, ${python_prog}, missing)
833 if test "${python_prog_path}" = missing; then
834 AC_ERROR(unable to find python program ${python_prog})
835 fi
836 ;;
837 esac
838 esac
839
840 if test "${python_prog}" != missing; then
841 # We have a python program to use, but it may be too old.
842 # Don't flag an error for --with-python=auto (the default).
843 have_python_config=yes
844 python_includes=`${python_prog} ${srcdir}/python/python-config.py --includes`
845 if test $? != 0; then
846 have_python_config=failed
847 if test "${with_python}" != auto; then
848 AC_ERROR(failure running python-config --includes)
849 fi
850 fi
851 python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags`
852 if test $? != 0; then
853 have_python_config=failed
854 if test "${with_python}" != auto; then
855 AC_ERROR(failure running python-config --ldflags)
856 fi
857 fi
858 python_prefix=`${python_prog} ${srcdir}/python/python-config.py --exec-prefix`
859 if test $? != 0; then
860 have_python_config=failed
861 if test "${with_python}" != auto; then
862 AC_ERROR(failure running python-config --exec-prefix)
863 fi
864 fi
865 else
866 # We do not have a python executable we can use to determine where
867 # to find the Python headers and libs. We cannot guess the include
868 # path from the python_prefix either, because that include path
869 # depends on the Python version. So, there is nothing much we can
870 # do except assume that the compiler will be able to find those files.
871 python_includes=
872 python_libs=
873 have_python_config=no
874 fi
875
876 # If we have python-config, only try the configuration it provides.
877 # Otherwise fallback on the old way of trying different versions of
878 # python in turn.
879
880 have_libpython=no
881 if test "${have_python_config}" = yes; then
882 # Determine the Python version by extracting "-lpython<version>"
883 # part of the python_libs. <version> is usually X.Y with X and Y
884 # being decimal numbers, but can also be XY (seen on Windows).
885 #
886 # The extraction is performed using sed with a regular expression.
887 # Initially, the regexp used was using the '?' quantifier to make
888 # the dot in the version number optional. Unfortunately, this
889 # does not work with non-GNU versions of sed because, because of
890 # what looks like a limitation (the '?' quantifier does not work
891 # with back-references). We work around this limitation by using
892 # the '*' quantifier instead. It means that, in theory, we might
893 # match unexpected version strings such as "-lpython2..7", but
894 # this seems unlikely in practice. And even if that happens,
895 # an error will be triggered later on, when checking that version
896 # number.
897 python_version=`echo " ${python_libs} " \
898 | sed -e 's,^.* -l\(python[[0-9]]*[[.]]*[[0-9]]*\).*$,\1,'`
899 case "${python_version}" in
900 python*)
901 AC_TRY_LIBPYTHON(${python_version}, have_libpython,
902 ${python_includes}, ${python_libs})
903 ;;
904 *)
905 AC_MSG_ERROR([unable to determine python version from ${python_libs}])
906 ;;
907 esac
908 elif test "${have_python_config}" != failed; then
909 if test "${have_libpython}" = no; then
910 AC_TRY_LIBPYTHON(python2.7, have_libpython,
911 ${python_includes}, "${python_libs} -lpython2.7")
912 fi
913 if test "${have_libpython}" = no; then
914 AC_TRY_LIBPYTHON(python2.6, have_libpython,
915 ${python_includes}, "${python_libs} -lpython2.6")
916 fi
917 if test ${have_libpython} = no; then
918 AC_TRY_LIBPYTHON(python2.5, have_libpython,
919 ${python_includes}, "${python_libs} -lpython2.5")
920 fi
921 if test ${have_libpython} = no; then
922 AC_TRY_LIBPYTHON(python2.4, have_libpython,
923 ${python_includes}, "${python_libs} -lpython2.4")
924 fi
925 fi
926 if test "${have_libpython}" = python2.7 -o "${have_libpython}" = python27; then
927 AC_DEFINE(HAVE_LIBPYTHON2_7, 1, [Define if Python 2.7 is being used.])
928 elif test "${have_libpython}" = python2.6 -o "${have_libpython}" = python26; then
929 AC_DEFINE(HAVE_LIBPYTHON2_6, 1, [Define if Python 2.6 is being used.])
930 elif test "${have_libpython}" = python2.5 -o "${have_libpython}" = python25; then
931 AC_DEFINE(HAVE_LIBPYTHON2_5, 1, [Define if Python 2.5 is being used.])
932 elif test "${have_libpython}" = python2.4 -o "${have_libpython}" = python24; then
933 AC_DEFINE(HAVE_LIBPYTHON2_4, 1, [Define if Python 2.4 is being used.])
934 fi
935
936 if test "${have_libpython}" = no; then
937 case "${with_python}" in
938 yes)
939 AC_MSG_ERROR([python is missing or unusable])
940 ;;
941 auto)
942 AC_MSG_WARN([python is missing or unusable; some features may be unavailable.])
943 ;;
944 *)
945 AC_MSG_ERROR([no usable python found at ${with_python}])
946 ;;
947 esac
948 else
949 if test -n "${python_prefix}"; then
950 AC_DEFINE_UNQUOTED(WITH_PYTHON_PATH, "${python_prefix}",
951 [Define if --with-python provides a path, either directly or via python-config.py --exec-prefix.])
952 GDB_AC_DEFINE_RELOCATABLE(PYTHON_PATH, python, ${python_prefix})
953 fi
954 fi
955 fi
956
957 if test "${have_libpython}" != no; then
958 AC_DEFINE(HAVE_PYTHON, 1, [Define if Python interpreter is being linked in.])
959 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_PYTHON_OBS)"
960 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)"
961 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_PYTHON_SRCS)"
962 CONFIG_INSTALL="$CONFIG_INSTALL install-python"
963 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)"
964
965 # Flags needed to compile Python code (taken from python-config --cflags).
966 # We cannot call python-config directly because it will output whatever was
967 # used when compiling the Python interpreter itself, including flags which
968 # would make the python-related objects be compiled differently from the
969 # rest of GDB (e.g., -O2 and -fPIC).
970 if test "${GCC}" = yes; then
971 tentative_python_cflags="-fno-strict-aliasing -DNDEBUG -fwrapv"
972 fi
973
974 if test "x${tentative_python_cflags}" != x; then
975 AC_MSG_CHECKING(compiler flags for python code)
976 for flag in ${tentative_python_cflags}; do
977 # Check that the compiler accepts it
978 saved_CFLAGS="$CFLAGS"
979 CFLAGS="$CFLAGS $flag"
980 AC_TRY_COMPILE([],[],PYTHON_CFLAGS="${PYTHON_CFLAGS} $flag",)
981 CFLAGS="$saved_CFLAGS"
982 done
983 AC_MSG_RESULT(${PYTHON_CFLAGS})
984 fi
985
986 # On x64 Windows, Python's include headers, and pyconfig.h in
987 # particular, rely on MS_WIN64 macro to detect that it's a 64bit
988 # version of Windows. Unfortunately, MS_WIN64 is only defined if
989 # _MSC_VER, a Microsoft-specific macro, is defined. So, when
990 # building on x64 Windows with GCC, we define MS_WIN64 ourselves.
991 # The issue was reported to the Python community, but still isn't
992 # solved as of 2012-10-02 (http://bugs.python.org/issue4709).
993
994 case "$gdb_host" in
995 mingw64)
996 if test "${GCC}" = yes; then
997 CPPFLAGS="$CPPFLAGS -DMS_WIN64"
998 fi
999 ;;
1000 esac
1001
1002 # Note that "python -m threading" cannot be used to check for
1003 # threading support due to a bug in Python 2.7.3
1004 # (http://bugs.python.org/issue15567).
1005 AC_MSG_CHECKING(whether python supports threads)
1006 saved_CPPFLAGS="${CPPFLAGS}"
1007 CPPFLAGS="${PYTHON_CPPFLAGS}"
1008 # Note that the test is reversed so that python_has_threads=yes on
1009 # unexpected failures.
1010 AC_PREPROC_IFELSE(AC_LANG_SOURCE([[
1011 #include <Python.h>
1012 #ifdef WITH_THREAD
1013 # error
1014 #endif
1015 ]]), [python_has_threads=no], [python_has_threads=yes])
1016 AC_MSG_RESULT(${python_has_threads})
1017 CPPFLAGS="${saved_CPPFLAGS}"
1018 else
1019 # Even if Python support is not compiled in, we need to have this file
1020 # included so that the "python" command, et.al., still exists.
1021 CONFIG_OBS="$CONFIG_OBS python.o"
1022 CONFIG_SRCS="$CONFIG_SRCS python/python.c"
1023 fi
1024 AC_SUBST(PYTHON_CFLAGS)
1025 AC_SUBST(PYTHON_CPPFLAGS)
1026 AC_SUBST(PYTHON_LIBS)
1027 AM_CONDITIONAL(HAVE_PYTHON, test "${have_libpython}" != no)
1028
1029 # -------------------- #
1030 # Check for libguile. #
1031 # -------------------- #
1032
1033 dnl Utility to simplify finding libguile.
1034 dnl $1 = pkg-config-program
1035 dnl $2 = space-separate list of guile versions to try
1036 dnl $3 = yes|no, indicating whether to flag errors or ignore them
1037 dnl $4 = the shell variable to assign the result to
1038 dnl If libguile is found we store "yes" here.
1039
1040 AC_DEFUN([AC_TRY_LIBGUILE],
1041 [
1042 pkg_config=$1
1043 guile_version_list=$2
1044 flag_errors=$3
1045 define([have_libguile_var],$4)
1046 found_usable_guile=checking
1047 AC_MSG_CHECKING([for usable guile from ${pkg_config}])
1048 for guile_version in ${guile_version_list}; do
1049 ${pkg_config} --exists ${guile_version} 2>/dev/null
1050 if test $? != 0; then
1051 continue
1052 fi
1053 dnl pkg-config says the package exists, so if we get an error now,
1054 dnl that's bad.
1055 new_CPPFLAGS=`${pkg_config} --cflags ${guile_version}`
1056 if test $? != 0; then
1057 AC_MSG_ERROR([failure running pkg-config --cflags ${guile_version}])
1058 fi
1059 new_LIBS=`${pkg_config} --libs ${guile_version}`
1060 if test $? != 0; then
1061 AC_MSG_ERROR([failure running pkg-config --libs ${guile_version}])
1062 fi
1063 dnl If we get this far, great.
1064 found_usable_guile=${guile_version}
1065 break
1066 done
1067 if test "${found_usable_guile}" = "checking"; then
1068 if test "${flag_errors}" = "yes"; then
1069 AC_MSG_ERROR([unable to find usable guile version from "${guile_version_list}"])
1070 else
1071 found_usable_guile=no
1072 fi
1073 fi
1074 dnl One final sanity check.
1075 dnl The user could have said --with-guile=python-2.7.
1076 if test "${found_usable_guile}" != no; then
1077 save_CPPFLAGS=$CPPFLAGS
1078 save_LIBS=$LIBS
1079 CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
1080 LIBS="$LIBS $new_LIBS"
1081 AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "libguile.h"]],
1082 [[scm_init_guile ();]]),
1083 [have_libguile_var=yes
1084 GUILE_CPPFLAGS=$new_CPPFLAGS
1085 GUILE_LIBS=$new_LIBS],
1086 [found_usable_guile=no])
1087 CPPFLAGS=$save_CPPFLAGS
1088 LIBS=$save_LIBS
1089 if test "${found_usable_guile}" = no; then
1090 if test "${flag_errors}" = yes; then
1091 AC_MSG_FAILURE([linking guile version ${guile_version} test program failed])
1092 fi
1093 fi
1094 fi
1095 AC_MSG_RESULT([${found_usable_guile}])
1096 ])
1097
1098 dnl There are several different values for --with-guile:
1099 dnl
1100 dnl no - Don't include guile support.
1101 dnl yes - Include guile support, error if it's missing.
1102 dnl The pkg-config program must be in $PATH.
1103 dnl auto - Same as "yes", but if guile is missing from the system,
1104 dnl fall back to "no".
1105 dnl guile-version [guile-version-choice-2 ...] -
1106 dnl A space-separated list of guile package versions to try.
1107 dnl These are passed to pkg-config as-is.
1108 dnl E.g., guile-2.0 or guile-2.2-uninstalled
1109 dnl This requires making sure PKG_CONFIG_PATH is set appropriately.
1110 dnl /path/to/pkg-config -
1111 dnl Use this pkg-config program.
1112 dnl NOTE: This needn't be the "real" pkg-config program.
1113 dnl It could be a shell script. It is invoked as:
1114 dnl pkg-config --exists $version
1115 dnl pkg-config --cflags $version
1116 dnl pkg-config --libs $version
1117 dnl pkg-config --variable guild $version
1118 dnl The script will be called with $version having each value in
1119 dnl $try_guile_versions until --exists indicates success.
1120
1121 AC_ARG_WITH(guile,
1122 AS_HELP_STRING([--with-guile@<:@=GUILE@:>@], [include guile support (auto/yes/no/<guile-version>/<pkg-config-program>)]),
1123 [], [with_guile=auto])
1124 AC_MSG_CHECKING([whether to use guile])
1125 AC_MSG_RESULT([$with_guile])
1126
1127 dnl We check guile with pkg-config.
1128 AC_PATH_PROG(pkg_config_prog_path, pkg-config, missing)
1129
1130 try_guile_versions="guile-2.2 guile-2.0"
1131 have_libguile=no
1132 case "${with_guile}" in
1133 no)
1134 AC_MSG_WARN([guile support disabled; some features will be unavailable.])
1135 ;;
1136 auto)
1137 if test "${pkg_config_prog_path}" = "missing"; then
1138 AC_MSG_WARN([pkg-config not found, guile support disabled])
1139 else
1140 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, no, have_libguile)
1141 fi
1142 ;;
1143 yes)
1144 if test "${pkg_config_prog_path}" = "missing"; then
1145 AC_MSG_ERROR([pkg-config not found])
1146 fi
1147 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, yes, have_libguile)
1148 ;;
1149 [[\\/]]* | ?:[[\\/]]*)
1150 if test -x "${with_guile}"; then
1151 AC_TRY_LIBGUILE(${with_guile}, ${try_guile_versions}, yes, have_libguile)
1152 else
1153 AC_MSG_ERROR([Guile config program not executable: ${with_guile}])
1154 fi
1155 ;;
1156 "" | */*)
1157 # Disallow --with=guile="" and --with-guile=foo/bar.
1158 AC_MSG_ERROR([invalid value for --with-guile])
1159 ;;
1160 *)
1161 # A space separate list of guile versions to try, in order.
1162 if test "${pkg_config_prog_path}" = "missing"; then
1163 AC_MSG_ERROR([pkg-config not found])
1164 fi
1165 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${with_guile}, yes, have_libguile)
1166 ;;
1167 esac
1168
1169 if test "${have_libguile}" != no; then
1170 dnl Get the name of the 'guild' program.
1171 case "${with_guile}" in
1172 [[\\/]]* | ?:[[\\/]]*)
1173 GDB_GUILE_PROGRAM_NAMES(["${with_guile}"], ["${guile_version}"])
1174 ;;
1175 *)
1176 GDB_GUILE_PROGRAM_NAMES(["${pkg_config_prog_path}"], ["${guile_version}"])
1177 ;;
1178 esac
1179
1180 dnl Make sure guild can handle this host.
1181 GDB_TRY_GUILD([$srcdir/guile/lib/gdb/support.scm])
1182 dnl If not, disable guile support.
1183 if test "$ac_cv_guild_ok" = no; then
1184 have_libguile=no
1185 AC_MSG_WARN(disabling guile support, $GUILD fails compiling for $host)
1186 fi
1187 fi
1188
1189 if test "${have_libguile}" != no; then
1190 AC_DEFINE(HAVE_GUILE, 1, [Define if Guile interpreter is being linked in.])
1191 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_GUILE_OBS)"
1192 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_GUILE_DEPS)"
1193 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_GUILE_SRCS)"
1194 CONFIG_INSTALL="$CONFIG_INSTALL install-guile"
1195 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_GUILE_CFLAGS)"
1196
1197 dnl The 'scm_new_smob' function appeared in Guile 2.0.6.
1198 save_LIBS="$LIBS"
1199 save_CPPFLAGS="$CPPFLAGS"
1200 LIBS="$GUILE_LIBS"
1201 CPPFLAGS="$GUILE_CPPFLAGS"
1202 AC_CHECK_FUNCS([scm_new_smob])
1203 LIBS="$save_LIBS"
1204 CPPFLAGS="$save_CPPFLAGS"
1205 else
1206 # Even if Guile support is not compiled in, we need to have these files
1207 # included.
1208 CONFIG_OBS="$CONFIG_OBS guile.o"
1209 CONFIG_SRCS="$CONFIG_SRCS guile/guile.c"
1210 fi
1211 AC_SUBST(GUILE_CPPFLAGS)
1212 AC_SUBST(GUILE_LIBS)
1213 AM_CONDITIONAL(HAVE_GUILE, test "${have_libguile}" != no)
1214
1215 # --------------------- #
1216 # Check for libmcheck. #
1217 # --------------------- #
1218
1219 # Enable -lmcheck by default (it provides cheap-enough memory mangling),
1220 # but turn it off if Python is enabled with threads, since -lmcheck is
1221 # not thread safe (http://sourceware.org/bugzilla/show_bug.cgi?id=9939),
1222 # and for releases.
1223 if test \( "${have_libpython}" = "no" -o "${python_has_threads}" = "no" \) \
1224 && $development; then
1225 libmcheck_default=yes
1226 else
1227 libmcheck_default=no
1228 fi
1229 GDB_AC_LIBMCHECK(${libmcheck_default})
1230
1231 if test "$ENABLE_LIBMCHECK" = "yes" \
1232 -a "${have_libpython}" != "no" \
1233 -a "${python_has_threads}" = "yes" ; then
1234 AC_MSG_WARN(--enable-libmcheck may lead to spurious crashes if threads are used in python)
1235 fi
1236
1237 # ------------------------- #
1238 # Checks for header files. #
1239 # ------------------------- #
1240
1241 AC_HEADER_STDC
1242 # elf_hp.h is for HP/UX 64-bit shared library support.
1243 AC_CHECK_HEADERS([nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \
1244 thread_db.h \
1245 sys/fault.h \
1246 sys/file.h sys/filio.h sys/ioctl.h sys/param.h \
1247 sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \
1248 sys/reg.h sys/debugreg.h sys/select.h sys/syscall.h \
1249 termios.h termio.h \
1250 sgtty.h elf_hp.h \
1251 dlfcn.h])
1252 AC_CHECK_HEADERS(sys/proc.h, [], [],
1253 [#if HAVE_SYS_PARAM_H
1254 # include <sys/param.h>
1255 #endif
1256 ])
1257 AC_CHECK_HEADERS(sys/user.h, [], [],
1258 [#if HAVE_SYS_PARAM_H
1259 # include <sys/param.h>
1260 #endif
1261 ])
1262
1263 # On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash
1264 # between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
1265 # think that we don't have <curses.h> if we're using GCC.
1266 case $host_os in
1267 solaris2.[[789]])
1268 if test "$GCC" = yes; then
1269 AC_DEFINE(_MSE_INT_H, 1,
1270 [Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
1271 Solaris 2.[789] when using GCC. ])
1272 fi ;;
1273 esac
1274 AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h ncurses/term.h)
1275 AC_CHECK_HEADERS(term.h, [], [],
1276 [#if HAVE_CURSES_H
1277 # include <curses.h>
1278 #endif
1279 ])
1280
1281 # ------------------------- #
1282 # Checks for declarations. #
1283 # ------------------------- #
1284
1285 AC_CHECK_DECLS([free, malloc, realloc, snprintf])
1286 AM_LC_MESSAGES
1287
1288 # ----------------------- #
1289 # Checks for structures. #
1290 # ----------------------- #
1291
1292 AC_CHECK_MEMBERS([struct stat.st_blocks, struct stat.st_blksize])
1293
1294 # ------------------ #
1295 # Checks for types. #
1296 # ------------------ #
1297
1298 AC_TYPE_SIGNAL
1299 AC_CHECK_TYPES(socklen_t, [], [],
1300 [#include <sys/types.h>
1301 #include <sys/socket.h>
1302 ])
1303
1304 # ------------------------------------- #
1305 # Checks for compiler characteristics. #
1306 # ------------------------------------- #
1307
1308 AC_C_CONST
1309 AC_C_INLINE
1310 AC_C_BIGENDIAN
1311
1312 # ------------------------------ #
1313 # Checks for library functions. #
1314 # ------------------------------ #
1315
1316 AC_FUNC_MMAP
1317 AC_FUNC_VFORK
1318 AC_CHECK_FUNCS([getauxval getrusage getuid getgid \
1319 pipe poll pread pread64 pwrite resize_term \
1320 sbrk setpgid setpgrp setsid \
1321 sigaction sigprocmask sigsetmask socketpair \
1322 ttrace wborder wresize setlocale iconvlist libiconvlist btowc \
1323 setrlimit getrlimit posix_madvise waitpid \
1324 ptrace64 sigaltstack mkdtemp])
1325 AM_LANGINFO_CODESET
1326 GDB_AC_COMMON
1327
1328 # Check the return and argument types of ptrace. No canned test for
1329 # this, so roll our own.
1330 gdb_ptrace_headers='
1331 #include <sys/types.h>
1332 #if HAVE_SYS_PTRACE_H
1333 # include <sys/ptrace.h>
1334 #endif
1335 #if HAVE_UNISTD_H
1336 # include <unistd.h>
1337 #endif
1338 '
1339 # There is no point in checking if we don't have a prototype.
1340 AC_CHECK_DECLS(ptrace, [], [
1341 : ${gdb_cv_func_ptrace_ret='int'}
1342 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
1343 ], $gdb_ptrace_headers)
1344 # Check return type. Varargs (used on GNU/Linux) conflict with the
1345 # empty argument list, so check for that explicitly.
1346 AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret,
1347 AC_TRY_COMPILE($gdb_ptrace_headers,
1348 [extern long ptrace (enum __ptrace_request, ...);],
1349 gdb_cv_func_ptrace_ret='long',
1350 AC_TRY_COMPILE($gdb_ptrace_headers,
1351 [extern int ptrace ();],
1352 gdb_cv_func_ptrace_ret='int',
1353 gdb_cv_func_ptrace_ret='long')))
1354 AC_DEFINE_UNQUOTED(PTRACE_TYPE_RET, $gdb_cv_func_ptrace_ret,
1355 [Define as the return type of ptrace.])
1356 # Check argument types.
1357 AC_CACHE_CHECK([types of arguments for ptrace], gdb_cv_func_ptrace_args, [
1358 AC_TRY_COMPILE($gdb_ptrace_headers,
1359 [extern long ptrace (enum __ptrace_request, ...);],
1360 [gdb_cv_func_ptrace_args='int,int,long,long'],[
1361 for gdb_arg1 in 'int' 'long'; do
1362 for gdb_arg2 in 'pid_t' 'int' 'long'; do
1363 for gdb_arg3 in 'int *' 'caddr_t' 'int' 'long' 'void *'; do
1364 for gdb_arg4 in 'int' 'long' 'void *'; do
1365 AC_TRY_COMPILE($gdb_ptrace_headers, [
1366 extern $gdb_cv_func_ptrace_ret
1367 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4);
1368 ], [gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4";
1369 break 4;])
1370 for gdb_arg5 in 'int *' 'int' 'long'; do
1371 AC_TRY_COMPILE($gdb_ptrace_headers, [
1372 extern $gdb_cv_func_ptrace_ret
1373 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4, $gdb_arg5);
1374 ], [
1375 gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4,$gdb_arg5";
1376 break 5;])
1377 done
1378 done
1379 done
1380 done
1381 done
1382 # Provide a safe default value.
1383 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
1384 ])])
1385 ac_save_IFS=$IFS; IFS=','
1386 set dummy `echo "$gdb_cv_func_ptrace_args" | sed 's/\*/\*/g'`
1387 IFS=$ac_save_IFS
1388 shift
1389 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG3, $[3],
1390 [Define to the type of arg 3 for ptrace.])
1391 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG4, $[4],
1392 [Define to the type of arg 4 for ptrace.])
1393 if test -n "$[5]"; then
1394 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG5, $[5],
1395 [Define to the type of arg 5 for ptrace.])
1396 fi
1397
1398 dnl AC_FUNC_SETPGRP does not work when cross compiling
1399 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
1400 if test "$cross_compiling" = no; then
1401 AC_FUNC_SETPGRP
1402 else
1403 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
1404 [AC_TRY_COMPILE([
1405 #include <unistd.h>
1406 ], [
1407 if (setpgrp(1,1) == -1)
1408 exit (0);
1409 else
1410 exit (1);
1411 ], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
1412 if test $ac_cv_func_setpgrp_void = yes; then
1413 AC_DEFINE(SETPGRP_VOID, 1)
1414 fi
1415 fi
1416
1417 # Assume we'll default to using the included libiberty regex.
1418 gdb_use_included_regex=yes
1419
1420 # However, if the system regex is GNU regex, then default to *not*
1421 # using the included regex.
1422 AC_CACHE_CHECK(
1423 [for GNU regex],
1424 [gdb_cv_have_gnu_regex],
1425 [AC_TRY_COMPILE(
1426 [#include <gnu-versions.h>],
1427 [#define REGEX_INTERFACE_VERSION 1
1428 #if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION
1429 # error "Version mismatch"
1430 #endif],
1431 gdb_cv_have_gnu_regex=yes,
1432 gdb_cv_have_gnu_regex=no)])
1433 if test $gdb_cv_have_gnu_regex = yes; then
1434 gdb_use_included_regex=no
1435 fi
1436
1437 AC_ARG_WITH(included-regex,
1438 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)]),
1439 gdb_with_regex=$withval,
1440 gdb_with_regex=$gdb_use_included_regex)
1441 if test "$gdb_with_regex" = yes; then
1442 AC_DEFINE(USE_INCLUDED_REGEX, 1,
1443 [Define to 1 if the regex included in libiberty should be used.])
1444 fi
1445
1446 # Check if <sys/proc.h> defines `struct thread' with a td_pcb member.
1447 AC_CHECK_MEMBERS([struct thread.td_pcb], [], [],
1448 [#include <sys/param.h>
1449 #include <sys/proc.h>
1450 ])
1451
1452 # See if <sys/lwp.h> defines `struct lwp`.
1453 AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp,
1454 [AC_TRY_COMPILE([#include <sys/param.h>
1455 #include <sys/lwp.h>], [struct lwp l;],
1456 gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)])
1457 if test $gdb_cv_struct_lwp = yes; then
1458 AC_DEFINE(HAVE_STRUCT_LWP, 1,
1459 [Define to 1 if your system has struct lwp.])
1460 fi
1461
1462 # See if <machine/reg.h> degines `struct reg'.
1463 AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg,
1464 [AC_TRY_COMPILE([#include <sys/types.h>
1465 #include <machine/reg.h>], [struct reg r;],
1466 gdb_cv_struct_reg=yes, gdb_cv_struct_reg=no)])
1467 if test $gdb_cv_struct_reg = yes; then
1468 AC_DEFINE(HAVE_STRUCT_REG, 1,
1469 [Define to 1 if your system has struct reg in <machine/reg.h>.])
1470 fi
1471
1472 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
1473 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
1474 AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [],
1475 [#include <machine/reg.h>])
1476
1477 # See if <sys/user.h> supports the %fs_base and %gs_bas amd64 segment registers.
1478 # Older amd64 Linux's don't have the fs_base and gs_base members of
1479 # `struct user_regs_struct'.
1480 AC_CHECK_MEMBERS([struct user_regs_struct.fs_base, struct user_regs_struct.gs_base],
1481 [], [], [#include <sys/user.h>])
1482
1483 # See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
1484 AC_MSG_CHECKING(for PTRACE_GETREGS)
1485 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
1486 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
1487 [PTRACE_GETREGS;],
1488 [gdb_cv_have_ptrace_getregs=yes],
1489 [gdb_cv_have_ptrace_getregs=no])])
1490 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
1491 if test $gdb_cv_have_ptrace_getregs = yes; then
1492 AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
1493 [Define if sys/ptrace.h defines the PTRACE_GETREGS request.])
1494 fi
1495
1496 # See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
1497 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
1498 AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
1499 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
1500 [PTRACE_GETFPXREGS;],
1501 [gdb_cv_have_ptrace_getfpxregs=yes],
1502 [gdb_cv_have_ptrace_getfpxregs=no])])
1503 AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
1504 if test $gdb_cv_have_ptrace_getfpxregs = yes; then
1505 AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
1506 [Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.])
1507 fi
1508
1509 # See if <sys/ptrace.h> provides the PT_GETDBREGS request.
1510 AC_MSG_CHECKING(for PT_GETDBREGS)
1511 AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
1512 [AC_TRY_COMPILE([#include <sys/types.h>
1513 #include <sys/ptrace.h>],
1514 [PT_GETDBREGS;],
1515 [gdb_cv_have_pt_getdbregs=yes],
1516 [gdb_cv_have_pt_getdbregs=no])])
1517 AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
1518 if test $gdb_cv_have_pt_getdbregs = yes; then
1519 AC_DEFINE(HAVE_PT_GETDBREGS, 1,
1520 [Define if sys/ptrace.h defines the PT_GETDBREGS request.])
1521 fi
1522
1523 # See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
1524 AC_MSG_CHECKING(for PT_GETXMMREGS)
1525 AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
1526 [AC_TRY_COMPILE([#include <sys/types.h>
1527 #include <sys/ptrace.h>],
1528 [PT_GETXMMREGS;],
1529 [gdb_cv_have_pt_getxmmregs=yes],
1530 [gdb_cv_have_pt_getxmmregs=no])])
1531 AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
1532 if test $gdb_cv_have_pt_getxmmregs = yes; then
1533 AC_DEFINE(HAVE_PT_GETXMMREGS, 1,
1534 [Define if sys/ptrace.h defines the PT_GETXMMREGS request.])
1535 fi
1536
1537 # Detect which type of /proc is in use, such as for Solaris.
1538
1539 if test "${target}" = "${host}"; then
1540 case "${host}" in
1541 *-*-sysv4.2* | *-*-sysv5* )
1542 AC_DEFINE(NEW_PROC_API, 1,
1543 [Define if you want to use new multi-fd /proc interface.])
1544 ;;
1545 *-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]]*)
1546 AC_DEFINE(NEW_PROC_API, 1,
1547 [Define if you want to use new multi-fd /proc interface.])
1548 ;;
1549 mips-sgi-irix5*)
1550 # Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5.
1551 AC_DEFINE([_KMEMUSER], 1,
1552 [Define to 1 so <sys/proc.h> gets a definition of anon_hdl. Works
1553 around a <sys/proc.h> problem on IRIX 5.])
1554 ;;
1555 esac
1556 fi
1557
1558 if test "$ac_cv_header_sys_procfs_h" = yes; then
1559 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
1560 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
1561 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
1562 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
1563 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
1564 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
1565 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
1566 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
1567 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
1568 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
1569 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
1570
1571
1572 dnl Check for broken prfpregset_t type
1573
1574 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
1575 dnl prfpregset_t type (it's a typedef for the pointer to a struct
1576 dnl instead of the struct itself). We detect this here, and work
1577 dnl around it in gdb_proc_service.h.
1578
1579 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
1580 AC_MSG_CHECKING(whether prfpregset_t type is broken)
1581 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
1582 [AC_TRY_RUN([#include <sys/procfs.h>
1583 int main ()
1584 {
1585 if (sizeof (prfpregset_t) == sizeof (void *))
1586 return 1;
1587 return 0;
1588 }],
1589 gdb_cv_prfpregset_t_broken=no,
1590 gdb_cv_prfpregset_t_broken=yes,
1591 gdb_cv_prfpregset_t_broken=yes)])
1592 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
1593 if test $gdb_cv_prfpregset_t_broken = yes; then
1594 AC_DEFINE(PRFPREGSET_T_BROKEN, 1,
1595 [Define if the prfpregset_t type is broken.])
1596 fi
1597 fi
1598 fi
1599
1600 # Check if the compiler supports the `long long' type.
1601
1602 AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long,
1603 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1604 [[extern long long foo;]],
1605 [[switch (foo & 2) { case 0: return 1; }]])],
1606 gdb_cv_c_long_long=yes,
1607 gdb_cv_c_long_long=no)])
1608 if test $gdb_cv_c_long_long != yes; then
1609 # libdecnumber requires long long.
1610 AC_MSG_ERROR([Compiler must support long long for GDB.])
1611 fi
1612
1613 # Check if the compiler and runtime support printing long longs.
1614
1615 AC_CACHE_CHECK([for long long support in printf],
1616 gdb_cv_printf_has_long_long,
1617 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1618 [[char buf[32];
1619 long long l = 0;
1620 l = (l << 16) + 0x0123;
1621 l = (l << 16) + 0x4567;
1622 l = (l << 16) + 0x89ab;
1623 l = (l << 16) + 0xcdef;
1624 sprintf (buf, "0x%016llx", l);
1625 return (strcmp ("0x0123456789abcdef", buf));]])],
1626 gdb_cv_printf_has_long_long=yes,
1627 gdb_cv_printf_has_long_long=no,
1628 gdb_cv_printf_has_long_long=no)])
1629 if test $gdb_cv_printf_has_long_long = yes; then
1630 AC_DEFINE(PRINTF_HAS_LONG_LONG, 1,
1631 [Define to 1 if the "%ll" format works to print long longs.])
1632 fi
1633
1634 # Check if the compiler and runtime support printing decfloats.
1635
1636 AC_CACHE_CHECK([for decfloat support in printf],
1637 gdb_cv_printf_has_decfloat,
1638 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1639 [[char buf[64];
1640 _Decimal32 d32 = 1.2345df;
1641 _Decimal64 d64 = 1.2345dd;
1642 _Decimal128 d128 = 1.2345dl;
1643 sprintf (buf, "Decimal32: %H\nDecimal64: %D\nDecimal128: %DD", d32, d64, d128);
1644 return (strcmp ("Decimal32: 1.2345\nDecimal64: 1.2345\nDecimal128: 1.2345", buf));]])],
1645 gdb_cv_printf_has_decfloat=yes,
1646 gdb_cv_printf_has_decfloat=no,
1647 gdb_cv_printf_has_decfloat=no)])
1648 if test $gdb_cv_printf_has_decfloat = yes; then
1649 AC_DEFINE(PRINTF_HAS_DECFLOAT, 1,
1650 [Define to 1 if the "%H, %D and %DD" formats work to print decfloats.])
1651 fi
1652
1653 # Check if the compiler supports the `long double' type. We can't use
1654 # AC_C_LONG_DOUBLE because that one does additional checks on the
1655 # constants defined in <float.h> that fail on some systems,
1656 # e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6.
1657
1658 AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double,
1659 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])],
1660 gdb_cv_c_long_double=yes,
1661 gdb_cv_c_long_double=no)])
1662 if test $gdb_cv_c_long_double = yes; then
1663 AC_DEFINE(HAVE_LONG_DOUBLE, 1,
1664 [Define to 1 if the compiler supports long double.])
1665 fi
1666
1667 # Check if the compiler and runtime support printing long doubles.
1668
1669 AC_CACHE_CHECK([for long double support in printf],
1670 gdb_cv_printf_has_long_double,
1671 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1672 [[char buf[16];
1673 long double f = 3.141592653;
1674 sprintf (buf, "%Lg", f);
1675 return (strncmp ("3.14159", buf, 7));]])],
1676 gdb_cv_printf_has_long_double=yes,
1677 gdb_cv_printf_has_long_double=no,
1678 gdb_cv_printf_has_long_double=no)])
1679 if test $gdb_cv_printf_has_long_double = yes; then
1680 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1,
1681 [Define to 1 if the "%Lg" format works to print long doubles.])
1682 fi
1683
1684 # Check if the compiler and runtime support scanning long doubles.
1685
1686 AC_CACHE_CHECK([for long double support in scanf],
1687 gdb_cv_scanf_has_long_double,
1688 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
1689 [[#include <stdio.h>]],
1690 [[char *buf = "3.141592653";
1691 long double f = 0;
1692 sscanf (buf, "%Lg", &f);
1693 return !(f > 3.14159 && f < 3.14160);]])],
1694 gdb_cv_scanf_has_long_double=yes,
1695 gdb_cv_scanf_has_long_double=no,
1696 gdb_cv_scanf_has_long_double=no)])
1697 if test $gdb_cv_scanf_has_long_double = yes; then
1698 AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1,
1699 [Define to 1 if the "%Lg" format works to scan long doubles.])
1700 fi
1701
1702 case ${host_os} in
1703 aix*)
1704 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
1705 SAVE_LDFLAGS=$LDFLAGS
1706
1707 case $GCC in
1708 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
1709 *) gdb_cv_bigtoc=-bbigtoc ;;
1710 esac
1711
1712 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
1713 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
1714 LDFLAGS="${SAVE_LDFLAGS}"
1715 ])
1716 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
1717 ;;
1718 esac
1719
1720 AC_MSG_CHECKING(for the dynamic export flag)
1721 dynamic_list=false
1722 if test "${gdb_native}" = yes; then
1723 # The dynamically loaded libthread_db needs access to symbols in the gdb
1724 # executable. Older GNU ld supports --export-dynamic but --dynamic-list
1725 # may not be supported there.
1726 old_LDFLAGS="$LDFLAGS"
1727 # Older GNU ld supports --export-dynamic but --dynamic-list it does not.
1728 RDYNAMIC="-Wl,--dynamic-list=${srcdir}/proc-service.list"
1729 LDFLAGS="$LDFLAGS $RDYNAMIC"
1730 if test "${have_libpython}" = no; then
1731 AC_TRY_LINK([], [], [dynamic_list=true])
1732 else
1733 # Workaround http://bugs.python.org/issue4434 where static
1734 # libpythonX.Y.a would get its symbols required for
1735 # pythonX.Y/lib-dynload/*.so modules hidden by -Wl,--dynamic-list.
1736 # Problem does not happen for the recommended libpythonX.Y.so linkage.
1737 old_CFLAGS="$CFLAGS"
1738 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
1739 old_LIBS="$LIBS"
1740 LIBS="$LIBS $PYTHON_LIBS"
1741 AC_RUN_IFELSE(
1742 AC_LANG_PROGRAM(
1743 [#include "]${have_libpython}[/Python.h"],
1744 [int err;
1745 Py_Initialize ();
1746 err = PyRun_SimpleString ("import itertools\n");
1747 Py_Finalize ();
1748 return err == 0 ? 0 : 1;]),
1749 [dynamic_list=true], [], [true])
1750 LIBS="$old_LIBS"
1751 CFLAGS="$old_CFLAGS"
1752 fi
1753 LDFLAGS="$old_LDFLAGS"
1754 fi
1755 if $dynamic_list; then
1756 found="-Wl,--dynamic-list"
1757 RDYNAMIC='-Wl,--dynamic-list=$(srcdir)/proc-service.list'
1758 else
1759 found="-rdynamic"
1760 RDYNAMIC="-rdynamic"
1761 fi
1762 AC_SUBST(RDYNAMIC)
1763 AC_MSG_RESULT($found)
1764
1765 dnl For certain native configurations, we need to check whether thread
1766 dnl support can be built in or not.
1767 dnl
1768 dnl Note that we only want this if we are both native (host == target),
1769 dnl and not doing a canadian cross build (build == host).
1770
1771 if test ${build} = ${host} -a ${host} = ${target} ; then
1772 case ${host_os} in
1773 solaris*)
1774 # See if thread_db library is around for Solaris thread debugging.
1775 # Note that we must explicitly test for version 1 of the library
1776 # because version 0 (present on Solaris 2.4 or earlier) doesn't have
1777 # the same API.
1778 AC_MSG_CHECKING(for Solaris thread debugging library)
1779 if test -f /usr/lib/libthread_db.so.1 ; then
1780 AC_MSG_RESULT(yes)
1781 AC_DEFINE(HAVE_THREAD_DB_LIB, 1,
1782 [Define if using Solaris thread debugging.])
1783 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
1784 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
1785 AC_CHECK_LIB(dl, dlopen)
1786 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} $RDYNAMIC"
1787 # Sun randomly tweaked the prototypes in <proc_service.h>
1788 # at one point.
1789 AC_MSG_CHECKING(if <proc_service.h> is old)
1790 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
1791 AC_TRY_COMPILE([
1792 #include <proc_service.h>
1793 ps_err_e ps_pdwrite
1794 (struct ps_prochandle*, psaddr_t, const void*, size_t);
1795 ],, gdb_cv_proc_service_is_old=no,
1796 gdb_cv_proc_service_is_old=yes)
1797 ])
1798 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
1799 if test $gdb_cv_proc_service_is_old = yes; then
1800 AC_DEFINE(PROC_SERVICE_IS_OLD, 1,
1801 [Define if <proc_service.h> on solaris uses int instead of
1802 size_t, and assorted other type changes.])
1803 fi
1804 else
1805 AC_MSG_RESULT(no)
1806 fi
1807 ;;
1808 aix*)
1809 AC_MSG_CHECKING(for AiX thread debugging library)
1810 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
1811 [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
1812 [#ifndef PTHDB_VERSION_3
1813 #error
1814 #endif],
1815 gdb_cv_have_aix_thread_debug=yes,
1816 gdb_cv_have_aix_thread_debug=no)])
1817 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
1818 if test $gdb_cv_have_aix_thread_debug = yes; then
1819 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
1820 CONFIG_OBS="${CONFIG_OBS} aix-thread.o"
1821 LIBS="$LIBS -lpthdebug"
1822
1823 # Older versions of AIX do not provide the declaration for
1824 # the getthrds function (it appears that it was introduced
1825 # with AIX 6.x).
1826 AC_CHECK_DECLS(getthrds, [], [], [[#include <procinfo.h>]])
1827 fi
1828 ;;
1829 esac
1830 AC_SUBST(CONFIG_LDFLAGS)
1831 fi
1832
1833 dnl See if we have a thread_db header file that has TD_NOTALLOC and
1834 dnl other error codes.
1835 if test "x$ac_cv_header_thread_db_h" = "xyes"; then
1836 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
1837 gdb_cv_thread_db_h_has_td_notalloc,
1838 AC_TRY_COMPILE(
1839 [#include <thread_db.h>],
1840 [int i = TD_NOTALLOC;],
1841 gdb_cv_thread_db_h_has_td_notalloc=yes,
1842 gdb_cv_thread_db_h_has_td_notalloc=no
1843 )
1844 )
1845 AC_CACHE_CHECK([whether <thread_db.h> has TD_VERSION],
1846 gdb_cv_thread_db_h_has_td_version,
1847 AC_TRY_COMPILE(
1848 [#include <thread_db.h>],
1849 [int i = TD_VERSION;],
1850 gdb_cv_thread_db_h_has_td_version=yes,
1851 gdb_cv_thread_db_h_has_td_version=no
1852 )
1853 )
1854 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTLS],
1855 gdb_cv_thread_db_h_has_td_notls,
1856 AC_TRY_COMPILE(
1857 [#include <thread_db.h>],
1858 [int i = TD_NOTLS;],
1859 gdb_cv_thread_db_h_has_td_notls=yes,
1860 gdb_cv_thread_db_h_has_td_notls=no
1861 )
1862 )
1863 fi
1864 if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
1865 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
1866 [Define if <thread_db.h> has the TD_NOTALLOC error code.])
1867 fi
1868 if test "x$gdb_cv_thread_db_h_has_td_version" = "xyes"; then
1869 AC_DEFINE(THREAD_DB_HAS_TD_VERSION, 1,
1870 [Define if <thread_db.h> has the TD_VERSION error code.])
1871 fi
1872 if test "x$gdb_cv_thread_db_h_has_td_notls" = "xyes"; then
1873 AC_DEFINE(THREAD_DB_HAS_TD_NOTLS, 1,
1874 [Define if <thread_db.h> has the TD_NOTLS error code.])
1875 fi
1876
1877 dnl See if we have a sys/syscall header file that has __NR_tkill.
1878 if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then
1879 AC_CACHE_CHECK([whether <sys/syscall.h> has __NR_tkill],
1880 gdb_cv_sys_syscall_h_has_tkill,
1881 AC_TRY_COMPILE(
1882 [#include <sys/syscall.h>],
1883 [int i = __NR_tkill;],
1884 gdb_cv_sys_syscall_h_has_tkill=yes,
1885 gdb_cv_sys_syscall_h_has_tkill=no
1886 )
1887 )
1888 fi
1889 dnl See if we can issue tkill syscall.
1890 if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes"; then
1891 AC_CHECK_FUNC(syscall,
1892 AC_DEFINE(HAVE_TKILL_SYSCALL, 1, [Define if you support the tkill syscall.])
1893 )
1894 fi
1895
1896 dnl Check if we can disable the virtual address space randomization.
1897 dnl The functionality of setarch -R.
1898 AC_CHECK_DECLS([ADDR_NO_RANDOMIZE],,, [#include <sys/personality.h>])
1899 define([PERSONALITY_TEST], [AC_LANG_PROGRAM([#include <sys/personality.h>], [
1900 # if !HAVE_DECL_ADDR_NO_RANDOMIZE
1901 # define ADDR_NO_RANDOMIZE 0x0040000
1902 # endif
1903 /* Test the flag could be set and stays set. */
1904 personality (personality (0xffffffff) | ADDR_NO_RANDOMIZE);
1905 if (!(personality (personality (0xffffffff)) & ADDR_NO_RANDOMIZE))
1906 return 1])])
1907 AC_RUN_IFELSE([PERSONALITY_TEST],
1908 [have_personality=true],
1909 [have_personality=false],
1910 [AC_LINK_IFELSE([PERSONALITY_TEST],
1911 [have_personality=true],
1912 [have_personality=false])])
1913 if $have_personality
1914 then
1915 AC_DEFINE([HAVE_PERSONALITY], 1,
1916 [Define if you support the personality syscall.])
1917 fi
1918
1919 dnl Set the host's .gdbinit filename.
1920 case $host_os in
1921 go32* | *djgpp*)
1922 gdbinit=gdb.ini
1923 ;;
1924 *)
1925 gdbinit=.gdbinit
1926 ;;
1927 esac
1928 AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.])
1929
1930 dnl Handle optional features that can be enabled.
1931
1932 # Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
1933 # except that the argument to --with-sysroot is optional.
1934 # --with-sysroot (or --with-sysroot=yes) sets the default sysroot path.
1935 if test "x$with_sysroot" = xyes; then
1936 with_sysroot="${exec_prefix}/${target_alias}/sys-root"
1937 fi
1938 AC_ARG_WITH(sysroot,
1939 AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
1940 [search for usr/lib et al within DIR]),
1941 [TARGET_SYSTEM_ROOT=$withval], [TARGET_SYSTEM_ROOT=])
1942 AC_DEFINE_DIR(TARGET_SYSTEM_ROOT, TARGET_SYSTEM_ROOT,
1943 [search for usr/lib et al within DIR])
1944 AC_SUBST(TARGET_SYSTEM_ROOT)
1945 GDB_AC_DEFINE_RELOCATABLE(TARGET_SYSTEM_ROOT, sysroot, ${ac_define_dir})
1946
1947 GDB_AC_WITH_DIR(SYSTEM_GDBINIT, system-gdbinit,
1948 [automatically load a system-wide gdbinit file],
1949 [])
1950
1951 AC_ARG_ENABLE(werror,
1952 AS_HELP_STRING([--enable-werror], [treat compile warnings as errors]),
1953 [case "${enableval}" in
1954 yes | y) ERROR_ON_WARNING="yes" ;;
1955 no | n) ERROR_ON_WARNING="no" ;;
1956 *) AC_MSG_ERROR(bad value ${enableval} for --enable-werror) ;;
1957 esac])
1958
1959 # Enable -Werror by default when using gcc. Turn it off for releases.
1960 if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" && $development; then
1961 ERROR_ON_WARNING=yes
1962 fi
1963
1964 WERROR_CFLAGS=""
1965 if test "${ERROR_ON_WARNING}" = yes ; then
1966 WERROR_CFLAGS="-Werror"
1967 fi
1968
1969 build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \
1970 -Wpointer-sign \
1971 -Wno-unused -Wunused-value -Wunused-function \
1972 -Wno-switch -Wno-char-subscripts -Wmissing-prototypes \
1973 -Wdeclaration-after-statement -Wempty-body -Wmissing-parameter-type \
1974 -Wold-style-declaration -Wold-style-definition"
1975
1976 # Enable -Wno-format by default when using gcc on mingw since many
1977 # GCC versions complain about %I64.
1978 case "${host}" in
1979 *-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;;
1980 *) build_warnings="$build_warnings -Wformat-nonliteral" ;;
1981 esac
1982
1983 AC_ARG_ENABLE(build-warnings,
1984 AS_HELP_STRING([--enable-build-warnings], [enable build-time compiler warnings if gcc is used]),
1985 [case "${enableval}" in
1986 yes) ;;
1987 no) build_warnings="-w";;
1988 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1989 build_warnings="${build_warnings} ${t}";;
1990 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1991 build_warnings="${t} ${build_warnings}";;
1992 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1993 esac
1994 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1995 echo "Setting compiler warning flags = $build_warnings" 6>&1
1996 fi])dnl
1997 AC_ARG_ENABLE(gdb-build-warnings,
1998 AS_HELP_STRING([--enable-gdb-build-warnings], [enable GDB specific build-time compiler warnings if gcc is used]),
1999 [case "${enableval}" in
2000 yes) ;;
2001 no) build_warnings="-w";;
2002 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
2003 build_warnings="${build_warnings} ${t}";;
2004 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
2005 build_warnings="${t} ${build_warnings}";;
2006 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
2007 esac
2008 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
2009 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
2010 fi])dnl
2011 WARN_CFLAGS=""
2012 if test "x${build_warnings}" != x -a "x$GCC" = xyes
2013 then
2014 AC_MSG_CHECKING(compiler warning flags)
2015 # Separate out the -Werror flag as some files just cannot be
2016 # compiled with it enabled.
2017 for w in ${build_warnings}; do
2018 case $w in
2019 -Werr*) WERROR_CFLAGS=-Werror ;;
2020 *) # Check that GCC accepts it
2021 saved_CFLAGS="$CFLAGS"
2022 CFLAGS="$CFLAGS $w"
2023 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
2024 CFLAGS="$saved_CFLAGS"
2025 esac
2026 done
2027 AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS})
2028 fi
2029 AC_SUBST(WARN_CFLAGS)
2030 AC_SUBST(WERROR_CFLAGS)
2031
2032 # In the Cygwin environment, we need some additional flags.
2033 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
2034 [AC_EGREP_CPP(^lose$, [
2035 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
2036 lose
2037 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
2038
2039
2040 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
2041 SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o"
2042 case ${host} in
2043 *go32* ) SER_HARDWIRE=ser-go32.o ;;
2044 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
2045 *mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;;
2046 esac
2047 AC_SUBST(SER_HARDWIRE)
2048
2049 # libreadline needs libuser32.a in a cygwin environment
2050 WIN32LIBS=
2051 if test x$gdb_cv_os_cygwin = xyes; then
2052 WIN32LIBS="-luser32"
2053 case "${target}" in
2054 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
2055 ;;
2056 esac
2057 fi
2058
2059 # The ser-tcp.c module requires sockets.
2060 case ${host} in
2061 *mingw32*)
2062 AC_DEFINE(USE_WIN32API, 1,
2063 [Define if we should use the Windows API, instead of the
2064 POSIX API. On Windows, we use the Windows API when
2065 building for MinGW, but the POSIX API when building
2066 for Cygwin.])
2067 WIN32LIBS="$WIN32LIBS -lws2_32"
2068 ;;
2069 esac
2070 AC_SUBST(WIN32LIBS)
2071
2072 # Add ELF support to GDB, but only if BFD includes ELF support.
2073 GDB_AC_CHECK_BFD([for ELF support in BFD], gdb_cv_var_elf,
2074 [bfd_get_elf_phdr_upper_bound (NULL)], elf-bfd.h)
2075 if test $gdb_cv_var_elf = yes; then
2076 CONFIG_OBS="$CONFIG_OBS elfread.o stap-probe.o"
2077 AC_DEFINE(HAVE_ELF, 1,
2078 [Define if ELF support should be included.])
2079 # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
2080 if test "$plugins" = "yes"; then
2081 AC_SEARCH_LIBS(dlopen, dl)
2082 fi
2083 fi
2084
2085 # Add macho support to GDB, but only if BFD includes it.
2086 GDB_AC_CHECK_BFD([for Mach-O support in BFD], gdb_cv_var_macho,
2087 [bfd_mach_o_lookup_command (NULL, 0, NULL)], mach-o.h)
2088 if test $gdb_cv_var_macho = yes; then
2089 CONFIG_OBS="$CONFIG_OBS machoread.o"
2090 fi
2091
2092 # Add SOM support to GDB, but only if BFD includes it.
2093 GDB_AC_CHECK_BFD([for SOM support in BFD], gdb_cv_var_som,
2094 [bfd_som_attach_aux_hdr (NULL, 0, NULL)], som.h)
2095 if test $gdb_cv_var_som = yes; then
2096 CONFIG_OBS="$CONFIG_OBS somread.o"
2097 fi
2098
2099 # Add any host-specific objects to GDB.
2100 CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
2101
2102 # If building on ELF, look for lzma support for embedded compressed debug info.
2103 if test $gdb_cv_var_elf = yes; then
2104 AC_ARG_WITH(lzma,
2105 AS_HELP_STRING([--with-lzma], [support lzma compression (auto/yes/no)]),
2106 [], [with_lzma=auto])
2107 AC_MSG_CHECKING([whether to use lzma])
2108 AC_MSG_RESULT([$with_lzma])
2109
2110 if test "${with_lzma}" != no; then
2111 AC_LIB_HAVE_LINKFLAGS([lzma], [], [#include "lzma.h"],
2112 [lzma_index_iter iter;
2113 lzma_index_iter_init (&iter, 0);
2114 lzma_mf_is_supported (LZMA_MF_HC3);])
2115 if test "$HAVE_LIBLZMA" != yes; then
2116 if test "$with_lzma" = yes; then
2117 AC_MSG_ERROR([missing liblzma for --with-lzma])
2118 fi
2119 fi
2120 fi
2121 fi
2122
2123 LIBGUI="../libgui/src/libgui.a"
2124 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
2125 AC_SUBST(LIBGUI)
2126 AC_SUBST(GUI_CFLAGS_X)
2127
2128 WIN32LDAPP=
2129 AC_SUBST(WIN32LIBS)
2130 AC_SUBST(WIN32LDAPP)
2131
2132 case "${host}" in
2133 *-*-cygwin* | *-*-mingw* )
2134 configdir="win"
2135 ;;
2136 *)
2137 configdir="unix"
2138 ;;
2139 esac
2140
2141 GDBTKLIBS=
2142 if test "${enable_gdbtk}" = "yes"; then
2143
2144 # Gdbtk must have an absolute path to srcdir in order to run
2145 # properly when not installed.
2146 here=`pwd`
2147 cd ${srcdir}
2148 GDBTK_SRC_DIR=`pwd`
2149 cd $here
2150
2151 SC_PATH_TCLCONFIG
2152
2153 # If $no_tk is nonempty, then we can't do Tk, and there is no
2154 # point to doing Tcl.
2155 SC_PATH_TKCONFIG
2156
2157 if test -z "${no_tcl}" -a -z "${no_tk}"; then
2158 SC_LOAD_TCLCONFIG
2159
2160 # Check for in-tree tcl
2161 here=`pwd`
2162 cd ${srcdir}/..
2163 topdir=`pwd`
2164 cd ${here}
2165
2166 intree="no"
2167 if test "${TCL_SRC_DIR}" = "${topdir}/tcl"; then
2168 intree="yes"
2169 fi
2170
2171 # Find Tcl private headers
2172 if test x"${intree}" = xno; then
2173 CY_AC_TCL_PRIVATE_HEADERS
2174 TCL_INCLUDE="${TCL_INCLUDE_SPEC} ${TCL_PRIVATE_INCLUDE}"
2175 TCL_LIBRARY="${TCL_LIB_SPEC}"
2176 TCL_DEPS=""
2177 else
2178 # If building tcl in the same src tree, private headers
2179 # are not needed, but we need to be sure to use the right
2180 # headers library
2181 TCL_INCLUDE="-I${TCL_SRC_DIR}/generic"
2182 TCL_LIBRARY="${TCL_BUILD_LIB_SPEC}"
2183 TCL_DEPS="../tcl/${configdir}${TCL_LIB_FILE}"
2184 fi
2185 AC_SUBST(TCL_INCLUDE)
2186 AC_SUBST(TCL_LIBRARY)
2187 AC_SUBST(TCL_DEPS)
2188
2189 SC_LOAD_TKCONFIG
2190
2191 # Check for in-tree Tk
2192 intree="no"
2193 if test "${TK_SRC_DIR}" = "${topdir}/tk"; then
2194 intree="yes"
2195 fi
2196
2197 # Find Tk private headers
2198 if test x"${intree}" = xno; then
2199 CY_AC_TK_PRIVATE_HEADERS
2200 TK_INCLUDE="${TK_INCLUDE_SPEC} ${TK_PRIVATE_INCLUDE}"
2201 TK_LIBRARY=${TK_LIB_SPEC}
2202 TK_DEPS=""
2203 else
2204 TK_INCLUDE="-I${TK_SRC_DIR}/generic"
2205 TK_LIBRARY="${TK_BUILD_LIB_SPEC}"
2206 TK_DEPS="../tk/${configdir}/${TK_LIB_FILE}"
2207 fi
2208 AC_SUBST(TK_INCLUDE)
2209 AC_SUBST(TK_LIBRARY)
2210 AC_SUBST(TK_DEPS)
2211 AC_SUBST(TK_XINCLUDES)
2212
2213 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
2214
2215 # Include some libraries that Tcl and Tk want.
2216 TCL_LIBS='$(LIBGUI) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
2217 # Yes, the ordering seems wrong here. But it isn't.
2218 # TK_LIBS is the list of libraries that need to be linked
2219 # after Tcl/Tk. Note that this isn't put into LIBS. If it
2220 # were in LIBS then any link tests after this point would
2221 # try to include things like `$(LIBGUI)', which wouldn't work.
2222 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
2223
2224 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
2225 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
2226 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
2227 CONFIG_ALL="${CONFIG_ALL} all-gdbtk"
2228 CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk"
2229 CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk"
2230 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk"
2231
2232 if test x$gdb_cv_os_cygwin = xyes; then
2233 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
2234 WIN32LDAPP="-Wl,--subsystem,console"
2235 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
2236 fi
2237
2238 AC_CONFIG_SUBDIRS(gdbtk)
2239 fi
2240 fi
2241
2242 AC_SUBST(X_CFLAGS)
2243 AC_SUBST(X_LDFLAGS)
2244 AC_SUBST(X_LIBS)
2245 AC_SUBST(GDBTKLIBS)
2246 AC_SUBST(GDBTK_CFLAGS)
2247 AC_SUBST(GDBTK_SRC_DIR)
2248
2249 AC_PATH_X
2250
2251 # Unlike the sim directory, whether a simulator is linked is controlled by
2252 # presence of a gdb_sim definition in the target configure.tgt entry.
2253 # This code just checks for a few cases where we'd like to ignore those
2254 # definitions, even when they're present in the '.mt' file. These cases
2255 # are when --disable-sim is specified, or if the simulator directory is
2256 # not part of the source tree.
2257 #
2258 AC_ARG_ENABLE(sim,
2259 AS_HELP_STRING([--enable-sim], [link gdb with simulator]),
2260 [echo "enable_sim = $enable_sim";
2261 echo "enableval = ${enableval}";
2262 case "${enableval}" in
2263 yes) ignore_sim=false ;;
2264 no) ignore_sim=true ;;
2265 *) ignore_sim=false ;;
2266 esac],
2267 [ignore_sim=false])
2268
2269 if test ! -d "${srcdir}/../sim"; then
2270 ignore_sim=true
2271 fi
2272
2273 SIM=
2274 SIM_OBS=
2275 if test "${ignore_sim}" = "false"; then
2276 if test x"${gdb_sim}" != x ; then
2277 SIM="${gdb_sim}"
2278 SIM_OBS="remote-sim.o"
2279 AC_DEFINE(WITH_SIM, 1, [Define if the simulator is being linked in.])
2280 fi
2281 fi
2282 AC_SUBST(SIM)
2283 AC_SUBST(SIM_OBS)
2284
2285 AC_SUBST(ENABLE_CFLAGS)
2286 AC_SUBST(PROFILE_CFLAGS)
2287
2288 AC_SUBST(CONFIG_OBS)
2289 AC_SUBST(CONFIG_DEPS)
2290 AC_SUBST(CONFIG_SRCS)
2291 AC_SUBST(CONFIG_ALL)
2292 AC_SUBST(CONFIG_CLEAN)
2293 AC_SUBST(CONFIG_INSTALL)
2294 AC_SUBST(CONFIG_UNINSTALL)
2295
2296 # List of host floatformats.
2297 AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat])
2298 AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat])
2299 AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat])
2300
2301 # target_subdir is used by the testsuite to find the target libraries.
2302 target_subdir=
2303 if test "${host}" != "${target}"; then
2304 target_subdir="${target_alias}/"
2305 fi
2306 AC_SUBST(target_subdir)
2307
2308 frags=
2309 if test "${gdb_native}" = "yes"; then
2310 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
2311 if test ! -f ${host_makefile_frag}; then
2312 AC_MSG_ERROR("*** Gdb does not support native target ${host}")
2313 fi
2314 frags="$frags $host_makefile_frag"
2315 else
2316 host_makefile_frag=/dev/null
2317 fi
2318
2319 AC_SUBST_FILE(host_makefile_frag)
2320 AC_SUBST(frags)
2321
2322 changequote(,)dnl
2323 if test "${gdb_native}" = "yes"; then
2324 # We pick this up from the host configuration file (.mh) because we
2325 # do not have a native configuration Makefile fragment.
2326 nativefile=`sed -n '
2327 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
2328 ' ${host_makefile_frag}`
2329 fi
2330 changequote([,])
2331
2332 if test x"${gdb_osabi}" != x ; then
2333 AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
2334 [Define to the default OS ABI for this configuration.])
2335 fi
2336
2337 # Enable multi-ice-gdb-server.
2338 AC_ARG_ENABLE(multi-ice,
2339 AS_HELP_STRING([--enable-multi-ice], [build the multi-ice-gdb-server]),
2340 [case $enableval in
2341 yes | no)
2342 ;;
2343 *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;;
2344 esac])
2345 if test "x$enable_multi_ice" = xyes; then
2346 AC_CONFIG_SUBDIRS(multi-ice)
2347 fi
2348
2349 AC_ARG_ENABLE(gdbserver,
2350 AS_HELP_STRING([--enable-gdbserver],
2351 [automatically build gdbserver (yes/no/auto, default is auto)]),
2352 [case "${enableval}" in
2353 yes| no|auto) ;;
2354 *) AC_MSG_ERROR(bad value ${enableval} for --enable-gdbserver option) ;;
2355 esac],[enable_gdbserver=auto])
2356
2357 # We only build gdbserver automatically in a native configuration, and
2358 # only if the user did not explicitly disable its build.
2359 if test "$gdb_native" = "yes" -a "$enable_gdbserver" != "no"; then
2360 AC_MSG_CHECKING(whether gdbserver is supported on this host)
2361 if test "x$build_gdbserver" = xyes; then
2362 AC_MSG_RESULT(yes)
2363 AC_CONFIG_SUBDIRS(gdbserver)
2364 gdbserver_build_enabled=yes
2365 else
2366 AC_MSG_RESULT(no)
2367 fi
2368 fi
2369
2370 # If the user explicitly request the gdbserver to be built, verify that
2371 # we were in fact able to enable it.
2372 if test "$enable_gdbserver" = "yes" -a "$gdbserver_build_enabled" != "yes"; then
2373 AC_MSG_ERROR(Automatic gdbserver build is not supported for this configuration)
2374 fi
2375
2376 # Check for babeltrace and babeltrace-ctf
2377 AC_ARG_WITH(babeltrace,
2378 AC_HELP_STRING([--with-babeltrace], [include babeltrace support (auto/yes/no)]),
2379 [], [with_babeltrace=auto])
2380 AC_MSG_CHECKING([whether to use babeltrace])
2381 AC_MSG_RESULT([$with_babeltrace])
2382
2383 if test "x$with_babeltrace" = "xno"; then
2384 AC_MSG_WARN([babletrace support disabled; GDB is unable to read CTF data.])
2385 else
2386 # Append -Werror to CFLAGS so that configure can catch the warning
2387 # "assignment from incompatible pointer type", which is related to
2388 # the babeltrace change from 1.0.3 to 1.1.0. Babeltrace 1.1.0 works
2389 # in GDB, while babeltrace 1.0.3 is broken.
2390 # AC_LIB_HAVE_LINKFLAGS may modify CPPFLAGS in it, so it should be
2391 # safe to save and restore CFLAGS here.
2392 saved_CFLAGS=$CFLAGS
2393 CFLAGS="$CFLAGS -Werror"
2394 AC_LIB_HAVE_LINKFLAGS([babeltrace], [babeltrace-ctf],
2395 [#include <babeltrace/babeltrace.h>
2396 #include <babeltrace/ctf/events.h>
2397 #include <babeltrace/ctf/iterator.h>],
2398 [struct bt_iter_pos *pos = bt_iter_get_pos (bt_ctf_get_iter (NULL));
2399 struct bt_ctf_event *event = NULL;
2400 const struct bt_definition *scope;
2401
2402 bt_iter_set_pos (bt_ctf_get_iter (NULL), pos);
2403 scope = bt_ctf_get_top_level_scope (event,
2404 BT_STREAM_EVENT_HEADER);
2405 bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id"));
2406 ])
2407 CFLAGS=$saved_CFLAGS
2408
2409 if test "$HAVE_LIBBABELTRACE" != yes; then
2410 if test "$with_babeltrace" = yes; then
2411 AC_MSG_ERROR([babeltrace is missing or unusable])
2412 else
2413 AC_MSG_WARN([babeltrace is missing or unusable; GDB is unable to read CTF data.])
2414 fi
2415 fi
2416 fi
2417
2418 # If nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link
2419 # to an empty version.
2420
2421 files=
2422 links=
2423
2424 rm -f nm.h
2425 if test "${nativefile}" != ""; then
2426 case "${nativefile}" in
2427 nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;;
2428 * ) GDB_NM_FILE="${nativefile}"
2429 esac
2430 files="${files} ${GDB_NM_FILE}"
2431 links="${links} nm.h"
2432 AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}", [nativefile])
2433 fi
2434 AC_SUBST(GDB_NM_FILE)
2435
2436 AC_LINK_FILES($files, $links)
2437
2438 dnl Check for exe extension set on certain hosts (e.g. Win32)
2439 AC_EXEEXT
2440
2441 dnl Detect the character set used by this host.
2442 dnl At the moment, we just assume it's UTF-8.
2443 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8",
2444 [Define to be a string naming the default host character set.])
2445
2446 # Undo the $ec_script escaping suitable for Makefile.
2447 transform=`echo "$program_transform_name" | sed -e 's/[\\$][\\$]/\\$/g'`
2448 GDB_TRANSFORM_NAME=`echo gdb | sed -e "$transform"`
2449 if test "x$GDB_TRANSFORM_NAME" = x; then
2450 GDB_TRANSFORM_NAME=gdb
2451 fi
2452 AC_SUBST(GDB_TRANSFORM_NAME)
2453 GCORE_TRANSFORM_NAME=`echo gcore | sed -e "$transform"`
2454 if test "x$GCORE_TRANSFORM_NAME" = x; then
2455 GCORE_TRANSFORM_NAME=gcore
2456 fi
2457 AC_SUBST(GCORE_TRANSFORM_NAME)
2458 AC_CONFIG_FILES([gcore], [chmod +x gcore])
2459
2460 AC_OUTPUT(Makefile gdb-gdb.gdb doc/Makefile data-directory/Makefile,
2461 [
2462 case x$CONFIG_HEADERS in
2463 xconfig.h:config.in)
2464 echo > stamp-h ;;
2465 esac
2466 ])
2467
2468 exit 0
This page took 0.106213 seconds and 5 git commands to generate.