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 2 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, write to the Free Software
20 dnl Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 dnl Boston, MA 02110-1301, USA.
23 dnl Process this file with autoconf to produce a configure script.
27 AC_CONFIG_HEADER(config.h:config.in)
36 AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
39 dnl List of object files and targets accumulated by configure.
51 dnl Set up for gettext.
52 ZW_GNU_GETTEXT_SISTER_DIR
54 localedir='${datadir}/locale'
57 if test x"$USE_NLS" = xyes; then
58 CONFIG_ALL="$CONFIG_ALL all-po"
59 CONFIG_CLEAN="$CONFIG_CLEAN clean-po"
60 CONFIG_INSTALL="$CONFIG_INSTALL install-po"
61 CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po"
65 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ])
68 debugdir=${libdir}/debug
70 AC_ARG_WITH(separate-debug-dir,
71 [ --with-separate-debug-dir=path Look for global separate debug info in this path [LIBDIR/debug]],
72 [debugdir="${withval}"])
74 AC_DEFINE_DIR(DEBUGDIR, debugdir,
75 [Global directory for separate debug files. ])
76 #AC_DEFINE_UNQUOTED(DEBUGDIR, "$debugdir"),
78 AC_CONFIG_SUBDIRS(doc testsuite)
80 # Provide defaults for some variables set by the per-host and per-target
82 gdb_host_obs=posix-hdep.o
84 if test "${target}" = "${host}"; then
90 . $srcdir/configure.host
92 . $srcdir/configure.tgt
94 # Fetch the default architecture and default target vector from BFD.
95 targ=$target; . $srcdir/../bfd/config.bfd
97 # We only want the first architecture, so strip off the others if
98 # there is more than one.
99 targ_archs=`echo $targ_archs | sed 's/ .*//'`
101 if test "x$targ_archs" != x; then
102 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs,
103 [Define to BFD's default architecture. ])
105 if test "x$targ_defvec" != x; then
106 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec,
107 [Define to BFD's default target vector. ])
112 # The CLI cannot be disabled yet, but may be in the future.
115 AC_ARG_ENABLE(gdbcli,
116 [ --disable-gdbcli disable command-line interface (CLI)],
121 AC_MSG_ERROR([the command-line interface cannot be disabled yet]) ;;
123 AC_MSG_ERROR([bad value $enableval for --enable-gdbcli]) ;;
126 if test x"$enable_gdbcli" = xyes; then
127 if test -d $srcdir/cli; then
128 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)"
129 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)"
130 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)"
131 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)"
137 [ --disable-gdbmi disable machine-interface (MI)],
142 AC_MSG_ERROR([bad value $enableval for --enable-gdbmi]) ;;
145 if test x"$enable_gdbmi" = xyes; then
146 if test -d $srcdir/mi; then
147 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)"
148 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)"
149 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)"
150 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)"
156 [ --enable-tui enable full-screen terminal user interface (TUI)],
161 AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
162 esac],enable_tui=yes)
166 [ --enable-gdbtk enable gdbtk graphical user interface (GUI)],
171 AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;;
173 [if test -d $srcdir/gdbtk -a -d $srcdir/../itcl; then
178 # We unconditionally disable gdbtk tests on selected platforms.
181 AC_MSG_WARN([gdbtk isn't supported on $host; disabling])
186 AC_ARG_WITH(libunwind,
187 [ --with-libunwind Use libunwind frame unwinding support],
188 [case "${withval}" in
189 yes) enable_libunwind=yes ;;
190 no) enable_libunwind=no ;;
191 *) AC_MSG_ERROR(bad value ${withval} for GDB with-libunwind option) ;;
193 AC_CHECK_HEADERS(libunwind.h)
194 AC_CHECK_HEADERS(libunwind-ia64.h)
195 if test x"$ac_cv_header_libunwind_h" = xyes -a x"$ac_cv_header_libunwind_ia64_h" = xyes; then
196 enable_libunwind=yes;
200 if test x"$enable_libunwind" = xyes; then
201 AC_CHECK_HEADERS(libunwind.h)
202 AC_CHECK_HEADERS(libunwind-ia64.h)
203 AC_DEFINE(HAVE_LIBUNWIND, 1, [Define if libunwind library is being used.])
204 CONFIG_OBS="$CONFIG_OBS libunwind-frame.o"
205 CONFIG_DEPS="$CONFIG_DEPS libunwind-frame.o"
206 CONFIG_SRCS="$CONFIG_SRCS libunwind-frame.c"
210 AC_ARG_ENABLE(profiling,
211 [ --enable-profiling enable profiling of GDB],
216 AC_MSG_ERROR([bad value $enableval for --enable-profile]) ;;
218 [enable_profiling=no])
220 AC_CHECK_FUNCS(monstartup _mcleanup)
221 AC_CACHE_CHECK([for _etext], ac_cv_var__etext,
226 [free (&_etext);], ac_cv_var__etext=yes, ac_cv_var__etext=no)])
227 if test $ac_cv_var__etext = yes; then
228 AC_DEFINE(HAVE__ETEXT, 1,
229 [Define to 1 if your system has the _etext variable. ])
231 if test "$enable_profiling" = yes ; then
232 if test $ac_cv_func_monstartup = no || test $ac_cv_func__mcleanup = no; then
233 AC_MSG_ERROR(--enable-profiling requires monstartup and _mcleanup)
237 CFLAGS="$CFLAGS $PROFILE_CFLAGS"
239 AC_CACHE_CHECK([whether $CC supports -pg], ac_cv_cc_supports_pg,
240 [AC_TRY_COMPILE([], [int x;], ac_cv_cc_supports_pg=yes,
241 ac_cv_cc_supports_pg=no)])
243 if test $ac_cv_cc_supports_pg = no; then
244 AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg)
250 # --------------------- #
251 # Checks for programs. #
252 # --------------------- #
260 AC_CHECK_TOOL(AR, ar)
261 AC_CHECK_TOOL(DLLTOOL, dlltool)
262 AC_CHECK_TOOL(WINDRES, windres)
264 # Needed for GNU/Hurd.
265 AC_CHECK_TOOL(MIG, mig)
267 # ---------------------- #
268 # Checks for libraries. #
269 # ---------------------- #
271 # We might need to link with -lm; most simulators need it.
272 AC_CHECK_LIB(m, main)
274 # We need to link with -lw to get `wctype' on Solaris before Solaris
275 # 2.6. Solaris 2.6 and beyond have this function in libc, and have a
276 # libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1
277 # is known to have this problem). Therefore we avoid libw if we can.
278 AC_CHECK_FUNC(wctype, [],
279 [AC_CHECK_LIB(w, wctype)])
281 # Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
282 AC_SEARCH_LIBS(gethostbyname, nsl)
284 # Some systems (e.g. Solaris) have `socketpair' in libsocket.
285 AC_SEARCH_LIBS(socketpair, socket)
287 # For the TUI, we need enhanced curses functionality.
289 # FIXME: kettenis/20040905: We prefer ncurses over the vendor-supplied
290 # curses library because the latter might not provide all the
291 # functionality we need. However, this leads to problems on systems
292 # where the linker searches /usr/local/lib, but the compiler doesn't
293 # search /usr/local/include, if ncurses is installed in /usr/local. A
294 # default installation of ncurses on alpha*-dec-osf* will lead to such
296 AC_SEARCH_LIBS(waddstr, [ncurses cursesX curses])
298 # Since GDB uses Readline, we need termcap functionality. In many
299 # cases this will be provided by the curses library, but some systems
300 # have a seperate termcap library, or no curses library at all.
304 if test -d $srcdir/libtermcap; then
305 LIBS="../libtermcap/libtermcap.a $LIBS"
306 ac_cv_search_tgetent="../libtermcap/libtermcap.a"
309 ac_cv_search_tgetent="none required"
312 ac_cv_search_tgetent="none required"
313 CONFIG_OBS="$CONFIG_OBS win32-termcap.o"
317 # These are the libraries checked by Readline.
318 AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses])
320 if test "$ac_cv_search_tgetent" = no; then
321 AC_MSG_ERROR([no termcap library found])
324 AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"],
325 [XML_Parser p = XML_ParserCreate (0);])
326 if test "$HAVE_LIBEXPAT" != yes; then
327 AC_MSG_WARN([expat is missing or unusable; some features may be disabled.])
330 LIBS="$LIBS $LIBEXPAT"
331 AC_CHECK_FUNCS(XML_StopParser)
335 # ------------------------- #
336 # Checks for header files. #
337 # ------------------------- #
342 AC_CHECK_HEADERS(nlist.h)
343 AC_CHECK_HEADERS(link.h, [], [],
344 [#if HAVE_SYS_TYPES_H
345 # include <sys/types.h>
351 AC_CHECK_HEADERS(machine/reg.h)
352 AC_CHECK_HEADERS(poll.h sys/poll.h)
353 AC_CHECK_HEADERS(proc_service.h thread_db.h gnu/libc-version.h)
354 AC_CHECK_HEADERS(stddef.h)
355 AC_CHECK_HEADERS(stdlib.h)
356 AC_CHECK_HEADERS(stdint.h)
357 AC_CHECK_HEADERS(string.h memory.h strings.h)
358 AC_CHECK_HEADERS(sys/fault.h)
359 AC_CHECK_HEADERS(sys/file.h)
360 AC_CHECK_HEADERS(sys/filio.h)
361 AC_CHECK_HEADERS(sys/ioctl.h)
362 AC_CHECK_HEADERS(sys/param.h)
363 AC_CHECK_HEADERS(sys/proc.h, [], [],
364 [#if HAVE_SYS_PARAM_H
365 # include <sys/param.h>
368 AC_CHECK_HEADERS(sys/procfs.h)
369 AC_CHECK_HEADERS(sys/ptrace.h ptrace.h)
370 AC_CHECK_HEADERS(sys/reg.h sys/debugreg.h)
371 AC_CHECK_HEADERS(sys/select.h)
372 AC_CHECK_HEADERS(sys/syscall.h)
373 AC_CHECK_HEADERS(sys/types.h)
374 AC_CHECK_HEADERS(sys/user.h, [], [],
375 [#if HAVE_SYS_PARAM_H
376 # include <sys/param.h>
379 AC_CHECK_HEADERS(sys/wait.h wait.h)
380 AC_CHECK_HEADERS(termios.h termio.h sgtty.h)
381 AC_CHECK_HEADERS(unistd.h)
383 # On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash
384 # between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
385 # think that we don't have <curses.h> if we're using GCC.
388 if test "$GCC" = yes; then
389 AC_DEFINE(_MSE_INT_H, 1,
390 [Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
391 Solaris 2.[789] when using GCC. ])
394 AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h)
395 AC_CHECK_HEADERS(ncurses/term.h)
396 AC_CHECK_HEADERS(term.h, [], [],
402 # FIXME: kettenis/20030102: In most cases we include these
403 # unconditionally, so what's the point in checking these?
404 AC_CHECK_HEADERS(ctype.h time.h)
406 # Create a header we can use portably to get the standard integer types.
407 GCC_HEADER_STDINT(gdb_stdint.h)
409 # ------------------------- #
410 # Checks for declarations. #
411 # ------------------------- #
413 AC_CHECK_DECLS([free, malloc, realloc])
414 AC_CHECK_DECLS([strerror, strstr])
415 AC_CHECK_DECLS([getopt, snprintf, vsnprintf])
417 # ----------------------- #
418 # Checks for structures. #
419 # ----------------------- #
421 AC_CHECK_MEMBERS([struct stat.st_blocks])
422 AC_CHECK_MEMBERS([struct stat.st_blksize])
424 # ------------------ #
425 # Checks for types. #
426 # ------------------ #
429 AC_CHECK_TYPES(socklen_t, [], [],
430 [#include <sys/types.h>
431 #include <sys/socket.h>
433 AC_CHECK_TYPES(uintptr_t, [], [], [#include <stdint.h>])
435 # ------------------------------------- #
436 # Checks for compiler characteristics. #
437 # ------------------------------------- #
442 # ------------------------------ #
443 # Checks for library functions. #
444 # ------------------------------ #
449 AC_CHECK_FUNCS(canonicalize_file_name realpath)
450 AC_CHECK_FUNCS(getuid getgid)
452 AC_CHECK_FUNCS(pread64)
454 AC_CHECK_FUNCS(setpgid setpgrp)
455 AC_CHECK_FUNCS(sigaction sigprocmask sigsetmask)
456 AC_CHECK_FUNCS(socketpair)
457 AC_CHECK_FUNCS(syscall)
458 AC_CHECK_FUNCS(ttrace)
459 AC_CHECK_FUNCS(wborder)
461 # Check the return and argument types of ptrace. No canned test for
462 # this, so roll our own.
465 # include <sys/types.h>
467 #if HAVE_SYS_PTRACE_H
468 # include <sys/ptrace.h>
474 # There is no point in checking if we don't have a prototype.
475 AC_CHECK_DECLS(ptrace, [], [
476 : ${gdb_cv_func_ptrace_ret='int'}
477 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
478 ], $gdb_ptrace_headers)
480 AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret,
481 AC_TRY_COMPILE($gdb_ptrace_headers,
482 [extern int ptrace ();],
483 gdb_cv_func_ptrace_ret='int',
484 gdb_cv_func_ptrace_ret='long'))
485 AC_DEFINE_UNQUOTED(PTRACE_TYPE_RET, $gdb_cv_func_ptrace_ret,
486 [Define as the return type of ptrace.])
487 # Check argument types.
488 AC_CACHE_CHECK([types of arguments for ptrace], gdb_cv_func_ptrace_args, [
489 for gdb_arg1 in 'int' 'long'; do
490 for gdb_arg2 in 'pid_t' 'int' 'long'; do
491 for gdb_arg3 in 'int *' 'caddr_t' 'int' 'long'; do
492 for gdb_arg4 in 'int' 'long'; do
493 AC_TRY_COMPILE($gdb_ptrace_headers, [
494 extern $gdb_cv_func_ptrace_ret
495 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4);
496 ], [gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4";
498 for gdb_arg5 in 'int *' 'int' 'long'; do
499 AC_TRY_COMPILE($gdb_ptrace_headers, [
500 extern $gdb_cv_func_ptrace_ret
501 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4, $gdb_arg5);
503 gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4,$gdb_arg5";
510 # Provide a safe default value.
511 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
513 ac_save_IFS=$IFS; IFS=','
514 set dummy `echo "$gdb_cv_func_ptrace_args" | sed 's/\*/\*/g'`
517 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG3, $[3],
518 [Define to the type of arg 3 for ptrace.])
519 if test -n "$[5]"; then
520 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG5, $[5],
521 [Define to the type of arg 5 for ptrace.])
524 dnl AC_FUNC_SETPGRP does not work when cross compiling
525 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
526 if test "$cross_compiling" = no; then
529 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
533 if (setpgrp(1,1) == -1)
537 ], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
538 if test $ac_cv_func_setpgrp_void = yes; then
539 AC_DEFINE(SETPGRP_VOID, 1)
543 # Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't do
544 # since sigsetjmp might only be defined as a macro.
545 AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp,
548 ], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);],
549 gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)])
550 if test $gdb_cv_func_sigsetjmp = yes; then
551 AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ])
554 # Assume we'll default to using the included libiberty regex.
555 gdb_use_included_regex=yes
557 # However, if the system regex is GNU regex, then default to *not*
558 # using the included regex.
561 [gdb_cv_have_gnu_regex],
563 [#include <gnu-versions.h>],
564 [#define REGEX_INTERFACE_VERSION 1
565 #if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION
566 # error "Version mismatch"
568 gdb_cv_have_gnu_regex=yes,
569 gdb_cv_have_gnu_regex=no)])
570 if test $gdb_cv_have_gnu_regex = yes; then
571 gdb_use_included_regex=no
574 AC_ARG_WITH(included-regex,
575 [ --without-included-regex don't use included regex; this is the default
576 on systems with version 2 of the GNU C library
577 (use with caution on other system)],
578 gdb_with_regex=$withval,
579 gdb_with_regex=$gdb_use_included_regex)
580 if test "$gdb_with_regex" = yes; then
581 AC_DEFINE(USE_INCLUDED_REGEX, 1,
582 [Define to 1 if the regex included in libiberty should be used.])
585 # Check if <sys/proc.h> defines `struct thread' with a td_pcb member.
586 AC_CHECK_MEMBERS([struct thread.td_pcb], [], [],
587 [#include <sys/param.h>
588 #include <sys/proc.h>
591 # See if <sys/lwp.h> defines `struct lwp`.
592 AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp,
593 [AC_TRY_COMPILE([#include <sys/param.h>
594 #include <sys/lwp.h>], [struct lwp l;],
595 gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)])
596 if test $gdb_cv_struct_lwp = yes; then
597 AC_DEFINE(HAVE_STRUCT_LWP, 1,
598 [Define to 1 if your system has struct lwp.])
601 # See if <machine/reg.h> degines `struct reg'.
602 AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg,
603 [AC_TRY_COMPILE([#include <sys/types.h>
604 #include <machine/reg.h>], [struct reg r;],
605 gdb_cv_struct_reg=yes, gdb_cv_struct_reg=no)])
606 if test $gdb_cv_struct_reg = yes; then
607 AC_DEFINE(HAVE_STRUCT_REG, 1,
608 [Define to 1 if your system has struct reg in <machine/reg.h>.])
611 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
612 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
613 AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [],
614 [#include <machine/reg.h>])
616 # See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
617 AC_MSG_CHECKING(for PTRACE_GETREGS)
618 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
619 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
621 [gdb_cv_have_ptrace_getregs=yes],
622 [gdb_cv_have_ptrace_getregs=no])])
623 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
624 if test $gdb_cv_have_ptrace_getregs = yes; then
625 AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
626 [Define if sys/ptrace.h defines the PTRACE_GETREGS request.])
629 # See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
630 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
631 AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
632 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
633 [PTRACE_GETFPXREGS;],
634 [gdb_cv_have_ptrace_getfpxregs=yes],
635 [gdb_cv_have_ptrace_getfpxregs=no])])
636 AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
637 if test $gdb_cv_have_ptrace_getfpxregs = yes; then
638 AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
639 [Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.])
642 # See if <sys/ptrace.h> provides the PT_GETDBREGS request.
643 AC_MSG_CHECKING(for PT_GETDBREGS)
644 AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
645 [AC_TRY_COMPILE([#include <sys/types.h>
646 #include <sys/ptrace.h>],
648 [gdb_cv_have_pt_getdbregs=yes],
649 [gdb_cv_have_pt_getdbregs=no])])
650 AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
651 if test $gdb_cv_have_pt_getdbregs = yes; then
652 AC_DEFINE(HAVE_PT_GETDBREGS, 1,
653 [Define if sys/ptrace.h defines the PT_GETDBREGS request.])
656 # See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
657 AC_MSG_CHECKING(for PT_GETXMMREGS)
658 AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
659 [AC_TRY_COMPILE([#include <sys/types.h>
660 #include <sys/ptrace.h>],
662 [gdb_cv_have_pt_getxmmregs=yes],
663 [gdb_cv_have_pt_getxmmregs=no])])
664 AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
665 if test $gdb_cv_have_pt_getxmmregs = yes; then
666 AC_DEFINE(HAVE_PT_GETXMMREGS, 1,
667 [Define if sys/ptrace.h defines the PT_GETXMMREGS request.])
670 # If we are configured native on GNU/Linux, work around problems with
672 # Also detect which type of /proc is in use, such as for Unixware or Solaris.
674 if test "${target}" = "${host}"; then
676 i[[3456]]86-*-linux*)
677 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED, 2,
678 [Define on a GNU/Linux system to work around problems in sys/procfs.h.])
679 AC_DEFINE(sys_quotactl, 1,
680 [Define on a GNU/Linux system to work around problems in sys/procfs.h.])
682 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
683 AC_DEFINE(NEW_PROC_API, 1,
684 [Define if you want to use new multi-fd /proc interface
685 (replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
687 *-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]])
688 AC_DEFINE(NEW_PROC_API, 1,
689 [Define if you want to use new multi-fd /proc interface
690 (replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
693 # Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5.
694 AC_DEFINE([_KMEMUSER], 1,
695 [Define to 1 so <sys/proc.h> gets a definition of anon_hdl. Works
696 around a <sys/proc.h> problem on IRIX 5.])
701 if test "$ac_cv_header_sys_procfs_h" = yes; then
702 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
703 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
704 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
705 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
706 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
707 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
708 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
709 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
710 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
711 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
712 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
713 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
714 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
715 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
718 dnl Check for broken prfpregset_t type
720 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
721 dnl prfpregset_t type (it's a typedef for the pointer to a struct
722 dnl instead of the struct itself). We detect this here, and work
723 dnl around it in gdb_proc_service.h.
725 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
726 AC_MSG_CHECKING(whether prfpregset_t type is broken)
727 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
728 [AC_TRY_RUN([#include <sys/procfs.h>
731 if (sizeof (prfpregset_t) == sizeof (void *))
735 gdb_cv_prfpregset_t_broken=no,
736 gdb_cv_prfpregset_t_broken=yes,
737 gdb_cv_prfpregset_t_broken=yes)])
738 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
739 if test $gdb_cv_prfpregset_t_broken = yes; then
740 AC_DEFINE(PRFPREGSET_T_BROKEN, 1,
741 [Define if the prfpregset_t type is broken.])
745 dnl Check for PIOCSET ioctl entry
747 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
748 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
749 [AC_TRY_COMPILE([#include <unistd.h>
750 #include <sys/types.h>
751 #include <sys/procfs.h>
754 dummy = ioctl(0, PIOCSET, &dummy);
756 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
757 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
758 if test $gdb_cv_have_procfs_piocset = yes; then
759 AC_DEFINE(HAVE_PROCFS_PIOCSET, 1,
760 [Define if ioctl argument PIOCSET is available.])
764 dnl For native ports (host == target), check to see what kind of
765 dnl legacy link.h support is needed. (See solib-legacy.c.)
766 if test ${host} = ${target} ; then
767 dnl Check for struct link_map with l_ members which are indicative
768 dnl of SVR4-like shared libraries
770 AC_MSG_CHECKING(for member l_addr in struct link_map)
771 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members,
772 [AC_TRY_COMPILE([#include <link.h>],
773 [struct link_map lm; (void) lm.l_addr;],
774 gdb_cv_have_struct_link_map_with_l_members=yes,
775 gdb_cv_have_struct_link_map_with_l_members=no)])
776 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members)
777 if test $gdb_cv_have_struct_link_map_with_l_members = yes; then
778 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS,1,
779 [Define if <link.h> exists and defines struct link_map which has
780 members with an ``l_'' prefix. (For Solaris, SVR4, and
781 SVR4-like systems.)])
784 dnl Check for struct link_map with lm_ members which are indicative
785 dnl of SunOS-like shared libraries
787 AC_MSG_CHECKING(for member lm_addr in struct link_map)
788 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members,
789 [AC_TRY_COMPILE([#include <sys/types.h>
791 [struct link_map lm; (void) lm.lm_addr;],
792 gdb_cv_have_struct_link_map_with_lm_members=yes,
793 gdb_cv_have_struct_link_map_with_lm_members=no)])
794 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members)
795 if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then
796 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS, 1,
797 [Define if <link.h> exists and defines struct link_map which has
798 members with an ``lm_'' prefix. (For SunOS.)])
801 dnl Check for struct so_map with som_ members which are found on
802 dnl some *BSD systems.
804 AC_MSG_CHECKING(for member som_addr in struct so_map)
805 AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members,
806 [AC_TRY_COMPILE([#include <sys/types.h>
811 [struct so_map lm; (void) lm.som_addr;],
812 gdb_cv_have_struct_so_map_with_som_members=yes,
813 gdb_cv_have_struct_so_map_with_som_members=no)])
814 AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members)
815 if test $gdb_cv_have_struct_so_map_with_som_members = yes; then
816 AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS, 1,
817 [Define if <link.h> exists and defines a struct so_map which has
818 members with an ``som_'' prefix. (Found on older *BSD systems.)])
821 dnl Check for struct link_map32 type, which allows a 64-bit Solaris
822 dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries.
824 AC_MSG_CHECKING(for struct link_map32 in sys/link.h)
825 AC_CACHE_VAL(gdb_cv_have_struct_link_map32,
826 [AC_TRY_COMPILE([#define _SYSCALL32
827 #include <sys/link.h>], [struct link_map32 l;],
828 gdb_cv_have_struct_link_map32=yes,
829 gdb_cv_have_struct_link_map32=no)])
830 AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
831 if test $gdb_cv_have_struct_link_map32 = yes; then
832 AC_DEFINE(HAVE_STRUCT_LINK_MAP32, 1,
833 [Define if <sys/link.h> has struct link_map32])
834 AC_DEFINE(_SYSCALL32, 1,
835 [Define if <sys/link.h> has link_map32 (solaris sparc-64 target)])
839 # Check if the compiler supports the `long long' type.
841 AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long,
842 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
843 [[extern long long foo;]],
844 [[switch (foo & 2) { case 0: return 1; }]])],
845 gdb_cv_c_long_long=yes,
846 gdb_cv_c_long_long=no)])
847 if test $gdb_cv_c_long_long = yes; then
848 AC_DEFINE(CC_HAS_LONG_LONG, 1,
849 [Define to 1 if the compiler supports long long.])
852 # Check if the compiler and runtime support printing long longs.
854 AC_CACHE_CHECK([for long long support in printf],
855 gdb_cv_printf_has_long_long,
856 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
859 l = (l << 16) + 0x0123;
860 l = (l << 16) + 0x4567;
861 l = (l << 16) + 0x89ab;
862 l = (l << 16) + 0xcdef;
863 sprintf (buf, "0x%016llx", l);
864 return (strcmp ("0x0123456789abcdef", buf));]])],
865 gdb_cv_printf_has_long_long=yes,
866 gdb_cv_printf_has_long_long=no,
867 gdb_cv_printf_has_long_long=no)])
868 if test $gdb_cv_printf_has_long_long = yes; then
869 AC_DEFINE(PRINTF_HAS_LONG_LONG, 1,
870 [Define to 1 if the "%ll" format works to print long longs.])
873 # Check if the compiler supports the `long double' type. We can't use
874 # AC_C_LONG_DOUBLE because that one does additional checks on the
875 # constants defined in <float.h> that fail on some systems,
876 # e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6.
878 AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double,
879 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])],
880 gdb_cv_c_long_double=yes,
881 gdb_cv_c_long_double=no)])
882 if test $gdb_cv_c_long_double = yes; then
883 AC_DEFINE(HAVE_LONG_DOUBLE, 1,
884 [Define to 1 if the compiler supports long double.])
887 # Check if the compiler and runtime support printing long doubles.
889 AC_CACHE_CHECK([for long double support in printf],
890 gdb_cv_printf_has_long_double,
891 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
893 long double f = 3.141592653;
894 sprintf (buf, "%Lg", f);
895 return (strncmp ("3.14159", buf, 7));]])],
896 gdb_cv_printf_has_long_double=yes,
897 gdb_cv_printf_has_long_double=no,
898 gdb_cv_printf_has_long_double=no)])
899 if test $gdb_cv_printf_has_long_double = yes; then
900 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1,
901 [Define to 1 if the "%Lg" format works to print long doubles.])
904 # Check if the compiler and runtime support scanning long doubles.
906 AC_CACHE_CHECK([for long double support in scanf],
907 gdb_cv_scanf_has_long_double,
908 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
909 [[#include <stdio.h>]],
910 [[char *buf = "3.141592653";
912 sscanf (buf, "%Lg", &f);
913 return !(f > 3.14159 && f < 3.14160);]])],
914 gdb_cv_scanf_has_long_double=yes,
915 gdb_cv_scanf_has_long_double=no,
916 gdb_cv_scanf_has_long_double=no)])
917 if test $gdb_cv_scanf_has_long_double = yes; then
918 AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1,
919 [Define to 1 if the "%Lg" format works to scan long doubles.])
924 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
925 SAVE_LDFLAGS=$LDFLAGS
928 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
929 *) gdb_cv_bigtoc=-bbigtoc ;;
932 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
933 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
934 LDFLAGS="${SAVE_LDFLAGS}"
936 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
941 dnl For certain native configurations, we need to check whether thread
942 dnl support can be built in or not.
944 dnl Note that we only want this if we are both native (host == target),
945 dnl and not doing a canadian cross build (build == host).
947 if test ${build} = ${host} -a ${host} = ${target} ; then
950 AC_MSG_CHECKING(for HPUX/OSF thread support)
951 if test -f /usr/include/dce/cma_config.h ; then
952 if test "$GCC" = "yes" ; then
954 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT, 1,
955 [Define if you have HPUX threads])
956 CONFIG_OBS="${CONFIG_OBS} hpux-thread.o"
957 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
959 AC_MSG_RESULT(no (suppressed because you are not using GCC))
966 # See if thread_db library is around for Solaris thread debugging.
967 # Note that we must explicitly test for version 1 of the library
968 # because version 0 (present on Solaris 2.4 or earlier) doesn't have
970 AC_MSG_CHECKING(for Solaris thread debugging library)
971 if test -f /usr/lib/libthread_db.so.1 ; then
973 AC_DEFINE(HAVE_THREAD_DB_LIB, 1,
974 [Define if using Solaris thread debugging.])
975 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
976 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
977 AC_CHECK_LIB(dl, dlopen)
978 if test "$GCC" = "yes" ; then
979 # The GNU linker requires the -export-dynamic option to make
980 # all symbols visible in the dynamic symbol table.
981 hold_ldflags=$LDFLAGS
982 AC_MSG_CHECKING(for the ld -export-dynamic flag)
983 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
984 AC_TRY_LINK(, [int i;], found=yes, found=no)
985 LDFLAGS=$hold_ldflags
986 AC_MSG_RESULT($found)
987 if test $found = yes; then
988 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
991 # Sun randomly tweaked the prototypes in <proc_service.h>
993 AC_MSG_CHECKING(if <proc_service.h> is old)
994 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
996 #include <proc_service.h>
998 (struct ps_prochandle*, psaddr_t, const void*, size_t);
999 ],, gdb_cv_proc_service_is_old=no,
1000 gdb_cv_proc_service_is_old=yes)
1002 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
1003 if test $gdb_cv_proc_service_is_old = yes; then
1004 AC_DEFINE(PROC_SERVICE_IS_OLD, 1,
1005 [Define if <proc_service.h> on solaris uses int instead of
1006 size_t, and assorted other type changes.])
1013 AC_MSG_CHECKING(for AiX thread debugging library)
1014 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
1015 [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
1016 [#ifndef PTHDB_VERSION_3
1019 gdb_cv_have_aix_thread_debug=yes,
1020 gdb_cv_have_aix_thread_debug=no)])
1021 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
1022 if test $gdb_cv_have_aix_thread_debug = yes; then
1023 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
1024 CONFIG_OBS="${CONFIG_OBS} aix-thread.o"
1025 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
1029 AC_SUBST(CONFIG_LDFLAGS)
1032 dnl See if we have a thread_db header file that has TD_NOTALLOC and
1033 dnl other error codes.
1034 if test "x$ac_cv_header_thread_db_h" = "xyes"; then
1035 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
1036 gdb_cv_thread_db_h_has_td_notalloc,
1038 [#include <thread_db.h>],
1039 [int i = TD_NOTALLOC;],
1040 gdb_cv_thread_db_h_has_td_notalloc=yes,
1041 gdb_cv_thread_db_h_has_td_notalloc=no
1044 AC_CACHE_CHECK([whether <thread_db.h> has TD_VERSION],
1045 gdb_cv_thread_db_h_has_td_version,
1047 [#include <thread_db.h>],
1048 [int i = TD_VERSION;],
1049 gdb_cv_thread_db_h_has_td_version=yes,
1050 gdb_cv_thread_db_h_has_td_version=no
1053 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTLS],
1054 gdb_cv_thread_db_h_has_td_notls,
1056 [#include <thread_db.h>],
1057 [int i = TD_NOTLS;],
1058 gdb_cv_thread_db_h_has_td_notls=yes,
1059 gdb_cv_thread_db_h_has_td_notls=no
1063 if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
1064 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
1065 [Define if <thread_db.h> has the TD_NOTALLOC error code.])
1067 if test "x$gdb_cv_thread_db_h_has_td_version" = "xyes"; then
1068 AC_DEFINE(THREAD_DB_HAS_TD_VERSION, 1,
1069 [Define if <thread_db.h> has the TD_VERSION error code.])
1071 if test "x$gdb_cv_thread_db_h_has_td_notls" = "xyes"; then
1072 AC_DEFINE(THREAD_DB_HAS_TD_NOTLS, 1,
1073 [Define if <thread_db.h> has the TD_NOTLS error code.])
1076 dnl See if we have a sys/syscall header file that has __NR_tkill.
1077 if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then
1078 AC_CACHE_CHECK([whether <sys/syscall.h> has __NR_tkill],
1079 gdb_cv_sys_syscall_h_has_tkill,
1081 [#include <sys/syscall.h>],
1082 [int i = __NR_tkill;],
1083 gdb_cv_sys_syscall_h_has_tkill=yes,
1084 gdb_cv_sys_syscall_h_has_tkill=no
1088 dnl See if we can issue tkill syscall.
1089 if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes" && test "x$ac_cv_func_syscall" = "xyes"; then
1090 AC_DEFINE(HAVE_TKILL_SYSCALL, 1, [Define if you support the tkill syscall.])
1093 dnl Handle optional features that can be enabled.
1095 AC_ARG_WITH(sysroot,
1096 [ --with-sysroot[=DIR] Search for usr/lib et al within DIR.],
1098 case ${with_sysroot} in
1099 yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
1100 *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
1103 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
1105 if test "x$exec_prefix" = xNONE; then
1106 if test "x$prefix" = xNONE; then
1107 test_prefix=/usr/local
1112 test_prefix=$exec_prefix
1114 case ${TARGET_SYSTEM_ROOT} in
1115 "${test_prefix}"|"${test_prefix}/"*|\
1116 '${exec_prefix}'|'${exec_prefix}/'*)
1117 t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
1118 TARGET_SYSTEM_ROOT_DEFINE="$t"
1123 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"'
1125 AC_SUBST(TARGET_SYSTEM_ROOT)
1126 AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
1128 AC_ARG_ENABLE(werror,
1129 [ --enable-werror treat compile warnings as errors],
1130 [case "${enableval}" in
1131 yes | y) ERROR_ON_WARNING="yes" ;;
1132 no | n) ERROR_ON_WARNING="no" ;;
1133 *) AC_MSG_ERROR(bad value ${enableval} for --enable-werror) ;;
1136 # Enable -Werror by default when using gcc
1137 if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then
1138 ERROR_ON_WARNING=yes
1142 if test "${ERROR_ON_WARNING}" = yes ; then
1143 WERROR_CFLAGS="-Werror"
1146 # The entries after -Wno-pointer-sign are disabled warnings which may
1147 # be enabled in the future, which can not currently be used to build
1149 # NOTE: If you change this list, remember to update
1150 # gdb/doc/gdbint.texinfo.
1151 build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \
1152 -Wformat-nonliteral -Wno-pointer-sign \
1153 -Wno-unused -Wno-switch"
1155 AC_ARG_ENABLE(build-warnings,
1156 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
1157 [case "${enableval}" in
1159 no) build_warnings="-w";;
1160 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1161 build_warnings="${build_warnings} ${t}";;
1162 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1163 build_warnings="${t} ${build_warnings}";;
1164 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1166 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1167 echo "Setting compiler warning flags = $build_warnings" 6>&1
1169 AC_ARG_ENABLE(gdb-build-warnings,
1170 [ --enable-gdb-build-warnings Enable GDB specific build-time compiler warnings if gcc is used],
1171 [case "${enableval}" in
1173 no) build_warnings="-w";;
1174 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1175 build_warnings="${build_warnings} ${t}";;
1176 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1177 build_warnings="${t} ${build_warnings}";;
1178 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1180 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1181 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
1184 if test "x${build_warnings}" != x -a "x$GCC" = xyes
1186 AC_MSG_CHECKING(compiler warning flags)
1187 # Separate out the -Werror flag as some files just cannot be
1188 # compiled with it enabled.
1189 for w in ${build_warnings}; do
1191 -Werr*) WERROR_CFLAGS=-Werror ;;
1192 *) # Check that GCC accepts it
1193 saved_CFLAGS="$CFLAGS"
1195 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
1196 CFLAGS="$saved_CFLAGS"
1199 AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS})
1201 AC_SUBST(WARN_CFLAGS)
1202 AC_SUBST(WERROR_CFLAGS)
1204 # In the Cygwin environment, we need some additional flags.
1205 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
1206 [AC_EGREP_CPP(lose, [
1207 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
1209 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
1212 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
1213 SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o"
1215 *go32* ) SER_HARDWIRE=ser-go32.o ;;
1216 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
1217 *mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;;
1219 AC_SUBST(SER_HARDWIRE)
1221 # libreadline needs libuser32.a in a cygwin environment
1223 if test x$gdb_cv_os_cygwin = xyes; then
1224 WIN32LIBS="-luser32"
1226 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
1231 # The ser-tcp.c module requires sockets.
1234 AC_DEFINE(USE_WIN32API, 1,
1235 [Define if we should use the Windows API, instead of the
1236 POSIX API. On Windows, we use the Windows API when
1237 building for MinGW, but the POSIX API when building
1239 WIN32LIBS="$WIN32LIBS -lws2_32"
1244 # Add any host-specific objects to GDB.
1245 CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
1247 LIBGUI="../libgui/src/libgui.a"
1248 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
1250 AC_SUBST(GUI_CFLAGS_X)
1254 AC_SUBST(WIN32LDAPP)
1266 if test "${enable_gdbtk}" = "yes"; then
1268 # Gdbtk must have an absolute path to srcdir in order to run
1269 # properly when not installed.
1275 CY_AC_PATH_TCLCONFIG
1276 if test -z "${no_tcl}"; then
1277 CY_AC_LOAD_TCLCONFIG
1280 # now look for Tcl library stuff
1282 tcldir="../tcl/${configdir}/"
1284 TCL_DEPS="${tcldir}${TCL_LIB_FILE}"
1286 # If $no_tk is nonempty, then we can't do Tk, and there is no
1287 # point to doing Tcl.
1288 if test -z "${no_tk}"; then
1296 # now look for Tk library stuff
1298 tkdir="../tk/${configdir}/"
1300 TK_DEPS="${tkdir}${TK_LIB_FILE}"
1302 # now look for Itcl library stuff
1304 CY_AC_PATH_ITCLCONFIG
1305 if test -z "${no_itcl}"; then
1306 CY_AC_LOAD_ITCLCONFIG
1308 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
1309 ITCL_DEPS="${ITCL_LIB_FULL_PATH}"
1313 # now look for Itk library stuff
1314 CY_AC_PATH_ITKCONFIG
1315 if test -z "${no_itcl}"; then
1316 CY_AC_LOAD_ITKCONFIG
1318 ITKLIB="${ITK_BUILD_LIB_SPEC}"
1319 ITK_DEPS="${ITK_LIB_FULL_PATH}"
1322 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
1324 # Include some libraries that Tcl and Tk want.
1325 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
1326 # Yes, the ordering seems wrong here. But it isn't.
1327 # TK_LIBS is the list of libraries that need to be linked
1328 # after Tcl/Tk. Note that this isn't put into LIBS. If it
1329 # were in LIBS then any link tests after this point would
1330 # try to include things like `$(LIBGUI)', which wouldn't work.
1331 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
1333 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
1334 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
1335 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
1336 CONFIG_ALL="${CONFIG_ALL} all-gdbtk"
1337 CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk"
1338 CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk"
1339 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk"
1341 if test x$gdb_cv_os_cygwin = xyes; then
1342 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
1343 WIN32LDAPP="-Wl,--subsystem,console"
1344 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
1349 AC_CONFIG_SUBDIRS(gdbtk)
1362 AC_SUBST(GDBTK_CFLAGS)
1363 AC_SUBST(GDBTK_SRC_DIR)
1367 # Check whether we should enable the TUI, but only do so if we really
1369 if test x"$enable_tui" = xyes; then
1370 if test -d $srcdir/tui; then
1371 if test "$ac_cv_search_waddstr" != no; then
1372 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
1373 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
1374 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
1375 CONFIG_INITS="$CONFIG_INITS \$(SUBDIR_TUI_INITS)"
1376 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
1377 CONFIG_ALL="${CONFIG_ALL} all-tui"
1378 CONFIG_CLEAN="${CONFIG_CLEAN} clean-tui"
1379 CONFIG_INSTALL="${CONFIG_INSTALL} install-tui"
1380 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-tui"
1382 AC_MSG_WARN([no enhanced curses library found; disabling TUI])
1387 # Unlike the sim directory, whether a simulator is linked is controlled by
1388 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
1389 # This code just checks for a few cases where we'd like to ignore those
1390 # definitions, even when they're present in the '.mt' file. These cases
1391 # are when --disable-sim is specified, or if the simulator directory is
1392 # not part of the source tree.
1395 [ --enable-sim Link gdb with simulator],
1396 [echo "enable_sim = $enable_sim";
1397 echo "enableval = ${enableval}";
1398 case "${enableval}" in
1399 yes) ignore_sim=false ;;
1400 no) ignore_sim=true ;;
1401 *) ignore_sim=false ;;
1405 if test ! -d "${srcdir}/../sim"; then
1409 if test "${ignore_sim}" = "true"; then
1411 IGNORE_SIM_OBS="SIM_OBS="
1415 AC_DEFINE(WITH_SIM, 1, [Define if the simulator is being linked in.])
1417 AC_SUBST(IGNORE_SIM)
1418 AC_SUBST(IGNORE_SIM_OBS)
1420 AC_SUBST(ENABLE_CFLAGS)
1421 AC_SUBST(PROFILE_CFLAGS)
1423 AC_SUBST(CONFIG_OBS)
1424 AC_SUBST(CONFIG_DEPS)
1425 AC_SUBST(CONFIG_SRCS)
1426 AC_SUBST(CONFIG_ALL)
1427 AC_SUBST(CONFIG_CLEAN)
1428 AC_SUBST(CONFIG_INSTALL)
1429 AC_SUBST(CONFIG_UNINSTALL)
1431 # List of host floatformats.
1432 AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat])
1433 AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat])
1434 AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat])
1436 # target_subdir is used by the testsuite to find the target libraries.
1438 if test "${host}" != "${target}"; then
1439 target_subdir="${target_alias}/"
1441 AC_SUBST(target_subdir)
1444 if test "${gdb_native}" = "yes"; then
1445 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
1446 if test ! -f ${host_makefile_frag}; then
1447 AC_MSG_ERROR("*** Gdb does not support native target ${host}")
1449 frags="$frags $host_makefile_frag"
1451 host_makefile_frag=/dev/null
1454 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
1455 if test ! -f ${target_makefile_frag}; then
1456 AC_MSG_ERROR("*** Gdb does not support target ${target}")
1458 frags="$frags $target_makefile_frag"
1460 AC_SUBST_FILE(host_makefile_frag)
1461 AC_SUBST_FILE(target_makefile_frag)
1466 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1467 ' ${host_makefile_frag}`
1469 targetfile=`sed -n '
1470 s/^[ ]*DEPRECATED_TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1471 ' ${target_makefile_frag}`
1473 if test "${gdb_native}" = "yes"; then
1474 # We pick this up from the host configuration file (.mh) because we
1475 # do not have a native configuration Makefile fragment.
1476 nativefile=`sed -n '
1477 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1478 ' ${host_makefile_frag}`
1482 if test x"${gdb_osabi}" != x ; then
1483 AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
1484 [Define to the default OS ABI for this configuration.])
1487 # Enable multi-ice-gdb-server.
1488 AC_ARG_ENABLE(multi-ice,
1489 [ --enable-multi-ice build the multi-ice-gdb-server],
1493 *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;;
1495 if test "x$enable_multi_ice" = xyes; then
1496 AC_CONFIG_SUBDIRS(multi-ice)
1499 # We only build gdbserver automatically in a native configuration.
1500 if test "$gdb_native" = "yes"; then
1501 AC_MSG_CHECKING(whether gdbserver is supported on this host)
1502 if test "x$build_gdbserver" = xyes; then
1504 AC_CONFIG_SUBDIRS(gdbserver)
1510 # If hostfile (XM_FILE) and/or targetfile (DEPRECATED_TM_FILE) and/or
1511 # nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link
1512 # to an empty version.
1519 if test "${hostfile}" != ""; then
1521 case "${hostfile}" in
1522 xm-*.h ) GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}" ;;
1523 * ) GDB_XM_FILE="${hostfile}"
1525 files="${files} ${GDB_XM_FILE}"
1526 links="${links} xm.h"
1527 AC_DEFINE_UNQUOTED(GDB_XM_FILE, "${GDB_XM_FILE}", [hostfile])
1533 if test "${targetfile}" != ""; then
1535 case "${targetfile}" in
1536 tm-*.h ) GDB_TM_FILE="config/${gdb_target_cpu}/${targetfile}" ;;
1537 * ) GDB_TM_FILE="${targetfile}"
1539 files="${files} ${GDB_TM_FILE}"
1540 links="${links} tm.h"
1541 AC_DEFINE_UNQUOTED(GDB_TM_FILE, "${GDB_TM_FILE}", [targetfile])
1547 if test "${nativefile}" != ""; then
1549 case "${nativefile}" in
1550 nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;;
1551 * ) GDB_NM_FILE="${nativefile}"
1553 files="${files} ${GDB_NM_FILE}"
1554 links="${links} nm.h"
1555 AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}", [nativefile])
1559 AC_LINK_FILES($files, $links)
1561 dnl Check for exe extension set on certain hosts (e.g. Win32)
1564 dnl Detect the character set used by this host.
1566 dnl At the moment, we just assume it's ISO-8859-1 (which is a
1567 dnl superset of ASCII containing the characters needed for French,
1568 dnl German, Spanish, Italian, and possibly others), but if were
1569 dnl *were* to support any host character sets other than ISO-8859-1,
1570 dnl here's where we'd detect it.
1571 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "ISO-8859-1",
1572 [Define to be a string naming the default host character set.])
1576 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1578 dnl Autoconf doesn't provide a mechanism for modifying definitions
1579 dnl provided by makefile fragments.
1583 sed -e '/^DEPRECATED_TM_FILE[ ]*=/s,^DEPRECATED_TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1584 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1585 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1586 mv -f Makefile.tmp Makefile
1590 case x$CONFIG_HEADERS in
1591 xconfig.h:config.in)
1596 gdb_host_cpu=$gdb_host_cpu
1597 gdb_target_cpu=$gdb_target_cpu
1598 nativefile=$nativefile