1 dnl Autoconf configure script for GDB, the GNU debugger.
2 dnl Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
4 dnl Free Software Foundation, Inc.
6 dnl This file is part of GDB.
8 dnl This program is free software; you can redistribute it and/or modify
9 dnl it under the terms of the GNU General Public License as published by
10 dnl the Free Software Foundation; either version 3 of the License, or
11 dnl (at your option) any later version.
13 dnl This program is distributed in the hope that it will be useful,
14 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
15 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 dnl GNU General Public License for more details.
18 dnl You should have received a copy of the GNU General Public License
19 dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
21 dnl Process this file with autoconf to produce a configure script.
25 AC_CONFIG_HEADER(config.h:config.in)
34 AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
37 dnl List of object files and targets accumulated by configure.
49 dnl Set up for gettext.
50 ZW_GNU_GETTEXT_SISTER_DIR
52 localedir='${datadir}/locale'
55 if test x"$USE_NLS" = xyes; then
56 CONFIG_ALL="$CONFIG_ALL all-po"
57 CONFIG_CLEAN="$CONFIG_CLEAN clean-po"
58 CONFIG_INSTALL="$CONFIG_INSTALL install-po"
59 CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po"
63 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ])
66 debugdir=${libdir}/debug
68 AC_ARG_WITH(separate-debug-dir,
69 [ --with-separate-debug-dir=path Look for global separate debug info in this path [LIBDIR/debug]],
70 [debugdir="${withval}"])
72 AC_DEFINE_DIR(DEBUGDIR, debugdir,
73 [Global directory for separate debug files. ])
74 #AC_DEFINE_UNQUOTED(DEBUGDIR, "$debugdir"),
76 if test "x$exec_prefix" = xNONE || test "x$exec_prefix" = 'x${prefix}'; then
77 if test "x$prefix" = xNONE; then
78 test_prefix=/usr/local
83 test_prefix=$exec_prefix
86 "${test_prefix}"|"${test_prefix}/"*|\
87 '${exec_prefix}'|'${exec_prefix}/'*)
88 AC_DEFINE(DEBUGDIR_RELOCATABLE, 1, [Define if the debug directory should be relocated when GDB is moved.])
92 AC_CONFIG_SUBDIRS(doc testsuite)
94 # Provide defaults for some variables set by the per-host and per-target
96 gdb_host_obs=posix-hdep.o
98 if test "${target}" = "${host}"; then
104 . $srcdir/configure.host
106 . $srcdir/configure.tgt
108 # Fetch the default architecture and default target vector from BFD.
109 targ=$target; . $srcdir/../bfd/config.bfd
111 # We only want the first architecture, so strip off the others if
112 # there is more than one.
113 targ_archs=`echo $targ_archs | sed 's/ .*//'`
115 if test "x$targ_archs" != x; then
116 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs,
117 [Define to BFD's default architecture. ])
119 if test "x$targ_defvec" != x; then
120 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec,
121 [Define to BFD's default target vector. ])
124 TARGET_OBS="${gdb_target_obs}"
129 # The CLI cannot be disabled yet, but may be in the future.
132 AC_ARG_ENABLE(gdbcli,
133 [ --disable-gdbcli disable command-line interface (CLI)],
138 AC_MSG_ERROR([the command-line interface cannot be disabled yet]) ;;
140 AC_MSG_ERROR([bad value $enableval for --enable-gdbcli]) ;;
143 if test x"$enable_gdbcli" = xyes; then
144 if test -d $srcdir/cli; then
145 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)"
146 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)"
147 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)"
148 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)"
154 [ --disable-gdbmi disable machine-interface (MI)],
159 AC_MSG_ERROR([bad value $enableval for --enable-gdbmi]) ;;
162 if test x"$enable_gdbmi" = xyes; then
163 if test -d $srcdir/mi; then
164 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)"
165 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)"
166 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)"
167 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)"
173 [ --enable-tui enable full-screen terminal user interface (TUI)],
178 AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
179 esac],enable_tui=yes)
183 [ --enable-gdbtk enable gdbtk graphical user interface (GUI)],
188 AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;;
190 [if test -d $srcdir/gdbtk -a -d $srcdir/../itcl; then
195 # We unconditionally disable gdbtk tests on selected platforms.
198 AC_MSG_WARN([gdbtk isn't supported on $host; disabling])
203 AC_ARG_WITH(libunwind,
204 [ --with-libunwind Use libunwind frame unwinding support],
205 [case "${withval}" in
206 yes) enable_libunwind=yes ;;
207 no) enable_libunwind=no ;;
208 *) AC_MSG_ERROR(bad value ${withval} for GDB with-libunwind option) ;;
210 AC_CHECK_HEADERS(libunwind.h)
211 AC_CHECK_HEADERS(libunwind-ia64.h)
212 if test x"$ac_cv_header_libunwind_h" = xyes -a x"$ac_cv_header_libunwind_ia64_h" = xyes; then
213 enable_libunwind=yes;
217 if test x"$enable_libunwind" = xyes; then
218 AC_CHECK_HEADERS(libunwind.h)
219 AC_CHECK_HEADERS(libunwind-ia64.h)
220 AC_DEFINE(HAVE_LIBUNWIND, 1, [Define if libunwind library is being used.])
221 CONFIG_OBS="$CONFIG_OBS libunwind-frame.o"
222 CONFIG_DEPS="$CONFIG_DEPS libunwind-frame.o"
223 CONFIG_SRCS="$CONFIG_SRCS libunwind-frame.c"
227 AC_ARG_ENABLE(profiling,
228 [ --enable-profiling enable profiling of GDB],
233 AC_MSG_ERROR([bad value $enableval for --enable-profile]) ;;
235 [enable_profiling=no])
237 AC_CHECK_FUNCS(monstartup _mcleanup)
238 AC_CACHE_CHECK([for _etext], ac_cv_var__etext,
243 [free (&_etext);], ac_cv_var__etext=yes, ac_cv_var__etext=no)])
244 if test $ac_cv_var__etext = yes; then
245 AC_DEFINE(HAVE__ETEXT, 1,
246 [Define to 1 if your system has the _etext variable. ])
248 AC_CACHE_CHECK([for etext], ac_cv_var_etext,
253 [free (&etext);], ac_cv_var_etext=yes, ac_cv_var_etext=no)])
254 if test $ac_cv_var_etext = yes; then
255 AC_DEFINE(HAVE_ETEXT, 1,
256 [Define to 1 if your system has the etext variable. ])
258 if test "$enable_profiling" = yes ; then
259 if test $ac_cv_func_monstartup = no || test $ac_cv_func__mcleanup = no; then
260 AC_MSG_ERROR(--enable-profiling requires monstartup and _mcleanup)
264 CFLAGS="$CFLAGS $PROFILE_CFLAGS"
266 AC_CACHE_CHECK([whether $CC supports -pg], ac_cv_cc_supports_pg,
267 [AC_TRY_COMPILE([], [int x;], ac_cv_cc_supports_pg=yes,
268 ac_cv_cc_supports_pg=no)])
270 if test $ac_cv_cc_supports_pg = no; then
271 AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg)
277 # --------------------- #
278 # Checks for programs. #
279 # --------------------- #
287 AC_CHECK_TOOL(AR, ar)
288 AC_CHECK_TOOL(DLLTOOL, dlltool)
289 AC_CHECK_TOOL(WINDRES, windres)
291 # Needed for GNU/Hurd.
292 AC_CHECK_TOOL(MIG, mig)
294 # ---------------------- #
295 # Checks for libraries. #
296 # ---------------------- #
298 # We might need to link with -lm; most simulators need it.
299 AC_CHECK_LIB(m, main)
301 # We need to link with -lw to get `wctype' on Solaris before Solaris
302 # 2.6. Solaris 2.6 and beyond have this function in libc, and have a
303 # libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1
304 # is known to have this problem). Therefore we avoid libw if we can.
305 AC_CHECK_FUNC(wctype, [],
306 [AC_CHECK_LIB(w, wctype)])
308 # Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
309 AC_SEARCH_LIBS(gethostbyname, nsl)
311 # Some systems (e.g. Solaris) have `socketpair' in libsocket.
312 AC_SEARCH_LIBS(socketpair, socket)
314 # For the TUI, we need enhanced curses functionality.
316 # FIXME: kettenis/20040905: We prefer ncurses over the vendor-supplied
317 # curses library because the latter might not provide all the
318 # functionality we need. However, this leads to problems on systems
319 # where the linker searches /usr/local/lib, but the compiler doesn't
320 # search /usr/local/include, if ncurses is installed in /usr/local. A
321 # default installation of ncurses on alpha*-dec-osf* will lead to such
323 AC_SEARCH_LIBS(waddstr, [ncurses cursesX curses])
325 # On HP/UX we may need libxpdl for dlgetmodinfo (used by solib-pa64.c).
326 AC_SEARCH_LIBS(dlgetmodinfo, [dl xpdl])
328 # Since GDB uses Readline, we need termcap functionality. In many
329 # cases this will be provided by the curses library, but some systems
330 # have a seperate termcap library, or no curses library at all.
334 if test -d $srcdir/libtermcap; then
335 LIBS="../libtermcap/libtermcap.a $LIBS"
336 ac_cv_search_tgetent="../libtermcap/libtermcap.a"
339 ac_cv_search_tgetent="none required"
342 ac_cv_search_tgetent="none required"
343 CONFIG_OBS="$CONFIG_OBS win32-termcap.o"
347 # These are the libraries checked by Readline.
348 AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses])
350 if test "$ac_cv_search_tgetent" = no; then
351 AC_MSG_ERROR([no termcap library found])
354 AC_ARG_WITH([system-readline],
355 [AS_HELP_STRING([--with-system-readline],
356 [use installed readline library])])
358 if test "$with_system_readline" = yes; then
363 READLINE='$(READLINE_DIR)/libreadline.a'
364 READLINE_DEPS='$(READLINE)'
365 READLINE_CFLAGS='-I$(READLINE_SRC)/..'
368 AC_SUBST(READLINE_DEPS)
369 AC_SUBST(READLINE_CFLAGS)
372 AS_HELP_STRING([--with-expat], [include expat support (auto/yes/no)]),
373 [], [with_expat=auto])
374 AC_MSG_CHECKING([whether to use expat])
375 AC_MSG_RESULT([$with_expat])
377 if test "${with_expat}" = no; then
378 AC_MSG_WARN([expat support disabled; some features may be unavailable.])
381 AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"],
382 [XML_Parser p = XML_ParserCreate (0);])
383 if test "$HAVE_LIBEXPAT" != yes; then
384 if test "$with_expat" = yes; then
385 AC_MSG_ERROR([expat is missing or unusable])
387 AC_MSG_WARN([expat is missing or unusable; some features may be unavailable.])
391 LIBS="$LIBS $LIBEXPAT"
392 AC_CHECK_FUNCS(XML_StopParser)
397 # ------------------------- #
398 # Checks for header files. #
399 # ------------------------- #
404 AC_CHECK_HEADERS(nlist.h)
405 AC_CHECK_HEADERS(link.h, [], [],
406 [#if HAVE_SYS_TYPES_H
407 # include <sys/types.h>
413 AC_CHECK_HEADERS(machine/reg.h)
414 AC_CHECK_HEADERS(poll.h sys/poll.h)
415 AC_CHECK_HEADERS(proc_service.h thread_db.h gnu/libc-version.h)
416 AC_CHECK_HEADERS(signal.h)
417 AC_CHECK_HEADERS(stddef.h)
418 AC_CHECK_HEADERS(stdlib.h)
419 AC_CHECK_HEADERS(stdint.h)
420 AC_CHECK_HEADERS(string.h memory.h strings.h)
421 AC_CHECK_HEADERS(sys/fault.h)
422 AC_CHECK_HEADERS(sys/file.h)
423 AC_CHECK_HEADERS(sys/filio.h)
424 AC_CHECK_HEADERS(sys/ioctl.h)
425 AC_CHECK_HEADERS(sys/param.h)
426 AC_CHECK_HEADERS(sys/resource.h)
427 AC_CHECK_HEADERS(sys/proc.h, [], [],
428 [#if HAVE_SYS_PARAM_H
429 # include <sys/param.h>
432 AC_CHECK_HEADERS(sys/procfs.h)
433 AC_CHECK_HEADERS(sys/ptrace.h ptrace.h)
434 AC_CHECK_HEADERS(sys/reg.h sys/debugreg.h)
435 AC_CHECK_HEADERS(sys/select.h)
436 AC_CHECK_HEADERS(sys/syscall.h)
437 AC_CHECK_HEADERS(sys/types.h)
438 AC_CHECK_HEADERS(sys/user.h, [], [],
439 [#if HAVE_SYS_PARAM_H
440 # include <sys/param.h>
443 AC_CHECK_HEADERS(sys/wait.h wait.h)
444 AC_CHECK_HEADERS(termios.h termio.h sgtty.h)
445 AC_CHECK_HEADERS(unistd.h)
447 # On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash
448 # between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
449 # think that we don't have <curses.h> if we're using GCC.
452 if test "$GCC" = yes; then
453 AC_DEFINE(_MSE_INT_H, 1,
454 [Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
455 Solaris 2.[789] when using GCC. ])
458 AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h)
459 AC_CHECK_HEADERS(ncurses/term.h)
460 AC_CHECK_HEADERS(term.h, [], [],
466 # Check for HP/UX 64-bit shared library support
467 AC_CHECK_HEADERS(elf_hp.h)
469 # FIXME: kettenis/20030102: In most cases we include these
470 # unconditionally, so what's the point in checking these?
471 AC_CHECK_HEADERS(ctype.h time.h)
473 # Create a header we can use portably to get the standard integer types.
474 GCC_HEADER_STDINT(gdb_stdint.h)
476 # ------------------------- #
477 # Checks for declarations. #
478 # ------------------------- #
480 AC_CHECK_DECLS([free, malloc, realloc])
481 AC_CHECK_DECLS([strerror, strstr])
482 AC_CHECK_DECLS([getopt, snprintf, vsnprintf])
484 # ----------------------- #
485 # Checks for structures. #
486 # ----------------------- #
488 AC_CHECK_MEMBERS([struct stat.st_blocks])
489 AC_CHECK_MEMBERS([struct stat.st_blksize])
491 # ------------------ #
492 # Checks for types. #
493 # ------------------ #
496 AC_CHECK_TYPES(socklen_t, [], [],
497 [#include <sys/types.h>
498 #include <sys/socket.h>
500 AC_CHECK_TYPES(uintptr_t, [], [], [#include <stdint.h>])
502 # ------------------------------------- #
503 # Checks for compiler characteristics. #
504 # ------------------------------------- #
510 # ------------------------------ #
511 # Checks for library functions. #
512 # ------------------------------ #
517 AC_CHECK_FUNCS(canonicalize_file_name realpath)
518 AC_CHECK_FUNCS(getrusage)
519 AC_CHECK_FUNCS(getuid getgid)
521 AC_CHECK_FUNCS(pread64)
523 AC_CHECK_FUNCS(setpgid setpgrp)
524 AC_CHECK_FUNCS(sigaction sigprocmask sigsetmask)
525 AC_CHECK_FUNCS(socketpair)
526 AC_CHECK_FUNCS(syscall)
527 AC_CHECK_FUNCS(ttrace)
528 AC_CHECK_FUNCS(wborder)
530 # Check the return and argument types of ptrace. No canned test for
531 # this, so roll our own.
534 # include <sys/types.h>
536 #if HAVE_SYS_PTRACE_H
537 # include <sys/ptrace.h>
543 # There is no point in checking if we don't have a prototype.
544 AC_CHECK_DECLS(ptrace, [], [
545 : ${gdb_cv_func_ptrace_ret='int'}
546 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
547 ], $gdb_ptrace_headers)
549 AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret,
550 AC_TRY_COMPILE($gdb_ptrace_headers,
551 [extern int ptrace ();],
552 gdb_cv_func_ptrace_ret='int',
553 gdb_cv_func_ptrace_ret='long'))
554 AC_DEFINE_UNQUOTED(PTRACE_TYPE_RET, $gdb_cv_func_ptrace_ret,
555 [Define as the return type of ptrace.])
556 # Check argument types.
557 AC_CACHE_CHECK([types of arguments for ptrace], gdb_cv_func_ptrace_args, [
558 for gdb_arg1 in 'int' 'long'; do
559 for gdb_arg2 in 'pid_t' 'int' 'long'; do
560 for gdb_arg3 in 'int *' 'caddr_t' 'int' 'long'; do
561 for gdb_arg4 in 'int' 'long'; do
562 AC_TRY_COMPILE($gdb_ptrace_headers, [
563 extern $gdb_cv_func_ptrace_ret
564 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4);
565 ], [gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4";
567 for gdb_arg5 in 'int *' 'int' 'long'; do
568 AC_TRY_COMPILE($gdb_ptrace_headers, [
569 extern $gdb_cv_func_ptrace_ret
570 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4, $gdb_arg5);
572 gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4,$gdb_arg5";
579 # Provide a safe default value.
580 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
582 ac_save_IFS=$IFS; IFS=','
583 set dummy `echo "$gdb_cv_func_ptrace_args" | sed 's/\*/\*/g'`
586 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG3, $[3],
587 [Define to the type of arg 3 for ptrace.])
588 if test -n "$[5]"; then
589 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG5, $[5],
590 [Define to the type of arg 5 for ptrace.])
593 dnl AC_FUNC_SETPGRP does not work when cross compiling
594 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
595 if test "$cross_compiling" = no; then
598 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
602 if (setpgrp(1,1) == -1)
606 ], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
607 if test $ac_cv_func_setpgrp_void = yes; then
608 AC_DEFINE(SETPGRP_VOID, 1)
612 # Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't do
613 # since sigsetjmp might only be defined as a macro.
614 AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp,
617 ], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);],
618 gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)])
619 if test $gdb_cv_func_sigsetjmp = yes; then
620 AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ])
623 # Assume we'll default to using the included libiberty regex.
624 gdb_use_included_regex=yes
626 # However, if the system regex is GNU regex, then default to *not*
627 # using the included regex.
630 [gdb_cv_have_gnu_regex],
632 [#include <gnu-versions.h>],
633 [#define REGEX_INTERFACE_VERSION 1
634 #if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION
635 # error "Version mismatch"
637 gdb_cv_have_gnu_regex=yes,
638 gdb_cv_have_gnu_regex=no)])
639 if test $gdb_cv_have_gnu_regex = yes; then
640 gdb_use_included_regex=no
643 AC_ARG_WITH(included-regex,
644 [ --without-included-regex don't use included regex; this is the default
645 on systems with version 2 of the GNU C library
646 (use with caution on other system)],
647 gdb_with_regex=$withval,
648 gdb_with_regex=$gdb_use_included_regex)
649 if test "$gdb_with_regex" = yes; then
650 AC_DEFINE(USE_INCLUDED_REGEX, 1,
651 [Define to 1 if the regex included in libiberty should be used.])
654 # Check if <sys/proc.h> defines `struct thread' with a td_pcb member.
655 AC_CHECK_MEMBERS([struct thread.td_pcb], [], [],
656 [#include <sys/param.h>
657 #include <sys/proc.h>
660 # See if <sys/lwp.h> defines `struct lwp`.
661 AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp,
662 [AC_TRY_COMPILE([#include <sys/param.h>
663 #include <sys/lwp.h>], [struct lwp l;],
664 gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)])
665 if test $gdb_cv_struct_lwp = yes; then
666 AC_DEFINE(HAVE_STRUCT_LWP, 1,
667 [Define to 1 if your system has struct lwp.])
670 # See if <machine/reg.h> degines `struct reg'.
671 AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg,
672 [AC_TRY_COMPILE([#include <sys/types.h>
673 #include <machine/reg.h>], [struct reg r;],
674 gdb_cv_struct_reg=yes, gdb_cv_struct_reg=no)])
675 if test $gdb_cv_struct_reg = yes; then
676 AC_DEFINE(HAVE_STRUCT_REG, 1,
677 [Define to 1 if your system has struct reg in <machine/reg.h>.])
680 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
681 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
682 AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [],
683 [#include <machine/reg.h>])
685 # See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
686 AC_MSG_CHECKING(for PTRACE_GETREGS)
687 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
688 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
690 [gdb_cv_have_ptrace_getregs=yes],
691 [gdb_cv_have_ptrace_getregs=no])])
692 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
693 if test $gdb_cv_have_ptrace_getregs = yes; then
694 AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
695 [Define if sys/ptrace.h defines the PTRACE_GETREGS request.])
698 # See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
699 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
700 AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
701 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
702 [PTRACE_GETFPXREGS;],
703 [gdb_cv_have_ptrace_getfpxregs=yes],
704 [gdb_cv_have_ptrace_getfpxregs=no])])
705 AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
706 if test $gdb_cv_have_ptrace_getfpxregs = yes; then
707 AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
708 [Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.])
711 # See if <sys/ptrace.h> provides the PT_GETDBREGS request.
712 AC_MSG_CHECKING(for PT_GETDBREGS)
713 AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
714 [AC_TRY_COMPILE([#include <sys/types.h>
715 #include <sys/ptrace.h>],
717 [gdb_cv_have_pt_getdbregs=yes],
718 [gdb_cv_have_pt_getdbregs=no])])
719 AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
720 if test $gdb_cv_have_pt_getdbregs = yes; then
721 AC_DEFINE(HAVE_PT_GETDBREGS, 1,
722 [Define if sys/ptrace.h defines the PT_GETDBREGS request.])
725 # See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
726 AC_MSG_CHECKING(for PT_GETXMMREGS)
727 AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
728 [AC_TRY_COMPILE([#include <sys/types.h>
729 #include <sys/ptrace.h>],
731 [gdb_cv_have_pt_getxmmregs=yes],
732 [gdb_cv_have_pt_getxmmregs=no])])
733 AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
734 if test $gdb_cv_have_pt_getxmmregs = yes; then
735 AC_DEFINE(HAVE_PT_GETXMMREGS, 1,
736 [Define if sys/ptrace.h defines the PT_GETXMMREGS request.])
739 # Detect which type of /proc is in use, such as for Unixware or Solaris.
741 if test "${target}" = "${host}"; then
743 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
744 AC_DEFINE(NEW_PROC_API, 1,
745 [Define if you want to use new multi-fd /proc interface
746 (replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
748 *-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]])
749 AC_DEFINE(NEW_PROC_API, 1,
750 [Define if you want to use new multi-fd /proc interface
751 (replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
754 # Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5.
755 AC_DEFINE([_KMEMUSER], 1,
756 [Define to 1 so <sys/proc.h> gets a definition of anon_hdl. Works
757 around a <sys/proc.h> problem on IRIX 5.])
762 if test "$ac_cv_header_sys_procfs_h" = yes; then
763 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
764 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
765 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
766 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
767 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
768 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
769 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
770 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
771 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
772 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
773 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
774 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
775 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
776 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
779 dnl Check for broken prfpregset_t type
781 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
782 dnl prfpregset_t type (it's a typedef for the pointer to a struct
783 dnl instead of the struct itself). We detect this here, and work
784 dnl around it in gdb_proc_service.h.
786 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
787 AC_MSG_CHECKING(whether prfpregset_t type is broken)
788 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
789 [AC_TRY_RUN([#include <sys/procfs.h>
792 if (sizeof (prfpregset_t) == sizeof (void *))
796 gdb_cv_prfpregset_t_broken=no,
797 gdb_cv_prfpregset_t_broken=yes,
798 gdb_cv_prfpregset_t_broken=yes)])
799 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
800 if test $gdb_cv_prfpregset_t_broken = yes; then
801 AC_DEFINE(PRFPREGSET_T_BROKEN, 1,
802 [Define if the prfpregset_t type is broken.])
806 dnl Check for PIOCSET ioctl entry
808 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
809 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
810 [AC_TRY_COMPILE([#include <unistd.h>
811 #include <sys/types.h>
812 #include <sys/procfs.h>
815 dummy = ioctl(0, PIOCSET, &dummy);
817 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
818 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
819 if test $gdb_cv_have_procfs_piocset = yes; then
820 AC_DEFINE(HAVE_PROCFS_PIOCSET, 1,
821 [Define if ioctl argument PIOCSET is available.])
825 dnl For native ports (host == target), check to see what kind of
826 dnl legacy link.h support is needed. (See solib-legacy.c.)
827 if test ${host} = ${target} ; then
828 dnl Check for struct link_map with l_ members which are indicative
829 dnl of SVR4-like shared libraries
831 AC_MSG_CHECKING(for member l_addr in struct link_map)
832 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members,
833 [AC_TRY_COMPILE([#include <link.h>],
834 [struct link_map lm; (void) lm.l_addr;],
835 gdb_cv_have_struct_link_map_with_l_members=yes,
836 gdb_cv_have_struct_link_map_with_l_members=no)])
837 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members)
838 if test $gdb_cv_have_struct_link_map_with_l_members = yes; then
839 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS,1,
840 [Define if <link.h> exists and defines struct link_map which has
841 members with an ``l_'' prefix. (For Solaris, SVR4, and
842 SVR4-like systems.)])
845 dnl Check for struct link_map with lm_ members which are indicative
846 dnl of SunOS-like shared libraries
848 AC_MSG_CHECKING(for member lm_addr in struct link_map)
849 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members,
850 [AC_TRY_COMPILE([#include <sys/types.h>
852 [struct link_map lm; (void) lm.lm_addr;],
853 gdb_cv_have_struct_link_map_with_lm_members=yes,
854 gdb_cv_have_struct_link_map_with_lm_members=no)])
855 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members)
856 if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then
857 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS, 1,
858 [Define if <link.h> exists and defines struct link_map which has
859 members with an ``lm_'' prefix. (For SunOS.)])
862 dnl Check for struct so_map with som_ members which are found on
863 dnl some *BSD systems.
865 AC_MSG_CHECKING(for member som_addr in struct so_map)
866 AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members,
867 [AC_TRY_COMPILE([#include <sys/types.h>
872 [struct so_map lm; (void) lm.som_addr;],
873 gdb_cv_have_struct_so_map_with_som_members=yes,
874 gdb_cv_have_struct_so_map_with_som_members=no)])
875 AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members)
876 if test $gdb_cv_have_struct_so_map_with_som_members = yes; then
877 AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS, 1,
878 [Define if <link.h> exists and defines a struct so_map which has
879 members with an ``som_'' prefix. (Found on older *BSD systems.)])
882 dnl Check for struct link_map32 type, which allows a 64-bit Solaris
883 dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries.
885 AC_MSG_CHECKING(for struct link_map32 in sys/link.h)
886 AC_CACHE_VAL(gdb_cv_have_struct_link_map32,
887 [AC_TRY_COMPILE([#define _SYSCALL32
888 #include <sys/link.h>], [struct link_map32 l;],
889 gdb_cv_have_struct_link_map32=yes,
890 gdb_cv_have_struct_link_map32=no)])
891 AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
892 if test $gdb_cv_have_struct_link_map32 = yes; then
893 AC_DEFINE(HAVE_STRUCT_LINK_MAP32, 1,
894 [Define if <sys/link.h> has struct link_map32])
895 AC_DEFINE(_SYSCALL32, 1,
896 [Define if <sys/link.h> has link_map32 (solaris sparc-64 target)])
900 # Check if the compiler supports the `long long' type.
902 AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long,
903 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
904 [[extern long long foo;]],
905 [[switch (foo & 2) { case 0: return 1; }]])],
906 gdb_cv_c_long_long=yes,
907 gdb_cv_c_long_long=no)])
908 if test $gdb_cv_c_long_long = yes; then
909 AC_DEFINE(CC_HAS_LONG_LONG, 1,
910 [Define to 1 if the compiler supports long long.])
913 # Check if the compiler and runtime support printing long longs.
915 AC_CACHE_CHECK([for long long support in printf],
916 gdb_cv_printf_has_long_long,
917 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
920 l = (l << 16) + 0x0123;
921 l = (l << 16) + 0x4567;
922 l = (l << 16) + 0x89ab;
923 l = (l << 16) + 0xcdef;
924 sprintf (buf, "0x%016llx", l);
925 return (strcmp ("0x0123456789abcdef", buf));]])],
926 gdb_cv_printf_has_long_long=yes,
927 gdb_cv_printf_has_long_long=no,
928 gdb_cv_printf_has_long_long=no)])
929 if test $gdb_cv_printf_has_long_long = yes; then
930 AC_DEFINE(PRINTF_HAS_LONG_LONG, 1,
931 [Define to 1 if the "%ll" format works to print long longs.])
934 # Check if the compiler and runtime support printing decfloats.
936 AC_CACHE_CHECK([for decfloat support in printf],
937 gdb_cv_printf_has_decfloat,
938 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
940 _Decimal32 d32 = 1.2345df;
941 _Decimal64 d64 = 1.2345dd;
942 _Decimal128 d128 = 1.2345dl;
943 sprintf (buf, "Decimal32: %H\nDecimal64: %D\nDecimal128: %DD", d32, d64, d128);
944 return (strcmp ("Decimal32: 1.2345\nDecimal64: 1.2345\nDecimal128: 1.2345", buf));]])],
945 gdb_cv_printf_has_decfloat=yes,
946 gdb_cv_printf_has_decfloat=no,
947 gdb_cv_printf_has_decfloat=no)])
948 if test $gdb_cv_printf_has_decfloat = yes; then
949 AC_DEFINE(PRINTF_HAS_DECFLOAT, 1,
950 [Define to 1 if the "%H, %D and %DD" formats work to print decfloats.])
953 # Check if the compiler supports the `long double' type. We can't use
954 # AC_C_LONG_DOUBLE because that one does additional checks on the
955 # constants defined in <float.h> that fail on some systems,
956 # e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6.
958 AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double,
959 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])],
960 gdb_cv_c_long_double=yes,
961 gdb_cv_c_long_double=no)])
962 if test $gdb_cv_c_long_double = yes; then
963 AC_DEFINE(HAVE_LONG_DOUBLE, 1,
964 [Define to 1 if the compiler supports long double.])
967 # Check if the compiler and runtime support printing long doubles.
969 AC_CACHE_CHECK([for long double support in printf],
970 gdb_cv_printf_has_long_double,
971 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
973 long double f = 3.141592653;
974 sprintf (buf, "%Lg", f);
975 return (strncmp ("3.14159", buf, 7));]])],
976 gdb_cv_printf_has_long_double=yes,
977 gdb_cv_printf_has_long_double=no,
978 gdb_cv_printf_has_long_double=no)])
979 if test $gdb_cv_printf_has_long_double = yes; then
980 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1,
981 [Define to 1 if the "%Lg" format works to print long doubles.])
984 # Check if the compiler and runtime support scanning long doubles.
986 AC_CACHE_CHECK([for long double support in scanf],
987 gdb_cv_scanf_has_long_double,
988 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
989 [[#include <stdio.h>]],
990 [[char *buf = "3.141592653";
992 sscanf (buf, "%Lg", &f);
993 return !(f > 3.14159 && f < 3.14160);]])],
994 gdb_cv_scanf_has_long_double=yes,
995 gdb_cv_scanf_has_long_double=no,
996 gdb_cv_scanf_has_long_double=no)])
997 if test $gdb_cv_scanf_has_long_double = yes; then
998 AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1,
999 [Define to 1 if the "%Lg" format works to scan long doubles.])
1004 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
1005 SAVE_LDFLAGS=$LDFLAGS
1008 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
1009 *) gdb_cv_bigtoc=-bbigtoc ;;
1012 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
1013 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
1014 LDFLAGS="${SAVE_LDFLAGS}"
1016 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
1021 dnl For certain native configurations, we need to check whether thread
1022 dnl support can be built in or not.
1024 dnl Note that we only want this if we are both native (host == target),
1025 dnl and not doing a canadian cross build (build == host).
1027 if test ${build} = ${host} -a ${host} = ${target} ; then
1030 AC_MSG_CHECKING(for HPUX/OSF thread support)
1031 if test -f /usr/include/dce/cma_config.h ; then
1032 if test "$GCC" = "yes" ; then
1034 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT, 1,
1035 [Define if you have HPUX threads])
1036 CONFIG_OBS="${CONFIG_OBS} hpux-thread.o"
1037 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
1039 AC_MSG_RESULT(no (suppressed because you are not using GCC))
1046 # See if thread_db library is around for Solaris thread debugging.
1047 # Note that we must explicitly test for version 1 of the library
1048 # because version 0 (present on Solaris 2.4 or earlier) doesn't have
1050 AC_MSG_CHECKING(for Solaris thread debugging library)
1051 if test -f /usr/lib/libthread_db.so.1 ; then
1053 AC_DEFINE(HAVE_THREAD_DB_LIB, 1,
1054 [Define if using Solaris thread debugging.])
1055 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
1056 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
1057 AC_CHECK_LIB(dl, dlopen)
1058 if test "$GCC" = "yes" ; then
1059 # The GNU linker requires the -export-dynamic option to make
1060 # all symbols visible in the dynamic symbol table.
1061 hold_ldflags=$LDFLAGS
1062 AC_MSG_CHECKING(for the ld -export-dynamic flag)
1063 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
1064 AC_TRY_LINK(, [int i;], found=yes, found=no)
1065 LDFLAGS=$hold_ldflags
1066 AC_MSG_RESULT($found)
1067 if test $found = yes; then
1068 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
1071 # Sun randomly tweaked the prototypes in <proc_service.h>
1073 AC_MSG_CHECKING(if <proc_service.h> is old)
1074 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
1076 #include <proc_service.h>
1078 (struct ps_prochandle*, psaddr_t, const void*, size_t);
1079 ],, gdb_cv_proc_service_is_old=no,
1080 gdb_cv_proc_service_is_old=yes)
1082 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
1083 if test $gdb_cv_proc_service_is_old = yes; then
1084 AC_DEFINE(PROC_SERVICE_IS_OLD, 1,
1085 [Define if <proc_service.h> on solaris uses int instead of
1086 size_t, and assorted other type changes.])
1093 AC_MSG_CHECKING(for AiX thread debugging library)
1094 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
1095 [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
1096 [#ifndef PTHDB_VERSION_3
1099 gdb_cv_have_aix_thread_debug=yes,
1100 gdb_cv_have_aix_thread_debug=no)])
1101 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
1102 if test $gdb_cv_have_aix_thread_debug = yes; then
1103 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
1104 CONFIG_OBS="${CONFIG_OBS} aix-thread.o"
1105 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
1109 AC_SUBST(CONFIG_LDFLAGS)
1112 dnl See if we have a thread_db header file that has TD_NOTALLOC and
1113 dnl other error codes.
1114 if test "x$ac_cv_header_thread_db_h" = "xyes"; then
1115 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
1116 gdb_cv_thread_db_h_has_td_notalloc,
1118 [#include <thread_db.h>],
1119 [int i = TD_NOTALLOC;],
1120 gdb_cv_thread_db_h_has_td_notalloc=yes,
1121 gdb_cv_thread_db_h_has_td_notalloc=no
1124 AC_CACHE_CHECK([whether <thread_db.h> has TD_VERSION],
1125 gdb_cv_thread_db_h_has_td_version,
1127 [#include <thread_db.h>],
1128 [int i = TD_VERSION;],
1129 gdb_cv_thread_db_h_has_td_version=yes,
1130 gdb_cv_thread_db_h_has_td_version=no
1133 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTLS],
1134 gdb_cv_thread_db_h_has_td_notls,
1136 [#include <thread_db.h>],
1137 [int i = TD_NOTLS;],
1138 gdb_cv_thread_db_h_has_td_notls=yes,
1139 gdb_cv_thread_db_h_has_td_notls=no
1143 if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
1144 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
1145 [Define if <thread_db.h> has the TD_NOTALLOC error code.])
1147 if test "x$gdb_cv_thread_db_h_has_td_version" = "xyes"; then
1148 AC_DEFINE(THREAD_DB_HAS_TD_VERSION, 1,
1149 [Define if <thread_db.h> has the TD_VERSION error code.])
1151 if test "x$gdb_cv_thread_db_h_has_td_notls" = "xyes"; then
1152 AC_DEFINE(THREAD_DB_HAS_TD_NOTLS, 1,
1153 [Define if <thread_db.h> has the TD_NOTLS error code.])
1156 dnl See if we have a sys/syscall header file that has __NR_tkill.
1157 if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then
1158 AC_CACHE_CHECK([whether <sys/syscall.h> has __NR_tkill],
1159 gdb_cv_sys_syscall_h_has_tkill,
1161 [#include <sys/syscall.h>],
1162 [int i = __NR_tkill;],
1163 gdb_cv_sys_syscall_h_has_tkill=yes,
1164 gdb_cv_sys_syscall_h_has_tkill=no
1168 dnl See if we can issue tkill syscall.
1169 if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes" && test "x$ac_cv_func_syscall" = "xyes"; then
1170 AC_DEFINE(HAVE_TKILL_SYSCALL, 1, [Define if you support the tkill syscall.])
1173 dnl Handle optional features that can be enabled.
1175 AC_ARG_WITH(sysroot,
1176 [ --with-sysroot[=DIR] Search for usr/lib et al within DIR.],
1178 case ${with_sysroot} in
1179 yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
1180 *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
1183 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
1185 if test "x$prefix" = xNONE; then
1186 test_prefix=/usr/local
1190 if test "x$exec_prefix" = xNONE || test "x$exec_prefix" = 'x${prefix}'; then
1191 test_exec_prefix=$test_prefix
1193 test_exec_prefix=$exec_prefix
1195 case ${TARGET_SYSTEM_ROOT} in
1196 "${test_prefix}"|"${test_prefix}/"*|\
1197 "${test_exec_prefix}"|"${test_exec_prefix}/"*|\
1198 '${prefix}'|'${prefix}/'*|\
1199 '${exec_prefix}'|'${exec_prefix}/'*)
1200 t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
1201 TARGET_SYSTEM_ROOT_DEFINE="$t"
1206 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"'
1208 AC_SUBST(TARGET_SYSTEM_ROOT)
1209 AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
1211 AC_ARG_ENABLE(werror,
1212 [ --enable-werror treat compile warnings as errors],
1213 [case "${enableval}" in
1214 yes | y) ERROR_ON_WARNING="yes" ;;
1215 no | n) ERROR_ON_WARNING="no" ;;
1216 *) AC_MSG_ERROR(bad value ${enableval} for --enable-werror) ;;
1219 # Enable -Werror by default when using gcc
1220 if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then
1221 ERROR_ON_WARNING=yes
1225 if test "${ERROR_ON_WARNING}" = yes ; then
1226 WERROR_CFLAGS="-Werror"
1229 # The entries after -Wno-pointer-sign are disabled warnings which may
1230 # be enabled in the future, which can not currently be used to build
1232 # NOTE: If you change this list, remember to update
1233 # gdb/doc/gdbint.texinfo.
1234 build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \
1235 -Wformat-nonliteral -Wno-pointer-sign \
1236 -Wno-unused -Wno-switch -Wno-char-subscripts"
1238 AC_ARG_ENABLE(build-warnings,
1239 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
1240 [case "${enableval}" in
1242 no) build_warnings="-w";;
1243 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1244 build_warnings="${build_warnings} ${t}";;
1245 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1246 build_warnings="${t} ${build_warnings}";;
1247 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1249 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1250 echo "Setting compiler warning flags = $build_warnings" 6>&1
1252 AC_ARG_ENABLE(gdb-build-warnings,
1253 [ --enable-gdb-build-warnings Enable GDB specific build-time compiler warnings if gcc is used],
1254 [case "${enableval}" in
1256 no) build_warnings="-w";;
1257 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1258 build_warnings="${build_warnings} ${t}";;
1259 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1260 build_warnings="${t} ${build_warnings}";;
1261 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1263 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1264 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
1267 if test "x${build_warnings}" != x -a "x$GCC" = xyes
1269 AC_MSG_CHECKING(compiler warning flags)
1270 # Separate out the -Werror flag as some files just cannot be
1271 # compiled with it enabled.
1272 for w in ${build_warnings}; do
1274 -Werr*) WERROR_CFLAGS=-Werror ;;
1275 *) # Check that GCC accepts it
1276 saved_CFLAGS="$CFLAGS"
1278 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
1279 CFLAGS="$saved_CFLAGS"
1282 AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS})
1284 AC_SUBST(WARN_CFLAGS)
1285 AC_SUBST(WERROR_CFLAGS)
1287 # In the Cygwin environment, we need some additional flags.
1288 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
1289 [AC_EGREP_CPP(lose, [
1290 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
1292 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
1295 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
1296 SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o"
1298 *go32* ) SER_HARDWIRE=ser-go32.o ;;
1299 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
1300 *mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;;
1302 AC_SUBST(SER_HARDWIRE)
1304 # libreadline needs libuser32.a in a cygwin environment
1306 if test x$gdb_cv_os_cygwin = xyes; then
1307 WIN32LIBS="-luser32"
1309 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
1314 # The ser-tcp.c module requires sockets.
1317 AC_DEFINE(USE_WIN32API, 1,
1318 [Define if we should use the Windows API, instead of the
1319 POSIX API. On Windows, we use the Windows API when
1320 building for MinGW, but the POSIX API when building
1322 WIN32LIBS="$WIN32LIBS -lws2_32"
1327 # Add ELF support to GDB, but only if BFD includes ELF support.
1329 OLD_LDFLAGS=$LDFLAGS
1331 CFLAGS="$CFLAGS -I${srcdir}/../include -I../bfd -I${srcdir}/../bfd"
1332 LDFLAGS="$LDFLAGS -L../bfd -L../libiberty"
1333 intl=`echo $LIBINTL | sed 's,${top_builddir}/,,g'`
1334 LIBS="$LIBS -lbfd -liberty $intl"
1335 AC_CACHE_CHECK([for ELF support in BFD], gdb_cv_var_elf,
1337 [#include <stdlib.h>
1339 #include "elf-bfd.h"
1341 [bfd *abfd = NULL; bfd_get_elf_phdr_upper_bound (abfd); ],
1342 gdb_cv_var_elf=yes, gdb_cv_var_elf=no)])
1343 if test $gdb_cv_var_elf = yes; then
1344 CONFIG_OBS="$CONFIG_OBS elfread.o"
1345 AC_DEFINE(HAVE_ELF, 1,
1346 [Define if ELF support should be included.])
1349 LDFLAGS=$OLD_LDFLAGS
1352 # Add any host-specific objects to GDB.
1353 CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
1355 LIBGUI="../libgui/src/libgui.a"
1356 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
1358 AC_SUBST(GUI_CFLAGS_X)
1362 AC_SUBST(WIN32LDAPP)
1374 if test "${enable_gdbtk}" = "yes"; then
1376 # Gdbtk must have an absolute path to srcdir in order to run
1377 # properly when not installed.
1383 CY_AC_PATH_TCLCONFIG
1384 if test -z "${no_tcl}"; then
1385 CY_AC_LOAD_TCLCONFIG
1388 # now look for Tcl library stuff
1390 tcldir="../tcl/${configdir}/"
1392 TCL_DEPS="${tcldir}${TCL_LIB_FILE}"
1394 # If $no_tk is nonempty, then we can't do Tk, and there is no
1395 # point to doing Tcl.
1396 if test -z "${no_tk}"; then
1404 # now look for Tk library stuff
1406 tkdir="../tk/${configdir}/"
1408 TK_DEPS="${tkdir}${TK_LIB_FILE}"
1410 # now look for Itcl library stuff
1412 CY_AC_PATH_ITCLCONFIG
1413 if test -z "${no_itcl}"; then
1414 CY_AC_LOAD_ITCLCONFIG
1416 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
1417 ITCL_DEPS="${ITCL_LIB_FULL_PATH}"
1421 # now look for Itk library stuff
1422 CY_AC_PATH_ITKCONFIG
1423 if test -z "${no_itcl}"; then
1424 CY_AC_LOAD_ITKCONFIG
1426 ITKLIB="${ITK_BUILD_LIB_SPEC}"
1427 ITK_DEPS="${ITK_LIB_FULL_PATH}"
1430 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
1432 # Include some libraries that Tcl and Tk want.
1433 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
1434 # Yes, the ordering seems wrong here. But it isn't.
1435 # TK_LIBS is the list of libraries that need to be linked
1436 # after Tcl/Tk. Note that this isn't put into LIBS. If it
1437 # were in LIBS then any link tests after this point would
1438 # try to include things like `$(LIBGUI)', which wouldn't work.
1439 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
1441 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
1442 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
1443 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
1444 CONFIG_ALL="${CONFIG_ALL} all-gdbtk"
1445 CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk"
1446 CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk"
1447 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk"
1449 if test x$gdb_cv_os_cygwin = xyes; then
1450 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
1451 WIN32LDAPP="-Wl,--subsystem,console"
1452 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
1457 AC_CONFIG_SUBDIRS(gdbtk)
1470 AC_SUBST(GDBTK_CFLAGS)
1471 AC_SUBST(GDBTK_SRC_DIR)
1475 # Check whether we should enable the TUI, but only do so if we really
1477 if test x"$enable_tui" = xyes; then
1478 if test -d $srcdir/tui; then
1479 if test "$ac_cv_search_waddstr" != no; then
1480 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
1481 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
1482 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
1483 CONFIG_INITS="$CONFIG_INITS \$(SUBDIR_TUI_INITS)"
1484 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
1485 CONFIG_ALL="${CONFIG_ALL} all-tui"
1486 CONFIG_CLEAN="${CONFIG_CLEAN} clean-tui"
1487 CONFIG_INSTALL="${CONFIG_INSTALL} install-tui"
1488 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-tui"
1490 AC_MSG_WARN([no enhanced curses library found; disabling TUI])
1495 # Unlike the sim directory, whether a simulator is linked is controlled by
1496 # presence of a gdb_sim definition in the target configure.tgt entry.
1497 # This code just checks for a few cases where we'd like to ignore those
1498 # definitions, even when they're present in the '.mt' file. These cases
1499 # are when --disable-sim is specified, or if the simulator directory is
1500 # not part of the source tree.
1503 [ --enable-sim Link gdb with simulator],
1504 [echo "enable_sim = $enable_sim";
1505 echo "enableval = ${enableval}";
1506 case "${enableval}" in
1507 yes) ignore_sim=false ;;
1508 no) ignore_sim=true ;;
1509 *) ignore_sim=false ;;
1513 if test ! -d "${srcdir}/../sim"; then
1519 if test "${ignore_sim}" = "false"; then
1520 if test x"${gdb_sim}" != x ; then
1522 SIM_OBS="remote-sim.o"
1523 AC_DEFINE(WITH_SIM, 1, [Define if the simulator is being linked in.])
1529 AC_SUBST(ENABLE_CFLAGS)
1530 AC_SUBST(PROFILE_CFLAGS)
1532 AC_SUBST(CONFIG_OBS)
1533 AC_SUBST(CONFIG_DEPS)
1534 AC_SUBST(CONFIG_SRCS)
1535 AC_SUBST(CONFIG_ALL)
1536 AC_SUBST(CONFIG_CLEAN)
1537 AC_SUBST(CONFIG_INSTALL)
1538 AC_SUBST(CONFIG_UNINSTALL)
1540 # List of host floatformats.
1541 AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat])
1542 AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat])
1543 AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat])
1545 # target_subdir is used by the testsuite to find the target libraries.
1547 if test "${host}" != "${target}"; then
1548 target_subdir="${target_alias}/"
1550 AC_SUBST(target_subdir)
1553 if test "${gdb_native}" = "yes"; then
1554 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
1555 if test ! -f ${host_makefile_frag}; then
1556 AC_MSG_ERROR("*** Gdb does not support native target ${host}")
1558 frags="$frags $host_makefile_frag"
1560 host_makefile_frag=/dev/null
1563 AC_SUBST_FILE(host_makefile_frag)
1567 if test "${gdb_native}" = "yes"; then
1568 # We pick this up from the host configuration file (.mh) because we
1569 # do not have a native configuration Makefile fragment.
1570 nativefile=`sed -n '
1571 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1572 ' ${host_makefile_frag}`
1576 if test x"${gdb_osabi}" != x ; then
1577 AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
1578 [Define to the default OS ABI for this configuration.])
1581 # Enable multi-ice-gdb-server.
1582 AC_ARG_ENABLE(multi-ice,
1583 [ --enable-multi-ice build the multi-ice-gdb-server],
1587 *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;;
1589 if test "x$enable_multi_ice" = xyes; then
1590 AC_CONFIG_SUBDIRS(multi-ice)
1593 # We only build gdbserver automatically in a native configuration.
1594 if test "$gdb_native" = "yes"; then
1595 AC_MSG_CHECKING(whether gdbserver is supported on this host)
1596 if test "x$build_gdbserver" = xyes; then
1598 AC_CONFIG_SUBDIRS(gdbserver)
1604 # If nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link
1605 # to an empty version.
1612 if test "${nativefile}" != ""; then
1614 case "${nativefile}" in
1615 nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;;
1616 * ) GDB_NM_FILE="${nativefile}"
1618 files="${files} ${GDB_NM_FILE}"
1619 links="${links} nm.h"
1620 AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}", [nativefile])
1624 AC_LINK_FILES($files, $links)
1626 dnl Check for exe extension set on certain hosts (e.g. Win32)
1629 dnl Detect the character set used by this host.
1631 dnl At the moment, we just assume it's ISO-8859-1 (which is a
1632 dnl superset of ASCII containing the characters needed for French,
1633 dnl German, Spanish, Italian, and possibly others), but if were
1634 dnl *were* to support any host character sets other than ISO-8859-1,
1635 dnl here's where we'd detect it.
1636 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "ISO-8859-1",
1637 [Define to be a string naming the default host character set.])
1641 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1643 dnl Autoconf doesn't provide a mechanism for modifying definitions
1644 dnl provided by makefile fragments.
1648 sed -e '/^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1649 mv -f Makefile.tmp Makefile
1653 case x$CONFIG_HEADERS in
1654 xconfig.h:config.in)
1659 gdb_host_cpu=$gdb_host_cpu
1660 nativefile=$nativefile