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