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 AC_ARG_ENABLE(netrom,
862 [ --enable-netrom Enable NetROM support],
863 [case "${enableval}" in
864 yes) enable_netrom=yes ;;
865 no) enable_netrom=no ;;
866 *) AC_MSG_ERROR(bad value ${enableval} given for netrom option) ;;
869 if test "${enable_netrom}" = "yes"; then
870 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} remote-nrom.o"
871 CONFIG_SRCS="${CONFIG_SRCS} remote-nrom.c"
875 # NOTE: Don't add -Wall or -Wunused, they both include
876 # -Wunused-parameter which reports bogus warnings.
877 # NOTE: If you add to this list, remember to update
878 # gdb/doc/gdbint.texinfo.
879 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
880 -Wformat -Wparentheses -Wpointer-arith -Wuninitialized"
881 # Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
882 # -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
883 # -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual
884 # -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
885 # -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
886 # -Woverloaded-virtual -Winline -Werror"
887 AC_ARG_ENABLE(build-warnings,
888 [ --enable-build-warnings Enable 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 compiler warning flags = $build_warnings" 6>&1
901 AC_ARG_ENABLE(gdb-build-warnings,
902 [ --enable-gdb-build-warnings Enable GDB specific build-time compiler warnings if gcc is used],
903 [case "${enableval}" in
905 no) build_warnings="-w";;
906 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
907 build_warnings="${build_warnings} ${t}";;
908 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
909 build_warnings="${t} ${build_warnings}";;
910 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
912 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
913 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
917 if test "x${build_warnings}" != x -a "x$GCC" = xyes
919 AC_MSG_CHECKING(compiler warning flags)
920 # Separate out the -Werror flag as some files just cannot be
921 # compiled with it enabled.
922 for w in ${build_warnings}; do
924 -Werr*) WERROR_CFLAGS=-Werror ;;
925 *) # Check that GCC accepts it
926 saved_CFLAGS="$CFLAGS"
928 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
929 CFLAGS="$saved_CFLAGS"
932 AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
934 AC_SUBST(WARN_CFLAGS)
935 AC_SUBST(WERROR_CFLAGS)
939 AC_SUBST(MMALLOC_CFLAGS)
943 [ --with-mmalloc Use memory mapped malloc package],
944 [case "${withval}" in
945 yes) want_mmalloc=true ;;
946 no) want_mmalloc=false;;
947 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
948 esac],[want_mmalloc=false])dnl
950 if test x$want_mmalloc = xtrue; then
951 AC_DEFINE(USE_MMALLOC)
952 AC_DEFINE(MMCHECK_FORCE)
953 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
954 MMALLOC='../mmalloc/libmmalloc.a'
957 # In the Cygwin environment, we need some additional flags.
958 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
959 [AC_EGREP_CPP(lose, [
960 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
962 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
965 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
966 SER_HARDWIRE="ser-unix.o ser-pipe.o ser-tcp.o"
968 *go32* ) SER_HARDWIRE=ser-go32.o ;;
969 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
971 AC_SUBST(SER_HARDWIRE)
973 # libreadline needs libuser32.a in a cygwin environment
975 if test x$gdb_cv_os_cygwin = xyes; then
978 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
984 LIBGUI="../libgui/src/libgui.a"
985 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
987 AC_SUBST(GUI_CFLAGS_X)
990 [ --enable-gdbtk Enable GDBTK GUI front end],
991 [case "${enableval}" in
995 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
998 AC_MSG_WARN([GDB does not support GDBtk on host ${host}. GDBtk will be disabled.])
1006 AC_MSG_ERROR(bad value ${enableval} given for gdbtk option) ;;
1009 # Default is on for everything but go32 and Cygwin
1014 if test -d "${srcdir}/gdbtk" ; then
1023 AC_SUBST(WIN32LDAPP)
1028 if test "${enable_gdbtk}" = "yes"; then
1030 # Gdbtk must have an absolute path to srcdir in order to run
1031 # properly when not installed.
1037 CY_AC_PATH_TCLCONFIG
1038 if test -z "${no_tcl}"; then
1039 CY_AC_LOAD_TCLCONFIG
1042 # now look for Tcl library stuff
1053 TCL_DEPS="${tcldir}${TCL_LIB_FILE}"
1055 # If $no_tk is nonempty, then we can't do Tk, and there is no
1056 # point to doing Tcl.
1057 if test -z "${no_tk}"; then
1065 # now look for Tk library stuff
1076 TK_DEPS="${tkdir}${TK_LIB_FILE}"
1078 # now look for Itcl library stuff
1080 CY_AC_PATH_ITCLCONFIG
1081 if test -z "${no_itcl}"; then
1082 CY_AC_LOAD_ITCLCONFIG
1084 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
1085 ITCL_DEPS="${ITCL_LIB_FULL_PATH}"
1089 # now look for Itk library stuff
1090 CY_AC_PATH_ITKCONFIG
1091 if test -z "${no_itcl}"; then
1092 CY_AC_LOAD_ITKCONFIG
1094 ITKLIB="${ITK_BUILD_LIB_SPEC}"
1095 ITK_DEPS="${ITK_LIB_FULL_PATH}"
1098 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
1099 # Tcl/Tk 8.1 require -fwritable strings. I don't
1100 # know whether 8.2 will or not, but I bet it will.
1101 # I don't have to worry about 7.x since we don't support it.
1103 if test "$GCC" = "yes"; then
1104 if test "$TCL_VERSION" != "8.0" ; then
1105 GDBTK_CFLAGS="-fwritable-strings"
1109 # Include some libraries that Tcl and Tk want.
1110 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
1111 # Yes, the ordering seems wrong here. But it isn't.
1112 # TK_LIBS is the list of libraries that need to be linked
1113 # after Tcl/Tk. Note that this isn't put into LIBS. If it
1114 # were in LIBS then any link tests after this point would
1115 # try to include things like `$(LIBGUI)', which wouldn't work.
1116 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
1118 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
1119 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
1120 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
1121 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_GDBTK_INITS)"
1122 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
1123 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_GDBTK_CLEAN)"
1124 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
1125 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
1127 if test x$gdb_cv_os_cygwin = xyes; then
1128 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
1129 WIN32LDAPP="-Wl,--subsystem,console"
1130 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
1135 SUBDIRS="${SUBDIRS} gdbtk"
1136 configdirs="${configdirs} gdbtk"
1149 AC_SUBST(GDBTK_CFLAGS)
1150 AC_SUBST(GDBTK_SRC_DIR)
1155 # Unlike the sim directory, whether a simulator is linked is controlled by
1156 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
1157 # This code just checks for a few cases where we'd like to ignore those
1158 # definitions, even when they're present in the '.mt' file. These cases
1159 # are when --disable-sim is specified, or if the simulator directory is
1160 # not part of the source tree.
1163 [ --enable-sim Link gdb with simulator],
1164 [echo "enable_sim = $enable_sim";
1165 echo "enableval = ${enableval}";
1166 case "${enableval}" in
1167 yes) ignore_sim=false ;;
1168 no) ignore_sim=true ;;
1169 *) ignore_sim=false ;;
1173 if test ! -d "${srcdir}/../sim"; then
1177 if test "${ignore_sim}" = "true"; then
1179 IGNORE_SIM_OBS="SIM_OBS="
1185 AC_SUBST(IGNORE_SIM)
1186 AC_SUBST(IGNORE_SIM_OBS)
1188 AC_SUBST(ENABLE_CFLAGS)
1190 AC_SUBST(CONFIG_OBS)
1191 AC_SUBST(CONFIG_LIB_OBS)
1192 AC_SUBST(CONFIG_DEPS)
1193 AC_SUBST(CONFIG_SRCS)
1194 AC_SUBST(CONFIG_INITS)
1195 AC_SUBST(CONFIG_ALL)
1196 AC_SUBST(CONFIG_CLEAN)
1197 AC_SUBST(CONFIG_INSTALL)
1198 AC_SUBST(CONFIG_UNINSTALL)
1200 # Begin stuff to support --enable-shared
1201 AC_ARG_ENABLE(shared,
1202 [ --enable-shared Use shared libraries],
1203 [case "${enableval}" in
1211 # If we have shared libraries, try to set rpath reasonably.
1212 if test "${shared}" = "true"; then
1215 HLDFLAGS='-Wl,+s,+b,$(libdir)'
1217 *-*-irix5* | *-*-irix6*)
1218 HLDFLAGS='-Wl,-rpath,$(libdir)'
1222 *-*-linux* | *-pc-linux-gnu*)
1223 HLDFLAGS='-Wl,-rpath,$(libdir)'
1226 HLDFLAGS='-R $(libdir)'
1229 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;'
1234 # On SunOS, if the linker supports the -rpath option, use it to
1235 # prevent ../bfd and ../opcodes from being included in the run time
1239 echo 'main () { }' > conftest.c
1240 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
1241 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
1243 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
1245 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
1247 elif grep 'some text already loaded' conftest.t >/dev/null 2>&1; then
1249 elif test "${shared}" = "true"; then
1250 HLDFLAGS='-Wl,-rpath=$(libdir)'
1252 HLDFLAGS='-Wl,-rpath='
1254 rm -f conftest.t conftest.c conftest
1259 # End stuff to support --enable-shared
1261 # target_subdir is used by the testsuite to find the target libraries.
1263 if test "${host}" != "${target}"; then
1264 target_subdir="${target_alias}/"
1266 AC_SUBST(target_subdir)
1269 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
1270 if test ! -f ${host_makefile_frag}; then
1271 # When building a native debuger the .mh file containing things
1272 # like NATDEPFILES is needed. Cross debuggers don't need .mh
1273 # since it no longer contains anything useful.
1274 if test "${target}" = "${host}"; then
1275 AC_MSG_ERROR("*** Gdb does not support native target ${host}")
1277 host_makefile_frag=/dev/null
1280 frags="$frags $host_makefile_frag"
1282 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
1283 if test ! -f ${target_makefile_frag}; then
1284 AC_MSG_ERROR("*** Gdb does not support target ${target}")
1286 frags="$frags $target_makefile_frag"
1288 AC_SUBST_FILE(host_makefile_frag)
1289 AC_SUBST_FILE(target_makefile_frag)
1294 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1295 ' ${host_makefile_frag}`
1297 targetfile=`sed -n '
1298 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1299 ' ${target_makefile_frag}`
1301 GDB_MULTI_ARCH=`sed -n '
1302 s/GDB_MULTI_ARCH[ ]*=[ ]*\([^ ]*\)[ ]*/\1/p
1303 ' ${target_makefile_frag}`
1305 if test "${target}" = "${host}"; then
1306 # We pick this up from the host configuration file (.mh) because we
1307 # do not have a native configuration Makefile fragment.
1308 nativefile=`sed -n '
1309 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1310 ' ${host_makefile_frag}`
1314 # New targets should just set gdb_multi_arch=yes in configure.tgt.
1315 # Old targets being converted can either do that or set GDB_MULTI_ARCH
1316 # in the target specific makefile frag. Eventually gdb_multi_arch=yes
1317 # will be the default.
1318 if test x"${GDB_MULTI_ARCH}" = x ; then
1319 case "${gdb_multi_arch}" in
1320 yes ) GDB_MULTI_ARCH=GDB_MULTI_ARCH_PURE ;;
1321 no ) GDB_MULTI_ARCH=0 ;;
1322 0|1|2 ) GDB_MULTI_ARCH=${gdb_multi_arch} ;;
1325 if test x"${GDB_MULTI_ARCH}" != x ; then
1326 AC_DEFINE_UNQUOTED(GDB_MULTI_ARCH, ${GDB_MULTI_ARCH})
1328 # Warn the user when they use an old practice
1329 case "${GDB_MULTI_ARCH}" in
1331 0 | GDB_MULTI_ARCH_PARTIAL | 1 | GDB_MULTI_ARCH_TM | 2 )
1332 AC_MSG_WARN("GDB: Target is not pure multi-arch") ;;
1333 GDB_MULTI_ARCH_PURE )
1334 if test x"${targetfile}" != x ; then
1335 AC_MSG_WARN("GDB: Ignoring TM_FILE in ${target_makefile_frag}")
1338 *) AC_MSG_ERROR("GDB: Unknown GDB_MULTI_ARCH value ${GDB_MULTI_ARCH}");;
1341 if test "${enable_multi_ice}" = "yes"; then
1342 SUBDIRS="${SUBDIRS} multi-ice"
1345 # ``gdbserver'' can only be built in a native configuration.
1346 if test x"${target}" = x"${host}"; then
1347 AC_MSG_CHECKING(whether gdbserver is supported on this host)
1348 if test x"${build_gdbserver}" = xyes ; then
1349 configdirs="${configdirs} gdbserver"
1350 SUBDIRS="${SUBDIRS} gdbserver"
1359 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
1360 # (NAT_FILE) is not set in config/*/*.m[ht] files, we link to an empty
1368 if test "${hostfile}" != ""; then
1370 GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}"
1371 files="${files} ${GDB_XM_FILE}"
1372 links="${links} xm.h"
1373 AC_DEFINE_UNQUOTED(GDB_XM_FILE, ${GDB_XM_FILE})
1379 if test "${targetfile}" != ""; then
1381 GDB_TM_FILE="config/${gdb_target_cpu}/${targetfile}"
1382 files="${files} ${GDB_TM_FILE}"
1383 links="${links} tm.h"
1384 AC_DEFINE_UNQUOTED(GDB_TM_FILE, ${GDB_TM_FILE})
1390 if test "${nativefile}" != ""; then
1392 GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}"
1393 files="${files} ${GDB_NM_FILE}"
1394 links="${links} nm.h"
1395 AC_DEFINE_UNQUOTED(GDB_NM_FILE, ${GDB_NM_FILE})
1399 AC_LINK_FILES($files, $links)
1401 dnl Check for exe extension set on certain hosts (e.g. Win32)
1404 dnl Detect the character set used by this host.
1406 dnl At the moment, we just assume it's ISO-8859-1 (which is a
1407 dnl superset of ASCII containing the characters needed for French,
1408 dnl German, Spanish, Italian, and possibly others), but if were
1409 dnl *were* to support any host character sets other than ISO-8859-1,
1410 dnl here's where we'd detect it.
1411 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "ISO-8859-1",
1412 [Define to be a string naming the default host character set.])
1416 AC_CONFIG_SUBDIRS($configdirs)
1417 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1419 dnl Autoconf doesn't provide a mechanism for modifying definitions
1420 dnl provided by makefile fragments.
1422 if test "${nativefile}" = ""; then
1424 sed -e '/^NATDEPFILES[[ ]]*=.*\\$/,/[[^\\]]$/s/^/# /' \
1425 -e '/^NATDEPFILES[[ ]]*=/s/^/# /' \
1426 | sed -e '/^\(NATDEPFILES[[ ]]*[[+]]=[[ ]]*\)/s//# \1/' \
1428 mv -f Makefile.tem Makefile
1432 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1433 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1434 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1435 mv -f Makefile.tmp Makefile
1439 case x$CONFIG_HEADERS in
1440 xconfig.h:config.in)
1445 gdb_host_cpu=$gdb_host_cpu
1446 gdb_target_cpu=$gdb_target_cpu
1447 nativefile=$nativefile