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