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. ])
126 # The CLI cannot be disabled yet, but may be in the future.
129 AC_ARG_ENABLE(gdbcli,
130 [ --disable-gdbcli disable command-line interface (CLI)],
135 AC_MSG_ERROR([the command-line interface cannot be disabled yet]) ;;
137 AC_MSG_ERROR([bad value $enableval for --enable-gdbcli]) ;;
140 if test x"$enable_gdbcli" = xyes; then
141 if test -d $srcdir/cli; then
142 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)"
143 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)"
144 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)"
145 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)"
151 [ --disable-gdbmi disable machine-interface (MI)],
156 AC_MSG_ERROR([bad value $enableval for --enable-gdbmi]) ;;
159 if test x"$enable_gdbmi" = xyes; then
160 if test -d $srcdir/mi; then
161 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)"
162 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)"
163 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)"
164 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)"
170 [ --enable-tui enable full-screen terminal user interface (TUI)],
175 AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
176 esac],enable_tui=yes)
180 [ --enable-gdbtk enable gdbtk graphical user interface (GUI)],
185 AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;;
187 [if test -d $srcdir/gdbtk -a -d $srcdir/../itcl; then
192 # We unconditionally disable gdbtk tests on selected platforms.
195 AC_MSG_WARN([gdbtk isn't supported on $host; disabling])
200 AC_ARG_WITH(libunwind,
201 [ --with-libunwind Use libunwind frame unwinding support],
202 [case "${withval}" in
203 yes) enable_libunwind=yes ;;
204 no) enable_libunwind=no ;;
205 *) AC_MSG_ERROR(bad value ${withval} for GDB with-libunwind option) ;;
207 AC_CHECK_HEADERS(libunwind.h)
208 AC_CHECK_HEADERS(libunwind-ia64.h)
209 if test x"$ac_cv_header_libunwind_h" = xyes -a x"$ac_cv_header_libunwind_ia64_h" = xyes; then
210 enable_libunwind=yes;
214 if test x"$enable_libunwind" = xyes; then
215 AC_CHECK_HEADERS(libunwind.h)
216 AC_CHECK_HEADERS(libunwind-ia64.h)
217 AC_DEFINE(HAVE_LIBUNWIND, 1, [Define if libunwind library is being used.])
218 CONFIG_OBS="$CONFIG_OBS libunwind-frame.o"
219 CONFIG_DEPS="$CONFIG_DEPS libunwind-frame.o"
220 CONFIG_SRCS="$CONFIG_SRCS libunwind-frame.c"
224 AC_ARG_ENABLE(profiling,
225 [ --enable-profiling enable profiling of GDB],
230 AC_MSG_ERROR([bad value $enableval for --enable-profile]) ;;
232 [enable_profiling=no])
234 AC_CHECK_FUNCS(monstartup _mcleanup)
235 AC_CACHE_CHECK([for _etext], ac_cv_var__etext,
240 [free (&_etext);], ac_cv_var__etext=yes, ac_cv_var__etext=no)])
241 if test $ac_cv_var__etext = yes; then
242 AC_DEFINE(HAVE__ETEXT, 1,
243 [Define to 1 if your system has the _etext variable. ])
245 if test "$enable_profiling" = yes ; then
246 if test $ac_cv_func_monstartup = no || test $ac_cv_func__mcleanup = no; then
247 AC_MSG_ERROR(--enable-profiling requires monstartup and _mcleanup)
251 CFLAGS="$CFLAGS $PROFILE_CFLAGS"
253 AC_CACHE_CHECK([whether $CC supports -pg], ac_cv_cc_supports_pg,
254 [AC_TRY_COMPILE([], [int x;], ac_cv_cc_supports_pg=yes,
255 ac_cv_cc_supports_pg=no)])
257 if test $ac_cv_cc_supports_pg = no; then
258 AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg)
264 # --------------------- #
265 # Checks for programs. #
266 # --------------------- #
274 AC_CHECK_TOOL(AR, ar)
275 AC_CHECK_TOOL(DLLTOOL, dlltool)
276 AC_CHECK_TOOL(WINDRES, windres)
278 # Needed for GNU/Hurd.
279 AC_CHECK_TOOL(MIG, mig)
281 # ---------------------- #
282 # Checks for libraries. #
283 # ---------------------- #
285 # We might need to link with -lm; most simulators need it.
286 AC_CHECK_LIB(m, main)
288 # We need to link with -lw to get `wctype' on Solaris before Solaris
289 # 2.6. Solaris 2.6 and beyond have this function in libc, and have a
290 # libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1
291 # is known to have this problem). Therefore we avoid libw if we can.
292 AC_CHECK_FUNC(wctype, [],
293 [AC_CHECK_LIB(w, wctype)])
295 # Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
296 AC_SEARCH_LIBS(gethostbyname, nsl)
298 # Some systems (e.g. Solaris) have `socketpair' in libsocket.
299 AC_SEARCH_LIBS(socketpair, socket)
301 # For the TUI, we need enhanced curses functionality.
303 # FIXME: kettenis/20040905: We prefer ncurses over the vendor-supplied
304 # curses library because the latter might not provide all the
305 # functionality we need. However, this leads to problems on systems
306 # where the linker searches /usr/local/lib, but the compiler doesn't
307 # search /usr/local/include, if ncurses is installed in /usr/local. A
308 # default installation of ncurses on alpha*-dec-osf* will lead to such
310 AC_SEARCH_LIBS(waddstr, [ncurses cursesX curses])
312 # Since GDB uses Readline, we need termcap functionality. In many
313 # cases this will be provided by the curses library, but some systems
314 # have a seperate termcap library, or no curses library at all.
318 if test -d $srcdir/libtermcap; then
319 LIBS="../libtermcap/libtermcap.a $LIBS"
320 ac_cv_search_tgetent="../libtermcap/libtermcap.a"
323 ac_cv_search_tgetent="none required"
326 ac_cv_search_tgetent="none required"
327 CONFIG_OBS="$CONFIG_OBS win32-termcap.o"
331 # These are the libraries checked by Readline.
332 AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses])
334 if test "$ac_cv_search_tgetent" = no; then
335 AC_MSG_ERROR([no termcap library found])
338 AC_ARG_WITH([system-readline],
339 [AS_HELP_STRING([--with-system-readline],
340 [use installed readline library])])
342 if test "$with_system_readline" = yes; then
347 READLINE='$(READLINE_DIR)/libreadline.a'
348 READLINE_DEPS='$(READLINE)'
349 READLINE_CFLAGS='-I$(READLINE_SRC)/..'
352 AC_SUBST(READLINE_DEPS)
353 AC_SUBST(READLINE_CFLAGS)
355 AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"],
356 [XML_Parser p = XML_ParserCreate (0);])
357 if test "$HAVE_LIBEXPAT" != yes; then
358 AC_MSG_WARN([expat is missing or unusable; some features may be disabled.])
361 LIBS="$LIBS $LIBEXPAT"
362 AC_CHECK_FUNCS(XML_StopParser)
366 # ------------------------- #
367 # Checks for header files. #
368 # ------------------------- #
373 AC_CHECK_HEADERS(nlist.h)
374 AC_CHECK_HEADERS(link.h, [], [],
375 [#if HAVE_SYS_TYPES_H
376 # include <sys/types.h>
382 AC_CHECK_HEADERS(machine/reg.h)
383 AC_CHECK_HEADERS(poll.h sys/poll.h)
384 AC_CHECK_HEADERS(proc_service.h thread_db.h gnu/libc-version.h)
385 AC_CHECK_HEADERS(signal.h)
386 AC_CHECK_HEADERS(stddef.h)
387 AC_CHECK_HEADERS(stdlib.h)
388 AC_CHECK_HEADERS(stdint.h)
389 AC_CHECK_HEADERS(string.h memory.h strings.h)
390 AC_CHECK_HEADERS(sys/fault.h)
391 AC_CHECK_HEADERS(sys/file.h)
392 AC_CHECK_HEADERS(sys/filio.h)
393 AC_CHECK_HEADERS(sys/ioctl.h)
394 AC_CHECK_HEADERS(sys/param.h)
395 AC_CHECK_HEADERS(sys/resource.h)
396 AC_CHECK_HEADERS(sys/proc.h, [], [],
397 [#if HAVE_SYS_PARAM_H
398 # include <sys/param.h>
401 AC_CHECK_HEADERS(sys/procfs.h)
402 AC_CHECK_HEADERS(sys/ptrace.h ptrace.h)
403 AC_CHECK_HEADERS(sys/reg.h sys/debugreg.h)
404 AC_CHECK_HEADERS(sys/select.h)
405 AC_CHECK_HEADERS(sys/syscall.h)
406 AC_CHECK_HEADERS(sys/types.h)
407 AC_CHECK_HEADERS(sys/user.h, [], [],
408 [#if HAVE_SYS_PARAM_H
409 # include <sys/param.h>
412 AC_CHECK_HEADERS(sys/wait.h wait.h)
413 AC_CHECK_HEADERS(termios.h termio.h sgtty.h)
414 AC_CHECK_HEADERS(unistd.h)
416 # On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash
417 # between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
418 # think that we don't have <curses.h> if we're using GCC.
421 if test "$GCC" = yes; then
422 AC_DEFINE(_MSE_INT_H, 1,
423 [Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
424 Solaris 2.[789] when using GCC. ])
427 AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h)
428 AC_CHECK_HEADERS(ncurses/term.h)
429 AC_CHECK_HEADERS(term.h, [], [],
435 # FIXME: kettenis/20030102: In most cases we include these
436 # unconditionally, so what's the point in checking these?
437 AC_CHECK_HEADERS(ctype.h time.h)
439 # Create a header we can use portably to get the standard integer types.
440 GCC_HEADER_STDINT(gdb_stdint.h)
442 # ------------------------- #
443 # Checks for declarations. #
444 # ------------------------- #
446 AC_CHECK_DECLS([free, malloc, realloc])
447 AC_CHECK_DECLS([strerror, strstr])
448 AC_CHECK_DECLS([getopt, snprintf, vsnprintf])
450 # ----------------------- #
451 # Checks for structures. #
452 # ----------------------- #
454 AC_CHECK_MEMBERS([struct stat.st_blocks])
455 AC_CHECK_MEMBERS([struct stat.st_blksize])
457 # ------------------ #
458 # Checks for types. #
459 # ------------------ #
462 AC_CHECK_TYPES(socklen_t, [], [],
463 [#include <sys/types.h>
464 #include <sys/socket.h>
466 AC_CHECK_TYPES(uintptr_t, [], [], [#include <stdint.h>])
468 # ------------------------------------- #
469 # Checks for compiler characteristics. #
470 # ------------------------------------- #
475 # ------------------------------ #
476 # Checks for library functions. #
477 # ------------------------------ #
482 AC_CHECK_FUNCS(canonicalize_file_name realpath)
483 AC_CHECK_FUNCS(getrusage)
484 AC_CHECK_FUNCS(getuid getgid)
486 AC_CHECK_FUNCS(pread64)
488 AC_CHECK_FUNCS(setpgid setpgrp)
489 AC_CHECK_FUNCS(sigaction sigprocmask sigsetmask)
490 AC_CHECK_FUNCS(socketpair)
491 AC_CHECK_FUNCS(syscall)
492 AC_CHECK_FUNCS(ttrace)
493 AC_CHECK_FUNCS(wborder)
495 # Check the return and argument types of ptrace. No canned test for
496 # this, so roll our own.
499 # include <sys/types.h>
501 #if HAVE_SYS_PTRACE_H
502 # include <sys/ptrace.h>
508 # There is no point in checking if we don't have a prototype.
509 AC_CHECK_DECLS(ptrace, [], [
510 : ${gdb_cv_func_ptrace_ret='int'}
511 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
512 ], $gdb_ptrace_headers)
514 AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret,
515 AC_TRY_COMPILE($gdb_ptrace_headers,
516 [extern int ptrace ();],
517 gdb_cv_func_ptrace_ret='int',
518 gdb_cv_func_ptrace_ret='long'))
519 AC_DEFINE_UNQUOTED(PTRACE_TYPE_RET, $gdb_cv_func_ptrace_ret,
520 [Define as the return type of ptrace.])
521 # Check argument types.
522 AC_CACHE_CHECK([types of arguments for ptrace], gdb_cv_func_ptrace_args, [
523 for gdb_arg1 in 'int' 'long'; do
524 for gdb_arg2 in 'pid_t' 'int' 'long'; do
525 for gdb_arg3 in 'int *' 'caddr_t' 'int' 'long'; do
526 for gdb_arg4 in 'int' 'long'; do
527 AC_TRY_COMPILE($gdb_ptrace_headers, [
528 extern $gdb_cv_func_ptrace_ret
529 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4);
530 ], [gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4";
532 for gdb_arg5 in 'int *' 'int' 'long'; do
533 AC_TRY_COMPILE($gdb_ptrace_headers, [
534 extern $gdb_cv_func_ptrace_ret
535 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4, $gdb_arg5);
537 gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4,$gdb_arg5";
544 # Provide a safe default value.
545 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
547 ac_save_IFS=$IFS; IFS=','
548 set dummy `echo "$gdb_cv_func_ptrace_args" | sed 's/\*/\*/g'`
551 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG3, $[3],
552 [Define to the type of arg 3 for ptrace.])
553 if test -n "$[5]"; then
554 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG5, $[5],
555 [Define to the type of arg 5 for ptrace.])
558 dnl AC_FUNC_SETPGRP does not work when cross compiling
559 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
560 if test "$cross_compiling" = no; then
563 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
567 if (setpgrp(1,1) == -1)
571 ], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
572 if test $ac_cv_func_setpgrp_void = yes; then
573 AC_DEFINE(SETPGRP_VOID, 1)
577 # Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't do
578 # since sigsetjmp might only be defined as a macro.
579 AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp,
582 ], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);],
583 gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)])
584 if test $gdb_cv_func_sigsetjmp = yes; then
585 AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ])
588 # Assume we'll default to using the included libiberty regex.
589 gdb_use_included_regex=yes
591 # However, if the system regex is GNU regex, then default to *not*
592 # using the included regex.
595 [gdb_cv_have_gnu_regex],
597 [#include <gnu-versions.h>],
598 [#define REGEX_INTERFACE_VERSION 1
599 #if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION
600 # error "Version mismatch"
602 gdb_cv_have_gnu_regex=yes,
603 gdb_cv_have_gnu_regex=no)])
604 if test $gdb_cv_have_gnu_regex = yes; then
605 gdb_use_included_regex=no
608 AC_ARG_WITH(included-regex,
609 [ --without-included-regex don't use included regex; this is the default
610 on systems with version 2 of the GNU C library
611 (use with caution on other system)],
612 gdb_with_regex=$withval,
613 gdb_with_regex=$gdb_use_included_regex)
614 if test "$gdb_with_regex" = yes; then
615 AC_DEFINE(USE_INCLUDED_REGEX, 1,
616 [Define to 1 if the regex included in libiberty should be used.])
619 # Check if <sys/proc.h> defines `struct thread' with a td_pcb member.
620 AC_CHECK_MEMBERS([struct thread.td_pcb], [], [],
621 [#include <sys/param.h>
622 #include <sys/proc.h>
625 # See if <sys/lwp.h> defines `struct lwp`.
626 AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp,
627 [AC_TRY_COMPILE([#include <sys/param.h>
628 #include <sys/lwp.h>], [struct lwp l;],
629 gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)])
630 if test $gdb_cv_struct_lwp = yes; then
631 AC_DEFINE(HAVE_STRUCT_LWP, 1,
632 [Define to 1 if your system has struct lwp.])
635 # See if <machine/reg.h> degines `struct reg'.
636 AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg,
637 [AC_TRY_COMPILE([#include <sys/types.h>
638 #include <machine/reg.h>], [struct reg r;],
639 gdb_cv_struct_reg=yes, gdb_cv_struct_reg=no)])
640 if test $gdb_cv_struct_reg = yes; then
641 AC_DEFINE(HAVE_STRUCT_REG, 1,
642 [Define to 1 if your system has struct reg in <machine/reg.h>.])
645 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
646 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
647 AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [],
648 [#include <machine/reg.h>])
650 # See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
651 AC_MSG_CHECKING(for PTRACE_GETREGS)
652 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
653 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
655 [gdb_cv_have_ptrace_getregs=yes],
656 [gdb_cv_have_ptrace_getregs=no])])
657 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
658 if test $gdb_cv_have_ptrace_getregs = yes; then
659 AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
660 [Define if sys/ptrace.h defines the PTRACE_GETREGS request.])
663 # See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
664 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
665 AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
666 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
667 [PTRACE_GETFPXREGS;],
668 [gdb_cv_have_ptrace_getfpxregs=yes],
669 [gdb_cv_have_ptrace_getfpxregs=no])])
670 AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
671 if test $gdb_cv_have_ptrace_getfpxregs = yes; then
672 AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
673 [Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.])
676 # See if <sys/ptrace.h> provides the PT_GETDBREGS request.
677 AC_MSG_CHECKING(for PT_GETDBREGS)
678 AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
679 [AC_TRY_COMPILE([#include <sys/types.h>
680 #include <sys/ptrace.h>],
682 [gdb_cv_have_pt_getdbregs=yes],
683 [gdb_cv_have_pt_getdbregs=no])])
684 AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
685 if test $gdb_cv_have_pt_getdbregs = yes; then
686 AC_DEFINE(HAVE_PT_GETDBREGS, 1,
687 [Define if sys/ptrace.h defines the PT_GETDBREGS request.])
690 # See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
691 AC_MSG_CHECKING(for PT_GETXMMREGS)
692 AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
693 [AC_TRY_COMPILE([#include <sys/types.h>
694 #include <sys/ptrace.h>],
696 [gdb_cv_have_pt_getxmmregs=yes],
697 [gdb_cv_have_pt_getxmmregs=no])])
698 AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
699 if test $gdb_cv_have_pt_getxmmregs = yes; then
700 AC_DEFINE(HAVE_PT_GETXMMREGS, 1,
701 [Define if sys/ptrace.h defines the PT_GETXMMREGS request.])
704 # Detect which type of /proc is in use, such as for Unixware or Solaris.
706 if test "${target}" = "${host}"; then
708 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
709 AC_DEFINE(NEW_PROC_API, 1,
710 [Define if you want to use new multi-fd /proc interface
711 (replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
713 *-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]])
714 AC_DEFINE(NEW_PROC_API, 1,
715 [Define if you want to use new multi-fd /proc interface
716 (replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
719 # Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5.
720 AC_DEFINE([_KMEMUSER], 1,
721 [Define to 1 so <sys/proc.h> gets a definition of anon_hdl. Works
722 around a <sys/proc.h> problem on IRIX 5.])
727 if test "$ac_cv_header_sys_procfs_h" = yes; then
728 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
729 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
730 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
731 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
732 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
733 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
734 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
735 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
736 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
737 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
738 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
739 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
740 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
741 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
744 dnl Check for broken prfpregset_t type
746 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
747 dnl prfpregset_t type (it's a typedef for the pointer to a struct
748 dnl instead of the struct itself). We detect this here, and work
749 dnl around it in gdb_proc_service.h.
751 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
752 AC_MSG_CHECKING(whether prfpregset_t type is broken)
753 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
754 [AC_TRY_RUN([#include <sys/procfs.h>
757 if (sizeof (prfpregset_t) == sizeof (void *))
761 gdb_cv_prfpregset_t_broken=no,
762 gdb_cv_prfpregset_t_broken=yes,
763 gdb_cv_prfpregset_t_broken=yes)])
764 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
765 if test $gdb_cv_prfpregset_t_broken = yes; then
766 AC_DEFINE(PRFPREGSET_T_BROKEN, 1,
767 [Define if the prfpregset_t type is broken.])
771 dnl Check for PIOCSET ioctl entry
773 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
774 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
775 [AC_TRY_COMPILE([#include <unistd.h>
776 #include <sys/types.h>
777 #include <sys/procfs.h>
780 dummy = ioctl(0, PIOCSET, &dummy);
782 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
783 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
784 if test $gdb_cv_have_procfs_piocset = yes; then
785 AC_DEFINE(HAVE_PROCFS_PIOCSET, 1,
786 [Define if ioctl argument PIOCSET is available.])
790 dnl For native ports (host == target), check to see what kind of
791 dnl legacy link.h support is needed. (See solib-legacy.c.)
792 if test ${host} = ${target} ; then
793 dnl Check for struct link_map with l_ members which are indicative
794 dnl of SVR4-like shared libraries
796 AC_MSG_CHECKING(for member l_addr in struct link_map)
797 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members,
798 [AC_TRY_COMPILE([#include <link.h>],
799 [struct link_map lm; (void) lm.l_addr;],
800 gdb_cv_have_struct_link_map_with_l_members=yes,
801 gdb_cv_have_struct_link_map_with_l_members=no)])
802 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members)
803 if test $gdb_cv_have_struct_link_map_with_l_members = yes; then
804 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS,1,
805 [Define if <link.h> exists and defines struct link_map which has
806 members with an ``l_'' prefix. (For Solaris, SVR4, and
807 SVR4-like systems.)])
810 dnl Check for struct link_map with lm_ members which are indicative
811 dnl of SunOS-like shared libraries
813 AC_MSG_CHECKING(for member lm_addr in struct link_map)
814 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members,
815 [AC_TRY_COMPILE([#include <sys/types.h>
817 [struct link_map lm; (void) lm.lm_addr;],
818 gdb_cv_have_struct_link_map_with_lm_members=yes,
819 gdb_cv_have_struct_link_map_with_lm_members=no)])
820 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members)
821 if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then
822 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS, 1,
823 [Define if <link.h> exists and defines struct link_map which has
824 members with an ``lm_'' prefix. (For SunOS.)])
827 dnl Check for struct so_map with som_ members which are found on
828 dnl some *BSD systems.
830 AC_MSG_CHECKING(for member som_addr in struct so_map)
831 AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members,
832 [AC_TRY_COMPILE([#include <sys/types.h>
837 [struct so_map lm; (void) lm.som_addr;],
838 gdb_cv_have_struct_so_map_with_som_members=yes,
839 gdb_cv_have_struct_so_map_with_som_members=no)])
840 AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members)
841 if test $gdb_cv_have_struct_so_map_with_som_members = yes; then
842 AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS, 1,
843 [Define if <link.h> exists and defines a struct so_map which has
844 members with an ``som_'' prefix. (Found on older *BSD systems.)])
847 dnl Check for struct link_map32 type, which allows a 64-bit Solaris
848 dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries.
850 AC_MSG_CHECKING(for struct link_map32 in sys/link.h)
851 AC_CACHE_VAL(gdb_cv_have_struct_link_map32,
852 [AC_TRY_COMPILE([#define _SYSCALL32
853 #include <sys/link.h>], [struct link_map32 l;],
854 gdb_cv_have_struct_link_map32=yes,
855 gdb_cv_have_struct_link_map32=no)])
856 AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
857 if test $gdb_cv_have_struct_link_map32 = yes; then
858 AC_DEFINE(HAVE_STRUCT_LINK_MAP32, 1,
859 [Define if <sys/link.h> has struct link_map32])
860 AC_DEFINE(_SYSCALL32, 1,
861 [Define if <sys/link.h> has link_map32 (solaris sparc-64 target)])
865 # Check if the compiler supports the `long long' type.
867 AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long,
868 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
869 [[extern long long foo;]],
870 [[switch (foo & 2) { case 0: return 1; }]])],
871 gdb_cv_c_long_long=yes,
872 gdb_cv_c_long_long=no)])
873 if test $gdb_cv_c_long_long = yes; then
874 AC_DEFINE(CC_HAS_LONG_LONG, 1,
875 [Define to 1 if the compiler supports long long.])
878 # Check if the compiler and runtime support printing long longs.
880 AC_CACHE_CHECK([for long long support in printf],
881 gdb_cv_printf_has_long_long,
882 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
885 l = (l << 16) + 0x0123;
886 l = (l << 16) + 0x4567;
887 l = (l << 16) + 0x89ab;
888 l = (l << 16) + 0xcdef;
889 sprintf (buf, "0x%016llx", l);
890 return (strcmp ("0x0123456789abcdef", buf));]])],
891 gdb_cv_printf_has_long_long=yes,
892 gdb_cv_printf_has_long_long=no,
893 gdb_cv_printf_has_long_long=no)])
894 if test $gdb_cv_printf_has_long_long = yes; then
895 AC_DEFINE(PRINTF_HAS_LONG_LONG, 1,
896 [Define to 1 if the "%ll" format works to print long longs.])
899 # Check if the compiler supports the `long double' type. We can't use
900 # AC_C_LONG_DOUBLE because that one does additional checks on the
901 # constants defined in <float.h> that fail on some systems,
902 # e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6.
904 AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double,
905 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])],
906 gdb_cv_c_long_double=yes,
907 gdb_cv_c_long_double=no)])
908 if test $gdb_cv_c_long_double = yes; then
909 AC_DEFINE(HAVE_LONG_DOUBLE, 1,
910 [Define to 1 if the compiler supports long double.])
913 # Check if the compiler and runtime support printing long doubles.
915 AC_CACHE_CHECK([for long double support in printf],
916 gdb_cv_printf_has_long_double,
917 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
919 long double f = 3.141592653;
920 sprintf (buf, "%Lg", f);
921 return (strncmp ("3.14159", buf, 7));]])],
922 gdb_cv_printf_has_long_double=yes,
923 gdb_cv_printf_has_long_double=no,
924 gdb_cv_printf_has_long_double=no)])
925 if test $gdb_cv_printf_has_long_double = yes; then
926 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1,
927 [Define to 1 if the "%Lg" format works to print long doubles.])
930 # Check if the compiler and runtime support scanning long doubles.
932 AC_CACHE_CHECK([for long double support in scanf],
933 gdb_cv_scanf_has_long_double,
934 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
935 [[#include <stdio.h>]],
936 [[char *buf = "3.141592653";
938 sscanf (buf, "%Lg", &f);
939 return !(f > 3.14159 && f < 3.14160);]])],
940 gdb_cv_scanf_has_long_double=yes,
941 gdb_cv_scanf_has_long_double=no,
942 gdb_cv_scanf_has_long_double=no)])
943 if test $gdb_cv_scanf_has_long_double = yes; then
944 AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1,
945 [Define to 1 if the "%Lg" format works to scan long doubles.])
950 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
951 SAVE_LDFLAGS=$LDFLAGS
954 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
955 *) gdb_cv_bigtoc=-bbigtoc ;;
958 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
959 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
960 LDFLAGS="${SAVE_LDFLAGS}"
962 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
967 dnl For certain native configurations, we need to check whether thread
968 dnl support can be built in or not.
970 dnl Note that we only want this if we are both native (host == target),
971 dnl and not doing a canadian cross build (build == host).
973 if test ${build} = ${host} -a ${host} = ${target} ; then
976 AC_MSG_CHECKING(for HPUX/OSF thread support)
977 if test -f /usr/include/dce/cma_config.h ; then
978 if test "$GCC" = "yes" ; then
980 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT, 1,
981 [Define if you have HPUX threads])
982 CONFIG_OBS="${CONFIG_OBS} hpux-thread.o"
983 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
985 AC_MSG_RESULT(no (suppressed because you are not using GCC))
992 # See if thread_db library is around for Solaris thread debugging.
993 # Note that we must explicitly test for version 1 of the library
994 # because version 0 (present on Solaris 2.4 or earlier) doesn't have
996 AC_MSG_CHECKING(for Solaris thread debugging library)
997 if test -f /usr/lib/libthread_db.so.1 ; then
999 AC_DEFINE(HAVE_THREAD_DB_LIB, 1,
1000 [Define if using Solaris thread debugging.])
1001 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
1002 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
1003 AC_CHECK_LIB(dl, dlopen)
1004 if test "$GCC" = "yes" ; then
1005 # The GNU linker requires the -export-dynamic option to make
1006 # all symbols visible in the dynamic symbol table.
1007 hold_ldflags=$LDFLAGS
1008 AC_MSG_CHECKING(for the ld -export-dynamic flag)
1009 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
1010 AC_TRY_LINK(, [int i;], found=yes, found=no)
1011 LDFLAGS=$hold_ldflags
1012 AC_MSG_RESULT($found)
1013 if test $found = yes; then
1014 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
1017 # Sun randomly tweaked the prototypes in <proc_service.h>
1019 AC_MSG_CHECKING(if <proc_service.h> is old)
1020 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
1022 #include <proc_service.h>
1024 (struct ps_prochandle*, psaddr_t, const void*, size_t);
1025 ],, gdb_cv_proc_service_is_old=no,
1026 gdb_cv_proc_service_is_old=yes)
1028 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
1029 if test $gdb_cv_proc_service_is_old = yes; then
1030 AC_DEFINE(PROC_SERVICE_IS_OLD, 1,
1031 [Define if <proc_service.h> on solaris uses int instead of
1032 size_t, and assorted other type changes.])
1039 AC_MSG_CHECKING(for AiX thread debugging library)
1040 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
1041 [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
1042 [#ifndef PTHDB_VERSION_3
1045 gdb_cv_have_aix_thread_debug=yes,
1046 gdb_cv_have_aix_thread_debug=no)])
1047 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
1048 if test $gdb_cv_have_aix_thread_debug = yes; then
1049 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
1050 CONFIG_OBS="${CONFIG_OBS} aix-thread.o"
1051 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
1055 AC_SUBST(CONFIG_LDFLAGS)
1058 dnl See if we have a thread_db header file that has TD_NOTALLOC and
1059 dnl other error codes.
1060 if test "x$ac_cv_header_thread_db_h" = "xyes"; then
1061 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
1062 gdb_cv_thread_db_h_has_td_notalloc,
1064 [#include <thread_db.h>],
1065 [int i = TD_NOTALLOC;],
1066 gdb_cv_thread_db_h_has_td_notalloc=yes,
1067 gdb_cv_thread_db_h_has_td_notalloc=no
1070 AC_CACHE_CHECK([whether <thread_db.h> has TD_VERSION],
1071 gdb_cv_thread_db_h_has_td_version,
1073 [#include <thread_db.h>],
1074 [int i = TD_VERSION;],
1075 gdb_cv_thread_db_h_has_td_version=yes,
1076 gdb_cv_thread_db_h_has_td_version=no
1079 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTLS],
1080 gdb_cv_thread_db_h_has_td_notls,
1082 [#include <thread_db.h>],
1083 [int i = TD_NOTLS;],
1084 gdb_cv_thread_db_h_has_td_notls=yes,
1085 gdb_cv_thread_db_h_has_td_notls=no
1089 if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
1090 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
1091 [Define if <thread_db.h> has the TD_NOTALLOC error code.])
1093 if test "x$gdb_cv_thread_db_h_has_td_version" = "xyes"; then
1094 AC_DEFINE(THREAD_DB_HAS_TD_VERSION, 1,
1095 [Define if <thread_db.h> has the TD_VERSION error code.])
1097 if test "x$gdb_cv_thread_db_h_has_td_notls" = "xyes"; then
1098 AC_DEFINE(THREAD_DB_HAS_TD_NOTLS, 1,
1099 [Define if <thread_db.h> has the TD_NOTLS error code.])
1102 dnl See if we have a sys/syscall header file that has __NR_tkill.
1103 if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then
1104 AC_CACHE_CHECK([whether <sys/syscall.h> has __NR_tkill],
1105 gdb_cv_sys_syscall_h_has_tkill,
1107 [#include <sys/syscall.h>],
1108 [int i = __NR_tkill;],
1109 gdb_cv_sys_syscall_h_has_tkill=yes,
1110 gdb_cv_sys_syscall_h_has_tkill=no
1114 dnl See if we can issue tkill syscall.
1115 if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes" && test "x$ac_cv_func_syscall" = "xyes"; then
1116 AC_DEFINE(HAVE_TKILL_SYSCALL, 1, [Define if you support the tkill syscall.])
1119 dnl Handle optional features that can be enabled.
1121 AC_ARG_WITH(sysroot,
1122 [ --with-sysroot[=DIR] Search for usr/lib et al within DIR.],
1124 case ${with_sysroot} in
1125 yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
1126 *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
1129 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
1131 if test "x$prefix" = xNONE; then
1132 test_prefix=/usr/local
1136 if test "x$exec_prefix" = xNONE || test "x$exec_prefix" = 'x${prefix}'; then
1137 test_exec_prefix=$test_prefix
1139 test_exec_prefix=$exec_prefix
1141 case ${TARGET_SYSTEM_ROOT} in
1142 "${test_prefix}"|"${test_prefix}/"*|\
1143 "${test_exec_prefix}"|"${test_exec_prefix}/"*|\
1144 '${prefix}'|'${prefix}/'*|\
1145 '${exec_prefix}'|'${exec_prefix}/'*)
1146 t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
1147 TARGET_SYSTEM_ROOT_DEFINE="$t"
1152 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"'
1154 AC_SUBST(TARGET_SYSTEM_ROOT)
1155 AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
1157 AC_ARG_ENABLE(werror,
1158 [ --enable-werror treat compile warnings as errors],
1159 [case "${enableval}" in
1160 yes | y) ERROR_ON_WARNING="yes" ;;
1161 no | n) ERROR_ON_WARNING="no" ;;
1162 *) AC_MSG_ERROR(bad value ${enableval} for --enable-werror) ;;
1165 # Enable -Werror by default when using gcc
1166 if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then
1167 ERROR_ON_WARNING=yes
1171 if test "${ERROR_ON_WARNING}" = yes ; then
1172 WERROR_CFLAGS="-Werror"
1175 # The entries after -Wno-pointer-sign are disabled warnings which may
1176 # be enabled in the future, which can not currently be used to build
1178 # NOTE: If you change this list, remember to update
1179 # gdb/doc/gdbint.texinfo.
1180 build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \
1181 -Wformat-nonliteral -Wno-pointer-sign \
1182 -Wno-unused -Wno-switch -Wno-char-subscripts"
1184 AC_ARG_ENABLE(build-warnings,
1185 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
1186 [case "${enableval}" in
1188 no) build_warnings="-w";;
1189 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1190 build_warnings="${build_warnings} ${t}";;
1191 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1192 build_warnings="${t} ${build_warnings}";;
1193 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1195 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1196 echo "Setting compiler warning flags = $build_warnings" 6>&1
1198 AC_ARG_ENABLE(gdb-build-warnings,
1199 [ --enable-gdb-build-warnings Enable GDB specific build-time compiler warnings if gcc is used],
1200 [case "${enableval}" in
1202 no) build_warnings="-w";;
1203 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1204 build_warnings="${build_warnings} ${t}";;
1205 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1206 build_warnings="${t} ${build_warnings}";;
1207 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1209 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1210 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
1213 if test "x${build_warnings}" != x -a "x$GCC" = xyes
1215 AC_MSG_CHECKING(compiler warning flags)
1216 # Separate out the -Werror flag as some files just cannot be
1217 # compiled with it enabled.
1218 for w in ${build_warnings}; do
1220 -Werr*) WERROR_CFLAGS=-Werror ;;
1221 *) # Check that GCC accepts it
1222 saved_CFLAGS="$CFLAGS"
1224 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
1225 CFLAGS="$saved_CFLAGS"
1228 AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS})
1230 AC_SUBST(WARN_CFLAGS)
1231 AC_SUBST(WERROR_CFLAGS)
1233 # In the Cygwin environment, we need some additional flags.
1234 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
1235 [AC_EGREP_CPP(lose, [
1236 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
1238 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
1241 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
1242 SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o"
1244 *go32* ) SER_HARDWIRE=ser-go32.o ;;
1245 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
1246 *mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;;
1248 AC_SUBST(SER_HARDWIRE)
1250 # libreadline needs libuser32.a in a cygwin environment
1252 if test x$gdb_cv_os_cygwin = xyes; then
1253 WIN32LIBS="-luser32"
1255 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
1260 # The ser-tcp.c module requires sockets.
1263 AC_DEFINE(USE_WIN32API, 1,
1264 [Define if we should use the Windows API, instead of the
1265 POSIX API. On Windows, we use the Windows API when
1266 building for MinGW, but the POSIX API when building
1268 WIN32LIBS="$WIN32LIBS -lws2_32"
1273 # Add ELF support to GDB, but only if BFD includes ELF support.
1275 OLD_LDFLAGS=$LDFLAGS
1277 CFLAGS="$CFLAGS -I${srcdir}/../include -I../bfd -I${srcdir}/../bfd"
1278 LDFLAGS="$LDFLAGS -L../bfd -L../libiberty"
1279 LIBS="$LIBS -lbfd -liberty"
1280 AC_CACHE_CHECK([for ELF support in BFD], gdb_cv_var_elf,
1282 [#include <stdlib.h>
1284 #include "elf-bfd.h"
1286 [bfd *abfd = NULL; bfd_get_elf_phdr_upper_bound (abfd); ],
1287 gdb_cv_var_elf=yes, gdb_cv_var_elf=no)])
1288 if test $gdb_cv_var_elf = yes; then
1289 CONFIG_OBS="$CONFIG_OBS elfread.o"
1290 AC_DEFINE(HAVE_ELF, 1,
1291 [Define if ELF support should be included.])
1294 LDFLAGS=$OLD_LDFLAGS
1297 # Add any host-specific objects to GDB.
1298 CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
1300 LIBGUI="../libgui/src/libgui.a"
1301 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
1303 AC_SUBST(GUI_CFLAGS_X)
1307 AC_SUBST(WIN32LDAPP)
1319 if test "${enable_gdbtk}" = "yes"; then
1321 # Gdbtk must have an absolute path to srcdir in order to run
1322 # properly when not installed.
1328 CY_AC_PATH_TCLCONFIG
1329 if test -z "${no_tcl}"; then
1330 CY_AC_LOAD_TCLCONFIG
1333 # now look for Tcl library stuff
1335 tcldir="../tcl/${configdir}/"
1337 TCL_DEPS="${tcldir}${TCL_LIB_FILE}"
1339 # If $no_tk is nonempty, then we can't do Tk, and there is no
1340 # point to doing Tcl.
1341 if test -z "${no_tk}"; then
1349 # now look for Tk library stuff
1351 tkdir="../tk/${configdir}/"
1353 TK_DEPS="${tkdir}${TK_LIB_FILE}"
1355 # now look for Itcl library stuff
1357 CY_AC_PATH_ITCLCONFIG
1358 if test -z "${no_itcl}"; then
1359 CY_AC_LOAD_ITCLCONFIG
1361 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
1362 ITCL_DEPS="${ITCL_LIB_FULL_PATH}"
1366 # now look for Itk library stuff
1367 CY_AC_PATH_ITKCONFIG
1368 if test -z "${no_itcl}"; then
1369 CY_AC_LOAD_ITKCONFIG
1371 ITKLIB="${ITK_BUILD_LIB_SPEC}"
1372 ITK_DEPS="${ITK_LIB_FULL_PATH}"
1375 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
1377 # Include some libraries that Tcl and Tk want.
1378 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
1379 # Yes, the ordering seems wrong here. But it isn't.
1380 # TK_LIBS is the list of libraries that need to be linked
1381 # after Tcl/Tk. Note that this isn't put into LIBS. If it
1382 # were in LIBS then any link tests after this point would
1383 # try to include things like `$(LIBGUI)', which wouldn't work.
1384 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
1386 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
1387 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
1388 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
1389 CONFIG_ALL="${CONFIG_ALL} all-gdbtk"
1390 CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk"
1391 CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk"
1392 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk"
1394 if test x$gdb_cv_os_cygwin = xyes; then
1395 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
1396 WIN32LDAPP="-Wl,--subsystem,console"
1397 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
1402 AC_CONFIG_SUBDIRS(gdbtk)
1415 AC_SUBST(GDBTK_CFLAGS)
1416 AC_SUBST(GDBTK_SRC_DIR)
1420 # Check whether we should enable the TUI, but only do so if we really
1422 if test x"$enable_tui" = xyes; then
1423 if test -d $srcdir/tui; then
1424 if test "$ac_cv_search_waddstr" != no; then
1425 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
1426 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
1427 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
1428 CONFIG_INITS="$CONFIG_INITS \$(SUBDIR_TUI_INITS)"
1429 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
1430 CONFIG_ALL="${CONFIG_ALL} all-tui"
1431 CONFIG_CLEAN="${CONFIG_CLEAN} clean-tui"
1432 CONFIG_INSTALL="${CONFIG_INSTALL} install-tui"
1433 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-tui"
1435 AC_MSG_WARN([no enhanced curses library found; disabling TUI])
1440 # Unlike the sim directory, whether a simulator is linked is controlled by
1441 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
1442 # This code just checks for a few cases where we'd like to ignore those
1443 # definitions, even when they're present in the '.mt' file. These cases
1444 # are when --disable-sim is specified, or if the simulator directory is
1445 # not part of the source tree.
1448 [ --enable-sim Link gdb with simulator],
1449 [echo "enable_sim = $enable_sim";
1450 echo "enableval = ${enableval}";
1451 case "${enableval}" in
1452 yes) ignore_sim=false ;;
1453 no) ignore_sim=true ;;
1454 *) ignore_sim=false ;;
1458 if test ! -d "${srcdir}/../sim"; then
1462 if test "${ignore_sim}" = "true"; then
1464 IGNORE_SIM_OBS="SIM_OBS="
1468 AC_DEFINE(WITH_SIM, 1, [Define if the simulator is being linked in.])
1470 AC_SUBST(IGNORE_SIM)
1471 AC_SUBST(IGNORE_SIM_OBS)
1473 AC_SUBST(ENABLE_CFLAGS)
1474 AC_SUBST(PROFILE_CFLAGS)
1476 AC_SUBST(CONFIG_OBS)
1477 AC_SUBST(CONFIG_DEPS)
1478 AC_SUBST(CONFIG_SRCS)
1479 AC_SUBST(CONFIG_ALL)
1480 AC_SUBST(CONFIG_CLEAN)
1481 AC_SUBST(CONFIG_INSTALL)
1482 AC_SUBST(CONFIG_UNINSTALL)
1484 # List of host floatformats.
1485 AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat])
1486 AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat])
1487 AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat])
1489 # target_subdir is used by the testsuite to find the target libraries.
1491 if test "${host}" != "${target}"; then
1492 target_subdir="${target_alias}/"
1494 AC_SUBST(target_subdir)
1497 if test "${gdb_native}" = "yes"; then
1498 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
1499 if test ! -f ${host_makefile_frag}; then
1500 AC_MSG_ERROR("*** Gdb does not support native target ${host}")
1502 frags="$frags $host_makefile_frag"
1504 host_makefile_frag=/dev/null
1507 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
1508 if test ! -f ${target_makefile_frag}; then
1509 AC_MSG_ERROR("*** Gdb does not support target ${target}")
1511 frags="$frags $target_makefile_frag"
1513 AC_SUBST_FILE(host_makefile_frag)
1514 AC_SUBST_FILE(target_makefile_frag)
1519 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1520 ' ${host_makefile_frag}`
1522 targetfile=`sed -n '
1523 s/^[ ]*DEPRECATED_TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1524 ' ${target_makefile_frag}`
1526 if test "${gdb_native}" = "yes"; then
1527 # We pick this up from the host configuration file (.mh) because we
1528 # do not have a native configuration Makefile fragment.
1529 nativefile=`sed -n '
1530 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1531 ' ${host_makefile_frag}`
1535 if test x"${gdb_osabi}" != x ; then
1536 AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
1537 [Define to the default OS ABI for this configuration.])
1540 # Enable multi-ice-gdb-server.
1541 AC_ARG_ENABLE(multi-ice,
1542 [ --enable-multi-ice build the multi-ice-gdb-server],
1546 *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;;
1548 if test "x$enable_multi_ice" = xyes; then
1549 AC_CONFIG_SUBDIRS(multi-ice)
1552 # We only build gdbserver automatically in a native configuration.
1553 if test "$gdb_native" = "yes"; then
1554 AC_MSG_CHECKING(whether gdbserver is supported on this host)
1555 if test "x$build_gdbserver" = xyes; then
1557 AC_CONFIG_SUBDIRS(gdbserver)
1563 # If hostfile (XM_FILE) and/or targetfile (DEPRECATED_TM_FILE) and/or
1564 # nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link
1565 # to an empty version.
1572 if test "${hostfile}" != ""; then
1574 case "${hostfile}" in
1575 xm-*.h ) GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}" ;;
1576 * ) GDB_XM_FILE="${hostfile}"
1578 files="${files} ${GDB_XM_FILE}"
1579 links="${links} xm.h"
1580 AC_DEFINE_UNQUOTED(GDB_XM_FILE, "${GDB_XM_FILE}", [hostfile])
1586 if test "${targetfile}" != ""; then
1588 case "${targetfile}" in
1589 tm-*.h ) GDB_TM_FILE="config/${gdb_target_cpu}/${targetfile}" ;;
1590 * ) GDB_TM_FILE="${targetfile}"
1592 files="${files} ${GDB_TM_FILE}"
1593 links="${links} tm.h"
1594 AC_DEFINE_UNQUOTED(GDB_TM_FILE, "${GDB_TM_FILE}", [targetfile])
1600 if test "${nativefile}" != ""; then
1602 case "${nativefile}" in
1603 nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;;
1604 * ) GDB_NM_FILE="${nativefile}"
1606 files="${files} ${GDB_NM_FILE}"
1607 links="${links} nm.h"
1608 AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}", [nativefile])
1612 AC_LINK_FILES($files, $links)
1614 dnl Check for exe extension set on certain hosts (e.g. Win32)
1617 dnl Detect the character set used by this host.
1619 dnl At the moment, we just assume it's ISO-8859-1 (which is a
1620 dnl superset of ASCII containing the characters needed for French,
1621 dnl German, Spanish, Italian, and possibly others), but if were
1622 dnl *were* to support any host character sets other than ISO-8859-1,
1623 dnl here's where we'd detect it.
1624 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "ISO-8859-1",
1625 [Define to be a string naming the default host character set.])
1629 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1631 dnl Autoconf doesn't provide a mechanism for modifying definitions
1632 dnl provided by makefile fragments.
1636 sed -e '/^DEPRECATED_TM_FILE[ ]*=/s,^DEPRECATED_TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1637 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1638 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1639 mv -f Makefile.tmp Makefile
1643 case x$CONFIG_HEADERS in
1644 xconfig.h:config.in)
1649 gdb_host_cpu=$gdb_host_cpu
1650 gdb_target_cpu=$gdb_target_cpu
1651 nativefile=$nativefile