1 dnl Autoconf configure script for GDB, the GNU debugger.
2 dnl Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
3 dnl Free Software Foundation, Inc.
5 dnl This file is part of GDB.
7 dnl This program is free software; you can redistribute it and/or modify
8 dnl it under the terms of the GNU General Public License as published by
9 dnl the Free Software Foundation; either version 2 of the License, or
10 dnl (at your option) any later version.
12 dnl This program is distributed in the hope that it will be useful,
13 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
14 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 dnl GNU General Public License for more details.
17 dnl You should have received a copy of the GNU General Public License
18 dnl along with this program; if not, write to the Free Software
19 dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 dnl Process this file with autoconf to produce a configure script.
25 AC_CONFIG_HEADER(config.h:config.in)
33 AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
36 # FIXME: kettenis/20030102: The AC_PROG_RANLIB from Autoconf 2.13
37 # doesn't support cross-compilation, but the one from Autoconf 2.5x
38 # does. Override RANLIB here (i.e. before running AC_PROG_RANLIB) to
39 # deal with the lossage. Note that CY_GNU_GETTEXT currently calls
40 # AC_PROG_RANLIB. This can be removed when we switch to # Autoconf
42 AC_CHECK_TOOL(RANLIB, ranlib, :)
44 dnl Set up for gettext. PACKAGE is used when we call bindtextdomain.
47 AC_DEFINE(PACKAGE, "gdb", [Name of this package. ])
50 dnl List of object files added by configure.
63 SUBDIRS="doc testsuite nlm"
64 configdirs="doc testsuite"
66 AC_ARG_ENABLE(multi-ice,
67 [ --enable-multi-ice Build the multi-ice-gdb-server],
68 [case "${enableval}" in
69 yes ) enable_multi_ice="yes" ;;
70 no) enable_multi_ice="no" ;;
71 *) AC_MSG_ERROR(Bad value for --enable-multi-ice: ${enableval}) ;;
75 if test "${enable_multi_ice}" = "yes"; then
76 configdirs="${configdirs} multi-ice"
79 . $srcdir/configure.host
81 . $srcdir/configure.tgt
83 # Fetch the default architecture and default target vector from BFD.
84 targ=$target; . $srcdir/../bfd/config.bfd
86 # We only want the first architecture, so strip off the others if
87 # there is more than one.
88 targ_archs=`echo $targ_archs | sed 's/ .*//'`
90 if test "x$targ_archs" != x; then
91 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs,
92 [Define to BFD's default architecture. ])
94 if test "x$targ_defvec" != x; then
95 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec,
96 [Define to BFD's default target vector. ])
101 # The CLI cannot be disabled yet, but may be in the future.
104 AC_ARG_ENABLE(gdbcli,
105 [ --disable-gdbcli disable command-line interface (CLI)],
110 AC_MSG_ERROR([the command-line interface cannot be disabled yet]) ;;
112 AC_MSG_ERROR([bad value $enableval for --enable-gdbcli]) ;;
115 if test x"$enable_gdbcli" = xyes; then
116 if test -d $srcdir/cli; then
117 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)"
118 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)"
119 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)"
120 CONFIG_INITS="$CONFIG_INITS \$(SUBDIR_CLI_INITS)"
121 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)"
122 CONFIG_ALL="$CONFIG_ALL \$(SUBDIR_CLI_ALL)"
123 CONFIG_CLEAN="$CONFIG_CLEAN \$(SUBDIR_CLI_CLEAN)"
124 CONFIG_INSTALL="$CONFIG_INSTALL \$(SUBDIR_CLI_INSTALL)"
125 CONFIG_UNINSTALL="$CONFIG_UNINSTALL \$(SUBDIR_CLI_UNINSTALL)"
131 [ --disable-gdbmi disable machine-interface (MI)],
136 AC_MSG_ERROR([bad value $enableval for --enable-gdbmi]) ;;
139 if test x"$enable_gdbmi" = xyes; then
140 if test -d $srcdir/mi; then
141 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)"
142 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)"
143 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)"
144 CONFIG_INITS="$CONFIG_INITS \$(SUBDIR_MI_INITS)"
145 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)"
146 CONFIG_ALL="$CONFIG_ALL \$(SUBDIR_MI_ALL)"
147 CONFIG_CLEAN="$CONFIG_CLEAN \$(SUBDIR_MI_CLEAN)"
148 CONFIG_INSTALL="$CONFIG_INSTALL \$(SUBDIR_MI_INSTALL)"
149 CONFIG_UNINSTALL="$CONFIG_UNINSTALL \$(SUBDIR_MI_UNINSTALL)"
155 [ --enable-tui enable full-screen terminal user interface (TUI)],
160 AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
162 if test x"$enable_tui" = xyes; then
163 if test -d $srcdir/tui; then
164 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
165 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
166 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
167 CONFIG_INITS="$CONFIG_INITS \$(SUBDIR_TUI_INITS)"
168 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
169 CONFIG_ALL="$CONFIG_ALL \$(SUBDIR_TUI_ALL)"
170 CONFIG_CLEAN="$CONFIG_CLEAN \$(SUBDIR_TUI_CLEAN)"
171 CONFIG_INSTALL="$CONFIG_INSTALL \$(SUBDIR_TUI_INSTALL)"
172 CONFIG_UNINSTALL="$CONFIG_UNINSTALL \$(SUBDIR_TUI_UNINSTALL)"
177 # --------------------- #
178 # Checks for programs. #
179 # --------------------- #
187 AC_CHECK_TOOL(AR, ar)
188 AC_CHECK_TOOL(DLLTOOL, dlltool)
189 AC_CHECK_TOOL(WINDRES, windres)
191 # Needed for GNU/Hurd.
192 AC_CHECK_TOOL(MIG, mig)
194 # ---------------------- #
195 # Checks for libraries. #
196 # ---------------------- #
198 # We might need to link with -lm; most simulators need it.
199 AC_CHECK_LIB(m, main)
201 # We need to link with -lw to get `wctype' on Solaris before Solaris
202 # 2.6. Solaris 2.6 and beyond have this function in libc, and have a
203 # libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1
204 # is known to have this problem). Therefore we avoid libw if we can.
205 AC_CHECK_FUNC(wctype, [],
206 [AC_CHECK_LIB(w, wctype)])
208 # Some systems (e.g. Solaris) have `socketpair' in libsocket.
209 AC_SEARCH_LIBS(socketpair, socket)
211 # Since GDB uses Readline, we need termcap functionality, so we need
212 # to find a library that provides that. When GDB is configured with
213 # --enable-tui, we need full curses functionality.
215 # FIXME: kettenis/20030102: We seem to prefer HP curses (Hcurses) over
216 # Xcurses on HP-UX; see the `-D__HP_CURSES' in the relevant host
217 # Makefile fragments. That's why we need to have `Hcurses' before
218 # `curses'. I don't see why we should use HP curses if a more
219 # standard curses is available, except that according to HP's
220 # documentation one needs to compile `-D_XOPEN_SOURCE_EXTENDED' on
221 # HP-UX 10.10 and 10.20.
223 if test "$need_curses" = yes; then
224 AC_SEARCH_LIBS(initscr, [ncurses Hcurses curses], [],
225 [AC_MSG_ERROR([no curses library found])])
230 if test -d $srcdir/libtermcap; then
231 LIBS="../libtermcap/libtermcap.a $LIBS"
232 ac_cv_search_tgetent="../libtermcap/libtermcap.a"
235 # ??? Is this really true?
236 ac_cv_search_tgetent="none required"
239 # Readline prefers curses over termcap on AIX.
241 AC_SEARCH_LIBS(tgetent, [tinfo ncurses curses termcap])
245 # Note: We used to check for libtermlib and libterminfo too, but
246 # Readline doesn't, so I think we're safe with leaving them out.
247 AC_SEARCH_LIBS(tgetent, [termcap tinfo ncurses Hcurses curses])
249 if test "$ac_cv_search_tgetent" = no; then
250 AC_MSG_ERROR([no termcap library found])
253 # ------------------------- #
254 # Checks for header files. #
255 # ------------------------- #
260 AC_CHECK_HEADERS(link.h)
261 AC_CHECK_HEADERS(nlist.h)
262 AC_CHECK_HEADERS(poll.h sys/poll.h)
263 AC_CHECK_HEADERS(proc_service.h thread_db.h)
264 AC_CHECK_HEADERS(stddef.h)
265 AC_CHECK_HEADERS(stdlib.h)
266 AC_CHECK_HEADERS(stdint.h)
267 AC_CHECK_HEADERS(string.h memory.h strings.h)
268 AC_CHECK_HEADERS(sys/fault.h)
269 AC_CHECK_HEADERS(sys/file.h)
270 AC_CHECK_HEADERS(sys/filio.h)
271 AC_CHECK_HEADERS(sys/ioctl.h)
272 AC_CHECK_HEADERS(sys/param.h)
273 AC_CHECK_HEADERS(sys/proc.h)
274 AC_CHECK_HEADERS(sys/procfs.h)
275 AC_CHECK_HEADERS(sys/ptrace.h ptrace.h)
276 AC_CHECK_HEADERS(sys/reg.h sys/debugreg.h)
277 AC_CHECK_HEADERS(sys/select.h)
278 AC_CHECK_HEADERS(sys/syscall.h)
279 AC_CHECK_HEADERS(sys/user.h)
280 AC_CHECK_HEADERS(sys/wait.h wait.h)
281 AC_CHECK_HEADERS(termios.h termio.h sgtty.h)
282 AC_CHECK_HEADERS(unistd.h)
284 # On Solaris 2.[78], we need to define _MSE_INT_H to avoid a clash
285 # between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
286 # think that we don't have <curses.h> if we're using GCC.
289 if test "$GCC" = yes; then
290 AC_DEFINE(_MSE_INT_H, 1,
291 [[Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
292 Solaris 2.[78] when using GCC. ]])
295 AC_CHECK_HEADERS(curses.h ncurses.h term.h)
297 # FIXME: kettenis/20030102: In most cases we include these
298 # unconditionally, so what's the point in checking these?
299 AC_CHECK_HEADERS(ctype.h time.h)
301 # ------------------ #
302 # Checks for types. #
303 # ------------------ #
307 # ------------------------------------- #
308 # Checks for compiler characteristics. #
309 # ------------------------------------- #
314 # ------------------------------ #
315 # Checks for library functions. #
316 # ------------------------------ #
321 AC_CHECK_FUNCS(canonicalize_file_name realpath)
324 AC_CHECK_FUNCS(setpgid setpgrp)
325 AC_CHECK_FUNCS(sigaction sigprocmask sigsetmask)
326 AC_CHECK_FUNCS(socketpair)
328 dnl AC_FUNC_SETPGRP does not work when cross compiling
329 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
330 if test "$cross_compiling" = no; then
333 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
337 if (setpgrp(1,1) == -1)
341 ], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
342 if test $ac_cv_func_setpgrp_void = yes; then
343 AC_DEFINE(SETPGRP_VOID, 1)
347 # Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't do
348 # since sigsetjmp might only be defined as a macro.
349 AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp,
352 ], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);],
353 gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)])
354 if test $gdb_cv_func_sigsetjmp = yes; then
355 AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ])
358 # Assume we'll default to using the included libiberty regex.
359 gdb_use_included_regex=yes
361 # However, if the system regex is GNU regex, then default to *not*
362 # using the included regex.
365 [gdb_cv_have_gnu_regex],
367 [#include <gnu-versions.h>],
368 [#define REGEX_INTERFACE_VERSION 1
369 #if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION
370 # error "Version mismatch"
372 gdb_cv_have_gnu_regex=yes,
373 gdb_cv_have_gnu_regex=no)])
374 if test $gdb_cv_have_gnu_regex = yes; then
375 gdb_use_included_regex=no
378 AC_ARG_WITH(included-regex,
379 [ --without-included-regex don't use included regex; this is the default
380 on systems with version 2 of the GNU C library
381 (use with caution on other system)],
382 gdb_with_regex=$withval,
383 gdb_with_regex=$gdb_use_included_regex)
384 if test "$gdb_with_regex" = yes; then
385 AC_DEFINE(USE_INCLUDED_REGEX, 1,
386 [Define to 1 if the regex included in libiberty should be used.])
389 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
390 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
391 AC_CACHE_CHECK([for r_fs in struct reg], gdb_cv_struct_reg_r_fs,
392 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_fs;],
393 gdb_cv_struct_reg_r_fs=yes, gdb_cv_struct_reg_r_fs=no)])
394 if test $gdb_cv_struct_reg_r_fs = yes; then
395 AC_DEFINE(HAVE_STRUCT_REG_R_FS)
397 AC_CACHE_CHECK([for r_gs in struct reg], gdb_cv_struct_reg_r_gs,
398 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_gs;],
399 gdb_cv_struct_reg_r_gs=yes, gdb_cv_struct_reg_r_gs=no)])
400 if test $gdb_cv_struct_reg_r_gs = yes; then
401 AC_DEFINE(HAVE_STRUCT_REG_R_GS)
404 # See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
405 AC_MSG_CHECKING(for PTRACE_GETREGS)
406 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
407 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
409 [gdb_cv_have_ptrace_getregs=yes],
410 [gdb_cv_have_ptrace_getregs=no])])
411 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
412 if test $gdb_cv_have_ptrace_getregs = yes; then
413 AC_DEFINE(HAVE_PTRACE_GETREGS)
416 # See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
417 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
418 AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
419 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
420 [PTRACE_GETFPXREGS;],
421 [gdb_cv_have_ptrace_getfpxregs=yes],
422 [gdb_cv_have_ptrace_getfpxregs=no])])
423 AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
424 if test $gdb_cv_have_ptrace_getfpxregs = yes; then
425 AC_DEFINE(HAVE_PTRACE_GETFPXREGS)
428 # See if <sys/ptrace.h> provides the PT_GETDBREGS request.
429 AC_MSG_CHECKING(for PT_GETDBREGS)
430 AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
431 [AC_TRY_COMPILE([#include <sys/types.h>
432 #include <sys/ptrace.h>],
434 [gdb_cv_have_pt_getdbregs=yes],
435 [gdb_cv_have_pt_getdbregs=no])])
436 AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
437 if test $gdb_cv_have_pt_getdbregs = yes; then
438 AC_DEFINE(HAVE_PT_GETDBREGS)
441 # See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
442 AC_MSG_CHECKING(for PT_GETXMMREGS)
443 AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
444 [AC_TRY_COMPILE([#include <sys/types.h>
445 #include <sys/ptrace.h>],
447 [gdb_cv_have_pt_getxmmregs=yes],
448 [gdb_cv_have_pt_getxmmregs=no])])
449 AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
450 if test $gdb_cv_have_pt_getxmmregs = yes; then
451 AC_DEFINE(HAVE_PT_GETXMMREGS)
455 BFD_NEED_DECLARATION(malloc)
456 BFD_NEED_DECLARATION(realloc)
457 BFD_NEED_DECLARATION(free)
458 BFD_NEED_DECLARATION(strerror)
459 BFD_NEED_DECLARATION(strdup)
460 BFD_NEED_DECLARATION(strstr)
461 BFD_NEED_DECLARATION(canonicalize_file_name)
463 # The following save_state_t checkery is only necessary for HPUX
464 # versions earlier than 10.20. When those fade from memory, this
465 # could be expunged. --jsm 1999-03-22
467 AC_MSG_CHECKING(for HPUX save_state structure)
468 AC_EGREP_HEADER(save_state_t, machine/save_state.h,
469 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
470 AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
471 gdb_cv_hpux_sswide=no)
472 if test $gdb_cv_hpux_savestate = yes
474 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
476 if test $gdb_cv_hpux_sswide = yes
478 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
480 AC_MSG_RESULT($gdb_cv_hpux_sswide)
483 # If we are configured native on GNU/Linux, work around problems with
485 # Also detect which type of /proc is in use, such as for Unixware or Solaris.
487 if test "${target}" = "${host}"; then
489 i[[3456]]86-*-linux*)
490 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
491 AC_DEFINE(sys_quotactl)
494 AC_DEFINE(NEW_PROC_API)
496 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
497 AC_DEFINE(NEW_PROC_API)
499 *-*-solaris2.[[678]])
500 AC_DEFINE(NEW_PROC_API)
505 if test "$ac_cv_header_sys_procfs_h" = yes; then
506 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
507 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
508 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
509 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
510 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
511 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
512 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
513 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
514 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
515 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
516 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
517 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
518 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
519 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
522 dnl Check for broken prfpregset_t type
524 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
525 dnl prfpregset_t type (it's a typedef for the pointer to a struct
526 dnl instead of the struct itself). We detect this here, and work
527 dnl around it in gdb_proc_service.h.
529 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
530 AC_MSG_CHECKING(whether prfpregset_t type is broken)
531 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
532 [AC_TRY_RUN([#include <sys/procfs.h>
535 if (sizeof (prfpregset_t) == sizeof (void *))
539 gdb_cv_prfpregset_t_broken=no,
540 gdb_cv_prfpregset_t_broken=yes,
541 gdb_cv_prfpregset_t_broken=yes)])
542 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
543 if test $gdb_cv_prfpregset_t_broken = yes; then
544 AC_DEFINE(PRFPREGSET_T_BROKEN)
548 dnl Check for PIOCSET ioctl entry
550 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
551 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
552 [AC_TRY_COMPILE([#include <unistd.h>
553 #include <sys/types.h>
554 #include <sys/procfs.h>
557 dummy = ioctl(0, PIOCSET, &dummy);
559 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
560 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
561 if test $gdb_cv_have_procfs_piocset = yes; then
562 AC_DEFINE(HAVE_PROCFS_PIOCSET)
566 dnl For native ports (host == target), check to see what kind of
567 dnl legacy link.h support is needed. (See solib-legacy.c.)
568 if test ${host} = ${target} ; then
569 dnl Check for struct link_map with l_ members which are indicative
570 dnl of SVR4-like shared libraries
572 AC_MSG_CHECKING(for member l_addr in struct link_map)
573 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members,
574 [AC_TRY_COMPILE([#include <link.h>],
575 [struct link_map lm; (void) lm.l_addr;],
576 gdb_cv_have_struct_link_map_with_l_members=yes,
577 gdb_cv_have_struct_link_map_with_l_members=no)])
578 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members)
579 if test $gdb_cv_have_struct_link_map_with_l_members = yes; then
580 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS)
583 dnl Check for struct link_map with lm_ members which are indicative
584 dnl of SunOS-like shared libraries
586 AC_MSG_CHECKING(for member lm_addr in struct link_map)
587 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members,
588 [AC_TRY_COMPILE([#include <sys/types.h>
590 [struct link_map lm; (void) lm.lm_addr;],
591 gdb_cv_have_struct_link_map_with_lm_members=yes,
592 gdb_cv_have_struct_link_map_with_lm_members=no)])
593 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members)
594 if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then
595 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS)
598 dnl Check for struct so_map with som_ members which are found on
599 dnl some *BSD systems.
601 AC_MSG_CHECKING(for member som_addr in struct so_map)
602 AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members,
603 [AC_TRY_COMPILE([#include <sys/types.h>
608 [struct so_map lm; (void) lm.som_addr;],
609 gdb_cv_have_struct_so_map_with_som_members=yes,
610 gdb_cv_have_struct_so_map_with_som_members=no)])
611 AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members)
612 if test $gdb_cv_have_struct_so_map_with_som_members = yes; then
613 AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS)
616 dnl Check for struct link_map32 type, which allows a 64-bit Solaris
617 dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries.
619 AC_MSG_CHECKING(for struct link_map32 in sys/link.h)
620 AC_CACHE_VAL(gdb_cv_have_struct_link_map32,
621 [AC_TRY_COMPILE([#define _SYSCALL32
622 #include <sys/link.h>], [struct link_map32 l;],
623 gdb_cv_have_struct_link_map32=yes,
624 gdb_cv_have_struct_link_map32=no)])
625 AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
626 if test $gdb_cv_have_struct_link_map32 = yes; then
627 AC_DEFINE(HAVE_STRUCT_LINK_MAP32)
628 AC_DEFINE(_SYSCALL32)
632 dnl See if compiler supports "long long" type.
634 AC_MSG_CHECKING(for long long support in compiler)
635 AC_CACHE_VAL(gdb_cv_c_long_long,
637 extern long long foo;
638 switch (foo & 2) { case 0: return 1; }
640 gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
641 AC_MSG_RESULT($gdb_cv_c_long_long)
642 if test $gdb_cv_c_long_long = yes; then
643 AC_DEFINE(CC_HAS_LONG_LONG)
646 dnl See if the compiler and runtime support printing long long
648 AC_MSG_CHECKING(for long long support in printf)
649 AC_CACHE_VAL(gdb_cv_printf_has_long_long,
654 l = (l << 16) + 0x0123;
655 l = (l << 16) + 0x4567;
656 l = (l << 16) + 0x89ab;
657 l = (l << 16) + 0xcdef;
658 sprintf (buf, "0x%016llx", l);
659 return (strcmp ("0x0123456789abcdef", buf));
661 gdb_cv_printf_has_long_long=yes,
662 gdb_cv_printf_has_long_long=no,
663 gdb_cv_printf_has_long_long=no)])
664 if test $gdb_cv_printf_has_long_long = yes; then
665 AC_DEFINE(PRINTF_HAS_LONG_LONG)
667 AC_MSG_RESULT($gdb_cv_printf_has_long_long)
669 dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
670 dnl because autoconf complains about cross-compilation issues. However, this
671 dnl code uses the same variables as the macro for compatibility.
673 AC_MSG_CHECKING(for long double support in compiler)
674 AC_CACHE_VAL(ac_cv_c_long_double,
675 [AC_TRY_COMPILE(, [long double foo;],
676 ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
677 AC_MSG_RESULT($ac_cv_c_long_double)
678 if test $ac_cv_c_long_double = yes; then
679 AC_DEFINE(HAVE_LONG_DOUBLE)
682 dnl See if the compiler and runtime support printing long doubles
684 AC_MSG_CHECKING(for long double support in printf)
685 AC_CACHE_VAL(gdb_cv_printf_has_long_double,
689 long double f = 3.141592653;
690 sprintf (buf, "%Lg", f);
691 return (strncmp ("3.14159", buf, 7));
693 gdb_cv_printf_has_long_double=yes,
694 gdb_cv_printf_has_long_double=no,
695 gdb_cv_printf_has_long_double=no)])
696 if test $gdb_cv_printf_has_long_double = yes; then
697 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
699 AC_MSG_RESULT($gdb_cv_printf_has_long_double)
701 dnl See if the compiler and runtime support scanning long doubles
703 AC_MSG_CHECKING(for long double support in scanf)
704 AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
707 char *buf = "3.141592653";
709 sscanf (buf, "%Lg", &f);
710 return !(f > 3.14159 && f < 3.14160);
712 gdb_cv_scanf_has_long_double=yes,
713 gdb_cv_scanf_has_long_double=no,
714 gdb_cv_scanf_has_long_double=no)])
715 if test $gdb_cv_scanf_has_long_double = yes; then
716 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
718 AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
722 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
723 SAVE_LDFLAGS=$LDFLAGS
726 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
727 *) gdb_cv_bigtoc=-bbigtoc ;;
730 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
731 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
733 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
738 dnl For certain native configurations, we need to check whether thread
739 dnl support can be built in or not.
741 dnl Note that we only want this if we are both native (host == target),
742 dnl and not doing a canadian cross build (build == host).
744 if test ${build} = ${host} -a ${host} = ${target} ; then
747 AC_MSG_CHECKING(for HPUX/OSF thread support)
748 if test -f /usr/include/dce/cma_config.h ; then
749 if test "$GCC" = "yes" ; then
751 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
752 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} hpux-thread.o"
753 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
755 AC_MSG_RESULT(no (suppressed because you are not using GCC))
762 # See if thread_db library is around for Solaris thread debugging.
763 # Note that we must explicitly test for version 1 of the library
764 # because version 0 (present on Solaris 2.4 or earlier) doesn't have
766 AC_MSG_CHECKING(for Solaris thread debugging library)
767 if test -f /usr/lib/libthread_db.so.1 ; then
769 AC_DEFINE(HAVE_THREAD_DB_LIB)
770 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} sol-thread.o"
771 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
772 AC_CHECK_LIB(dl, dlopen)
773 if test "$GCC" = "yes" ; then
774 # The GNU linker requires the -export-dynamic option to make
775 # all symbols visible in the dynamic symbol table.
776 hold_ldflags=$LDFLAGS
777 AC_MSG_CHECKING(for the ld -export-dynamic flag)
778 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
779 AC_TRY_LINK(, [int i;], found=yes, found=no)
780 LDFLAGS=$hold_ldflags
781 AC_MSG_RESULT($found)
782 if test $found = yes; then
783 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
786 # Sun randomly tweaked the prototypes in <proc_service.h>
788 AC_MSG_CHECKING(if <proc_service.h> is old)
789 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
791 #include <proc_service.h>
793 (struct ps_prochandle*, psaddr_t, const void*, size_t);
794 ],, gdb_cv_proc_service_is_old=no,
795 gdb_cv_proc_service_is_old=yes)
797 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
798 if test $gdb_cv_proc_service_is_old = yes; then
799 AC_DEFINE(PROC_SERVICE_IS_OLD)
806 AC_MSG_CHECKING(for AiX thread debugging library)
807 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
808 [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
809 [#ifndef PTHDB_VERSION_3
812 gdb_cv_have_aix_thread_debug=yes,
813 gdb_cv_have_aix_thread_debug=no)])
814 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
815 if test $gdb_cv_have_aix_thread_debug = yes; then
816 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
817 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} aix-thread.o"
818 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
822 AC_SUBST(CONFIG_LDFLAGS)
825 dnl See if we have a thread_db header file that has TD_NOTALLOC.
826 if test "x$ac_cv_header_thread_db_h" = "xyes"; then
827 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
828 gdb_cv_thread_db_h_has_td_notalloc,
830 [#include <thread_db.h>],
831 [int i = TD_NOTALLOC;],
832 gdb_cv_thread_db_h_has_td_notalloc=yes,
833 gdb_cv_thread_db_h_has_td_notalloc=no
837 if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
838 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
839 [Define if <thread_db.h> has the TD_NOTALLOC error code.])
842 dnl linux-proc.c wants to use pread64, which may require special CFLAGS
843 dnl -D_BSD_SOURCE is normally assumed but we have to specify it because of
844 dnl -D_XOPEN_SOURCE=500.
845 if test $host = $target; then
849 CFLAGS="$CFLAGS -D_BSD_SOURCE -D_XOPEN_SOURCE=500 -D_LARGEFILE64_SOURCE"
850 AC_TRY_LINK([#include <unistd.h>],
851 [pread64 (0, NULL, 0, 0);],
852 [ENABLE_CFLAGS="$ENABLE_CFLAGS -D_BSD_SOURCE -D_XOPEN_SOURCE=500 -D_LARGEFILE64_SOURCE"
853 AC_DEFINE(HAVE_PREAD64)], [])
859 dnl Handle optional features that can be enabled.
861 # NOTE: Don't add -Wall or -Wunused, they both include
862 # -Wunused-parameter which reports bogus warnings.
863 # NOTE: If you add to this list, remember to update
864 # gdb/doc/gdbint.texinfo.
865 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
866 -Wformat -Wparentheses -Wpointer-arith -Wuninitialized"
867 # Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
868 # -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
869 # -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual
870 # -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
871 # -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
872 # -Woverloaded-virtual -Winline -Werror"
873 AC_ARG_ENABLE(build-warnings,
874 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
875 [case "${enableval}" in
877 no) build_warnings="-w";;
878 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
879 build_warnings="${build_warnings} ${t}";;
880 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
881 build_warnings="${t} ${build_warnings}";;
882 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
884 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
885 echo "Setting compiler warning flags = $build_warnings" 6>&1
887 AC_ARG_ENABLE(gdb-build-warnings,
888 [ --enable-gdb-build-warnings Enable GDB specific build-time compiler warnings if gcc is used],
889 [case "${enableval}" in
891 no) build_warnings="-w";;
892 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
893 build_warnings="${build_warnings} ${t}";;
894 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
895 build_warnings="${t} ${build_warnings}";;
896 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
898 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
899 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
903 if test "x${build_warnings}" != x -a "x$GCC" = xyes
905 AC_MSG_CHECKING(compiler warning flags)
906 # Separate out the -Werror flag as some files just cannot be
907 # compiled with it enabled.
908 for w in ${build_warnings}; do
910 -Werr*) WERROR_CFLAGS=-Werror ;;
911 *) # Check that GCC accepts it
912 saved_CFLAGS="$CFLAGS"
914 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
915 CFLAGS="$saved_CFLAGS"
918 AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
920 AC_SUBST(WARN_CFLAGS)
921 AC_SUBST(WERROR_CFLAGS)
925 AC_SUBST(MMALLOC_CFLAGS)
929 [ --with-mmalloc Use memory mapped malloc package],
930 [case "${withval}" in
931 yes) want_mmalloc=true ;;
932 no) want_mmalloc=false;;
933 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
934 esac],[want_mmalloc=false])dnl
936 if test x$want_mmalloc = xtrue; then
937 AC_DEFINE(USE_MMALLOC)
938 AC_DEFINE(MMCHECK_FORCE)
939 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
940 MMALLOC='../mmalloc/libmmalloc.a'
943 # In the Cygwin environment, we need some additional flags.
944 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
945 [AC_EGREP_CPP(lose, [
946 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
948 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
951 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
952 SER_HARDWIRE="ser-unix.o ser-pipe.o ser-tcp.o"
954 *go32* ) SER_HARDWIRE=ser-go32.o ;;
955 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
957 AC_SUBST(SER_HARDWIRE)
959 # libreadline needs libuser32.a in a cygwin environment
961 if test x$gdb_cv_os_cygwin = xyes; then
964 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
970 LIBGUI="../libgui/src/libgui.a"
971 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
973 AC_SUBST(GUI_CFLAGS_X)
976 [ --enable-gdbtk Enable GDBTK GUI front end],
977 [case "${enableval}" in
981 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
984 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
992 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
995 # Default is on for everything but go32 and Cygwin
1000 if test -d "${srcdir}/gdbtk" ; then
1009 AC_SUBST(WIN32LDAPP)
1014 if test "${enable_gdbtk}" = "yes"; then
1016 # Gdbtk must have an absolute path to srcdir in order to run
1017 # properly when not installed.
1023 CY_AC_PATH_TCLCONFIG
1024 if test -z "${no_tcl}"; then
1025 CY_AC_LOAD_TCLCONFIG
1028 # now look for Tcl library stuff
1039 TCL_DEPS="${tcldir}${TCL_LIB_FILE}"
1041 # If $no_tk is nonempty, then we can't do Tk, and there is no
1042 # point to doing Tcl.
1043 if test -z "${no_tk}"; then
1051 # now look for Tk library stuff
1062 TK_DEPS="${tkdir}${TK_LIB_FILE}"
1064 # now look for Itcl library stuff
1066 CY_AC_PATH_ITCLCONFIG
1067 if test -z "${no_itcl}"; then
1068 CY_AC_LOAD_ITCLCONFIG
1070 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
1071 ITCL_DEPS="${ITCL_LIB_FULL_PATH}"
1075 # now look for Itk library stuff
1076 CY_AC_PATH_ITKCONFIG
1077 if test -z "${no_itcl}"; then
1078 CY_AC_LOAD_ITKCONFIG
1080 ITKLIB="${ITK_BUILD_LIB_SPEC}"
1081 ITK_DEPS="${ITK_LIB_FULL_PATH}"
1084 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
1085 # Tcl/Tk 8.1 require -fwritable strings. I don't
1086 # know whether 8.2 will or not, but I bet it will.
1087 # I don't have to worry about 7.x since we don't support it.
1089 if test "$GCC" = "yes"; then
1090 if test "$TCL_VERSION" != "8.0" ; then
1091 GDBTK_CFLAGS="-fwritable-strings"
1095 # Include some libraries that Tcl and Tk want.
1096 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
1097 # Yes, the ordering seems wrong here. But it isn't.
1098 # TK_LIBS is the list of libraries that need to be linked
1099 # after Tcl/Tk. Note that this isn't put into LIBS. If it
1100 # were in LIBS then any link tests after this point would
1101 # try to include things like `$(LIBGUI)', which wouldn't work.
1102 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
1104 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
1105 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
1106 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
1107 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_GDBTK_INITS)"
1108 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
1109 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_GDBTK_CLEAN)"
1110 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
1111 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
1113 if test x$gdb_cv_os_cygwin = xyes; then
1114 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
1115 WIN32LDAPP="-Wl,--subsystem,console"
1116 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
1121 SUBDIRS="${SUBDIRS} gdbtk"
1122 configdirs="${configdirs} gdbtk"
1135 AC_SUBST(GDBTK_CFLAGS)
1136 AC_SUBST(GDBTK_SRC_DIR)
1141 # Unlike the sim directory, whether a simulator is linked is controlled by
1142 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
1143 # This code just checks for a few cases where we'd like to ignore those
1144 # definitions, even when they're present in the '.mt' file. These cases
1145 # are when --disable-sim is specified, or if the simulator directory is
1146 # not part of the source tree.
1149 [ --enable-sim Link gdb with simulator],
1150 [echo "enable_sim = $enable_sim";
1151 echo "enableval = ${enableval}";
1152 case "${enableval}" in
1153 yes) ignore_sim=false ;;
1154 no) ignore_sim=true ;;
1155 *) ignore_sim=false ;;
1159 if test ! -d "${srcdir}/../sim"; then
1163 if test "${ignore_sim}" = "true"; then
1165 IGNORE_SIM_OBS="SIM_OBS="
1171 AC_SUBST(IGNORE_SIM)
1172 AC_SUBST(IGNORE_SIM_OBS)
1174 AC_SUBST(ENABLE_CFLAGS)
1176 AC_SUBST(CONFIG_OBS)
1177 AC_SUBST(CONFIG_LIB_OBS)
1178 AC_SUBST(CONFIG_DEPS)
1179 AC_SUBST(CONFIG_SRCS)
1180 AC_SUBST(CONFIG_INITS)
1181 AC_SUBST(CONFIG_ALL)
1182 AC_SUBST(CONFIG_CLEAN)
1183 AC_SUBST(CONFIG_INSTALL)
1184 AC_SUBST(CONFIG_UNINSTALL)
1186 # Begin stuff to support --enable-shared
1187 AC_ARG_ENABLE(shared,
1188 [ --enable-shared Use shared libraries],
1189 [case "${enableval}" in
1197 # If we have shared libraries, try to set rpath reasonably.
1198 if test "${shared}" = "true"; then
1201 HLDFLAGS='-Wl,+s,+b,$(libdir)'
1203 *-*-irix5* | *-*-irix6*)
1204 HLDFLAGS='-Wl,-rpath,$(libdir)'
1208 *-*-linux* | *-pc-linux-gnu*)
1209 HLDFLAGS='-Wl,-rpath,$(libdir)'
1212 HLDFLAGS='-R $(libdir)'
1215 HLDENV='if test -z "$${LD_RUN_PATH}"; then LD_RUN_PATH=$(libdir); else LD_RUN_PATH=$${LD_RUN_PATH}:$(libdir); fi; export LD_RUN_PATH;'
1220 # On SunOS, if the linker supports the -rpath option, use it to
1221 # prevent ../bfd and ../opcodes from being included in the run time
1225 echo 'main () { }' > conftest.c
1226 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
1227 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
1229 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
1231 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
1233 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
1235 elif test "${shared}" = "true"; then
1236 HLDFLAGS='-Wl,-rpath=$(libdir)'
1238 HLDFLAGS='-Wl,-rpath='
1240 rm -f conftest.t conftest.c conftest
1245 # End stuff to support --enable-shared
1247 # target_subdir is used by the testsuite to find the target libraries.
1249 if test "${host}" != "${target}"; then
1250 target_subdir="${target_alias}/"
1252 AC_SUBST(target_subdir)
1255 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
1256 if test ! -f ${host_makefile_frag}; then
1257 # When building a native debuger the .mh file containing things
1258 # like NATDEPFILES is needed. Cross debuggers don't need .mh
1259 # since it no longer contains anything useful.
1260 if test "${target}" = "${host}"; then
1261 AC_MSG_ERROR("*** Gdb does not support native target ${host}")
1263 host_makefile_frag=/dev/null
1266 frags="$frags $host_makefile_frag"
1268 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
1269 if test ! -f ${target_makefile_frag}; then
1270 AC_MSG_ERROR("*** Gdb does not support target ${target}")
1272 frags="$frags $target_makefile_frag"
1274 AC_SUBST_FILE(host_makefile_frag)
1275 AC_SUBST_FILE(target_makefile_frag)
1280 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1281 ' ${host_makefile_frag}`
1283 targetfile=`sed -n '
1284 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1285 ' ${target_makefile_frag}`
1287 GDB_MULTI_ARCH=`sed -n '
1288 s/GDB_MULTI_ARCH[ ]*=[ ]*\([^ ]*\)[ ]*/\1/p
1289 ' ${target_makefile_frag}`
1291 if test "${target}" = "${host}"; then
1292 # We pick this up from the host configuration file (.mh) because we
1293 # do not have a native configuration Makefile fragment.
1294 nativefile=`sed -n '
1295 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1296 ' ${host_makefile_frag}`
1300 # New targets should just set gdb_multi_arch=yes in configure.tgt.
1301 # Old targets being converted can either do that or set GDB_MULTI_ARCH
1302 # in the target specific makefile frag. Eventually gdb_multi_arch=yes
1303 # will be the default.
1304 if test x"${GDB_MULTI_ARCH}" = x ; then
1305 case "${gdb_multi_arch}" in
1306 yes ) GDB_MULTI_ARCH=GDB_MULTI_ARCH_PURE ;;
1307 no ) GDB_MULTI_ARCH=0 ;;
1308 0|1|2 ) GDB_MULTI_ARCH=${gdb_multi_arch} ;;
1311 if test x"${GDB_MULTI_ARCH}" != x ; then
1312 AC_DEFINE_UNQUOTED(GDB_MULTI_ARCH, ${GDB_MULTI_ARCH})
1314 # Warn the user when they use an old practice
1315 case "${GDB_MULTI_ARCH}" in
1317 0 | GDB_MULTI_ARCH_PARTIAL | 1 | GDB_MULTI_ARCH_TM | 2 )
1318 AC_MSG_WARN("GDB: Target is not pure multi-arch") ;;
1319 GDB_MULTI_ARCH_PURE )
1320 if test x"${targetfile}" != x ; then
1321 AC_MSG_WARN("GDB: Ignoring TM_FILE in ${target_makefile_frag}")
1324 *) AC_MSG_ERROR("GDB: Unknown GDB_MULTI_ARCH value ${GDB_MULTI_ARCH}");;
1327 if test "${enable_multi_ice}" = "yes"; then
1328 SUBDIRS="${SUBDIRS} multi-ice"
1331 # ``gdbserver'' can only be built in a native configuration.
1332 if test x"${target}" = x"${host}"; then
1333 AC_MSG_CHECKING(whether gdbserver is supported on this host)
1334 if test x"${build_gdbserver}" = xyes ; then
1335 configdirs="${configdirs} gdbserver"
1336 SUBDIRS="${SUBDIRS} gdbserver"
1345 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
1346 # (NAT_FILE) is not set in config/*/*.m[ht] files, we link to an empty
1354 if test "${hostfile}" != ""; then
1356 GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}"
1357 files="${files} ${GDB_XM_FILE}"
1358 links="${links} xm.h"
1359 AC_DEFINE_UNQUOTED(GDB_XM_FILE, ${GDB_XM_FILE})
1365 if test "${targetfile}" != ""; then
1367 GDB_TM_FILE="config/${gdb_target_cpu}/${targetfile}"
1368 files="${files} ${GDB_TM_FILE}"
1369 links="${links} tm.h"
1370 AC_DEFINE_UNQUOTED(GDB_TM_FILE, ${GDB_TM_FILE})
1376 if test "${nativefile}" != ""; then
1378 GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}"
1379 files="${files} ${GDB_NM_FILE}"
1380 links="${links} nm.h"
1381 AC_DEFINE_UNQUOTED(GDB_NM_FILE, ${GDB_NM_FILE})
1385 AC_LINK_FILES($files, $links)
1387 dnl Check for exe extension set on certain hosts (e.g. Win32)
1390 dnl Detect the character set used by this host.
1392 dnl At the moment, we just assume it's ISO-8859-1 (which is a
1393 dnl superset of ASCII containing the characters needed for French,
1394 dnl German, Spanish, Italian, and possibly others), but if were
1395 dnl *were* to support any host character sets other than ISO-8859-1,
1396 dnl here's where we'd detect it.
1397 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "ISO-8859-1",
1398 [Define to be a string naming the default host character set.])
1402 AC_CONFIG_SUBDIRS($configdirs)
1403 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1405 dnl Autoconf doesn't provide a mechanism for modifying definitions
1406 dnl provided by makefile fragments.
1408 if test "${nativefile}" = ""; then
1410 sed -e '/^NATDEPFILES[[ ]]*=.*\\$/,/[[^\\]]$/s/^/# /' \
1411 -e '/^NATDEPFILES[[ ]]*=/s/^/# /' \
1412 | sed -e '/^\(NATDEPFILES[[ ]]*[[+]]=[[ ]]*\)/s//# \1/' \
1414 mv -f Makefile.tem Makefile
1418 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1419 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1420 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1421 mv -f Makefile.tmp Makefile
1425 case x$CONFIG_HEADERS in
1426 xconfig.h:config.in)
1431 gdb_host_cpu=$gdb_host_cpu
1432 gdb_target_cpu=$gdb_target_cpu
1433 nativefile=$nativefile