4a0b6a3413cf3c49253e34aff3523c07ba5e9469
[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 dnl scm_set_automatic_finalization_enabled added in Guile 2.2.
1094 AC_CHECK_FUNC(scm_set_automatic_finalization_enabled,
1095 AC_DEFINE(HAVE_GUILE_MANUAL_FINALIZATION, 1,
1096 [Define if Guile supports manual finalization.])
1097 )
1098 CPPFLAGS=$save_CPPFLAGS
1099 LIBS=$save_LIBS
1100 if test "${found_usable_guile}" = no; then
1101 if test "${flag_errors}" = yes; then
1102 AC_MSG_FAILURE([linking guile version ${guile_version} test program failed])
1103 fi
1104 fi
1105 fi
1106 AC_MSG_RESULT([${found_usable_guile}])
1107 ])
1108
1109 dnl There are several different values for --with-guile:
1110 dnl
1111 dnl no - Don't include guile support.
1112 dnl yes - Include guile support, error if it's missing.
1113 dnl The pkg-config program must be in $PATH.
1114 dnl auto - Same as "yes", but if guile is missing from the system,
1115 dnl fall back to "no".
1116 dnl guile-version [guile-version-choice-2 ...] -
1117 dnl A space-separated list of guile package versions to try.
1118 dnl These are passed to pkg-config as-is.
1119 dnl E.g., guile-2.0 or guile-2.2-uninstalled
1120 dnl This requires making sure PKG_CONFIG_PATH is set appropriately.
1121 dnl /path/to/pkg-config -
1122 dnl Use this pkg-config program.
1123 dnl NOTE: This needn't be the "real" pkg-config program.
1124 dnl It could be a shell script. It is invoked as:
1125 dnl pkg-config --exists $version
1126 dnl pkg-config --cflags $version
1127 dnl pkg-config --libs $version
1128 dnl pkg-config --variable guild $version
1129 dnl The script will be called with $version having each value in
1130 dnl $try_guile_versions until --exists indicates success.
1131
1132 AC_ARG_WITH(guile,
1133 AS_HELP_STRING([--with-guile@<:@=GUILE@:>@], [include guile support (auto/yes/no/<guile-version>/<pkg-config-program>)]),
1134 [], [with_guile=auto])
1135 AC_MSG_CHECKING([whether to use guile])
1136 AC_MSG_RESULT([$with_guile])
1137
1138 dnl We check guile with pkg-config.
1139 AC_PATH_PROG(pkg_config_prog_path, pkg-config, missing)
1140
1141 try_guile_versions="guile-2.2 guile-2.0"
1142 have_libguile=no
1143 case "${with_guile}" in
1144 no)
1145 AC_MSG_WARN([guile support disabled; some features will be unavailable.])
1146 ;;
1147 auto)
1148 if test "${pkg_config_prog_path}" = "missing"; then
1149 AC_MSG_WARN([pkg-config not found, guile support disabled])
1150 else
1151 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, no, have_libguile)
1152 fi
1153 ;;
1154 yes)
1155 if test "${pkg_config_prog_path}" = "missing"; then
1156 AC_MSG_ERROR([pkg-config not found])
1157 fi
1158 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${try_guile_versions}, yes, have_libguile)
1159 ;;
1160 [[\\/]]* | ?:[[\\/]]*)
1161 if test -x "${with_guile}"; then
1162 AC_TRY_LIBGUILE(${with_guile}, ${try_guile_versions}, yes, have_libguile)
1163 else
1164 AC_MSG_ERROR([Guile config program not executable: ${with_guile}])
1165 fi
1166 ;;
1167 "" | */*)
1168 # Disallow --with=guile="" and --with-guile=foo/bar.
1169 AC_MSG_ERROR([invalid value for --with-guile])
1170 ;;
1171 *)
1172 # A space separate list of guile versions to try, in order.
1173 if test "${pkg_config_prog_path}" = "missing"; then
1174 AC_MSG_ERROR([pkg-config not found])
1175 fi
1176 AC_TRY_LIBGUILE(${pkg_config_prog_path}, ${with_guile}, yes, have_libguile)
1177 ;;
1178 esac
1179
1180 if test "${have_libguile}" != no; then
1181 dnl Get the name of the 'guild' program.
1182 case "${with_guile}" in
1183 [[\\/]]* | ?:[[\\/]]*)
1184 GDB_GUILE_PROGRAM_NAMES(["${with_guile}"], ["${guile_version}"])
1185 ;;
1186 *)
1187 GDB_GUILE_PROGRAM_NAMES(["${pkg_config_prog_path}"], ["${guile_version}"])
1188 ;;
1189 esac
1190
1191 dnl Make sure guild can handle this host.
1192 GDB_TRY_GUILD([$srcdir/guile/lib/gdb/support.scm])
1193 dnl If not, disable guile support.
1194 if test "$ac_cv_guild_ok" = no; then
1195 have_libguile=no
1196 AC_MSG_WARN(disabling guile support, $GUILD fails compiling for $host)
1197 fi
1198 fi
1199
1200 if test "${have_libguile}" != no; then
1201 AC_DEFINE(HAVE_GUILE, 1, [Define if Guile interpreter is being linked in.])
1202 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_GUILE_OBS)"
1203 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_GUILE_DEPS)"
1204 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_GUILE_SRCS)"
1205 CONFIG_INSTALL="$CONFIG_INSTALL install-guile"
1206 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_GUILE_CFLAGS)"
1207
1208 dnl The 'scm_new_smob' function appeared in Guile 2.0.6.
1209 save_LIBS="$LIBS"
1210 save_CPPFLAGS="$CPPFLAGS"
1211 LIBS="$GUILE_LIBS"
1212 CPPFLAGS="$GUILE_CPPFLAGS"
1213 AC_CHECK_FUNCS([scm_new_smob])
1214 LIBS="$save_LIBS"
1215 CPPFLAGS="$save_CPPFLAGS"
1216 else
1217 # Even if Guile support is not compiled in, we need to have these files
1218 # included.
1219 CONFIG_OBS="$CONFIG_OBS guile.o"
1220 CONFIG_SRCS="$CONFIG_SRCS guile/guile.c"
1221 fi
1222 AC_SUBST(GUILE_CPPFLAGS)
1223 AC_SUBST(GUILE_LIBS)
1224 AM_CONDITIONAL(HAVE_GUILE, test "${have_libguile}" != no)
1225
1226 # --------------------- #
1227 # Check for libmcheck. #
1228 # --------------------- #
1229
1230 # Enable -lmcheck by default (it provides cheap-enough memory mangling),
1231 # but turn it off if Python is enabled with threads, since -lmcheck is
1232 # not thread safe (http://sourceware.org/bugzilla/show_bug.cgi?id=9939),
1233 # and for releases.
1234 if test \( "${have_libpython}" = "no" -o "${python_has_threads}" = "no" \) \
1235 && $development; then
1236 libmcheck_default=yes
1237 else
1238 libmcheck_default=no
1239 fi
1240 GDB_AC_LIBMCHECK(${libmcheck_default})
1241
1242 if test "$ENABLE_LIBMCHECK" = "yes" \
1243 -a "${have_libpython}" != "no" \
1244 -a "${python_has_threads}" = "yes" ; then
1245 AC_MSG_WARN(--enable-libmcheck may lead to spurious crashes if threads are used in python)
1246 fi
1247
1248 # ------------------------- #
1249 # Checks for header files. #
1250 # ------------------------- #
1251
1252 AC_HEADER_STDC
1253 # elf_hp.h is for HP/UX 64-bit shared library support.
1254 AC_CHECK_HEADERS([nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \
1255 thread_db.h \
1256 sys/fault.h \
1257 sys/file.h sys/filio.h sys/ioctl.h sys/param.h \
1258 sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \
1259 sys/reg.h sys/debugreg.h sys/select.h sys/syscall.h \
1260 termios.h termio.h \
1261 sgtty.h elf_hp.h \
1262 dlfcn.h])
1263 AC_CHECK_HEADERS(sys/proc.h, [], [],
1264 [#if HAVE_SYS_PARAM_H
1265 # include <sys/param.h>
1266 #endif
1267 ])
1268 AC_CHECK_HEADERS(sys/user.h, [], [],
1269 [#if HAVE_SYS_PARAM_H
1270 # include <sys/param.h>
1271 #endif
1272 ])
1273
1274 # On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash
1275 # between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
1276 # think that we don't have <curses.h> if we're using GCC.
1277 case $host_os in
1278 solaris2.[[789]])
1279 if test "$GCC" = yes; then
1280 AC_DEFINE(_MSE_INT_H, 1,
1281 [Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
1282 Solaris 2.[789] when using GCC. ])
1283 fi ;;
1284 esac
1285 AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h ncurses/term.h)
1286 AC_CHECK_HEADERS(term.h, [], [],
1287 [#if HAVE_CURSES_H
1288 # include <curses.h>
1289 #endif
1290 ])
1291
1292 # ------------------------- #
1293 # Checks for declarations. #
1294 # ------------------------- #
1295
1296 libiberty_INIT
1297
1298 AC_CHECK_DECLS([free, malloc, realloc, snprintf])
1299 AM_LC_MESSAGES
1300
1301 # ----------------------- #
1302 # Checks for structures. #
1303 # ----------------------- #
1304
1305 AC_CHECK_MEMBERS([struct stat.st_blocks, struct stat.st_blksize])
1306
1307 # ------------------ #
1308 # Checks for types. #
1309 # ------------------ #
1310
1311 AC_TYPE_SIGNAL
1312 AC_CHECK_TYPES(socklen_t, [], [],
1313 [#include <sys/types.h>
1314 #include <sys/socket.h>
1315 ])
1316
1317 # ------------------------------------- #
1318 # Checks for compiler characteristics. #
1319 # ------------------------------------- #
1320
1321 AC_C_CONST
1322 AC_C_INLINE
1323 AC_C_BIGENDIAN
1324
1325 # ------------------------------ #
1326 # Checks for library functions. #
1327 # ------------------------------ #
1328
1329 AC_FUNC_MMAP
1330 AC_FUNC_VFORK
1331 AC_CHECK_FUNCS([getauxval getrusage getuid getgid \
1332 pipe poll pread pread64 pwrite resize_term \
1333 sbrk setpgid setpgrp setsid \
1334 sigaction sigprocmask sigsetmask socketpair \
1335 ttrace wborder wresize setlocale iconvlist libiconvlist btowc \
1336 setrlimit getrlimit posix_madvise waitpid \
1337 ptrace64 sigaltstack mkdtemp])
1338 AM_LANGINFO_CODESET
1339 GDB_AC_COMMON
1340
1341 # Check the return and argument types of ptrace. No canned test for
1342 # this, so roll our own.
1343 gdb_ptrace_headers='
1344 #include <sys/types.h>
1345 #if HAVE_SYS_PTRACE_H
1346 # include <sys/ptrace.h>
1347 #endif
1348 #if HAVE_UNISTD_H
1349 # include <unistd.h>
1350 #endif
1351 '
1352 # There is no point in checking if we don't have a prototype.
1353 AC_CHECK_DECLS(ptrace, [], [
1354 : ${gdb_cv_func_ptrace_ret='int'}
1355 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
1356 ], $gdb_ptrace_headers)
1357 # Check return type. Varargs (used on GNU/Linux) conflict with the
1358 # empty argument list, so check for that explicitly.
1359 AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret,
1360 AC_TRY_COMPILE($gdb_ptrace_headers,
1361 [extern long ptrace (enum __ptrace_request, ...);],
1362 gdb_cv_func_ptrace_ret='long',
1363 AC_TRY_COMPILE($gdb_ptrace_headers,
1364 [extern int ptrace ();],
1365 gdb_cv_func_ptrace_ret='int',
1366 gdb_cv_func_ptrace_ret='long')))
1367 AC_DEFINE_UNQUOTED(PTRACE_TYPE_RET, $gdb_cv_func_ptrace_ret,
1368 [Define as the return type of ptrace.])
1369 # Check argument types.
1370 AC_CACHE_CHECK([types of arguments for ptrace], gdb_cv_func_ptrace_args, [
1371 AC_TRY_COMPILE($gdb_ptrace_headers,
1372 [extern long ptrace (enum __ptrace_request, ...);],
1373 [gdb_cv_func_ptrace_args='int,int,long,long'],[
1374 for gdb_arg1 in 'int' 'long'; do
1375 for gdb_arg2 in 'pid_t' 'int' 'long'; do
1376 for gdb_arg3 in 'int *' 'caddr_t' 'int' 'long' 'void *'; do
1377 for gdb_arg4 in 'int' 'long' 'void *'; do
1378 AC_TRY_COMPILE($gdb_ptrace_headers, [
1379 extern $gdb_cv_func_ptrace_ret
1380 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4);
1381 ], [gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4";
1382 break 4;])
1383 for gdb_arg5 in 'int *' 'int' 'long'; do
1384 AC_TRY_COMPILE($gdb_ptrace_headers, [
1385 extern $gdb_cv_func_ptrace_ret
1386 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4, $gdb_arg5);
1387 ], [
1388 gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4,$gdb_arg5";
1389 break 5;])
1390 done
1391 done
1392 done
1393 done
1394 done
1395 # Provide a safe default value.
1396 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
1397 ])])
1398 ac_save_IFS=$IFS; IFS=','
1399 set dummy `echo "$gdb_cv_func_ptrace_args" | sed 's/\*/\*/g'`
1400 IFS=$ac_save_IFS
1401 shift
1402 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG3, $[3],
1403 [Define to the type of arg 3 for ptrace.])
1404 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG4, $[4],
1405 [Define to the type of arg 4 for ptrace.])
1406 if test -n "$[5]"; then
1407 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG5, $[5],
1408 [Define to the type of arg 5 for ptrace.])
1409 fi
1410
1411 dnl AC_FUNC_SETPGRP does not work when cross compiling
1412 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
1413 if test "$cross_compiling" = no; then
1414 AC_FUNC_SETPGRP
1415 else
1416 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
1417 [AC_TRY_COMPILE([
1418 #include <unistd.h>
1419 ], [
1420 if (setpgrp(1,1) == -1)
1421 exit (0);
1422 else
1423 exit (1);
1424 ], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
1425 if test $ac_cv_func_setpgrp_void = yes; then
1426 AC_DEFINE(SETPGRP_VOID, 1)
1427 fi
1428 fi
1429
1430 # Assume we'll default to using the included libiberty regex.
1431 gdb_use_included_regex=yes
1432
1433 # However, if the system regex is GNU regex, then default to *not*
1434 # using the included regex.
1435 AC_CACHE_CHECK(
1436 [for GNU regex],
1437 [gdb_cv_have_gnu_regex],
1438 [AC_TRY_COMPILE(
1439 [#include <gnu-versions.h>],
1440 [#define REGEX_INTERFACE_VERSION 1
1441 #if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION
1442 # error "Version mismatch"
1443 #endif],
1444 gdb_cv_have_gnu_regex=yes,
1445 gdb_cv_have_gnu_regex=no)])
1446 if test $gdb_cv_have_gnu_regex = yes; then
1447 gdb_use_included_regex=no
1448 fi
1449
1450 AC_ARG_WITH(included-regex,
1451 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)]),
1452 gdb_with_regex=$withval,
1453 gdb_with_regex=$gdb_use_included_regex)
1454 if test "$gdb_with_regex" = yes; then
1455 AC_DEFINE(USE_INCLUDED_REGEX, 1,
1456 [Define to 1 if the regex included in libiberty should be used.])
1457 fi
1458
1459 # Check if <sys/proc.h> defines `struct thread' with a td_pcb member.
1460 AC_CHECK_MEMBERS([struct thread.td_pcb], [], [],
1461 [#include <sys/param.h>
1462 #include <sys/proc.h>
1463 ])
1464
1465 # See if <sys/lwp.h> defines `struct lwp`.
1466 AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp,
1467 [AC_TRY_COMPILE([#include <sys/param.h>
1468 #include <sys/lwp.h>], [struct lwp l;],
1469 gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)])
1470 if test $gdb_cv_struct_lwp = yes; then
1471 AC_DEFINE(HAVE_STRUCT_LWP, 1,
1472 [Define to 1 if your system has struct lwp.])
1473 fi
1474
1475 # See if <machine/reg.h> degines `struct reg'.
1476 AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg,
1477 [AC_TRY_COMPILE([#include <sys/types.h>
1478 #include <machine/reg.h>], [struct reg r;],
1479 gdb_cv_struct_reg=yes, gdb_cv_struct_reg=no)])
1480 if test $gdb_cv_struct_reg = yes; then
1481 AC_DEFINE(HAVE_STRUCT_REG, 1,
1482 [Define to 1 if your system has struct reg in <machine/reg.h>.])
1483 fi
1484
1485 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
1486 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
1487 AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [],
1488 [#include <machine/reg.h>])
1489
1490 # See if <sys/user.h> supports the %fs_base and %gs_bas amd64 segment registers.
1491 # Older amd64 Linux's don't have the fs_base and gs_base members of
1492 # `struct user_regs_struct'.
1493 AC_CHECK_MEMBERS([struct user_regs_struct.fs_base, struct user_regs_struct.gs_base],
1494 [], [], [#include <sys/user.h>])
1495
1496 # See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
1497 AC_MSG_CHECKING(for PTRACE_GETREGS)
1498 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
1499 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
1500 [PTRACE_GETREGS;],
1501 [gdb_cv_have_ptrace_getregs=yes],
1502 [gdb_cv_have_ptrace_getregs=no])])
1503 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
1504 if test $gdb_cv_have_ptrace_getregs = yes; then
1505 AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
1506 [Define if sys/ptrace.h defines the PTRACE_GETREGS request.])
1507 fi
1508
1509 # See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
1510 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
1511 AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
1512 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
1513 [PTRACE_GETFPXREGS;],
1514 [gdb_cv_have_ptrace_getfpxregs=yes],
1515 [gdb_cv_have_ptrace_getfpxregs=no])])
1516 AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
1517 if test $gdb_cv_have_ptrace_getfpxregs = yes; then
1518 AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
1519 [Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.])
1520 fi
1521
1522 # See if <sys/ptrace.h> provides the PT_GETDBREGS request.
1523 AC_MSG_CHECKING(for PT_GETDBREGS)
1524 AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
1525 [AC_TRY_COMPILE([#include <sys/types.h>
1526 #include <sys/ptrace.h>],
1527 [PT_GETDBREGS;],
1528 [gdb_cv_have_pt_getdbregs=yes],
1529 [gdb_cv_have_pt_getdbregs=no])])
1530 AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
1531 if test $gdb_cv_have_pt_getdbregs = yes; then
1532 AC_DEFINE(HAVE_PT_GETDBREGS, 1,
1533 [Define if sys/ptrace.h defines the PT_GETDBREGS request.])
1534 fi
1535
1536 # See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
1537 AC_MSG_CHECKING(for PT_GETXMMREGS)
1538 AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
1539 [AC_TRY_COMPILE([#include <sys/types.h>
1540 #include <sys/ptrace.h>],
1541 [PT_GETXMMREGS;],
1542 [gdb_cv_have_pt_getxmmregs=yes],
1543 [gdb_cv_have_pt_getxmmregs=no])])
1544 AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
1545 if test $gdb_cv_have_pt_getxmmregs = yes; then
1546 AC_DEFINE(HAVE_PT_GETXMMREGS, 1,
1547 [Define if sys/ptrace.h defines the PT_GETXMMREGS request.])
1548 fi
1549
1550 # Detect which type of /proc is in use, such as for Solaris.
1551
1552 if test "${target}" = "${host}"; then
1553 case "${host}" in
1554 *-*-sysv4.2* | *-*-sysv5* )
1555 AC_DEFINE(NEW_PROC_API, 1,
1556 [Define if you want to use new multi-fd /proc interface.])
1557 ;;
1558 *-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]]*)
1559 AC_DEFINE(NEW_PROC_API, 1,
1560 [Define if you want to use new multi-fd /proc interface.])
1561 ;;
1562 mips-sgi-irix5*)
1563 # Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5.
1564 AC_DEFINE([_KMEMUSER], 1,
1565 [Define to 1 so <sys/proc.h> gets a definition of anon_hdl. Works
1566 around a <sys/proc.h> problem on IRIX 5.])
1567 ;;
1568 esac
1569 fi
1570
1571 if test "$ac_cv_header_sys_procfs_h" = yes; then
1572 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
1573 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
1574 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
1575 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
1576 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
1577 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
1578 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
1579 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
1580 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
1581 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
1582 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
1583
1584
1585 dnl Check for broken prfpregset_t type
1586
1587 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
1588 dnl prfpregset_t type (it's a typedef for the pointer to a struct
1589 dnl instead of the struct itself). We detect this here, and work
1590 dnl around it in gdb_proc_service.h.
1591
1592 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
1593 AC_MSG_CHECKING(whether prfpregset_t type is broken)
1594 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
1595 [AC_TRY_RUN([#include <sys/procfs.h>
1596 int main ()
1597 {
1598 if (sizeof (prfpregset_t) == sizeof (void *))
1599 return 1;
1600 return 0;
1601 }],
1602 gdb_cv_prfpregset_t_broken=no,
1603 gdb_cv_prfpregset_t_broken=yes,
1604 gdb_cv_prfpregset_t_broken=yes)])
1605 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
1606 if test $gdb_cv_prfpregset_t_broken = yes; then
1607 AC_DEFINE(PRFPREGSET_T_BROKEN, 1,
1608 [Define if the prfpregset_t type is broken.])
1609 fi
1610 fi
1611 fi
1612
1613 # Check if the compiler supports the `long long' type.
1614
1615 AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long,
1616 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1617 [[extern long long foo;]],
1618 [[switch (foo & 2) { case 0: return 1; }]])],
1619 gdb_cv_c_long_long=yes,
1620 gdb_cv_c_long_long=no)])
1621 if test $gdb_cv_c_long_long != yes; then
1622 # libdecnumber requires long long.
1623 AC_MSG_ERROR([Compiler must support long long for GDB.])
1624 fi
1625
1626 # Check if the compiler and runtime support printing long longs.
1627
1628 AC_CACHE_CHECK([for long long support in printf],
1629 gdb_cv_printf_has_long_long,
1630 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1631 [[char buf[32];
1632 long long l = 0;
1633 l = (l << 16) + 0x0123;
1634 l = (l << 16) + 0x4567;
1635 l = (l << 16) + 0x89ab;
1636 l = (l << 16) + 0xcdef;
1637 sprintf (buf, "0x%016llx", l);
1638 return (strcmp ("0x0123456789abcdef", buf));]])],
1639 gdb_cv_printf_has_long_long=yes,
1640 gdb_cv_printf_has_long_long=no,
1641 gdb_cv_printf_has_long_long=no)])
1642 if test $gdb_cv_printf_has_long_long = yes; then
1643 AC_DEFINE(PRINTF_HAS_LONG_LONG, 1,
1644 [Define to 1 if the "%ll" format works to print long longs.])
1645 fi
1646
1647 # Check if the compiler and runtime support printing decfloats.
1648
1649 AC_CACHE_CHECK([for decfloat support in printf],
1650 gdb_cv_printf_has_decfloat,
1651 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1652 [[char buf[64];
1653 _Decimal32 d32 = 1.2345df;
1654 _Decimal64 d64 = 1.2345dd;
1655 _Decimal128 d128 = 1.2345dl;
1656 sprintf (buf, "Decimal32: %H\nDecimal64: %D\nDecimal128: %DD", d32, d64, d128);
1657 return (strcmp ("Decimal32: 1.2345\nDecimal64: 1.2345\nDecimal128: 1.2345", buf));]])],
1658 gdb_cv_printf_has_decfloat=yes,
1659 gdb_cv_printf_has_decfloat=no,
1660 gdb_cv_printf_has_decfloat=no)])
1661 if test $gdb_cv_printf_has_decfloat = yes; then
1662 AC_DEFINE(PRINTF_HAS_DECFLOAT, 1,
1663 [Define to 1 if the "%H, %D and %DD" formats work to print decfloats.])
1664 fi
1665
1666 # Check if the compiler supports the `long double' type. We can't use
1667 # AC_C_LONG_DOUBLE because that one does additional checks on the
1668 # constants defined in <float.h> that fail on some systems,
1669 # e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6.
1670
1671 AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double,
1672 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])],
1673 gdb_cv_c_long_double=yes,
1674 gdb_cv_c_long_double=no)])
1675 if test $gdb_cv_c_long_double = yes; then
1676 AC_DEFINE(HAVE_LONG_DOUBLE, 1,
1677 [Define to 1 if the compiler supports long double.])
1678 fi
1679
1680 # Check if the compiler and runtime support printing long doubles.
1681
1682 AC_CACHE_CHECK([for long double support in printf],
1683 gdb_cv_printf_has_long_double,
1684 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1685 [[char buf[16];
1686 long double f = 3.141592653;
1687 sprintf (buf, "%Lg", f);
1688 return (strncmp ("3.14159", buf, 7));]])],
1689 gdb_cv_printf_has_long_double=yes,
1690 gdb_cv_printf_has_long_double=no,
1691 gdb_cv_printf_has_long_double=no)])
1692 if test $gdb_cv_printf_has_long_double = yes; then
1693 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1,
1694 [Define to 1 if the "%Lg" format works to print long doubles.])
1695 fi
1696
1697 # Check if the compiler and runtime support scanning long doubles.
1698
1699 AC_CACHE_CHECK([for long double support in scanf],
1700 gdb_cv_scanf_has_long_double,
1701 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
1702 [[#include <stdio.h>]],
1703 [[char *buf = "3.141592653";
1704 long double f = 0;
1705 sscanf (buf, "%Lg", &f);
1706 return !(f > 3.14159 && f < 3.14160);]])],
1707 gdb_cv_scanf_has_long_double=yes,
1708 gdb_cv_scanf_has_long_double=no,
1709 gdb_cv_scanf_has_long_double=no)])
1710 if test $gdb_cv_scanf_has_long_double = yes; then
1711 AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1,
1712 [Define to 1 if the "%Lg" format works to scan long doubles.])
1713 fi
1714
1715 case ${host_os} in
1716 aix*)
1717 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
1718 SAVE_LDFLAGS=$LDFLAGS
1719
1720 case $GCC in
1721 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
1722 *) gdb_cv_bigtoc=-bbigtoc ;;
1723 esac
1724
1725 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
1726 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
1727 LDFLAGS="${SAVE_LDFLAGS}"
1728 ])
1729 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
1730 ;;
1731 esac
1732
1733 AC_MSG_CHECKING(for the dynamic export flag)
1734 dynamic_list=false
1735 if test "${gdb_native}" = yes; then
1736 # The dynamically loaded libthread_db needs access to symbols in the gdb
1737 # executable. Older GNU ld supports --export-dynamic but --dynamic-list
1738 # may not be supported there.
1739 old_LDFLAGS="$LDFLAGS"
1740 # Older GNU ld supports --export-dynamic but --dynamic-list it does not.
1741 RDYNAMIC="-Wl,--dynamic-list=${srcdir}/proc-service.list"
1742 LDFLAGS="$LDFLAGS $RDYNAMIC"
1743 if test "${have_libpython}" = no; then
1744 AC_TRY_LINK([], [], [dynamic_list=true])
1745 else
1746 # Workaround http://bugs.python.org/issue4434 where static
1747 # libpythonX.Y.a would get its symbols required for
1748 # pythonX.Y/lib-dynload/*.so modules hidden by -Wl,--dynamic-list.
1749 # Problem does not happen for the recommended libpythonX.Y.so linkage.
1750 old_CFLAGS="$CFLAGS"
1751 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
1752 old_LIBS="$LIBS"
1753 LIBS="$LIBS $PYTHON_LIBS"
1754 AC_RUN_IFELSE(
1755 AC_LANG_PROGRAM(
1756 [#include "]${have_libpython}[/Python.h"],
1757 [int err;
1758 Py_Initialize ();
1759 err = PyRun_SimpleString ("import itertools\n");
1760 Py_Finalize ();
1761 return err == 0 ? 0 : 1;]),
1762 [dynamic_list=true], [], [true])
1763 LIBS="$old_LIBS"
1764 CFLAGS="$old_CFLAGS"
1765 fi
1766 LDFLAGS="$old_LDFLAGS"
1767 fi
1768 if $dynamic_list; then
1769 found="-Wl,--dynamic-list"
1770 RDYNAMIC='-Wl,--dynamic-list=$(srcdir)/proc-service.list'
1771 else
1772 found="-rdynamic"
1773 RDYNAMIC="-rdynamic"
1774 fi
1775 AC_SUBST(RDYNAMIC)
1776 AC_MSG_RESULT($found)
1777
1778 dnl For certain native configurations, we need to check whether thread
1779 dnl support can be built in or not.
1780 dnl
1781 dnl Note that we only want this if we are both native (host == target),
1782 dnl and not doing a canadian cross build (build == host).
1783
1784 if test ${build} = ${host} -a ${host} = ${target} ; then
1785 case ${host_os} in
1786 solaris*)
1787 # See if thread_db library is around for Solaris thread debugging.
1788 # Note that we must explicitly test for version 1 of the library
1789 # because version 0 (present on Solaris 2.4 or earlier) doesn't have
1790 # the same API.
1791 AC_MSG_CHECKING(for Solaris thread debugging library)
1792 if test -f /usr/lib/libthread_db.so.1 ; then
1793 AC_MSG_RESULT(yes)
1794 AC_DEFINE(HAVE_THREAD_DB_LIB, 1,
1795 [Define if using Solaris thread debugging.])
1796 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
1797 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
1798 AC_CHECK_LIB(dl, dlopen)
1799 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} $RDYNAMIC"
1800 # Sun randomly tweaked the prototypes in <proc_service.h>
1801 # at one point.
1802 AC_MSG_CHECKING(if <proc_service.h> is old)
1803 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
1804 AC_TRY_COMPILE([
1805 #include <proc_service.h>
1806 ps_err_e ps_pdwrite
1807 (struct ps_prochandle*, psaddr_t, const void*, size_t);
1808 ],, gdb_cv_proc_service_is_old=no,
1809 gdb_cv_proc_service_is_old=yes)
1810 ])
1811 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
1812 if test $gdb_cv_proc_service_is_old = yes; then
1813 AC_DEFINE(PROC_SERVICE_IS_OLD, 1,
1814 [Define if <proc_service.h> on solaris uses int instead of
1815 size_t, and assorted other type changes.])
1816 fi
1817 else
1818 AC_MSG_RESULT(no)
1819 fi
1820 ;;
1821 aix*)
1822 AC_MSG_CHECKING(for AiX thread debugging library)
1823 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
1824 [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
1825 [#ifndef PTHDB_VERSION_3
1826 #error
1827 #endif],
1828 gdb_cv_have_aix_thread_debug=yes,
1829 gdb_cv_have_aix_thread_debug=no)])
1830 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
1831 if test $gdb_cv_have_aix_thread_debug = yes; then
1832 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
1833 CONFIG_OBS="${CONFIG_OBS} aix-thread.o"
1834 LIBS="$LIBS -lpthdebug"
1835
1836 # Older versions of AIX do not provide the declaration for
1837 # the getthrds function (it appears that it was introduced
1838 # with AIX 6.x).
1839 AC_CHECK_DECLS(getthrds, [], [], [[#include <procinfo.h>]])
1840 fi
1841 ;;
1842 esac
1843 AC_SUBST(CONFIG_LDFLAGS)
1844 fi
1845
1846 dnl See if we have a thread_db header file that has TD_NOTALLOC and
1847 dnl other error codes.
1848 if test "x$ac_cv_header_thread_db_h" = "xyes"; then
1849 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
1850 gdb_cv_thread_db_h_has_td_notalloc,
1851 AC_TRY_COMPILE(
1852 [#include <thread_db.h>],
1853 [int i = TD_NOTALLOC;],
1854 gdb_cv_thread_db_h_has_td_notalloc=yes,
1855 gdb_cv_thread_db_h_has_td_notalloc=no
1856 )
1857 )
1858 AC_CACHE_CHECK([whether <thread_db.h> has TD_VERSION],
1859 gdb_cv_thread_db_h_has_td_version,
1860 AC_TRY_COMPILE(
1861 [#include <thread_db.h>],
1862 [int i = TD_VERSION;],
1863 gdb_cv_thread_db_h_has_td_version=yes,
1864 gdb_cv_thread_db_h_has_td_version=no
1865 )
1866 )
1867 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTLS],
1868 gdb_cv_thread_db_h_has_td_notls,
1869 AC_TRY_COMPILE(
1870 [#include <thread_db.h>],
1871 [int i = TD_NOTLS;],
1872 gdb_cv_thread_db_h_has_td_notls=yes,
1873 gdb_cv_thread_db_h_has_td_notls=no
1874 )
1875 )
1876 fi
1877 if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
1878 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
1879 [Define if <thread_db.h> has the TD_NOTALLOC error code.])
1880 fi
1881 if test "x$gdb_cv_thread_db_h_has_td_version" = "xyes"; then
1882 AC_DEFINE(THREAD_DB_HAS_TD_VERSION, 1,
1883 [Define if <thread_db.h> has the TD_VERSION error code.])
1884 fi
1885 if test "x$gdb_cv_thread_db_h_has_td_notls" = "xyes"; then
1886 AC_DEFINE(THREAD_DB_HAS_TD_NOTLS, 1,
1887 [Define if <thread_db.h> has the TD_NOTLS error code.])
1888 fi
1889
1890 dnl See if we have a sys/syscall header file that has __NR_tkill.
1891 if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then
1892 AC_CACHE_CHECK([whether <sys/syscall.h> has __NR_tkill],
1893 gdb_cv_sys_syscall_h_has_tkill,
1894 AC_TRY_COMPILE(
1895 [#include <sys/syscall.h>],
1896 [int i = __NR_tkill;],
1897 gdb_cv_sys_syscall_h_has_tkill=yes,
1898 gdb_cv_sys_syscall_h_has_tkill=no
1899 )
1900 )
1901 fi
1902 dnl See if we can issue tkill syscall.
1903 if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes"; then
1904 AC_CHECK_FUNC(syscall,
1905 AC_DEFINE(HAVE_TKILL_SYSCALL, 1, [Define if you support the tkill syscall.])
1906 )
1907 fi
1908
1909 dnl Check if we can disable the virtual address space randomization.
1910 dnl The functionality of setarch -R.
1911 AC_CHECK_DECLS([ADDR_NO_RANDOMIZE],,, [#include <sys/personality.h>])
1912 define([PERSONALITY_TEST], [AC_LANG_PROGRAM([#include <sys/personality.h>], [
1913 # if !HAVE_DECL_ADDR_NO_RANDOMIZE
1914 # define ADDR_NO_RANDOMIZE 0x0040000
1915 # endif
1916 /* Test the flag could be set and stays set. */
1917 personality (personality (0xffffffff) | ADDR_NO_RANDOMIZE);
1918 if (!(personality (personality (0xffffffff)) & ADDR_NO_RANDOMIZE))
1919 return 1])])
1920 AC_RUN_IFELSE([PERSONALITY_TEST],
1921 [have_personality=true],
1922 [have_personality=false],
1923 [AC_LINK_IFELSE([PERSONALITY_TEST],
1924 [have_personality=true],
1925 [have_personality=false])])
1926 if $have_personality
1927 then
1928 AC_DEFINE([HAVE_PERSONALITY], 1,
1929 [Define if you support the personality syscall.])
1930 fi
1931
1932 dnl Set the host's .gdbinit filename.
1933 case $host_os in
1934 go32* | *djgpp*)
1935 gdbinit=gdb.ini
1936 ;;
1937 *)
1938 gdbinit=.gdbinit
1939 ;;
1940 esac
1941 AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.])
1942
1943 dnl Handle optional features that can be enabled.
1944
1945 # Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
1946 # except that the argument to --with-sysroot is optional.
1947 # --with-sysroot (or --with-sysroot=yes) sets the default sysroot path.
1948 if test "x$with_sysroot" = xyes; then
1949 with_sysroot="${exec_prefix}/${target_alias}/sys-root"
1950 fi
1951 AC_ARG_WITH(sysroot,
1952 AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
1953 [search for usr/lib et al within DIR]),
1954 [TARGET_SYSTEM_ROOT=$withval], [TARGET_SYSTEM_ROOT=])
1955 AC_DEFINE_DIR(TARGET_SYSTEM_ROOT, TARGET_SYSTEM_ROOT,
1956 [search for usr/lib et al within DIR])
1957 AC_SUBST(TARGET_SYSTEM_ROOT)
1958 GDB_AC_DEFINE_RELOCATABLE(TARGET_SYSTEM_ROOT, sysroot, ${ac_define_dir})
1959
1960 GDB_AC_WITH_DIR(SYSTEM_GDBINIT, system-gdbinit,
1961 [automatically load a system-wide gdbinit file],
1962 [])
1963
1964 AC_ARG_ENABLE(werror,
1965 AS_HELP_STRING([--enable-werror], [treat compile warnings as errors]),
1966 [case "${enableval}" in
1967 yes | y) ERROR_ON_WARNING="yes" ;;
1968 no | n) ERROR_ON_WARNING="no" ;;
1969 *) AC_MSG_ERROR(bad value ${enableval} for --enable-werror) ;;
1970 esac])
1971
1972 # Enable -Werror by default when using gcc in C mode. Leave it off
1973 # for C++ until we're warning clean. Turn it off for releases.
1974 if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" \
1975 && test x"$enable_build_with_cxx" != x"yes" \
1976 && $development; then
1977 ERROR_ON_WARNING=yes
1978 fi
1979
1980 WERROR_CFLAGS=""
1981 if test "${ERROR_ON_WARNING}" = yes ; then
1982 WERROR_CFLAGS="-Werror"
1983 fi
1984
1985 # These options work in either C or C++ modes.
1986 build_warnings="-Wall -Wpointer-arith \
1987 -Wno-unused -Wunused-value -Wunused-function \
1988 -Wno-switch -Wno-char-subscripts \
1989 -Wempty-body"
1990
1991 # Now add in C and C++ specific options, depending on mode.
1992 if test "$enable_build_with_cxx" = "yes"; then
1993 build_warnings="$build_warnings -Wno-sign-compare -Wno-write-strings \
1994 -Wno-narrowing"
1995 else
1996 build_warnings="$build_warnings -Wpointer-sign -Wmissing-prototypes \
1997 -Wdeclaration-after-statement -Wmissing-parameter-type \
1998 -Wold-style-declaration -Wold-style-definition"
1999 fi
2000
2001 # Enable -Wno-format by default when using gcc on mingw since many
2002 # GCC versions complain about %I64.
2003 case "${host}" in
2004 *-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;;
2005 *) build_warnings="$build_warnings -Wformat-nonliteral" ;;
2006 esac
2007
2008 AC_ARG_ENABLE(build-warnings,
2009 AS_HELP_STRING([--enable-build-warnings], [enable build-time compiler warnings if gcc is used]),
2010 [case "${enableval}" in
2011 yes) ;;
2012 no) build_warnings="-w";;
2013 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
2014 build_warnings="${build_warnings} ${t}";;
2015 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
2016 build_warnings="${t} ${build_warnings}";;
2017 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
2018 esac
2019 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
2020 echo "Setting compiler warning flags = $build_warnings" 6>&1
2021 fi])dnl
2022 AC_ARG_ENABLE(gdb-build-warnings,
2023 AS_HELP_STRING([--enable-gdb-build-warnings], [enable GDB specific build-time compiler warnings if gcc is used]),
2024 [case "${enableval}" in
2025 yes) ;;
2026 no) build_warnings="-w";;
2027 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
2028 build_warnings="${build_warnings} ${t}";;
2029 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
2030 build_warnings="${t} ${build_warnings}";;
2031 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
2032 esac
2033 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
2034 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
2035 fi])dnl
2036
2037 # The set of warnings supported by a C++ compiler is not the same as
2038 # of the C compiler.
2039 if test "$enable_build_with_cxx" = "yes"; then
2040 AC_LANG_PUSH([C++])
2041 fi
2042
2043 WARN_CFLAGS=""
2044 if test "x${build_warnings}" != x -a "x$GCC" = xyes
2045 then
2046 AC_MSG_CHECKING(compiler warning flags)
2047 # Separate out the -Werror flag as some files just cannot be
2048 # compiled with it enabled.
2049 for w in ${build_warnings}; do
2050 case $w in
2051 -Werr*) WERROR_CFLAGS=-Werror ;;
2052 *)
2053 # Check whether GCC accepts it.
2054 saved_CFLAGS="$CFLAGS"
2055 CFLAGS="$CFLAGS $w"
2056 saved_CXXFLAGS="$CXXFLAGS"
2057 CXXFLAGS="$CXXFLAGS $w"
2058 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
2059 CFLAGS="$saved_CFLAGS"
2060 CXXFLAGS="$saved_CXXFLAGS"
2061 esac
2062 done
2063 AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS})
2064 fi
2065 AC_SUBST(WARN_CFLAGS)
2066 AC_SUBST(WERROR_CFLAGS)
2067
2068 if test "$enable_build_with_cxx" = "yes"; then
2069 AC_LANG_POP([C++])
2070 fi
2071
2072 # In the Cygwin environment, we need some additional flags.
2073 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
2074 [AC_EGREP_CPP(^lose$, [
2075 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
2076 lose
2077 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
2078
2079
2080 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
2081 SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o"
2082 case ${host} in
2083 *go32* ) SER_HARDWIRE=ser-go32.o ;;
2084 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
2085 *mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;;
2086 esac
2087 AC_SUBST(SER_HARDWIRE)
2088
2089 # libreadline needs libuser32.a in a cygwin environment
2090 WIN32LIBS=
2091 if test x$gdb_cv_os_cygwin = xyes; then
2092 WIN32LIBS="-luser32"
2093 case "${target}" in
2094 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
2095 ;;
2096 esac
2097 fi
2098
2099 # The ser-tcp.c module requires sockets.
2100 case ${host} in
2101 *mingw32*)
2102 AC_DEFINE(USE_WIN32API, 1,
2103 [Define if we should use the Windows API, instead of the
2104 POSIX API. On Windows, we use the Windows API when
2105 building for MinGW, but the POSIX API when building
2106 for Cygwin.])
2107 WIN32LIBS="$WIN32LIBS -lws2_32"
2108 ;;
2109 esac
2110 AC_SUBST(WIN32LIBS)
2111
2112 # Add ELF support to GDB, but only if BFD includes ELF support.
2113 GDB_AC_CHECK_BFD([for ELF support in BFD], gdb_cv_var_elf,
2114 [bfd_get_elf_phdr_upper_bound (NULL)], elf-bfd.h)
2115 if test $gdb_cv_var_elf = yes; then
2116 CONFIG_OBS="$CONFIG_OBS elfread.o stap-probe.o dtrace-probe.o"
2117 AC_DEFINE(HAVE_ELF, 1,
2118 [Define if ELF support should be included.])
2119 # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
2120 if test "$plugins" = "yes"; then
2121 AC_SEARCH_LIBS(dlopen, dl)
2122 fi
2123 fi
2124
2125 # Add macho support to GDB, but only if BFD includes it.
2126 GDB_AC_CHECK_BFD([for Mach-O support in BFD], gdb_cv_var_macho,
2127 [bfd_mach_o_lookup_command (NULL, 0, NULL)], mach-o.h)
2128 if test $gdb_cv_var_macho = yes; then
2129 CONFIG_OBS="$CONFIG_OBS machoread.o"
2130 fi
2131
2132 # Add SOM support to GDB, but only if BFD includes it.
2133 GDB_AC_CHECK_BFD([for SOM support in BFD], gdb_cv_var_som,
2134 [bfd_som_attach_aux_hdr (NULL, 0, NULL)], som.h)
2135 if test $gdb_cv_var_som = yes; then
2136 CONFIG_OBS="$CONFIG_OBS somread.o"
2137 fi
2138
2139 # Add any host-specific objects to GDB.
2140 CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
2141
2142 # If building on ELF, look for lzma support for embedded compressed debug info.
2143 if test $gdb_cv_var_elf = yes; then
2144 AC_ARG_WITH(lzma,
2145 AS_HELP_STRING([--with-lzma], [support lzma compression (auto/yes/no)]),
2146 [], [with_lzma=auto])
2147 AC_MSG_CHECKING([whether to use lzma])
2148 AC_MSG_RESULT([$with_lzma])
2149
2150 if test "${with_lzma}" != no; then
2151 AC_LIB_HAVE_LINKFLAGS([lzma], [], [#include "lzma.h"],
2152 [lzma_index_iter iter;
2153 lzma_index_iter_init (&iter, 0);
2154 lzma_mf_is_supported (LZMA_MF_HC3);])
2155 if test "$HAVE_LIBLZMA" != yes; then
2156 if test "$with_lzma" = yes; then
2157 AC_MSG_ERROR([missing liblzma for --with-lzma])
2158 fi
2159 fi
2160 fi
2161 fi
2162
2163 LIBGUI="../libgui/src/libgui.a"
2164 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
2165 AC_SUBST(LIBGUI)
2166 AC_SUBST(GUI_CFLAGS_X)
2167
2168 WIN32LDAPP=
2169 AC_SUBST(WIN32LIBS)
2170 AC_SUBST(WIN32LDAPP)
2171
2172 case "${host}" in
2173 *-*-cygwin* | *-*-mingw* )
2174 configdir="win"
2175 ;;
2176 *)
2177 configdir="unix"
2178 ;;
2179 esac
2180
2181 GDBTKLIBS=
2182 if test "${enable_gdbtk}" = "yes"; then
2183
2184 # Gdbtk must have an absolute path to srcdir in order to run
2185 # properly when not installed.
2186 here=`pwd`
2187 cd ${srcdir}
2188 GDBTK_SRC_DIR=`pwd`
2189 cd $here
2190
2191 SC_PATH_TCLCONFIG
2192
2193 # If $no_tk is nonempty, then we can't do Tk, and there is no
2194 # point to doing Tcl.
2195 SC_PATH_TKCONFIG
2196
2197 if test -z "${no_tcl}" -a -z "${no_tk}"; then
2198 SC_LOAD_TCLCONFIG
2199
2200 # Check for in-tree tcl
2201 here=`pwd`
2202 cd ${srcdir}/..
2203 topdir=`pwd`
2204 cd ${here}
2205
2206 intree="no"
2207 if test "${TCL_SRC_DIR}" = "${topdir}/tcl"; then
2208 intree="yes"
2209 fi
2210
2211 # Find Tcl private headers
2212 if test x"${intree}" = xno; then
2213 CY_AC_TCL_PRIVATE_HEADERS
2214 TCL_INCLUDE="${TCL_INCLUDE_SPEC} ${TCL_PRIVATE_INCLUDE}"
2215 TCL_LIBRARY="${TCL_LIB_SPEC}"
2216 TCL_DEPS=""
2217 else
2218 # If building tcl in the same src tree, private headers
2219 # are not needed, but we need to be sure to use the right
2220 # headers library
2221 TCL_INCLUDE="-I${TCL_SRC_DIR}/generic"
2222 TCL_LIBRARY="${TCL_BUILD_LIB_SPEC}"
2223 TCL_DEPS="../tcl/${configdir}${TCL_LIB_FILE}"
2224 fi
2225 AC_SUBST(TCL_INCLUDE)
2226 AC_SUBST(TCL_LIBRARY)
2227 AC_SUBST(TCL_DEPS)
2228
2229 SC_LOAD_TKCONFIG
2230
2231 # Check for in-tree Tk
2232 intree="no"
2233 if test "${TK_SRC_DIR}" = "${topdir}/tk"; then
2234 intree="yes"
2235 fi
2236
2237 # Find Tk private headers
2238 if test x"${intree}" = xno; then
2239 CY_AC_TK_PRIVATE_HEADERS
2240 TK_INCLUDE="${TK_INCLUDE_SPEC} ${TK_PRIVATE_INCLUDE}"
2241 TK_LIBRARY=${TK_LIB_SPEC}
2242 TK_DEPS=""
2243 else
2244 TK_INCLUDE="-I${TK_SRC_DIR}/generic"
2245 TK_LIBRARY="${TK_BUILD_LIB_SPEC}"
2246 TK_DEPS="../tk/${configdir}/${TK_LIB_FILE}"
2247 fi
2248 AC_SUBST(TK_INCLUDE)
2249 AC_SUBST(TK_LIBRARY)
2250 AC_SUBST(TK_DEPS)
2251 AC_SUBST(TK_XINCLUDES)
2252
2253 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
2254
2255 # Include some libraries that Tcl and Tk want.
2256 TCL_LIBS='$(LIBGUI) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
2257 # Yes, the ordering seems wrong here. But it isn't.
2258 # TK_LIBS is the list of libraries that need to be linked
2259 # after Tcl/Tk. Note that this isn't put into LIBS. If it
2260 # were in LIBS then any link tests after this point would
2261 # try to include things like `$(LIBGUI)', which wouldn't work.
2262 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
2263
2264 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
2265 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
2266 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
2267 CONFIG_ALL="${CONFIG_ALL} all-gdbtk"
2268 CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk"
2269 CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk"
2270 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk"
2271
2272 if test x$gdb_cv_os_cygwin = xyes; then
2273 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
2274 WIN32LDAPP="-Wl,--subsystem,console"
2275 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
2276 fi
2277
2278 AC_CONFIG_SUBDIRS(gdbtk)
2279 fi
2280 fi
2281
2282 AC_SUBST(X_CFLAGS)
2283 AC_SUBST(X_LDFLAGS)
2284 AC_SUBST(X_LIBS)
2285 AC_SUBST(GDBTKLIBS)
2286 AC_SUBST(GDBTK_CFLAGS)
2287 AC_SUBST(GDBTK_SRC_DIR)
2288
2289 AC_PATH_X
2290
2291 # Unlike the sim directory, whether a simulator is linked is controlled by
2292 # presence of a gdb_sim definition in the target configure.tgt entry.
2293 # This code just checks for a few cases where we'd like to ignore those
2294 # definitions, even when they're present in the '.mt' file. These cases
2295 # are when --disable-sim is specified, or if the simulator directory is
2296 # not part of the source tree.
2297 #
2298 AC_ARG_ENABLE(sim,
2299 AS_HELP_STRING([--enable-sim], [link gdb with simulator]),
2300 [echo "enable_sim = $enable_sim";
2301 echo "enableval = ${enableval}";
2302 case "${enableval}" in
2303 yes) ignore_sim=false ;;
2304 no) ignore_sim=true ;;
2305 *) ignore_sim=false ;;
2306 esac],
2307 [ignore_sim=false])
2308
2309 if test ! -d "${srcdir}/../sim"; then
2310 ignore_sim=true
2311 fi
2312
2313 SIM=
2314 SIM_OBS=
2315 if test "${ignore_sim}" = "false"; then
2316 if test x"${gdb_sim}" != x ; then
2317 SIM="${gdb_sim}"
2318 SIM_OBS="remote-sim.o"
2319 AC_DEFINE(WITH_SIM, 1, [Define if the simulator is being linked in.])
2320 fi
2321 fi
2322 AC_SUBST(SIM)
2323 AC_SUBST(SIM_OBS)
2324
2325 AC_SUBST(ENABLE_CFLAGS)
2326 AC_SUBST(PROFILE_CFLAGS)
2327
2328 AC_SUBST(CONFIG_OBS)
2329 AC_SUBST(CONFIG_DEPS)
2330 AC_SUBST(CONFIG_SRCS)
2331 AC_SUBST(CONFIG_ALL)
2332 AC_SUBST(CONFIG_CLEAN)
2333 AC_SUBST(CONFIG_INSTALL)
2334 AC_SUBST(CONFIG_UNINSTALL)
2335
2336 # List of host floatformats.
2337 AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat])
2338 AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat])
2339 AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat])
2340
2341 # target_subdir is used by the testsuite to find the target libraries.
2342 target_subdir=
2343 if test "${host}" != "${target}"; then
2344 target_subdir="${target_alias}/"
2345 fi
2346 AC_SUBST(target_subdir)
2347
2348 frags=
2349 if test "${gdb_native}" = "yes"; then
2350 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
2351 if test ! -f ${host_makefile_frag}; then
2352 AC_MSG_ERROR("*** Gdb does not support native target ${host}")
2353 fi
2354 frags="$frags $host_makefile_frag"
2355 else
2356 host_makefile_frag=/dev/null
2357 fi
2358
2359 AC_SUBST_FILE(host_makefile_frag)
2360 AC_SUBST(frags)
2361
2362 changequote(,)dnl
2363 if test "${gdb_native}" = "yes"; then
2364 # We pick this up from the host configuration file (.mh) because we
2365 # do not have a native configuration Makefile fragment.
2366 nativefile=`sed -n '
2367 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
2368 ' ${host_makefile_frag}`
2369 fi
2370 changequote([,])
2371
2372 if test x"${gdb_osabi}" != x ; then
2373 AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
2374 [Define to the default OS ABI for this configuration.])
2375 fi
2376
2377 # Enable multi-ice-gdb-server.
2378 AC_ARG_ENABLE(multi-ice,
2379 AS_HELP_STRING([--enable-multi-ice], [build the multi-ice-gdb-server]),
2380 [case $enableval in
2381 yes | no)
2382 ;;
2383 *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;;
2384 esac])
2385 if test "x$enable_multi_ice" = xyes; then
2386 AC_CONFIG_SUBDIRS(multi-ice)
2387 fi
2388
2389 AC_ARG_ENABLE(gdbserver,
2390 AS_HELP_STRING([--enable-gdbserver],
2391 [automatically build gdbserver (yes/no/auto, default is auto)]),
2392 [case "${enableval}" in
2393 yes| no|auto) ;;
2394 *) AC_MSG_ERROR(bad value ${enableval} for --enable-gdbserver option) ;;
2395 esac],[enable_gdbserver=auto])
2396
2397 # We only build gdbserver automatically in a native configuration, and
2398 # only if the user did not explicitly disable its build.
2399 if test "$gdb_native" = "yes" -a "$enable_gdbserver" != "no"; then
2400 AC_MSG_CHECKING(whether gdbserver is supported on this host)
2401 if test "x$build_gdbserver" = xyes; then
2402 AC_MSG_RESULT(yes)
2403 AC_CONFIG_SUBDIRS(gdbserver)
2404 gdbserver_build_enabled=yes
2405 else
2406 AC_MSG_RESULT(no)
2407 fi
2408 fi
2409
2410 # If the user explicitly request the gdbserver to be built, verify that
2411 # we were in fact able to enable it.
2412 if test "$enable_gdbserver" = "yes" -a "$gdbserver_build_enabled" != "yes"; then
2413 AC_MSG_ERROR(Automatic gdbserver build is not supported for this configuration)
2414 fi
2415
2416 # Check for babeltrace and babeltrace-ctf
2417 AC_ARG_WITH(babeltrace,
2418 AC_HELP_STRING([--with-babeltrace], [include babeltrace support (auto/yes/no)]),
2419 [], [with_babeltrace=auto])
2420 AC_MSG_CHECKING([whether to use babeltrace])
2421 AC_MSG_RESULT([$with_babeltrace])
2422
2423 if test "x$with_babeltrace" = "xno"; then
2424 AC_MSG_WARN([babletrace support disabled; GDB is unable to read CTF data.])
2425 else
2426 # Append -Werror to CFLAGS so that configure can catch the warning
2427 # "assignment from incompatible pointer type", which is related to
2428 # the babeltrace change from 1.0.3 to 1.1.0. Babeltrace 1.1.0 works
2429 # in GDB, while babeltrace 1.0.3 is broken.
2430 # AC_LIB_HAVE_LINKFLAGS may modify CPPFLAGS in it, so it should be
2431 # safe to save and restore CFLAGS here.
2432 saved_CFLAGS=$CFLAGS
2433 CFLAGS="$CFLAGS -Werror"
2434 AC_LIB_HAVE_LINKFLAGS([babeltrace], [babeltrace-ctf],
2435 [#include <babeltrace/babeltrace.h>
2436 #include <babeltrace/ctf/events.h>
2437 #include <babeltrace/ctf/iterator.h>],
2438 [struct bt_iter_pos *pos = bt_iter_get_pos (bt_ctf_get_iter (NULL));
2439 struct bt_ctf_event *event = NULL;
2440 const struct bt_definition *scope;
2441
2442 bt_iter_set_pos (bt_ctf_get_iter (NULL), pos);
2443 scope = bt_ctf_get_top_level_scope (event,
2444 BT_STREAM_EVENT_HEADER);
2445 bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id"));
2446 ])
2447 CFLAGS=$saved_CFLAGS
2448
2449 if test "$HAVE_LIBBABELTRACE" != yes; then
2450 if test "$with_babeltrace" = yes; then
2451 AC_MSG_ERROR([babeltrace is missing or unusable])
2452 else
2453 AC_MSG_WARN([babeltrace is missing or unusable; GDB is unable to read CTF data.])
2454 fi
2455 fi
2456 fi
2457
2458 # If nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link
2459 # to an empty version.
2460
2461 files=
2462 links=
2463
2464 rm -f nm.h
2465 if test "${nativefile}" != ""; then
2466 case "${nativefile}" in
2467 nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;;
2468 * ) GDB_NM_FILE="${nativefile}"
2469 esac
2470 files="${files} ${GDB_NM_FILE}"
2471 links="${links} nm.h"
2472 AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}", [nativefile])
2473 fi
2474 AC_SUBST(GDB_NM_FILE)
2475
2476 AC_LINK_FILES($files, $links)
2477
2478 dnl Check for exe extension set on certain hosts (e.g. Win32)
2479 AC_EXEEXT
2480
2481 dnl Detect the character set used by this host.
2482 dnl At the moment, we just assume it's UTF-8.
2483 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8",
2484 [Define to be a string naming the default host character set.])
2485
2486 GDB_AC_TRANSFORM([gdb], [GDB_TRANSFORM_NAME])
2487 GDB_AC_TRANSFORM([gcore], [GCORE_TRANSFORM_NAME])
2488 AC_CONFIG_FILES([gcore], [chmod +x gcore])
2489
2490 AC_OUTPUT(Makefile gdb-gdb.gdb doc/Makefile data-directory/Makefile,
2491 [
2492 case x$CONFIG_HEADERS in
2493 xconfig.h:config.in)
2494 echo > stamp-h ;;
2495 esac
2496 ])
2497
2498 exit 0
This page took 0.147467 seconds and 3 git commands to generate.