2004-01-01 Michael Chastain <mec.gnu@mindspring.com>
[deliverable/binutils-gdb.git] / gdb / configure.in
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.
4 dnl
5 dnl This file is part of GDB.
6 dnl
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.
11 dnl
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.
16 dnl
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.
20
21 dnl Process this file with autoconf to produce a configure script.
22
23 AC_PREREQ(2.13)dnl
24 AC_INIT(main.c)
25 AC_CONFIG_HEADER(config.h:config.in)
26 AM_MAINTAINER_MODE
27
28 AC_PROG_CC
29 AC_GNU_SOURCE
30 AC_AIX
31 AC_ISC_POSIX
32 AM_PROG_CC_STDC
33
34 AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
35 AC_CANONICAL_SYSTEM
36
37 # FIXME: kettenis/20030102: The AC_PROG_RANLIB from Autoconf 2.13
38 # doesn't support cross-compilation, but the one from Autoconf 2.5x
39 # does. Override RANLIB here (i.e. before running AC_PROG_RANLIB) to
40 # deal with the lossage. Note that CY_GNU_GETTEXT currently calls
41 # AC_PROG_RANLIB. This can be removed when we switch to Autoconf
42 # 2.5x.
43 AC_CHECK_TOOL(RANLIB, ranlib, :)
44
45 dnl Set up for gettext. PACKAGE is used when we call bindtextdomain.
46 ALL_LINGUAS=
47 CY_GNU_GETTEXT
48 AC_DEFINE(PACKAGE, "gdb", [Name of this package. ])
49
50 debugdir=${libdir}/debug
51
52 AC_ARG_WITH(separate-debug-dir,
53 [ --with-separate-debug-dir=path Look for global separate debug info in this path [LIBDIR/debug]],
54 [debugdir="${withval}"])
55
56 AC_DEFINE_DIR(DEBUGDIR, debugdir,
57 [Global directory for separate debug files. ])
58 #AC_DEFINE_UNQUOTED(DEBUGDIR, "$debugdir"),
59
60 dnl List of object files added by configure.
61
62 CONFIG_OBS=
63 CONFIG_LIB_OBS=
64 CONFIG_DEPS=
65 CONFIG_SRCS=
66 CONFIG_INITS=
67 ENABLE_CFLAGS=
68 CONFIG_ALL=
69 CONFIG_CLEAN=
70 CONFIG_INSTALL=
71 CONFIG_UNINSTALL=
72
73 AC_CONFIG_SUBDIRS(doc testsuite)
74 configdirs=
75
76 . $srcdir/configure.host
77
78 . $srcdir/configure.tgt
79
80 # Fetch the default architecture and default target vector from BFD.
81 targ=$target; . $srcdir/../bfd/config.bfd
82
83 # We only want the first architecture, so strip off the others if
84 # there is more than one.
85 targ_archs=`echo $targ_archs | sed 's/ .*//'`
86
87 if test "x$targ_archs" != x; then
88 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs,
89 [Define to BFD's default architecture. ])
90 fi
91 if test "x$targ_defvec" != x; then
92 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec,
93 [Define to BFD's default target vector. ])
94 fi
95
96 AC_ARG_PROGRAM
97
98 # The CLI cannot be disabled yet, but may be in the future.
99
100 # Enable CLI.
101 AC_ARG_ENABLE(gdbcli,
102 [ --disable-gdbcli disable command-line interface (CLI)],
103 [case $enableval in
104 yes)
105 ;;
106 no)
107 AC_MSG_ERROR([the command-line interface cannot be disabled yet]) ;;
108 *)
109 AC_MSG_ERROR([bad value $enableval for --enable-gdbcli]) ;;
110 esac],
111 [enable_gdbcli=yes])
112 if test x"$enable_gdbcli" = xyes; then
113 if test -d $srcdir/cli; then
114 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)"
115 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)"
116 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)"
117 CONFIG_INITS="$CONFIG_INITS \$(SUBDIR_CLI_INITS)"
118 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)"
119 CONFIG_ALL="$CONFIG_ALL \$(SUBDIR_CLI_ALL)"
120 CONFIG_CLEAN="$CONFIG_CLEAN \$(SUBDIR_CLI_CLEAN)"
121 CONFIG_INSTALL="$CONFIG_INSTALL \$(SUBDIR_CLI_INSTALL)"
122 CONFIG_UNINSTALL="$CONFIG_UNINSTALL \$(SUBDIR_CLI_UNINSTALL)"
123 fi
124 fi
125
126 # Enable MI.
127 AC_ARG_ENABLE(gdbmi,
128 [ --disable-gdbmi disable machine-interface (MI)],
129 [case $enableval in
130 yes | no)
131 ;;
132 *)
133 AC_MSG_ERROR([bad value $enableval for --enable-gdbmi]) ;;
134 esac],
135 [enable_gdbmi=yes])
136 if test x"$enable_gdbmi" = xyes; then
137 if test -d $srcdir/mi; then
138 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)"
139 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)"
140 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)"
141 CONFIG_INITS="$CONFIG_INITS \$(SUBDIR_MI_INITS)"
142 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)"
143 CONFIG_ALL="$CONFIG_ALL \$(SUBDIR_MI_ALL)"
144 CONFIG_CLEAN="$CONFIG_CLEAN \$(SUBDIR_MI_CLEAN)"
145 CONFIG_INSTALL="$CONFIG_INSTALL \$(SUBDIR_MI_INSTALL)"
146 CONFIG_UNINSTALL="$CONFIG_UNINSTALL \$(SUBDIR_MI_UNINSTALL)"
147 fi
148 fi
149
150 # Enable TUI.
151 AC_ARG_ENABLE(tui,
152 [ --enable-tui enable full-screen terminal user interface (TUI)],
153 [case $enableval in
154 yes | no)
155 ;;
156 *)
157 AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
158 esac])
159 if test x"$enable_tui" = xyes; then
160 if test -d $srcdir/tui; then
161 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
162 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
163 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
164 CONFIG_INITS="$CONFIG_INITS \$(SUBDIR_TUI_INITS)"
165 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
166 CONFIG_ALL="$CONFIG_ALL \$(SUBDIR_TUI_ALL)"
167 CONFIG_CLEAN="$CONFIG_CLEAN \$(SUBDIR_TUI_CLEAN)"
168 CONFIG_INSTALL="$CONFIG_INSTALL \$(SUBDIR_TUI_INSTALL)"
169 CONFIG_UNINSTALL="$CONFIG_UNINSTALL \$(SUBDIR_TUI_UNINSTALL)"
170 need_curses=yes
171 fi
172 fi
173
174 # Enable gdbtk.
175 AC_ARG_ENABLE(gdbtk,
176 [ --enable-gdbtk enable gdbtk graphical user interface (GUI)],
177 [case $enableval in
178 yes | no)
179 ;;
180 *)
181 AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;;
182 esac],
183 [if test -d $srcdir/gdbtk; then
184 enable_gdbtk=yes
185 else
186 enable_gdbtk=no
187 fi])
188 # We unconditionally disable gdbtk tests on selected platforms.
189 case $host_os in
190 go32* | windows*)
191 AC_MSG_WARN([gdbtk isn't supported on $host; disabling])
192 enable_gdbtk=no ;;
193 esac
194
195 # Libunwind support.
196 AC_ARG_WITH(libunwind,
197 [ --with-libunwind Use libunwind frame unwinding support],
198 [case "${withval}" in
199 yes) enable_libunwind=yes ;;
200 no) enable_libunwind=no ;;
201 *) AC_MSG_ERROR(bad value ${withval} for GDB with-libunwind option) ;;
202 esac],[
203 AC_CHECK_HEADERS(libunwind.h)
204 AC_CHECK_HEADERS(libunwind-ia64.h)
205 if test x"$ac_cv_header_libunwind_h" = xyes -a x"$ac_cv_header_libunwind_ia64_h" = xyes; then
206 enable_libunwind=yes;
207 fi
208 ])
209
210 if test x"$enable_libunwind" = xyes; then
211 AC_CHECK_HEADERS(libunwind.h)
212 AC_CHECK_HEADERS(libunwind-ia64.h)
213 AC_DEFINE(HAVE_LIBUNWIND, 1)
214 CONFIG_OBS="$CONFIG_OBS libunwind-frame.o"
215 CONFIG_DEPS="$CONFIG_DEPS libunwind-frame.o"
216 CONFIG_SRCS="$CONFIG_SRCS libunwind-frame.c"
217 fi
218
219 # Profiling support.
220 AC_ARG_ENABLE(profiling,
221 [ --enable-profiling enable profiling of GDB],
222 [case $enableval in
223 yes | no)
224 ;;
225 *)
226 AC_MSG_ERROR([bad value $enableval for --enable-profile]) ;;
227 esac],
228 [enable_profiling=no])
229
230 AC_CHECK_FUNCS(monstartup _mcleanup)
231 AC_CACHE_CHECK([for _etext], ac_cv_var__etext,
232 [AC_TRY_LINK(
233 [#include <stdlib.h>
234 extern char _etext;
235 ],
236 [free (&_etext);], ac_cv_var__etext=yes, ac_cv_var__etext=no)])
237 if test $ac_cv_var__etext = yes; then
238 AC_DEFINE(HAVE__ETEXT, 1,
239 [Define to 1 if your system has the _etext variable. ])
240 fi
241 if test "$enable_profiling" = yes ; then
242 if test $ac_cv_func_monstartup = no || test $ac_cv_func__mcleanup = no; then
243 AC_MSG_ERROR(--enable-profiling requires monstartup and _mcleanup)
244 fi
245 PROFILE_CFLAGS=-pg
246 OLD_CFLAGS="$CFLAGS"
247 CFLAGS="$CFLAGS $PROFILE_CFLAGS"
248
249 AC_CACHE_CHECK([whether $CC supports -pg], ac_cv_cc_supports_pg,
250 [AC_TRY_COMPILE([], [int x;], ac_cv_cc_supports_pg=yes,
251 ac_cv_cc_supports_pg=no)])
252
253 if test $ac_cv_cc_supports_pg = no; then
254 AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg)
255 fi
256
257 CFLAGS="$OLD_CFLAGS"
258 fi
259
260 # --------------------- #
261 # Checks for programs. #
262 # --------------------- #
263
264 AC_PROG_AWK
265 AC_PROG_INSTALL
266 AC_PROG_LN_S
267 AC_PROG_RANLIB
268 AC_PROG_YACC
269
270 AC_CHECK_TOOL(AR, ar)
271 AC_CHECK_TOOL(DLLTOOL, dlltool)
272 AC_CHECK_TOOL(WINDRES, windres)
273
274 # Needed for GNU/Hurd.
275 AC_CHECK_TOOL(MIG, mig)
276
277 # ---------------------- #
278 # Checks for libraries. #
279 # ---------------------- #
280
281 # We might need to link with -lm; most simulators need it.
282 AC_CHECK_LIB(m, main)
283
284 # We need to link with -lw to get `wctype' on Solaris before Solaris
285 # 2.6. Solaris 2.6 and beyond have this function in libc, and have a
286 # libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1
287 # is known to have this problem). Therefore we avoid libw if we can.
288 AC_CHECK_FUNC(wctype, [],
289 [AC_CHECK_LIB(w, wctype)])
290
291 # Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
292 AC_SEARCH_LIBS(gethostbyname, nsl)
293
294 # Some systems (e.g. Solaris) have `socketpair' in libsocket.
295 AC_SEARCH_LIBS(socketpair, socket)
296
297 # Since GDB uses Readline, we need termcap functionality, so we need
298 # to find a library that provides that. When GDB is configured with
299 # --enable-tui, we need full curses functionality.
300 #
301 # FIXME: kettenis/20030102: We seem to prefer HP curses (Hcurses) over
302 # Xcurses on HP-UX; see the `-D__HP_CURSES' in the relevant host
303 # Makefile fragments. That's why we need to have `Hcurses' before
304 # `curses'. I don't see why we should use HP curses if a more
305 # standard curses is available, except that according to HP's
306 # documentation one needs to compile `-D_XOPEN_SOURCE_EXTENDED' on
307 # HP-UX 10.10 and 10.20.
308
309 if test "$need_curses" = yes; then
310 AC_SEARCH_LIBS(initscr, [ncurses Hcurses curses], [],
311 [AC_MSG_ERROR([no curses library found])])
312 fi
313
314 case $host_os in
315 cygwin*)
316 if test -d $srcdir/libtermcap; then
317 LIBS="../libtermcap/libtermcap.a $LIBS"
318 ac_cv_search_tgetent="../libtermcap/libtermcap.a"
319 fi ;;
320 go32* | *djgpp*)
321 ac_cv_search_tgetent="none required"
322 ;;
323 aix*)
324 # Readline prefers curses over termcap on AIX.
325 # ??? Why?
326 AC_SEARCH_LIBS(tgetent, [tinfo ncurses curses termcap])
327 ;;
328 esac
329
330 # Note: We used to check for libtermlib and libterminfo too, but
331 # Readline doesn't, so I think we're safe with leaving them out.
332 AC_SEARCH_LIBS(tgetent, [termcap tinfo ncurses Hcurses curses])
333
334 if test "$ac_cv_search_tgetent" = no; then
335 AC_MSG_ERROR([no termcap library found])
336 fi
337
338 # ------------------------- #
339 # Checks for header files. #
340 # ------------------------- #
341
342 AC_HEADER_DIRENT
343 AC_HEADER_STAT
344 AC_HEADER_STDC
345 AC_CHECK_HEADERS(link.h)
346 AC_CHECK_HEADERS(nlist.h)
347 AC_CHECK_HEADERS(poll.h sys/poll.h)
348 AC_CHECK_HEADERS(proc_service.h thread_db.h)
349 AC_CHECK_HEADERS(stddef.h)
350 AC_CHECK_HEADERS(stdlib.h)
351 AC_CHECK_HEADERS(stdint.h)
352 AC_CHECK_HEADERS(string.h memory.h strings.h)
353 AC_CHECK_HEADERS(sys/fault.h)
354 AC_CHECK_HEADERS(sys/file.h)
355 AC_CHECK_HEADERS(sys/filio.h)
356 AC_CHECK_HEADERS(sys/ioctl.h)
357 AC_CHECK_HEADERS(sys/param.h)
358 AC_CHECK_HEADERS(sys/proc.h)
359 AC_CHECK_HEADERS(sys/procfs.h)
360 AC_CHECK_HEADERS(sys/ptrace.h ptrace.h)
361 AC_CHECK_HEADERS(sys/reg.h sys/debugreg.h)
362 AC_CHECK_HEADERS(sys/select.h)
363 AC_CHECK_HEADERS(sys/syscall.h)
364 AC_CHECK_HEADERS(sys/user.h)
365 AC_CHECK_HEADERS(sys/wait.h wait.h)
366 AC_CHECK_HEADERS(termios.h termio.h sgtty.h)
367 AC_CHECK_HEADERS(unistd.h)
368
369 # On Solaris 2.[78], we need to define _MSE_INT_H to avoid a clash
370 # between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
371 # think that we don't have <curses.h> if we're using GCC.
372 case $host_os in
373 solaris2.[[78]])
374 if test "$GCC" = yes; then
375 AC_DEFINE(_MSE_INT_H, 1,
376 [[Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
377 Solaris 2.[78] when using GCC. ]])
378 fi ;;
379 esac
380 AC_CHECK_HEADERS(curses.h ncurses.h term.h)
381
382 # FIXME: kettenis/20030102: In most cases we include these
383 # unconditionally, so what's the point in checking these?
384 AC_CHECK_HEADERS(ctype.h time.h)
385
386 dnl Check for struct stat with an st_blocks member
387 AC_MSG_CHECKING(for member st_blocks in struct stat)
388 AC_CACHE_VAL(gdb_cv_have_struct_stat_with_st_blocks_member,
389 [AC_TRY_COMPILE([#include <sys/types.h>
390 #include <sys/stat.h>],
391 [struct stat st; (void) st.st_blocks;],
392 gdb_cv_have_struct_stat_with_st_blocks_member=yes,
393 gdb_cv_have_struct_stat_with_st_blocks_member=no)])
394 AC_MSG_RESULT($gdb_cv_have_struct_stat_with_st_blocks_member)
395 if test $gdb_cv_have_struct_stat_with_st_blocks_member = yes; then
396 AC_DEFINE(HAVE_STRUCT_STAT_ST_BLOCKS)
397 fi
398 # ------------------------- #
399 # Checks for declarations. #
400 # ------------------------- #
401
402 gcc_AC_CHECK_DECLS(getopt)
403
404 # ------------------ #
405 # Checks for types. #
406 # ------------------ #
407
408 AC_TYPE_SIGNAL
409
410 # ------------------------------------- #
411 # Checks for compiler characteristics. #
412 # ------------------------------------- #
413
414 AC_C_CONST
415 AC_C_INLINE
416
417 # ------------------------------ #
418 # Checks for library functions. #
419 # ------------------------------ #
420
421 AC_FUNC_ALLOCA
422 AC_FUNC_MMAP
423 AC_FUNC_VFORK
424 AC_CHECK_FUNCS(canonicalize_file_name realpath)
425 AC_CHECK_FUNCS(poll)
426 AC_CHECK_FUNCS(pread64)
427 AC_CHECK_FUNCS(sbrk)
428 AC_CHECK_FUNCS(setpgid setpgrp)
429 AC_CHECK_FUNCS(sigaction sigprocmask sigsetmask)
430 AC_CHECK_FUNCS(socketpair)
431 AC_CHECK_FUNCS(syscall)
432
433 dnl AC_FUNC_SETPGRP does not work when cross compiling
434 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
435 if test "$cross_compiling" = no; then
436 AC_FUNC_SETPGRP
437 else
438 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
439 [AC_TRY_COMPILE([
440 #include <unistd.h>
441 ], [
442 if (setpgrp(1,1) == -1)
443 exit (0);
444 else
445 exit (1);
446 ], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
447 if test $ac_cv_func_setpgrp_void = yes; then
448 AC_DEFINE(SETPGRP_VOID, 1)
449 fi
450 fi
451
452 # Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't do
453 # since sigsetjmp might only be defined as a macro.
454 AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp,
455 [AC_TRY_COMPILE([
456 #include <setjmp.h>
457 ], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);],
458 gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)])
459 if test $gdb_cv_func_sigsetjmp = yes; then
460 AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ])
461 fi
462
463 # Assume we'll default to using the included libiberty regex.
464 gdb_use_included_regex=yes
465
466 # However, if the system regex is GNU regex, then default to *not*
467 # using the included regex.
468 AC_CACHE_CHECK(
469 [for GNU regex],
470 [gdb_cv_have_gnu_regex],
471 [AC_TRY_COMPILE(
472 [#include <gnu-versions.h>],
473 [#define REGEX_INTERFACE_VERSION 1
474 #if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION
475 # error "Version mismatch"
476 #endif],
477 gdb_cv_have_gnu_regex=yes,
478 gdb_cv_have_gnu_regex=no)])
479 if test $gdb_cv_have_gnu_regex = yes; then
480 gdb_use_included_regex=no
481 fi
482
483 AC_ARG_WITH(included-regex,
484 [ --without-included-regex don't use included regex; this is the default
485 on systems with version 2 of the GNU C library
486 (use with caution on other system)],
487 gdb_with_regex=$withval,
488 gdb_with_regex=$gdb_use_included_regex)
489 if test "$gdb_with_regex" = yes; then
490 AC_DEFINE(USE_INCLUDED_REGEX, 1,
491 [Define to 1 if the regex included in libiberty should be used.])
492 fi
493
494 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
495 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
496 AC_CACHE_CHECK([for r_fs in struct reg], gdb_cv_struct_reg_r_fs,
497 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_fs;],
498 gdb_cv_struct_reg_r_fs=yes, gdb_cv_struct_reg_r_fs=no)])
499 if test $gdb_cv_struct_reg_r_fs = yes; then
500 AC_DEFINE(HAVE_STRUCT_REG_R_FS)
501 fi
502 AC_CACHE_CHECK([for r_gs in struct reg], gdb_cv_struct_reg_r_gs,
503 [AC_TRY_COMPILE([#include <machine/reg.h>], [struct reg r; r.r_gs;],
504 gdb_cv_struct_reg_r_gs=yes, gdb_cv_struct_reg_r_gs=no)])
505 if test $gdb_cv_struct_reg_r_gs = yes; then
506 AC_DEFINE(HAVE_STRUCT_REG_R_GS)
507 fi
508
509 # See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
510 AC_MSG_CHECKING(for PTRACE_GETREGS)
511 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
512 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
513 [PTRACE_GETREGS;],
514 [gdb_cv_have_ptrace_getregs=yes],
515 [gdb_cv_have_ptrace_getregs=no])])
516 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
517 if test $gdb_cv_have_ptrace_getregs = yes; then
518 AC_DEFINE(HAVE_PTRACE_GETREGS)
519 fi
520
521 # See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
522 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
523 AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
524 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
525 [PTRACE_GETFPXREGS;],
526 [gdb_cv_have_ptrace_getfpxregs=yes],
527 [gdb_cv_have_ptrace_getfpxregs=no])])
528 AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
529 if test $gdb_cv_have_ptrace_getfpxregs = yes; then
530 AC_DEFINE(HAVE_PTRACE_GETFPXREGS)
531 fi
532
533 # See if <sys/ptrace.h> provides the PT_GETDBREGS request.
534 AC_MSG_CHECKING(for PT_GETDBREGS)
535 AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
536 [AC_TRY_COMPILE([#include <sys/types.h>
537 #include <sys/ptrace.h>],
538 [PT_GETDBREGS;],
539 [gdb_cv_have_pt_getdbregs=yes],
540 [gdb_cv_have_pt_getdbregs=no])])
541 AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
542 if test $gdb_cv_have_pt_getdbregs = yes; then
543 AC_DEFINE(HAVE_PT_GETDBREGS)
544 fi
545
546 # See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
547 AC_MSG_CHECKING(for PT_GETXMMREGS)
548 AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
549 [AC_TRY_COMPILE([#include <sys/types.h>
550 #include <sys/ptrace.h>],
551 [PT_GETXMMREGS;],
552 [gdb_cv_have_pt_getxmmregs=yes],
553 [gdb_cv_have_pt_getxmmregs=no])])
554 AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
555 if test $gdb_cv_have_pt_getxmmregs = yes; then
556 AC_DEFINE(HAVE_PT_GETXMMREGS)
557 fi
558
559 # See if stdint.h provides the uintptr_t type.
560 # Autoconf 2.5X has an improved AC_CHECK_TYPE which will simplify this.
561 AC_CACHE_CHECK([for uintptr_t in stdint.h], gdb_cv_have_uintptr_t,
562 [AC_TRY_COMPILE(
563 [#include <stdint.h>],
564 [uintptr_t foo = 0;],
565 gdb_cv_have_uintptr_t=yes,
566 gdb_cv_have_uintptr_t=no)])
567 if test $gdb_cv_have_uintptr_t = yes; then
568 AC_DEFINE(HAVE_UINTPTR_T, 1, [Define if <stdint.h> provides the uintptr_t type.])
569 fi
570
571 BFD_NEED_DECLARATION(malloc)
572 BFD_NEED_DECLARATION(realloc)
573 BFD_NEED_DECLARATION(free)
574 BFD_NEED_DECLARATION(strerror)
575 BFD_NEED_DECLARATION(strdup)
576 BFD_NEED_DECLARATION(strstr)
577 BFD_NEED_DECLARATION(canonicalize_file_name)
578
579 # The following save_state_t checkery is only necessary for HPUX
580 # versions earlier than 10.20. When those fade from memory, this
581 # could be expunged. --jsm 1999-03-22
582
583 AC_MSG_CHECKING(for HPUX save_state structure)
584 AC_EGREP_HEADER(save_state_t, machine/save_state.h,
585 gdb_cv_hpux_savestate=yes, gdb_cv_hpux_savestate=no)
586 AC_EGREP_HEADER(ss_wide, machine/save_state.h, gdb_cv_hpux_sswide=yes,
587 gdb_cv_hpux_sswide=no)
588 if test $gdb_cv_hpux_savestate = yes
589 then
590 AC_DEFINE(HAVE_STRUCT_SAVE_STATE_T, 1)
591 fi
592 if test $gdb_cv_hpux_sswide = yes
593 then
594 AC_DEFINE(HAVE_STRUCT_MEMBER_SS_WIDE, 1)
595 fi
596 AC_MSG_RESULT($gdb_cv_hpux_sswide)
597
598
599 # If we are configured native on GNU/Linux, work around problems with
600 # sys/procfs.h
601 # Also detect which type of /proc is in use, such as for Unixware or Solaris.
602
603 if test "${target}" = "${host}"; then
604 case "${host}" in
605 i[[3456]]86-*-linux*)
606 AC_DEFINE(START_INFERIOR_TRAPS_EXPECTED,2)
607 AC_DEFINE(sys_quotactl)
608 ;;
609 ia64-*-aix*)
610 AC_DEFINE(NEW_PROC_API)
611 ;;
612 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
613 AC_DEFINE(NEW_PROC_API)
614 ;;
615 *-*-solaris2.[[678]])
616 AC_DEFINE(NEW_PROC_API)
617 ;;
618 esac
619 fi
620
621 if test "$ac_cv_header_sys_procfs_h" = yes; then
622 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
623 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
624 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
625 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
626 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
627 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
628 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
629 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
630 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
631 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
632 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
633 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
634 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
635 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
636
637
638 dnl Check for broken prfpregset_t type
639
640 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
641 dnl prfpregset_t type (it's a typedef for the pointer to a struct
642 dnl instead of the struct itself). We detect this here, and work
643 dnl around it in gdb_proc_service.h.
644
645 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
646 AC_MSG_CHECKING(whether prfpregset_t type is broken)
647 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
648 [AC_TRY_RUN([#include <sys/procfs.h>
649 int main ()
650 {
651 if (sizeof (prfpregset_t) == sizeof (void *))
652 return 1;
653 return 0;
654 }],
655 gdb_cv_prfpregset_t_broken=no,
656 gdb_cv_prfpregset_t_broken=yes,
657 gdb_cv_prfpregset_t_broken=yes)])
658 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
659 if test $gdb_cv_prfpregset_t_broken = yes; then
660 AC_DEFINE(PRFPREGSET_T_BROKEN)
661 fi
662 fi
663
664 dnl Check for PIOCSET ioctl entry
665
666 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
667 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
668 [AC_TRY_COMPILE([#include <unistd.h>
669 #include <sys/types.h>
670 #include <sys/procfs.h>
671 ], [
672 int dummy;;
673 dummy = ioctl(0, PIOCSET, &dummy);
674 ],
675 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
676 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
677 if test $gdb_cv_have_procfs_piocset = yes; then
678 AC_DEFINE(HAVE_PROCFS_PIOCSET)
679 fi
680 fi
681
682 dnl For native ports (host == target), check to see what kind of
683 dnl legacy link.h support is needed. (See solib-legacy.c.)
684 if test ${host} = ${target} ; then
685 dnl Check for struct link_map with l_ members which are indicative
686 dnl of SVR4-like shared libraries
687
688 AC_MSG_CHECKING(for member l_addr in struct link_map)
689 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members,
690 [AC_TRY_COMPILE([#include <link.h>],
691 [struct link_map lm; (void) lm.l_addr;],
692 gdb_cv_have_struct_link_map_with_l_members=yes,
693 gdb_cv_have_struct_link_map_with_l_members=no)])
694 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members)
695 if test $gdb_cv_have_struct_link_map_with_l_members = yes; then
696 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS)
697 fi
698
699 dnl Check for struct link_map with lm_ members which are indicative
700 dnl of SunOS-like shared libraries
701
702 AC_MSG_CHECKING(for member lm_addr in struct link_map)
703 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members,
704 [AC_TRY_COMPILE([#include <sys/types.h>
705 #include <link.h>],
706 [struct link_map lm; (void) lm.lm_addr;],
707 gdb_cv_have_struct_link_map_with_lm_members=yes,
708 gdb_cv_have_struct_link_map_with_lm_members=no)])
709 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members)
710 if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then
711 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS)
712 fi
713
714 dnl Check for struct so_map with som_ members which are found on
715 dnl some *BSD systems.
716
717 AC_MSG_CHECKING(for member som_addr in struct so_map)
718 AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members,
719 [AC_TRY_COMPILE([#include <sys/types.h>
720 #ifdef HAVE_NLIST_H
721 #include <nlist.h>
722 #endif
723 #include <link.h>],
724 [struct so_map lm; (void) lm.som_addr;],
725 gdb_cv_have_struct_so_map_with_som_members=yes,
726 gdb_cv_have_struct_so_map_with_som_members=no)])
727 AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members)
728 if test $gdb_cv_have_struct_so_map_with_som_members = yes; then
729 AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS)
730 fi
731
732 dnl Check for struct link_map32 type, which allows a 64-bit Solaris
733 dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries.
734
735 AC_MSG_CHECKING(for struct link_map32 in sys/link.h)
736 AC_CACHE_VAL(gdb_cv_have_struct_link_map32,
737 [AC_TRY_COMPILE([#define _SYSCALL32
738 #include <sys/link.h>], [struct link_map32 l;],
739 gdb_cv_have_struct_link_map32=yes,
740 gdb_cv_have_struct_link_map32=no)])
741 AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
742 if test $gdb_cv_have_struct_link_map32 = yes; then
743 AC_DEFINE(HAVE_STRUCT_LINK_MAP32)
744 AC_DEFINE(_SYSCALL32)
745 fi
746 fi
747
748 dnl See if compiler supports "long long" type.
749
750 AC_MSG_CHECKING(for long long support in compiler)
751 AC_CACHE_VAL(gdb_cv_c_long_long,
752 [AC_TRY_COMPILE(, [
753 extern long long foo;
754 switch (foo & 2) { case 0: return 1; }
755 ],
756 gdb_cv_c_long_long=yes, gdb_cv_c_long_long=no)])
757 AC_MSG_RESULT($gdb_cv_c_long_long)
758 if test $gdb_cv_c_long_long = yes; then
759 AC_DEFINE(CC_HAS_LONG_LONG)
760 fi
761
762 dnl See if the compiler and runtime support printing long long
763
764 AC_MSG_CHECKING(for long long support in printf)
765 AC_CACHE_VAL(gdb_cv_printf_has_long_long,
766 [AC_TRY_RUN([
767 int main () {
768 char buf[32];
769 long long l = 0;
770 l = (l << 16) + 0x0123;
771 l = (l << 16) + 0x4567;
772 l = (l << 16) + 0x89ab;
773 l = (l << 16) + 0xcdef;
774 sprintf (buf, "0x%016llx", l);
775 return (strcmp ("0x0123456789abcdef", buf));
776 }],
777 gdb_cv_printf_has_long_long=yes,
778 gdb_cv_printf_has_long_long=no,
779 gdb_cv_printf_has_long_long=no)])
780 if test $gdb_cv_printf_has_long_long = yes; then
781 AC_DEFINE(PRINTF_HAS_LONG_LONG)
782 fi
783 AC_MSG_RESULT($gdb_cv_printf_has_long_long)
784
785 dnl See if compiler supports "long double" type. Can't use AC_C_LONG_DOUBLE
786 dnl because autoconf complains about cross-compilation issues. However, this
787 dnl code uses the same variables as the macro for compatibility.
788
789 AC_MSG_CHECKING(for long double support in compiler)
790 AC_CACHE_VAL(ac_cv_c_long_double,
791 [AC_TRY_COMPILE(, [long double foo;],
792 ac_cv_c_long_double=yes, ac_cv_c_long_double=no)])
793 AC_MSG_RESULT($ac_cv_c_long_double)
794 if test $ac_cv_c_long_double = yes; then
795 AC_DEFINE(HAVE_LONG_DOUBLE)
796 fi
797
798 dnl See if the compiler and runtime support printing long doubles
799
800 AC_MSG_CHECKING(for long double support in printf)
801 AC_CACHE_VAL(gdb_cv_printf_has_long_double,
802 [AC_TRY_RUN([
803 int main () {
804 char buf[16];
805 long double f = 3.141592653;
806 sprintf (buf, "%Lg", f);
807 return (strncmp ("3.14159", buf, 7));
808 }],
809 gdb_cv_printf_has_long_double=yes,
810 gdb_cv_printf_has_long_double=no,
811 gdb_cv_printf_has_long_double=no)])
812 if test $gdb_cv_printf_has_long_double = yes; then
813 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE)
814 fi
815 AC_MSG_RESULT($gdb_cv_printf_has_long_double)
816
817 dnl See if the compiler and runtime support scanning long doubles
818
819 AC_MSG_CHECKING(for long double support in scanf)
820 AC_CACHE_VAL(gdb_cv_scanf_has_long_double,
821 [AC_TRY_RUN([
822 int main () {
823 char *buf = "3.141592653";
824 long double f = 0;
825 sscanf (buf, "%Lg", &f);
826 return !(f > 3.14159 && f < 3.14160);
827 }],
828 gdb_cv_scanf_has_long_double=yes,
829 gdb_cv_scanf_has_long_double=no,
830 gdb_cv_scanf_has_long_double=no)])
831 if test $gdb_cv_scanf_has_long_double = yes; then
832 AC_DEFINE(SCANF_HAS_LONG_DOUBLE)
833 fi
834 AC_MSG_RESULT($gdb_cv_scanf_has_long_double)
835
836 case ${host_os} in
837 aix*)
838 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
839 SAVE_LDFLAGS=$LDFLAGS
840
841 case $GCC in
842 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
843 *) gdb_cv_bigtoc=-bbigtoc ;;
844 esac
845
846 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
847 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
848 ])
849 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
850 ;;
851 esac
852
853
854 dnl For certain native configurations, we need to check whether thread
855 dnl support can be built in or not.
856 dnl
857 dnl Note that we only want this if we are both native (host == target),
858 dnl and not doing a canadian cross build (build == host).
859
860 if test ${build} = ${host} -a ${host} = ${target} ; then
861 case ${host_os} in
862 hpux*)
863 AC_MSG_CHECKING(for HPUX/OSF thread support)
864 if test -f /usr/include/dce/cma_config.h ; then
865 if test "$GCC" = "yes" ; then
866 AC_MSG_RESULT(yes)
867 AC_DEFINE(HAVE_HPUX_THREAD_SUPPORT)
868 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} hpux-thread.o"
869 CONFIG_SRCS="${CONFIG_SRCS} hpux-thread.c"
870 else
871 AC_MSG_RESULT(no (suppressed because you are not using GCC))
872 fi
873 else
874 AC_MSG_RESULT(no)
875 fi
876 ;;
877 solaris*)
878 # See if thread_db library is around for Solaris thread debugging.
879 # Note that we must explicitly test for version 1 of the library
880 # because version 0 (present on Solaris 2.4 or earlier) doesn't have
881 # the same API.
882 AC_MSG_CHECKING(for Solaris thread debugging library)
883 if test -f /usr/lib/libthread_db.so.1 ; then
884 AC_MSG_RESULT(yes)
885 AC_DEFINE(HAVE_THREAD_DB_LIB)
886 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} sol-thread.o"
887 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
888 AC_CHECK_LIB(dl, dlopen)
889 if test "$GCC" = "yes" ; then
890 # The GNU linker requires the -export-dynamic option to make
891 # all symbols visible in the dynamic symbol table.
892 hold_ldflags=$LDFLAGS
893 AC_MSG_CHECKING(for the ld -export-dynamic flag)
894 LDFLAGS="${LDFLAGS} -Wl,-export-dynamic"
895 AC_TRY_LINK(, [int i;], found=yes, found=no)
896 LDFLAGS=$hold_ldflags
897 AC_MSG_RESULT($found)
898 if test $found = yes; then
899 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -Wl,-export-dynamic"
900 fi
901 fi
902 # Sun randomly tweaked the prototypes in <proc_service.h>
903 # at one point.
904 AC_MSG_CHECKING(if <proc_service.h> is old)
905 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
906 AC_TRY_COMPILE([
907 #include <proc_service.h>
908 ps_err_e ps_pdwrite
909 (struct ps_prochandle*, psaddr_t, const void*, size_t);
910 ],, gdb_cv_proc_service_is_old=no,
911 gdb_cv_proc_service_is_old=yes)
912 ])
913 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
914 if test $gdb_cv_proc_service_is_old = yes; then
915 AC_DEFINE(PROC_SERVICE_IS_OLD)
916 fi
917 else
918 AC_MSG_RESULT(no)
919 fi
920 ;;
921 aix*)
922 AC_MSG_CHECKING(for AiX thread debugging library)
923 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
924 [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
925 [#ifndef PTHDB_VERSION_3
926 #error
927 #endif],
928 gdb_cv_have_aix_thread_debug=yes,
929 gdb_cv_have_aix_thread_debug=no)])
930 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
931 if test $gdb_cv_have_aix_thread_debug = yes; then
932 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
933 CONFIG_LIB_OBS="${CONFIG_LIB_OBS} aix-thread.o"
934 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
935 fi
936 ;;
937 esac
938 AC_SUBST(CONFIG_LDFLAGS)
939 fi
940
941 dnl See if we have a thread_db header file that has TD_NOTALLOC.
942 if test "x$ac_cv_header_thread_db_h" = "xyes"; then
943 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
944 gdb_cv_thread_db_h_has_td_notalloc,
945 AC_TRY_COMPILE(
946 [#include <thread_db.h>],
947 [int i = TD_NOTALLOC;],
948 gdb_cv_thread_db_h_has_td_notalloc=yes,
949 gdb_cv_thread_db_h_has_td_notalloc=no
950 )
951 )
952 fi
953 if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
954 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
955 [Define if <thread_db.h> has the TD_NOTALLOC error code.])
956 fi
957
958 dnl See if we have a sys/syscall header file that has __NR_tkill.
959 if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then
960 AC_CACHE_CHECK([whether <sys/syscall.h> has __NR_tkill],
961 gdb_cv_sys_syscall_h_has_tkill,
962 AC_TRY_COMPILE(
963 [#include <sys/syscall.h>],
964 [int i = __NR_tkill;],
965 gdb_cv_sys_syscall_h_has_tkill=yes,
966 gdb_cv_sys_syscall_h_has_tkill=no
967 )
968 )
969 fi
970 dnl See if we can issue tkill syscall.
971 if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes" && test "x$ac_cv_func_syscall" = "xyes"; then
972 AC_DEFINE(HAVE_TKILL_SYSCALL, 1,
973 [Define if we can use the tkill syscall.])
974 fi
975
976 dnl Handle optional features that can be enabled.
977
978 AC_ARG_WITH(sysroot,
979 [ --with-sysroot[=DIR] Search for usr/lib et al within DIR.],
980 [
981 case ${with_sysroot} in
982 yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
983 *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
984 esac
985
986 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
987
988 if test "x$exec_prefix" = xNONE; then
989 if test "x$prefix" = xNONE; then
990 test_prefix=/usr/local
991 else
992 test_prefix=$prefix
993 fi
994 else
995 test_prefix=$exec_prefix
996 fi
997 case ${TARGET_SYSTEM_ROOT} in
998 "${test_prefix}"|"${test_prefix}/"*|\
999 '${exec_prefix}'|'${exec_prefix}/'*)
1000 t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
1001 TARGET_SYSTEM_ROOT_DEFINE="$t"
1002 ;;
1003 esac
1004 ], [
1005 TARGET_SYSTEM_ROOT=
1006 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"'
1007 ])
1008 AC_SUBST(TARGET_SYSTEM_ROOT)
1009 AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
1010
1011 # NOTE: Don't add -Wall or -Wunused, they both include
1012 # -Wunused-parameter which reports bogus warnings.
1013 # NOTE: If you add to this list, remember to update
1014 # gdb/doc/gdbint.texinfo.
1015 build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
1016 -Wformat -Wparentheses -Wpointer-arith -Wuninitialized -Wformat-nonliteral"
1017 # Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
1018 # -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
1019 # -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual
1020 # -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
1021 # -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
1022 # -Woverloaded-virtual -Winline -Werror"
1023 AC_ARG_ENABLE(build-warnings,
1024 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
1025 [case "${enableval}" in
1026 yes) ;;
1027 no) build_warnings="-w";;
1028 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1029 build_warnings="${build_warnings} ${t}";;
1030 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1031 build_warnings="${t} ${build_warnings}";;
1032 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1033 esac
1034 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1035 echo "Setting compiler warning flags = $build_warnings" 6>&1
1036 fi])dnl
1037 AC_ARG_ENABLE(gdb-build-warnings,
1038 [ --enable-gdb-build-warnings Enable GDB specific build-time compiler warnings if gcc is used],
1039 [case "${enableval}" in
1040 yes) ;;
1041 no) build_warnings="-w";;
1042 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1043 build_warnings="${build_warnings} ${t}";;
1044 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1045 build_warnings="${t} ${build_warnings}";;
1046 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1047 esac
1048 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1049 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
1050 fi])dnl
1051 WARN_CFLAGS=""
1052 WERROR_CFLAGS=""
1053 if test "x${build_warnings}" != x -a "x$GCC" = xyes
1054 then
1055 AC_MSG_CHECKING(compiler warning flags)
1056 # Separate out the -Werror flag as some files just cannot be
1057 # compiled with it enabled.
1058 for w in ${build_warnings}; do
1059 case $w in
1060 -Werr*) WERROR_CFLAGS=-Werror ;;
1061 *) # Check that GCC accepts it
1062 saved_CFLAGS="$CFLAGS"
1063 CFLAGS="$CFLAGS $w"
1064 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
1065 CFLAGS="$saved_CFLAGS"
1066 esac
1067 done
1068 AC_MSG_RESULT(${WARN_CFLAGS}${WERROR_CFLAGS})
1069 fi
1070 AC_SUBST(WARN_CFLAGS)
1071 AC_SUBST(WERROR_CFLAGS)
1072
1073 MMALLOC_CFLAGS=
1074 MMALLOC=
1075 AC_SUBST(MMALLOC_CFLAGS)
1076 AC_SUBST(MMALLOC)
1077
1078 AC_ARG_WITH(mmalloc,
1079 [ --with-mmalloc Use memory mapped malloc package],
1080 [case "${withval}" in
1081 yes) want_mmalloc=true ;;
1082 no) want_mmalloc=false;;
1083 *) AC_MSG_ERROR(bad value ${withval} for GDB with-mmalloc option) ;;
1084 esac],[want_mmalloc=false])dnl
1085
1086 if test x$want_mmalloc = xtrue; then
1087 AC_DEFINE(USE_MMALLOC)
1088 AC_DEFINE(MMCHECK_FORCE)
1089 MMALLOC_CFLAGS="-I$srcdir/../mmalloc"
1090 MMALLOC='../mmalloc/libmmalloc.a'
1091 fi
1092
1093 # In the Cygwin environment, we need some additional flags.
1094 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
1095 [AC_EGREP_CPP(lose, [
1096 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
1097 lose
1098 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
1099
1100
1101 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
1102 SER_HARDWIRE="ser-unix.o ser-pipe.o ser-tcp.o"
1103 case ${host} in
1104 *go32* ) SER_HARDWIRE=ser-go32.o ;;
1105 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
1106 esac
1107 AC_SUBST(SER_HARDWIRE)
1108
1109 # libreadline needs libuser32.a in a cygwin environment
1110 WIN32LIBS=
1111 if test x$gdb_cv_os_cygwin = xyes; then
1112 WIN32LIBS="-luser32"
1113 case "${target}" in
1114 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
1115 ;;
1116 esac
1117 fi
1118 AC_SUBST(WIN32LIBS)
1119
1120 LIBGUI="../libgui/src/libgui.a"
1121 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
1122 AC_SUBST(LIBGUI)
1123 AC_SUBST(GUI_CFLAGS_X)
1124
1125 WIN32LDAPP=
1126 AC_SUBST(WIN32LIBS)
1127 AC_SUBST(WIN32LDAPP)
1128
1129 configdir="unix"
1130
1131 GDBTKLIBS=
1132 if test "${enable_gdbtk}" = "yes"; then
1133
1134 # Gdbtk must have an absolute path to srcdir in order to run
1135 # properly when not installed.
1136 here=`pwd`
1137 cd ${srcdir}
1138 GDBTK_SRC_DIR=`pwd`
1139 cd $here
1140
1141 CY_AC_PATH_TCLCONFIG
1142 if test -z "${no_tcl}"; then
1143 CY_AC_LOAD_TCLCONFIG
1144 CY_AC_PATH_TKCONFIG
1145
1146 # now look for Tcl library stuff
1147
1148 case "${host}" in
1149 *-*-cygwin*)
1150 tcldir=../tcl/win/
1151 ;;
1152 *)
1153 tcldir=../tcl/unix/
1154 ;;
1155 esac
1156
1157 TCL_DEPS="${tcldir}${TCL_LIB_FILE}"
1158
1159 # If $no_tk is nonempty, then we can't do Tk, and there is no
1160 # point to doing Tcl.
1161 if test -z "${no_tk}"; then
1162 CY_AC_LOAD_TKCONFIG
1163 CY_AC_PATH_TCLH
1164 CY_AC_PATH_TKH
1165 CY_AC_PATH_ITCLH
1166 CY_AC_PATH_ITKH
1167
1168
1169 # now look for Tk library stuff
1170
1171 case "${host}" in
1172 *-*-cygwin*)
1173 tkdir=../tk/win/
1174 ;;
1175 *)
1176 tkdir=../tk/unix/
1177 ;;
1178 esac
1179
1180 TK_DEPS="${tkdir}${TK_LIB_FILE}"
1181
1182 # now look for Itcl library stuff
1183
1184 CY_AC_PATH_ITCLCONFIG
1185 if test -z "${no_itcl}"; then
1186 CY_AC_LOAD_ITCLCONFIG
1187
1188 ITCLLIB="${ITCL_BUILD_LIB_SPEC}"
1189 ITCL_DEPS="${ITCL_LIB_FULL_PATH}"
1190 fi
1191
1192
1193 # now look for Itk library stuff
1194 CY_AC_PATH_ITKCONFIG
1195 if test -z "${no_itcl}"; then
1196 CY_AC_LOAD_ITKCONFIG
1197
1198 ITKLIB="${ITK_BUILD_LIB_SPEC}"
1199 ITK_DEPS="${ITK_LIB_FULL_PATH}"
1200 fi
1201
1202 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
1203 # Tcl/Tk 8.1 require -fwritable strings. I don't
1204 # know whether 8.2 will or not, but I bet it will.
1205 # I don't have to worry about 7.x since we don't support it.
1206 GDBTK_CFLAGS=""
1207 if test "$GCC" = "yes"; then
1208 if test "$TCL_VERSION" != "8.0" ; then
1209 GDBTK_CFLAGS="-fwritable-strings"
1210 fi
1211 fi
1212
1213 # Include some libraries that Tcl and Tk want.
1214 TCL_LIBS='$(LIBGUI) $(ITCL) $(ITK) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
1215 # Yes, the ordering seems wrong here. But it isn't.
1216 # TK_LIBS is the list of libraries that need to be linked
1217 # after Tcl/Tk. Note that this isn't put into LIBS. If it
1218 # were in LIBS then any link tests after this point would
1219 # try to include things like `$(LIBGUI)', which wouldn't work.
1220 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
1221
1222 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
1223 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
1224 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
1225 CONFIG_INITS="${CONFIG_INITS} \$(SUBDIR_GDBTK_INITS)"
1226 CONFIG_ALL="${CONFIG_ALL} \$(SUBDIR_GDBTK_ALL)"
1227 CONFIG_CLEAN="${CONFIG_CLEAN} \$(SUBDIR_GDBTK_CLEAN)"
1228 CONFIG_INSTALL="${CONFIG_INSTALL} \$(SUBDIR_GDBTK_INSTALL)"
1229 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} \$(SUBDIR_GDBTK_UNINSTALL)"
1230
1231 if test x$gdb_cv_os_cygwin = xyes; then
1232 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
1233 WIN32LDAPP="-Wl,--subsystem,console"
1234 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
1235 fi
1236 fi
1237 fi
1238
1239 configdirs="${configdirs} gdbtk"
1240 fi
1241
1242 AC_SUBST(X_CFLAGS)
1243 AC_SUBST(X_LDFLAGS)
1244 AC_SUBST(X_LIBS)
1245 AC_SUBST(TCL_DEPS)
1246 AC_SUBST(TK_DEPS)
1247 AC_SUBST(ITCLLIB)
1248 AC_SUBST(ITCL_DEPS)
1249 AC_SUBST(ITKLIB)
1250 AC_SUBST(ITK_DEPS)
1251 AC_SUBST(GDBTKLIBS)
1252 AC_SUBST(GDBTK_CFLAGS)
1253 AC_SUBST(GDBTK_SRC_DIR)
1254
1255 AC_PATH_X
1256
1257
1258 # Unlike the sim directory, whether a simulator is linked is controlled by
1259 # presence of a SIM= and a SIM_OBS= definition in the target '.mt' file.
1260 # This code just checks for a few cases where we'd like to ignore those
1261 # definitions, even when they're present in the '.mt' file. These cases
1262 # are when --disable-sim is specified, or if the simulator directory is
1263 # not part of the source tree.
1264 #
1265 AC_ARG_ENABLE(sim,
1266 [ --enable-sim Link gdb with simulator],
1267 [echo "enable_sim = $enable_sim";
1268 echo "enableval = ${enableval}";
1269 case "${enableval}" in
1270 yes) ignore_sim=false ;;
1271 no) ignore_sim=true ;;
1272 *) ignore_sim=false ;;
1273 esac],
1274 [ignore_sim=false])
1275
1276 if test ! -d "${srcdir}/../sim"; then
1277 ignore_sim=true
1278 fi
1279
1280 if test "${ignore_sim}" = "true"; then
1281 IGNORE_SIM="SIM="
1282 IGNORE_SIM_OBS="SIM_OBS="
1283 else
1284 IGNORE_SIM=""
1285 IGNORE_SIM_OBS=""
1286 AC_DEFINE(WITH_SIM)
1287 fi
1288 AC_SUBST(IGNORE_SIM)
1289 AC_SUBST(IGNORE_SIM_OBS)
1290
1291 AC_SUBST(ENABLE_CFLAGS)
1292 AC_SUBST(PROFILE_CFLAGS)
1293
1294 AC_SUBST(CONFIG_OBS)
1295 AC_SUBST(CONFIG_LIB_OBS)
1296 AC_SUBST(CONFIG_DEPS)
1297 AC_SUBST(CONFIG_SRCS)
1298 AC_SUBST(CONFIG_INITS)
1299 AC_SUBST(CONFIG_ALL)
1300 AC_SUBST(CONFIG_CLEAN)
1301 AC_SUBST(CONFIG_INSTALL)
1302 AC_SUBST(CONFIG_UNINSTALL)
1303
1304 # target_subdir is used by the testsuite to find the target libraries.
1305 target_subdir=
1306 if test "${host}" != "${target}"; then
1307 target_subdir="${target_alias}/"
1308 fi
1309 AC_SUBST(target_subdir)
1310
1311 frags=
1312 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
1313 if test ! -f ${host_makefile_frag}; then
1314 # When building a native debuger the .mh file containing things
1315 # like NATDEPFILES is needed. Cross debuggers don't need .mh
1316 # since it no longer contains anything useful.
1317 if test "${target}" = "${host}"; then
1318 AC_MSG_ERROR("*** Gdb does not support native target ${host}")
1319 else
1320 host_makefile_frag=/dev/null
1321 fi
1322 fi
1323 frags="$frags $host_makefile_frag"
1324
1325 target_makefile_frag=${srcdir}/config/${gdb_target_cpu}/${gdb_target}.mt
1326 if test ! -f ${target_makefile_frag}; then
1327 AC_MSG_ERROR("*** Gdb does not support target ${target}")
1328 fi
1329 frags="$frags $target_makefile_frag"
1330
1331 AC_SUBST_FILE(host_makefile_frag)
1332 AC_SUBST_FILE(target_makefile_frag)
1333 AC_SUBST(frags)
1334
1335 changequote(,)dnl
1336 hostfile=`sed -n '
1337 s/XM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1338 ' ${host_makefile_frag}`
1339
1340 targetfile=`sed -n '
1341 s/TM_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1342 ' ${target_makefile_frag}`
1343
1344 if test "${target}" = "${host}"; then
1345 # We pick this up from the host configuration file (.mh) because we
1346 # do not have a native configuration Makefile fragment.
1347 nativefile=`sed -n '
1348 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
1349 ' ${host_makefile_frag}`
1350 fi
1351 changequote([,])
1352
1353 if test x"${gdb_osabi}" != x ; then
1354 AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
1355 [Define to the default OS ABI for this configuration.])
1356 fi
1357
1358 # Enable multi-ice-gdb-server.
1359 AC_ARG_ENABLE(multi-ice,
1360 [ --enable-multi-ice build the multi-ice-gdb-server],
1361 [case $enableval in
1362 yes | no)
1363 ;;
1364 *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;;
1365 esac])
1366 if test "x$enable_multi_ice" = xyes; then
1367 configdirs="$configdirs multi-ice"
1368 fi
1369
1370 # We only build gdbserver automatically if host and target are the same.
1371 if test "x$target" = "x$host"; then
1372 AC_MSG_CHECKING(whether gdbserver is supported on this host)
1373 if test "x$build_gdbserver" = xyes; then
1374 configdirs="$configdirs gdbserver"
1375 AC_MSG_RESULT(yes)
1376 else
1377 AC_MSG_RESULT(no)
1378 fi
1379 fi
1380
1381 AC_CONFIG_SUBDIRS($configdirs)
1382
1383 # If hostfile (XM_FILE) and/or targetfile (TM_FILE) and/or nativefile
1384 # (NAT_FILE) is not set in config/*/*.m[ht] files, we link to an empty
1385 # version.
1386
1387 files=
1388 links=
1389
1390 rm -f xm.h
1391 xm_h=""
1392 if test "${hostfile}" != ""; then
1393 xm_h=xm.h
1394 GDB_XM_FILE="config/${gdb_host_cpu}/${hostfile}"
1395 files="${files} ${GDB_XM_FILE}"
1396 links="${links} xm.h"
1397 AC_DEFINE_UNQUOTED(GDB_XM_FILE, ${GDB_XM_FILE})
1398 fi
1399 AC_SUBST(xm_h)
1400
1401 rm -f tm.h
1402 tm_h=""
1403 if test "${targetfile}" != ""; then
1404 tm_h=tm.h
1405 GDB_TM_FILE="config/${gdb_target_cpu}/${targetfile}"
1406 files="${files} ${GDB_TM_FILE}"
1407 links="${links} tm.h"
1408 AC_DEFINE_UNQUOTED(GDB_TM_FILE, ${GDB_TM_FILE})
1409 fi
1410 AC_SUBST(tm_h)
1411
1412 rm -f nm.h
1413 nm_h=""
1414 if test "${nativefile}" != ""; then
1415 nm_h=nm.h
1416 GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}"
1417 files="${files} ${GDB_NM_FILE}"
1418 links="${links} nm.h"
1419 AC_DEFINE_UNQUOTED(GDB_NM_FILE, ${GDB_NM_FILE})
1420 fi
1421 AC_SUBST(nm_h)
1422
1423 AC_LINK_FILES($files, $links)
1424
1425 dnl Check for exe extension set on certain hosts (e.g. Win32)
1426 AC_EXEEXT
1427
1428 dnl Detect the character set used by this host.
1429
1430 dnl At the moment, we just assume it's ISO-8859-1 (which is a
1431 dnl superset of ASCII containing the characters needed for French,
1432 dnl German, Spanish, Italian, and possibly others), but if were
1433 dnl *were* to support any host character sets other than ISO-8859-1,
1434 dnl here's where we'd detect it.
1435 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "ISO-8859-1",
1436 [Define to be a string naming the default host character set.])
1437
1438 AM_ICONV
1439
1440 AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
1441 [
1442 dnl Autoconf doesn't provide a mechanism for modifying definitions
1443 dnl provided by makefile fragments.
1444 dnl
1445 if test "${nativefile}" = ""; then
1446 < Makefile \
1447 sed -e '/^NATDEPFILES[[ ]]*=.*\\$/,/[[^\\]]$/s/^/# /' \
1448 -e '/^NATDEPFILES[[ ]]*=/s/^/# /' \
1449 | sed -e '/^\(NATDEPFILES[[ ]]*[[+]]=[[ ]]*\)/s//# \1/' \
1450 > Makefile.tem
1451 mv -f Makefile.tem Makefile
1452 fi
1453
1454 changequote(,)dnl
1455 sed -e '/^TM_FILE[ ]*=/s,^TM_FILE[ ]*=[ ]*,&config/'"${gdb_target_cpu}"'/,
1456 /^XM_FILE[ ]*=/s,^XM_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,
1457 /^NAT_FILE[ ]*=/s,^NAT_FILE[ ]*=[ ]*,&config/'"${gdb_host_cpu}"'/,' <Makefile >Makefile.tmp
1458 mv -f Makefile.tmp Makefile
1459 changequote([,])dnl
1460
1461
1462 case x$CONFIG_HEADERS in
1463 xconfig.h:config.in)
1464 echo > stamp-h ;;
1465 esac
1466 ],
1467 [
1468 gdb_host_cpu=$gdb_host_cpu
1469 gdb_target_cpu=$gdb_target_cpu
1470 nativefile=$nativefile
1471 ])
1472
1473 exit 0
This page took 0.091193 seconds and 4 git commands to generate.