a42ce279c0ffb0f326a998b6d4ba5db419bb05df
[deliverable/binutils-gdb.git] / gdb / configure.ac
1 dnl Autoconf configure script for GDB, the GNU debugger.
2 dnl Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
3 dnl 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
4 dnl Free Software Foundation, Inc.
5 dnl
6 dnl This file is part of GDB.
7 dnl
8 dnl This program is free software; you can redistribute it and/or modify
9 dnl it under the terms of the GNU General Public License as published by
10 dnl the Free Software Foundation; either version 3 of the License, or
11 dnl (at your option) any later version.
12 dnl
13 dnl This program is distributed in the hope that it will be useful,
14 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
15 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 dnl GNU General Public License for more details.
17 dnl
18 dnl You should have received a copy of the GNU General Public License
19 dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
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_USE_SYSTEM_EXTENSIONS
30 gl_EARLY
31 ACX_LARGEFILE
32 AM_PROG_CC_STDC
33
34 AC_CONFIG_AUX_DIR(..)
35 AC_CANONICAL_SYSTEM
36
37 # Dependency checking.
38 ZW_CREATE_DEPDIR
39 ZW_PROG_COMPILER_DEPENDENCIES([CC])
40
41 # Check for the 'make' the user wants to use.
42 AC_CHECK_PROGS(MAKE, make)
43 MAKE_IS_GNU=
44 case "`$MAKE --version 2>&1 | sed 1q`" in
45 *GNU*)
46 MAKE_IS_GNU=yes
47 ;;
48 esac
49 AM_CONDITIONAL(GMAKE, test "$MAKE_IS_GNU" = yes)
50 AC_PROG_MAKE_SET
51
52 dnl List of object files and targets accumulated by configure.
53
54 CONFIG_OBS=
55 CONFIG_DEPS=
56 CONFIG_SRCS=
57 ENABLE_CFLAGS=
58
59 CONFIG_ALL=
60 CONFIG_CLEAN=
61 CONFIG_INSTALL=
62 CONFIG_UNINSTALL=
63
64 dnl Set up for gettext.
65 ZW_GNU_GETTEXT_SISTER_DIR
66
67 localedir='${datadir}/locale'
68 AC_SUBST(localedir)
69
70 if test x"$USE_NLS" = xyes; then
71 CONFIG_ALL="$CONFIG_ALL all-po"
72 CONFIG_CLEAN="$CONFIG_CLEAN clean-po"
73 CONFIG_INSTALL="$CONFIG_INSTALL install-po"
74 CONFIG_UNINSTALL="$CONFIG_UNINSTALL uninstall-po"
75 fi
76
77 gl_INIT
78
79 # For Makefile dependencies.
80 GNULIB_STDINT_H=
81 if test x"$STDINT_H" != x; then
82 GNULIB_STDINT_H=gnulib/$STDINT_H
83 fi
84 AC_SUBST(GNULIB_STDINT_H)
85
86 PACKAGE=gdb
87 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package. ])
88 AC_SUBST(PACKAGE)
89
90 # GDB does not use automake, but gnulib does. This line lets us
91 # generate its Makefile.in.
92 AM_INIT_AUTOMAKE(gdb, UNUSED-VERSION, [no-define])
93
94 GDB_AC_WITH_DIR(DEBUGDIR, separate-debug-dir,
95 [look for global separate debug info in this path @<:@LIBDIR/debug@:>@],
96 [${libdir}/debug])
97
98 # GDB's datadir relocation
99
100 GDB_AC_WITH_DIR(GDB_DATADIR, gdb-datadir,
101 [look for global separate data files in this path @<:@DATADIR/gdb@:>@],
102 [${datadir}/gdb])
103
104 AC_ARG_WITH(relocated-sources,
105 AS_HELP_STRING([--with-relocated-sources=PATH], [automatically relocate this path for source files]),
106 [reloc_srcdir="${withval}"
107 AC_DEFINE_DIR(RELOC_SRCDIR, reloc_srcdir,
108 [Relocated directory for source files. ])
109 ])
110
111 AC_CONFIG_SUBDIRS(testsuite)
112
113 # Check whether to support alternative target configurations
114 AC_ARG_ENABLE(targets,
115 AS_HELP_STRING([--enable-targets=TARGETS], [alternative target configurations]),
116 [case "${enableval}" in
117 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
118 ;;
119 no) enable_targets= ;;
120 *) enable_targets=$enableval ;;
121 esac])
122
123 # Check whether to enable 64-bit support on 32-bit hosts
124 AC_ARG_ENABLE(64-bit-bfd,
125 AS_HELP_STRING([--enable-64-bit-bfd], [64-bit support (on hosts with narrower word sizes)]),
126 [case "${enableval}" in
127 yes) want64=true ;;
128 no) want64=false ;;
129 *) AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;;
130 esac],[want64=false])dnl
131
132 # Provide defaults for some variables set by the per-host and per-target
133 # configuration.
134 gdb_host_obs=posix-hdep.o
135
136 if test "${target}" = "${host}"; then
137 gdb_native=yes
138 else
139 gdb_native=no
140 fi
141
142 . $srcdir/configure.host
143
144 # Accumulate some settings from configure.tgt over all enabled targets
145
146 TARGET_OBS=
147 all_targets=
148
149 for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
150 do
151 if test "$targ_alias" = "all"; then
152 all_targets=true
153 else
154 # Canonicalize the secondary target names.
155 result=`$ac_config_sub $targ_alias 2>/dev/null`
156 if test -n "$result"; then
157 targ=$result
158 else
159 targ=$targ_alias
160 fi
161
162 . ${srcdir}/configure.tgt
163
164 AS_IF([test -z "${gdb_target_obs}"],
165 [AC_MSG_ERROR([configuration ${targ} is unsupported.])])
166
167 # Target-specific object files
168 for i in ${gdb_target_obs}; do
169 case " $TARGET_OBS " in
170 *" ${i} "*) ;;
171 *)
172 TARGET_OBS="$TARGET_OBS ${i}"
173 ;;
174 esac
175 done
176
177 # Check whether this target needs 64-bit CORE_ADDR
178 if test x${want64} = xfalse; then
179 . ${srcdir}/../bfd/config.bfd
180 fi
181 fi
182 done
183
184 if test x${all_targets} = xtrue; then
185
186 # We want all 64-bit targets if we either:
187 # - run on a 64-bit host or
188 # - already require 64-bit support for some other target or
189 # - the --enable-64-bit-bfd option was supplied
190 # Otherwise we only support all 32-bit targets.
191 #
192 # NOTE: This test must be in sync with the corresponding
193 # tests in BFD!
194
195 if test x${want64} = xfalse; then
196 AC_CHECK_SIZEOF(long)
197 if test "x${ac_cv_sizeof_long}" = "x8"; then
198 want64=true
199 fi
200 fi
201 if test x${want64} = xtrue; then
202 TARGET_OBS='$(ALL_TARGET_OBS) $(ALL_64_TARGET_OBS)'
203 else
204 TARGET_OBS='$(ALL_TARGET_OBS)'
205 fi
206 fi
207
208 AC_SUBST(TARGET_OBS)
209
210 # For other settings, only the main target counts.
211 gdb_sim=
212 gdb_osabi=
213 build_gdbserver=
214 targ=$target; . ${srcdir}/configure.tgt
215
216 # Fetch the default architecture and default target vector from BFD.
217 targ=$target; . $srcdir/../bfd/config.bfd
218
219 # We only want the first architecture, so strip off the others if
220 # there is more than one.
221 targ_archs=`echo $targ_archs | sed 's/ .*//'`
222
223 if test "x$targ_archs" != x; then
224 AC_DEFINE_UNQUOTED(DEFAULT_BFD_ARCH, $targ_archs,
225 [Define to BFD's default architecture. ])
226 fi
227 if test "x$targ_defvec" != x; then
228 AC_DEFINE_UNQUOTED(DEFAULT_BFD_VEC, $targ_defvec,
229 [Define to BFD's default target vector. ])
230 fi
231
232 # The CLI cannot be disabled yet, but may be in the future.
233
234 # Enable CLI.
235 AC_ARG_ENABLE(gdbcli,
236 AS_HELP_STRING([--disable-gdbcli], [disable command-line interface (CLI)]),
237 [case $enableval in
238 yes)
239 ;;
240 no)
241 AC_MSG_ERROR([the command-line interface cannot be disabled yet]) ;;
242 *)
243 AC_MSG_ERROR([bad value $enableval for --enable-gdbcli]) ;;
244 esac],
245 [enable_gdbcli=yes])
246 if test x"$enable_gdbcli" = xyes; then
247 if test -d $srcdir/cli; then
248 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_CLI_OBS)"
249 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_CLI_DEPS)"
250 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_CLI_SRCS)"
251 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_CLI_CFLAGS)"
252 fi
253 fi
254
255 # Enable MI.
256 AC_ARG_ENABLE(gdbmi,
257 AS_HELP_STRING([--disable-gdbmi], [disable machine-interface (MI)]),
258 [case $enableval in
259 yes | no)
260 ;;
261 *)
262 AC_MSG_ERROR([bad value $enableval for --enable-gdbmi]) ;;
263 esac],
264 [enable_gdbmi=yes])
265 if test x"$enable_gdbmi" = xyes; then
266 if test -d $srcdir/mi; then
267 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_MI_OBS)"
268 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_MI_DEPS)"
269 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_MI_SRCS)"
270 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_MI_CFLAGS)"
271 fi
272 fi
273
274 # Enable TUI.
275 AC_ARG_ENABLE(tui,
276 AS_HELP_STRING([--enable-tui], [enable full-screen terminal user interface (TUI)]),
277 [case $enableval in
278 yes | no | auto)
279 ;;
280 *)
281 AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
282 esac],enable_tui=auto)
283
284 # Enable gdbtk.
285 AC_ARG_ENABLE(gdbtk,
286 AS_HELP_STRING([--enable-gdbtk], [enable gdbtk graphical user interface (GUI)]),
287 [case $enableval in
288 yes | no)
289 ;;
290 *)
291 AC_MSG_ERROR([bad value $enableval for --enable-gdbtk]) ;;
292 esac],
293 [if test -d $srcdir/gdbtk; then
294 enable_gdbtk=yes
295 else
296 enable_gdbtk=no
297 fi])
298 # We unconditionally disable gdbtk tests on selected platforms.
299 case $host_os in
300 go32* | windows*)
301 AC_MSG_WARN([gdbtk isn't supported on $host; disabling])
302 enable_gdbtk=no ;;
303 esac
304
305 # Libunwind support.
306 AC_ARG_WITH(libunwind,
307 AS_HELP_STRING([--with-libunwind], [use libunwind frame unwinding support]),
308 [case "${withval}" in
309 yes) enable_libunwind=yes ;;
310 no) enable_libunwind=no ;;
311 *) AC_MSG_ERROR(bad value ${withval} for GDB with-libunwind option) ;;
312 esac],[
313 AC_CHECK_HEADERS(libunwind.h libunwind-ia64.h)
314 if test x"$ac_cv_header_libunwind_h" = xyes -a x"$ac_cv_header_libunwind_ia64_h" = xyes; then
315 enable_libunwind=yes;
316 fi
317 ])
318
319 if test x"$enable_libunwind" = xyes; then
320 AC_CHECK_HEADERS(libunwind.h libunwind-ia64.h)
321 AC_DEFINE(HAVE_LIBUNWIND, 1, [Define if libunwind library is being used.])
322 CONFIG_OBS="$CONFIG_OBS libunwind-frame.o"
323 CONFIG_DEPS="$CONFIG_DEPS libunwind-frame.o"
324 CONFIG_SRCS="$CONFIG_SRCS libunwind-frame.c"
325 fi
326
327 opt_curses=no
328 AC_ARG_WITH(curses, AS_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
329
330 prefer_curses=no
331 if test "$opt_curses" = "yes"; then
332 prefer_curses=yes
333 fi
334
335 # Profiling support.
336 AC_ARG_ENABLE(profiling,
337 AS_HELP_STRING([--enable-profiling], [enable profiling of GDB]),
338 [case $enableval in
339 yes | no)
340 ;;
341 *)
342 AC_MSG_ERROR([bad value $enableval for --enable-profile]) ;;
343 esac],
344 [enable_profiling=no])
345
346 AC_CHECK_FUNCS(monstartup _mcleanup)
347 AC_CACHE_CHECK([for _etext], ac_cv_var__etext,
348 [AC_TRY_LINK(
349 [#include <stdlib.h>
350 extern char _etext;
351 ],
352 [free (&_etext);], ac_cv_var__etext=yes, ac_cv_var__etext=no)])
353 if test $ac_cv_var__etext = yes; then
354 AC_DEFINE(HAVE__ETEXT, 1,
355 [Define to 1 if your system has the _etext variable. ])
356 fi
357 AC_CACHE_CHECK([for etext], ac_cv_var_etext,
358 [AC_TRY_LINK(
359 [#include <stdlib.h>
360 extern char etext;
361 ],
362 [free (&etext);], ac_cv_var_etext=yes, ac_cv_var_etext=no)])
363 if test $ac_cv_var_etext = yes; then
364 AC_DEFINE(HAVE_ETEXT, 1,
365 [Define to 1 if your system has the etext variable. ])
366 fi
367 if test "$enable_profiling" = yes ; then
368 if test $ac_cv_func_monstartup = no || test $ac_cv_func__mcleanup = no; then
369 AC_MSG_ERROR(--enable-profiling requires monstartup and _mcleanup)
370 fi
371 PROFILE_CFLAGS=-pg
372 OLD_CFLAGS="$CFLAGS"
373 CFLAGS="$CFLAGS $PROFILE_CFLAGS"
374
375 AC_CACHE_CHECK([whether $CC supports -pg], ac_cv_cc_supports_pg,
376 [AC_TRY_COMPILE([], [int x;], ac_cv_cc_supports_pg=yes,
377 ac_cv_cc_supports_pg=no)])
378
379 if test $ac_cv_cc_supports_pg = no; then
380 AC_MSG_ERROR(--enable-profiling requires a compiler which supports -pg)
381 fi
382
383 CFLAGS="$OLD_CFLAGS"
384 fi
385
386 ACX_PKGVERSION([GDB])
387 ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/])
388 AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description])
389 AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], [Bug reporting address])
390
391 # --------------------- #
392 # Checks for programs. #
393 # --------------------- #
394
395 AC_PROG_AWK
396 AC_PROG_INSTALL
397 AC_PROG_LN_S
398 AC_PROG_RANLIB
399 AC_PROG_YACC
400
401 AC_CHECK_TOOL(AR, ar)
402 AC_CHECK_TOOL(DLLTOOL, dlltool)
403 AC_CHECK_TOOL(WINDRES, windres)
404
405 # Needed for GNU/Hurd.
406 AC_CHECK_TOOL(MIG, mig)
407
408 # ---------------------- #
409 # Checks for libraries. #
410 # ---------------------- #
411
412 # We might need to link with -lm; most simulators need it.
413 AC_CHECK_LIB(m, main)
414
415 # We need to link with -lw to get `wctype' on Solaris before Solaris
416 # 2.6. Solaris 2.6 and beyond have this function in libc, and have a
417 # libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1
418 # is known to have this problem). Therefore we avoid libw if we can.
419 AC_CHECK_FUNC(wctype, [],
420 [AC_CHECK_LIB(w, wctype)])
421
422 # Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
423 AC_SEARCH_LIBS(gethostbyname, nsl)
424
425 # Some systems (e.g. Solaris) have `socketpair' in libsocket.
426 AC_SEARCH_LIBS(socketpair, socket)
427
428 # Link in zlib if we can. This allows us to read compressed debug sections.
429 AM_ZLIB
430
431 # On HP/UX we may need libxpdl for dlgetmodinfo (used by solib-pa64.c).
432 AC_SEARCH_LIBS(dlgetmodinfo, [dl xpdl])
433
434 AM_ICONV
435
436 # GDB may fork/exec the iconv program to get the list of supported character
437 # sets. Allow the user to specify where to find it.
438 # There are several factors affecting the choice of option name:
439 # - There is already --with-libiconv-prefix but we can't use it, it specifies
440 # the build-time location of libiconv files.
441 # - The program we need to find is iconv, which comes with glibc. The user
442 # doesn't necessarily have libiconv installed. Therefore naming this
443 # --with-libiconv-foo feels wrong.
444 # - We want the path to be relocatable, but GDB_AC_DEFINE_RELOCATABLE is
445 # defined to work on directories not files (though it really doesn't know
446 # the difference).
447 # - Calling this --with-iconv-prefix is perceived to cause too much confusion
448 # with --with-libiconv-prefix.
449 # Putting these together is why the option name is --with-iconv-bin.
450
451 AC_ARG_WITH(iconv-bin,
452 AS_HELP_STRING([--with-iconv-bin=PATH], [specify where to find the iconv program]),
453 [iconv_bin="${withval}"
454 AC_DEFINE_UNQUOTED([ICONV_BIN], ["${iconv_bin}"],
455 [Path of directory of iconv program.])
456 GDB_AC_DEFINE_RELOCATABLE(ICONV_BIN, iconv, ${iconv_bin})
457 ])
458
459 # On alpha-osf, it appears that libtermcap and libcurses are not compatible.
460 # There is a very specific comment in /usr/include/curses.h explaining that
461 # termcap routines built into libcurses must not be used.
462 #
463 # The symptoms we observed so far is GDB unexpectedly changing
464 # the terminal settings when tgetent is called - this is particularly
465 # visible as the output is missing carriage returns, and so rapidly
466 # becomes very hard to read.
467 #
468 # The readline configure script has already decided that libtermcap
469 # was enough for its purposes, and so decided to build readline using
470 # libtermcap. Since the TUI mode requires curses, building GDB with
471 # TUI enabled results in both libraries to be used at the same time,
472 # which is not allowed. This basically means that GDB with TUI is
473 # broken on alpha-osf.
474
475 case $host_os in
476 osf* )
477 if test x"$enable_tui" = xyes; then
478 AC_MSG_ERROR([Building GDB with TUI mode is not supported on this host])
479 fi
480 if test x"$enable_tui" = xauto; then
481 enable_tui=no
482 fi
483 ;;
484 esac
485
486 # For the TUI, we need enhanced curses functionality.
487 if test x"$enable_tui" != xno; then
488 prefer_curses=yes
489 fi
490
491 curses_found=no
492 if test x"$prefer_curses" = xyes; then
493 # FIXME: kettenis/20040905: We prefer ncurses over the vendor-supplied
494 # curses library because the latter might not provide all the
495 # functionality we need. However, this leads to problems on systems
496 # where the linker searches /usr/local/lib, but the compiler doesn't
497 # search /usr/local/include, if ncurses is installed in /usr/local. A
498 # default installation of ncurses on alpha*-dec-osf* will lead to such
499 # a situation.
500 AC_SEARCH_LIBS(waddstr, [ncurses cursesX curses])
501
502 if test "$ac_cv_search_waddstr" != no; then
503 curses_found=yes
504 fi
505 fi
506
507 # Check whether we should enable the TUI, but only do so if we really
508 # can.
509 if test x"$enable_tui" != xno; then
510 if test -d $srcdir/tui; then
511 if test "$curses_found" != no; then
512 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_TUI_OBS)"
513 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_TUI_DEPS)"
514 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_TUI_SRCS)"
515 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_TUI_CFLAGS)"
516 CONFIG_ALL="${CONFIG_ALL} all-tui"
517 CONFIG_CLEAN="${CONFIG_CLEAN} clean-tui"
518 CONFIG_INSTALL="${CONFIG_INSTALL} install-tui"
519 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-tui"
520 else
521 if test x"$enable_tui" = xyes; then
522 AC_MSG_ERROR([no enhanced curses library found; disable TUI])
523 else
524 AC_MSG_WARN([no enhanced curses library found; disabling TUI])
525 fi
526 fi
527 fi
528 fi
529
530 # Since GDB uses Readline, we need termcap functionality. In many
531 # cases this will be provided by the curses library, but some systems
532 # have a seperate termcap library, or no curses library at all.
533
534 case $host_os in
535 cygwin*)
536 if test -d $srcdir/libtermcap; then
537 LIBS="../libtermcap/libtermcap.a $LIBS"
538 ac_cv_search_tgetent="../libtermcap/libtermcap.a"
539 fi ;;
540 go32* | *djgpp*)
541 ac_cv_search_tgetent="none required"
542 ;;
543 *mingw32*)
544 ac_cv_search_tgetent="none required"
545 CONFIG_OBS="$CONFIG_OBS windows-termcap.o"
546 ;;
547 esac
548
549 # These are the libraries checked by Readline.
550 AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses])
551
552 if test "$ac_cv_search_tgetent" = no; then
553 AC_MSG_ERROR([no termcap library found])
554 fi
555
556 AC_ARG_WITH([system-readline],
557 [AS_HELP_STRING([--with-system-readline],
558 [use installed readline library])])
559
560 if test "$with_system_readline" = yes; then
561 READLINE=-lreadline
562 READLINE_DEPS=
563 READLINE_CFLAGS=
564 READLINE_TEXI_INCFLAG=
565
566 # readline-6.0 started to use the name `_rl_echoing_p'.
567 # `$(READLINE_DIR)/' of bundled readline would not resolve in configure.
568
569 AC_MSG_CHECKING([for readline_echoing_p])
570 save_LIBS=$LIBS
571 LIBS="$LIBS $READLINE"
572 AC_LINK_IFELSE(AC_LANG_PROGRAM(,[[extern int readline_echoing_p;
573 return readline_echoing_p;]]),
574 [READLINE_ECHOING_P=yes],
575 [READLINE_ECHOING_P=no
576 AC_DEFINE([readline_echoing_p], [_rl_echoing_p],
577 [readline-6.0 started to use different name.])])
578 LIBS="$save_LIBS"
579 AC_MSG_RESULT([$READLINE_ECHOING_P])
580 else
581 READLINE='$(READLINE_DIR)/libreadline.a'
582 READLINE_DEPS='$(READLINE)'
583 READLINE_CFLAGS='-I$(READLINE_SRC)/..'
584 READLINE_TEXI_INCFLAG='-I $(READLINE_DIR)'
585 fi
586 AC_SUBST(READLINE)
587 AC_SUBST(READLINE_DEPS)
588 AC_SUBST(READLINE_CFLAGS)
589 AC_SUBST(READLINE_TEXI_INCFLAG)
590
591 AC_ARG_WITH(expat,
592 AS_HELP_STRING([--with-expat], [include expat support (auto/yes/no)]),
593 [], [with_expat=auto])
594 AC_MSG_CHECKING([whether to use expat])
595 AC_MSG_RESULT([$with_expat])
596
597 if test "${with_expat}" = no; then
598 AC_MSG_WARN([expat support disabled; some features may be unavailable.])
599 HAVE_LIBEXPAT=no
600 else
601 AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"],
602 [XML_Parser p = XML_ParserCreate (0);])
603 if test "$HAVE_LIBEXPAT" != yes; then
604 if test "$with_expat" = yes; then
605 AC_MSG_ERROR([expat is missing or unusable])
606 else
607 AC_MSG_WARN([expat is missing or unusable; some features may be unavailable.])
608 fi
609 else
610 save_LIBS=$LIBS
611 LIBS="$LIBS $LIBEXPAT"
612 AC_CHECK_FUNCS(XML_StopParser)
613 LIBS=$save_LIBS
614 fi
615 fi
616
617 dnl Utility to simplify finding libpython.
618 dnl $1 = pythonX.Y
619 dnl $2 = the shell variable to assign the result to
620 dnl If libpython is found we store $version here.
621 dnl $3 = additional flags to add to CPPFLAGS
622 dnl $4 = additional flags to add to LIBS
623
624 AC_DEFUN([AC_TRY_LIBPYTHON],
625 [
626 version=$1
627 define([have_libpython_var],$2)
628 new_CPPFLAGS=$3
629 new_LIBS=$4
630 AC_MSG_CHECKING([for ${version}])
631 save_CPPFLAGS=$CPPFLAGS
632 save_LIBS=$LIBS
633 CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
634 LIBS="$LIBS $new_LIBS"
635 found_usable_python=no
636 AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "Python.h"]],
637 [[Py_Initialize ();]]),
638 [have_libpython_var=${version}
639 found_usable_python=yes
640 PYTHON_CPPFLAGS=$new_CPPFLAGS
641 PYTHON_LIBS=$new_LIBS])
642 CPPFLAGS=$save_CPPFLAGS
643 LIBS=$save_LIBS
644 AC_MSG_RESULT([${found_usable_python}])
645 ])
646
647 dnl There are several different values for --with-python:
648 dnl
649 dnl no - Don't include python support.
650 dnl yes - Include python support, error if it's missing.
651 dnl If we find python in $PATH, use it to fetch configure options,
652 dnl otherwise assume the compiler can find it with no help from us.
653 dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn.
654 dnl auto - Same as "yes", but if python is missing from the system,
655 dnl fall back to "no".
656 dnl /path/to/python/exec-prefix -
657 dnl Use the python located in this directory.
658 dnl If /path/to/python/exec-prefix/bin/python exists, use it to find
659 dnl the compilation parameters. Otherwise use
660 dnl -I/path/to/python/exec-prefix/include,
661 dnl -L/path/to/python/exec-prefix/lib.
662 dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn.
663 dnl NOTE: This case is historical. It is what was done for 7.0/7.1
664 dnl but is deprecated.
665 dnl /path/to/python/executable -
666 dnl Run python-config.py with this version of python to fetch the
667 dnl compilation parameters.
668 dnl NOTE: This needn't be the real python executable.
669 dnl In a cross-compilation scenario (build != host), this could be
670 dnl a shell script that provides what python-config.py provides for
671 dnl --ldflags, --includes, --exec-prefix.
672 dnl python-executable -
673 dnl Find python-executable in $PATH, and then handle the same as
674 dnl /path/to/python/executable.
675 dnl
676 dnl If a python program is specified, it is used to run python-config.py and
677 dnl is passed --ldflags, --includes, --exec-prefix.
678
679 AC_ARG_WITH(python,
680 AS_HELP_STRING([--with-python@<:@=PYTHON@:>@], [include python support (auto/yes/no/<python-program>)]),
681 [], [with_python=auto])
682 AC_MSG_CHECKING([whether to use python])
683 AC_MSG_RESULT([$with_python])
684
685 if test "${with_python}" = no; then
686 AC_MSG_WARN([python support disabled; some features may be unavailable.])
687 have_libpython=no
688 else
689 case "${with_python}" in
690 /*)
691 if test -d ${with_python}; then
692 # Assume the python binary is ${with_python}/bin/python.
693 python_prog="${with_python}/bin/python"
694 python_prefix=
695 # If python does not exit ${with_python}/bin, then try in
696 # ${with_python}. On Windows/MinGW, this is where the Python
697 # executable is.
698 if test ! -x "${python_prog}"; then
699 python_prog="${with_python}/python"
700 python_prefix=
701 fi
702 if test ! -x "${python_prog}"; then
703 # Fall back to gdb 7.0/7.1 behaviour.
704 python_prog=missing
705 python_prefix=${with_python}
706 fi
707 elif test -x "${with_python}"; then
708 # While we can't run python compiled for $host (unless host == build),
709 # the user could write a script that provides the needed information,
710 # so we support that.
711 python_prog=${with_python}
712 python_prefix=
713 else
714 AC_ERROR(invalid value for --with-python)
715 fi
716 ;;
717 */*)
718 # Disallow --with-python=foo/bar.
719 AC_ERROR(invalid value for --with-python)
720 ;;
721 *)
722 # The user has either specified auto, yes, or the name of the python
723 # program assumed to be in $PATH.
724 python_prefix=
725 case "${with_python}" in
726 yes | auto)
727 if test ${build} = ${host}; then
728 AC_PATH_PROG(python_prog_path, python, missing)
729 if test "${python_prog_path}" = missing; then
730 python_prog=missing
731 else
732 python_prog=${python_prog_path}
733 fi
734 else
735 # Not much we can do except assume the cross-compiler will find the
736 # right files.
737 python_prog=missing
738 fi
739 ;;
740 *)
741 # While we can't run python compiled for $host (unless host == build),
742 # the user could write a script that provides the needed information,
743 # so we support that.
744 python_prog="${with_python}"
745 AC_PATH_PROG(python_prog_path, ${python_prog}, missing)
746 if test "${python_prog_path}" = missing; then
747 AC_ERROR(unable to find python program ${python_prog})
748 fi
749 ;;
750 esac
751 esac
752
753 if test "${python_prog}" != missing; then
754 # We have a python program to use, but it may be too old.
755 # Don't flag an error for --with-python=auto (the default).
756 have_python_config=yes
757 python_includes=`${python_prog} ${srcdir}/python/python-config.py --includes`
758 if test $? != 0; then
759 have_python_config=failed
760 if test "${with_python}" != auto; then
761 AC_ERROR(failure running python-config --includes)
762 fi
763 fi
764 python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags`
765 if test $? != 0; then
766 have_python_config=failed
767 if test "${with_python}" != auto; then
768 AC_ERROR(failure running python-config --ldflags)
769 fi
770 fi
771 python_prefix=`${python_prog} ${srcdir}/python/python-config.py --exec-prefix`
772 if test $? != 0; then
773 have_python_config=failed
774 if test "${with_python}" != auto; then
775 AC_ERROR(failure running python-config --exec-prefix)
776 fi
777 fi
778 else
779 # We do not have a python executable we can use to determine where
780 # to find the Python headers and libs. We cannot guess the include
781 # path from the python_prefix either, because that include path
782 # depends on the Python version. So, there is nothing much we can
783 # do except assume that the compiler will be able to find those files.
784 python_includes=
785 python_libs=
786 have_python_config=no
787 fi
788
789 # If we have python-config, only try the configuration it provides.
790 # Otherwise fallback on the old way of trying different versions of
791 # python in turn.
792
793 have_libpython=no
794 if test "${have_python_config}" = yes; then
795 # Determine the Python version by extracting "-lpython<version>"
796 # part of the python_libs. <version> is usually X.Y with X and Y
797 # being decimal numbers, but can also be XY (seen on Windows).
798 #
799 # The extraction is performed using sed with a regular expression.
800 # Initially, the regexp used was using the '?' quantifier to make
801 # the dot in the version number optional. Unfortunately, this
802 # does not work with non-GNU versions of sed because, because of
803 # what looks like a limitation (the '?' quantifier does not work
804 # with back-references). We work around this limitation by using
805 # the '*' quantifier instead. It means that, in theory, we might
806 # match unexpected version strings such as "-lpython2..7", but
807 # this seems unlikely in practice. And even if that happens,
808 # an error will be triggered later on, when checking that version
809 # number.
810 python_version=`echo " ${python_libs} " \
811 | sed -e 's,^.* -l\(python[[0-9]]*[[.]]*[[0-9]]*\).*$,\1,'`
812 case "${python_version}" in
813 python*)
814 AC_TRY_LIBPYTHON(${python_version}, have_libpython,
815 ${python_includes}, ${python_libs})
816 ;;
817 *)
818 AC_MSG_ERROR([unable to determine python version from ${python_libs}])
819 ;;
820 esac
821 elif test "${have_python_config}" != failed; then
822 if test "${have_libpython}" = no; then
823 AC_TRY_LIBPYTHON(python2.7, have_libpython,
824 ${python_includes}, "${python_libs} -lpython2.7")
825 fi
826 if test "${have_libpython}" = no; then
827 AC_TRY_LIBPYTHON(python2.6, have_libpython,
828 ${python_includes}, "${python_libs} -lpython2.6")
829 fi
830 if test ${have_libpython} = no; then
831 AC_TRY_LIBPYTHON(python2.5, have_libpython,
832 ${python_includes}, "${python_libs} -lpython2.5")
833 fi
834 if test ${have_libpython} = no; then
835 AC_TRY_LIBPYTHON(python2.4, have_libpython,
836 ${python_includes}, "${python_libs} -lpython2.4")
837 fi
838 fi
839 if test "${have_libpython}" = python2.7 -o "${have_libpython}" = python27; then
840 AC_DEFINE(HAVE_LIBPYTHON2_7, 1, [Define if Python 2.7 is being used.])
841 elif test "${have_libpython}" = python2.6 -o "${have_libpython}" = python26; then
842 AC_DEFINE(HAVE_LIBPYTHON2_6, 1, [Define if Python 2.6 is being used.])
843 elif test "${have_libpython}" = python2.5 -o "${have_libpython}" = python25; then
844 AC_DEFINE(HAVE_LIBPYTHON2_5, 1, [Define if Python 2.5 is being used.])
845 elif test "${have_libpython}" = python2.4 -o "${have_libpython}" = python24; then
846 AC_DEFINE(HAVE_LIBPYTHON2_4, 1, [Define if Python 2.4 is being used.])
847 fi
848
849 if test "${have_libpython}" = no; then
850 case "${with_python}" in
851 yes)
852 AC_MSG_ERROR([python is missing or unusable])
853 ;;
854 auto)
855 AC_MSG_WARN([python is missing or unusable; some features may be unavailable.])
856 ;;
857 *)
858 AC_MSG_ERROR([no usable python found at ${with_python}])
859 ;;
860 esac
861 else
862 if test -n "${python_prefix}"; then
863 AC_DEFINE_UNQUOTED(WITH_PYTHON_PATH, "${python_prefix}",
864 [Define if --with-python provides a path, either directly or via python-config.py --exec-prefix.])
865 GDB_AC_DEFINE_RELOCATABLE(PYTHON_PATH, python, ${python_prefix})
866 fi
867 fi
868 fi
869
870 if test "${have_libpython}" != no; then
871 AC_DEFINE(HAVE_PYTHON, 1, [Define if Python interpreter is being linked in.])
872 CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_PYTHON_OBS)"
873 CONFIG_DEPS="$CONFIG_DEPS \$(SUBDIR_PYTHON_DEPS)"
874 CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_PYTHON_SRCS)"
875 CONFIG_INSTALL="$CONFIG_INSTALL install-python"
876 ENABLE_CFLAGS="$ENABLE_CFLAGS \$(SUBDIR_PYTHON_CFLAGS)"
877
878 # Flags needed to compile Python code (taken from python-config --cflags).
879 # We cannot call python-config directly because it will output whatever was
880 # used when compiling the Python interpreter itself, including flags which
881 # would make the python-related objects be compiled differently from the
882 # rest of GDB (e.g., -O2 and -fPIC).
883 if test "${GCC}" = yes; then
884 tentative_python_cflags="-fno-strict-aliasing -DNDEBUG -fwrapv"
885 fi
886
887 if test "x${tentative_python_cflags}" != x; then
888 AC_MSG_CHECKING(compiler flags for python code)
889 for flag in ${tentative_python_cflags}; do
890 # Check that the compiler accepts it
891 saved_CFLAGS="$CFLAGS"
892 CFLAGS="$CFLAGS $flag"
893 AC_TRY_COMPILE([],[],PYTHON_CFLAGS="${PYTHON_CFLAGS} $flag",)
894 CFLAGS="$saved_CFLAGS"
895 done
896 AC_MSG_RESULT(${PYTHON_CFLAGS})
897 fi
898
899 # On IRIX, type siginfo is not defined. Instead, sys/siginfo.h provides:
900 # #if _SGIAPI
901 # #define siginfo __siginfo
902 # #endif
903 # The problem is that including Python causes some XOPEN macros to be
904 # unilaterally defined, and that in turn causes _SGIAPI to evaluate
905 # to false. So, we work around this issue by defining siginfo ourself
906 # though the command-line.
907 case "$gdb_host" in
908 irix*) if test "${GCC}" = yes; then
909 CPPFLAGS="$CPPFLAGS -Dsiginfo=__siginfo"
910 fi
911 ;;
912 esac
913 else
914 # Even if Python support is not compiled in, we need to have these files
915 # included.
916 CONFIG_OBS="$CONFIG_OBS python.o py-value.o py-prettyprint.o py-auto-load.o"
917 CONFIG_SRCS="$CONFIG_SRCS python/python.c python/py-value.c \
918 python/py-prettyprint.c python/py-auto-load.c"
919 fi
920 AC_SUBST(PYTHON_CFLAGS)
921 AC_SUBST(PYTHON_CPPFLAGS)
922 AC_SUBST(PYTHON_LIBS)
923
924 # ------------------------- #
925 # Checks for header files. #
926 # ------------------------- #
927
928 AC_HEADER_DIRENT
929 AC_HEADER_STAT
930 AC_HEADER_STDC
931 # elf_hp.h is for HP/UX 64-bit shared library support.
932 # FIXME: kettenis/20030102: In most cases we include these (ctype.h, time.h)
933 # unconditionally, so what's the point in checking these?
934 AC_CHECK_HEADERS([nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \
935 thread_db.h gnu/libc-version.h signal.h stddef.h \
936 stdlib.h string.h memory.h strings.h sys/fault.h \
937 sys/file.h sys/filio.h sys/ioctl.h sys/param.h \
938 sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \
939 sys/reg.h sys/debugreg.h sys/select.h sys/syscall.h \
940 sys/types.h sys/wait.h wait.h termios.h termio.h \
941 sgtty.h unistd.h elf_hp.h ctype.h time.h locale.h])
942 AC_CHECK_HEADERS(link.h, [], [],
943 [#if HAVE_SYS_TYPES_H
944 # include <sys/types.h>
945 #endif
946 #if HAVE_NLIST_H
947 # include <nlist.h>
948 #endif
949 ])
950 AC_CHECK_HEADERS(sys/proc.h, [], [],
951 [#if HAVE_SYS_PARAM_H
952 # include <sys/param.h>
953 #endif
954 ])
955 AC_CHECK_HEADERS(sys/user.h, [], [],
956 [#if HAVE_SYS_PARAM_H
957 # include <sys/param.h>
958 #endif
959 ])
960
961 # On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash
962 # between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
963 # think that we don't have <curses.h> if we're using GCC.
964 case $host_os in
965 solaris2.[[789]])
966 if test "$GCC" = yes; then
967 AC_DEFINE(_MSE_INT_H, 1,
968 [Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
969 Solaris 2.[789] when using GCC. ])
970 fi ;;
971 esac
972 AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h ncurses/term.h)
973 AC_CHECK_HEADERS(term.h, [], [],
974 [#if HAVE_CURSES_H
975 # include <curses.h>
976 #endif
977 ])
978
979 # ------------------------- #
980 # Checks for declarations. #
981 # ------------------------- #
982
983 AC_CHECK_DECLS([free, malloc, realloc, strerror, strstr, getopt,
984 snprintf, vsnprintf])
985 AM_LC_MESSAGES
986
987 # ----------------------- #
988 # Checks for structures. #
989 # ----------------------- #
990
991 AC_CHECK_MEMBERS([struct stat.st_blocks, struct stat.st_blksize])
992
993 # ------------------ #
994 # Checks for types. #
995 # ------------------ #
996
997 AC_TYPE_SIGNAL
998 AC_CHECK_TYPES(socklen_t, [], [],
999 [#include <sys/types.h>
1000 #include <sys/socket.h>
1001 ])
1002
1003 # ------------------------------------- #
1004 # Checks for compiler characteristics. #
1005 # ------------------------------------- #
1006
1007 AC_C_CONST
1008 AC_C_INLINE
1009 AC_C_BIGENDIAN
1010
1011 # ------------------------------ #
1012 # Checks for library functions. #
1013 # ------------------------------ #
1014
1015 AC_FUNC_ALLOCA
1016 AC_FUNC_MMAP
1017 AC_FUNC_VFORK
1018 AC_CHECK_FUNCS([canonicalize_file_name realpath getrusage getuid \
1019 getgid pipe poll pread64 resize_term sbrk setpgid setpgrp setsid \
1020 sigaction sigprocmask sigsetmask socketpair syscall \
1021 ttrace wborder wresize setlocale iconvlist libiconvlist btowc \
1022 setrlimit getrlimit posix_madvise waitpid])
1023 AM_LANGINFO_CODESET
1024
1025 # Check the return and argument types of ptrace. No canned test for
1026 # this, so roll our own.
1027 gdb_ptrace_headers='
1028 #if HAVE_SYS_TYPES_H
1029 # include <sys/types.h>
1030 #endif
1031 #if HAVE_SYS_PTRACE_H
1032 # include <sys/ptrace.h>
1033 #endif
1034 #if HAVE_UNISTD_H
1035 # include <unistd.h>
1036 #endif
1037 '
1038 # There is no point in checking if we don't have a prototype.
1039 AC_CHECK_DECLS(ptrace, [], [
1040 : ${gdb_cv_func_ptrace_ret='int'}
1041 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
1042 ], $gdb_ptrace_headers)
1043 # Check return type. Varargs (used on GNU/Linux) conflict with the
1044 # empty argument list, so check for that explicitly.
1045 AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret,
1046 AC_TRY_COMPILE($gdb_ptrace_headers,
1047 [extern long ptrace (enum __ptrace_request, ...);],
1048 gdb_cv_func_ptrace_ret='long',
1049 AC_TRY_COMPILE($gdb_ptrace_headers,
1050 [extern int ptrace ();],
1051 gdb_cv_func_ptrace_ret='int',
1052 gdb_cv_func_ptrace_ret='long')))
1053 AC_DEFINE_UNQUOTED(PTRACE_TYPE_RET, $gdb_cv_func_ptrace_ret,
1054 [Define as the return type of ptrace.])
1055 # Check argument types.
1056 AC_CACHE_CHECK([types of arguments for ptrace], gdb_cv_func_ptrace_args, [
1057 AC_TRY_COMPILE($gdb_ptrace_headers,
1058 [extern long ptrace (enum __ptrace_request, ...);],
1059 [gdb_cv_func_ptrace_args='int,int,long,long'],[
1060 for gdb_arg1 in 'int' 'long'; do
1061 for gdb_arg2 in 'pid_t' 'int' 'long'; do
1062 for gdb_arg3 in 'int *' 'caddr_t' 'int' 'long' 'void *'; do
1063 for gdb_arg4 in 'int' 'long'; do
1064 AC_TRY_COMPILE($gdb_ptrace_headers, [
1065 extern $gdb_cv_func_ptrace_ret
1066 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4);
1067 ], [gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4";
1068 break 4;])
1069 for gdb_arg5 in 'int *' 'int' 'long'; do
1070 AC_TRY_COMPILE($gdb_ptrace_headers, [
1071 extern $gdb_cv_func_ptrace_ret
1072 ptrace ($gdb_arg1, $gdb_arg2, $gdb_arg3, $gdb_arg4, $gdb_arg5);
1073 ], [
1074 gdb_cv_func_ptrace_args="$gdb_arg1,$gdb_arg2,$gdb_arg3,$gdb_arg4,$gdb_arg5";
1075 break 5;])
1076 done
1077 done
1078 done
1079 done
1080 done
1081 # Provide a safe default value.
1082 : ${gdb_cv_func_ptrace_args='int,int,long,long'}
1083 ])])
1084 ac_save_IFS=$IFS; IFS=','
1085 set dummy `echo "$gdb_cv_func_ptrace_args" | sed 's/\*/\*/g'`
1086 IFS=$ac_save_IFS
1087 shift
1088 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG3, $[3],
1089 [Define to the type of arg 3 for ptrace.])
1090 if test -n "$[5]"; then
1091 AC_DEFINE_UNQUOTED(PTRACE_TYPE_ARG5, $[5],
1092 [Define to the type of arg 5 for ptrace.])
1093 fi
1094
1095 dnl AC_FUNC_SETPGRP does not work when cross compiling
1096 dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
1097 if test "$cross_compiling" = no; then
1098 AC_FUNC_SETPGRP
1099 else
1100 AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
1101 [AC_TRY_COMPILE([
1102 #include <unistd.h>
1103 ], [
1104 if (setpgrp(1,1) == -1)
1105 exit (0);
1106 else
1107 exit (1);
1108 ], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
1109 if test $ac_cv_func_setpgrp_void = yes; then
1110 AC_DEFINE(SETPGRP_VOID, 1)
1111 fi
1112 fi
1113
1114 # Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't do
1115 # since sigsetjmp might only be defined as a macro.
1116 AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp,
1117 [AC_TRY_COMPILE([
1118 #include <setjmp.h>
1119 ], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);],
1120 gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)])
1121 if test $gdb_cv_func_sigsetjmp = yes; then
1122 AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ])
1123 fi
1124
1125 # Assume we'll default to using the included libiberty regex.
1126 gdb_use_included_regex=yes
1127
1128 # However, if the system regex is GNU regex, then default to *not*
1129 # using the included regex.
1130 AC_CACHE_CHECK(
1131 [for GNU regex],
1132 [gdb_cv_have_gnu_regex],
1133 [AC_TRY_COMPILE(
1134 [#include <gnu-versions.h>],
1135 [#define REGEX_INTERFACE_VERSION 1
1136 #if _GNU_REGEX_INTERFACE_VERSION != REGEX_INTERFACE_VERSION
1137 # error "Version mismatch"
1138 #endif],
1139 gdb_cv_have_gnu_regex=yes,
1140 gdb_cv_have_gnu_regex=no)])
1141 if test $gdb_cv_have_gnu_regex = yes; then
1142 gdb_use_included_regex=no
1143 fi
1144
1145 AC_ARG_WITH(included-regex,
1146 AS_HELP_STRING([--without-included-regex], [don't use included regex; this is the default on systems with version 2 of the GNU C library (use with caution on other system)]),
1147 gdb_with_regex=$withval,
1148 gdb_with_regex=$gdb_use_included_regex)
1149 if test "$gdb_with_regex" = yes; then
1150 AC_DEFINE(USE_INCLUDED_REGEX, 1,
1151 [Define to 1 if the regex included in libiberty should be used.])
1152 fi
1153
1154 # Check if <sys/proc.h> defines `struct thread' with a td_pcb member.
1155 AC_CHECK_MEMBERS([struct thread.td_pcb], [], [],
1156 [#include <sys/param.h>
1157 #include <sys/proc.h>
1158 ])
1159
1160 # See if <sys/lwp.h> defines `struct lwp`.
1161 AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp,
1162 [AC_TRY_COMPILE([#include <sys/param.h>
1163 #include <sys/lwp.h>], [struct lwp l;],
1164 gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)])
1165 if test $gdb_cv_struct_lwp = yes; then
1166 AC_DEFINE(HAVE_STRUCT_LWP, 1,
1167 [Define to 1 if your system has struct lwp.])
1168 fi
1169
1170 # See if <machine/reg.h> degines `struct reg'.
1171 AC_CACHE_CHECK([for struct reg in machine/reg.h], gdb_cv_struct_reg,
1172 [AC_TRY_COMPILE([#include <sys/types.h>
1173 #include <machine/reg.h>], [struct reg r;],
1174 gdb_cv_struct_reg=yes, gdb_cv_struct_reg=no)])
1175 if test $gdb_cv_struct_reg = yes; then
1176 AC_DEFINE(HAVE_STRUCT_REG, 1,
1177 [Define to 1 if your system has struct reg in <machine/reg.h>.])
1178 fi
1179
1180 # See if <machine/reg.h> supports the %fs and %gs i386 segment registers.
1181 # Older i386 BSD's don't have the r_fs and r_gs members of `struct reg'.
1182 AC_CHECK_MEMBERS([struct reg.r_fs, struct reg.r_gs], [], [],
1183 [#include <machine/reg.h>])
1184
1185 # See if <sys/ptrace.h> provides the PTRACE_GETREGS request.
1186 AC_MSG_CHECKING(for PTRACE_GETREGS)
1187 AC_CACHE_VAL(gdb_cv_have_ptrace_getregs,
1188 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
1189 [PTRACE_GETREGS;],
1190 [gdb_cv_have_ptrace_getregs=yes],
1191 [gdb_cv_have_ptrace_getregs=no])])
1192 AC_MSG_RESULT($gdb_cv_have_ptrace_getregs)
1193 if test $gdb_cv_have_ptrace_getregs = yes; then
1194 AC_DEFINE(HAVE_PTRACE_GETREGS, 1,
1195 [Define if sys/ptrace.h defines the PTRACE_GETREGS request.])
1196 fi
1197
1198 # See if <sys/ptrace.h> provides the PTRACE_GETFPXREGS request.
1199 AC_MSG_CHECKING(for PTRACE_GETFPXREGS)
1200 AC_CACHE_VAL(gdb_cv_have_ptrace_getfpxregs,
1201 [AC_TRY_COMPILE([#include <sys/ptrace.h>],
1202 [PTRACE_GETFPXREGS;],
1203 [gdb_cv_have_ptrace_getfpxregs=yes],
1204 [gdb_cv_have_ptrace_getfpxregs=no])])
1205 AC_MSG_RESULT($gdb_cv_have_ptrace_getfpxregs)
1206 if test $gdb_cv_have_ptrace_getfpxregs = yes; then
1207 AC_DEFINE(HAVE_PTRACE_GETFPXREGS, 1,
1208 [Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request.])
1209 fi
1210
1211 # See if <sys/ptrace.h> provides the PT_GETDBREGS request.
1212 AC_MSG_CHECKING(for PT_GETDBREGS)
1213 AC_CACHE_VAL(gdb_cv_have_pt_getdbregs,
1214 [AC_TRY_COMPILE([#include <sys/types.h>
1215 #include <sys/ptrace.h>],
1216 [PT_GETDBREGS;],
1217 [gdb_cv_have_pt_getdbregs=yes],
1218 [gdb_cv_have_pt_getdbregs=no])])
1219 AC_MSG_RESULT($gdb_cv_have_pt_getdbregs)
1220 if test $gdb_cv_have_pt_getdbregs = yes; then
1221 AC_DEFINE(HAVE_PT_GETDBREGS, 1,
1222 [Define if sys/ptrace.h defines the PT_GETDBREGS request.])
1223 fi
1224
1225 # See if <sys/ptrace.h> provides the PT_GETXMMREGS request.
1226 AC_MSG_CHECKING(for PT_GETXMMREGS)
1227 AC_CACHE_VAL(gdb_cv_have_pt_getxmmregs,
1228 [AC_TRY_COMPILE([#include <sys/types.h>
1229 #include <sys/ptrace.h>],
1230 [PT_GETXMMREGS;],
1231 [gdb_cv_have_pt_getxmmregs=yes],
1232 [gdb_cv_have_pt_getxmmregs=no])])
1233 AC_MSG_RESULT($gdb_cv_have_pt_getxmmregs)
1234 if test $gdb_cv_have_pt_getxmmregs = yes; then
1235 AC_DEFINE(HAVE_PT_GETXMMREGS, 1,
1236 [Define if sys/ptrace.h defines the PT_GETXMMREGS request.])
1237 fi
1238
1239 # Detect which type of /proc is in use, such as for Unixware or Solaris.
1240
1241 if test "${target}" = "${host}"; then
1242 case "${host}" in
1243 *-*-unixware* | *-*-sysv4.2* | *-*-sysv5* | *-*-interix* )
1244 AC_DEFINE(NEW_PROC_API, 1,
1245 [Define if you want to use new multi-fd /proc interface
1246 (replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
1247 ;;
1248 *-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]]*)
1249 AC_DEFINE(NEW_PROC_API, 1,
1250 [Define if you want to use new multi-fd /proc interface
1251 (replaces HAVE_MULTIPLE_PROC_FDS as well as other macros).])
1252 ;;
1253 mips-sgi-irix5*)
1254 # Work around <sys/proc.h> needing _KMEMUSER problem on IRIX 5.
1255 AC_DEFINE([_KMEMUSER], 1,
1256 [Define to 1 so <sys/proc.h> gets a definition of anon_hdl. Works
1257 around a <sys/proc.h> problem on IRIX 5.])
1258 ;;
1259 esac
1260 fi
1261
1262 if test "$ac_cv_header_sys_procfs_h" = yes; then
1263 BFD_HAVE_SYS_PROCFS_TYPE(pstatus_t)
1264 BFD_HAVE_SYS_PROCFS_TYPE(prrun_t)
1265 BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
1266 BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
1267 BFD_HAVE_SYS_PROCFS_TYPE(prgregset_t)
1268 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset_t)
1269 BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
1270 BFD_HAVE_SYS_PROCFS_TYPE(prfpregset32_t)
1271 BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
1272 BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
1273 BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
1274 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
1275 BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
1276 BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
1277
1278
1279 dnl Check for broken prfpregset_t type
1280
1281 dnl For Linux/i386, glibc 2.1.3 was released with a bogus
1282 dnl prfpregset_t type (it's a typedef for the pointer to a struct
1283 dnl instead of the struct itself). We detect this here, and work
1284 dnl around it in gdb_proc_service.h.
1285
1286 if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
1287 AC_MSG_CHECKING(whether prfpregset_t type is broken)
1288 AC_CACHE_VAL(gdb_cv_prfpregset_t_broken,
1289 [AC_TRY_RUN([#include <sys/procfs.h>
1290 int main ()
1291 {
1292 if (sizeof (prfpregset_t) == sizeof (void *))
1293 return 1;
1294 return 0;
1295 }],
1296 gdb_cv_prfpregset_t_broken=no,
1297 gdb_cv_prfpregset_t_broken=yes,
1298 gdb_cv_prfpregset_t_broken=yes)])
1299 AC_MSG_RESULT($gdb_cv_prfpregset_t_broken)
1300 if test $gdb_cv_prfpregset_t_broken = yes; then
1301 AC_DEFINE(PRFPREGSET_T_BROKEN, 1,
1302 [Define if the prfpregset_t type is broken.])
1303 fi
1304 fi
1305
1306 dnl Check for PIOCSET ioctl entry
1307
1308 AC_MSG_CHECKING(for PIOCSET ioctl entry in sys/procfs.h)
1309 AC_CACHE_VAL(gdb_cv_have_procfs_piocset,
1310 [AC_TRY_COMPILE([#include <unistd.h>
1311 #include <sys/types.h>
1312 #include <sys/procfs.h>
1313 ], [
1314 int dummy;;
1315 dummy = ioctl(0, PIOCSET, &dummy);
1316 ],
1317 gdb_cv_have_procfs_piocset=yes, gdb_cv_have_procfs_piocset=no)])
1318 AC_MSG_RESULT($gdb_cv_have_procfs_piocset)
1319 if test $gdb_cv_have_procfs_piocset = yes; then
1320 AC_DEFINE(HAVE_PROCFS_PIOCSET, 1,
1321 [Define if ioctl argument PIOCSET is available.])
1322 fi
1323 fi
1324
1325 dnl For native ports (host == target), check to see what kind of
1326 dnl legacy link.h support is needed. (See solib-legacy.c.)
1327 if test ${host} = ${target} ; then
1328 dnl Check for struct link_map with l_ members which are indicative
1329 dnl of SVR4-like shared libraries
1330
1331 AC_MSG_CHECKING(for member l_addr in struct link_map)
1332 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_l_members,
1333 [AC_TRY_COMPILE([#include <link.h>],
1334 [struct link_map lm; (void) lm.l_addr;],
1335 gdb_cv_have_struct_link_map_with_l_members=yes,
1336 gdb_cv_have_struct_link_map_with_l_members=no)])
1337 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_l_members)
1338 if test $gdb_cv_have_struct_link_map_with_l_members = yes; then
1339 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS,1,
1340 [Define if <link.h> exists and defines struct link_map which has
1341 members with an ``l_'' prefix. (For Solaris, SVR4, and
1342 SVR4-like systems.)])
1343 fi
1344
1345 dnl Check for struct link_map with lm_ members which are indicative
1346 dnl of SunOS-like shared libraries
1347
1348 AC_MSG_CHECKING(for member lm_addr in struct link_map)
1349 AC_CACHE_VAL(gdb_cv_have_struct_link_map_with_lm_members,
1350 [AC_TRY_COMPILE([#include <sys/types.h>
1351 #include <link.h>],
1352 [struct link_map lm; (void) lm.lm_addr;],
1353 gdb_cv_have_struct_link_map_with_lm_members=yes,
1354 gdb_cv_have_struct_link_map_with_lm_members=no)])
1355 AC_MSG_RESULT($gdb_cv_have_struct_link_map_with_lm_members)
1356 if test $gdb_cv_have_struct_link_map_with_lm_members = yes; then
1357 AC_DEFINE(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS, 1,
1358 [Define if <link.h> exists and defines struct link_map which has
1359 members with an ``lm_'' prefix. (For SunOS.)])
1360 fi
1361
1362 dnl Check for struct so_map with som_ members which are found on
1363 dnl some *BSD systems.
1364
1365 AC_MSG_CHECKING(for member som_addr in struct so_map)
1366 AC_CACHE_VAL(gdb_cv_have_struct_so_map_with_som_members,
1367 [AC_TRY_COMPILE([#include <sys/types.h>
1368 #ifdef HAVE_NLIST_H
1369 #include <nlist.h>
1370 #endif
1371 #include <link.h>],
1372 [struct so_map lm; (void) lm.som_addr;],
1373 gdb_cv_have_struct_so_map_with_som_members=yes,
1374 gdb_cv_have_struct_so_map_with_som_members=no)])
1375 AC_MSG_RESULT($gdb_cv_have_struct_so_map_with_som_members)
1376 if test $gdb_cv_have_struct_so_map_with_som_members = yes; then
1377 AC_DEFINE(HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS, 1,
1378 [Define if <link.h> exists and defines a struct so_map which has
1379 members with an ``som_'' prefix. (Found on older *BSD systems.)])
1380 fi
1381
1382 dnl Check for struct link_map32 type, which allows a 64-bit Solaris
1383 dnl debugger to debug a 32-bit Solaris app with 32-bit shared libraries.
1384
1385 AC_MSG_CHECKING(for struct link_map32 in sys/link.h)
1386 AC_CACHE_VAL(gdb_cv_have_struct_link_map32,
1387 [AC_TRY_COMPILE([#define _SYSCALL32
1388 #include <sys/link.h>], [struct link_map32 l;],
1389 gdb_cv_have_struct_link_map32=yes,
1390 gdb_cv_have_struct_link_map32=no)])
1391 AC_MSG_RESULT($gdb_cv_have_struct_link_map32)
1392 if test $gdb_cv_have_struct_link_map32 = yes; then
1393 AC_DEFINE(HAVE_STRUCT_LINK_MAP32, 1,
1394 [Define if <sys/link.h> has struct link_map32])
1395 AC_DEFINE(_SYSCALL32, 1,
1396 [Define if <sys/link.h> has link_map32 (solaris sparc-64 target)])
1397 fi
1398 fi
1399
1400 # Check if the compiler supports the `long long' type.
1401
1402 AC_CACHE_CHECK([for long long support in compiler], gdb_cv_c_long_long,
1403 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1404 [[extern long long foo;]],
1405 [[switch (foo & 2) { case 0: return 1; }]])],
1406 gdb_cv_c_long_long=yes,
1407 gdb_cv_c_long_long=no)])
1408 if test $gdb_cv_c_long_long = yes; then
1409 AC_DEFINE(CC_HAS_LONG_LONG, 1,
1410 [Define to 1 if the compiler supports long long.])
1411 fi
1412
1413 # Check if the compiler and runtime support printing long longs.
1414
1415 AC_CACHE_CHECK([for long long support in printf],
1416 gdb_cv_printf_has_long_long,
1417 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1418 [[char buf[32];
1419 long long l = 0;
1420 l = (l << 16) + 0x0123;
1421 l = (l << 16) + 0x4567;
1422 l = (l << 16) + 0x89ab;
1423 l = (l << 16) + 0xcdef;
1424 sprintf (buf, "0x%016llx", l);
1425 return (strcmp ("0x0123456789abcdef", buf));]])],
1426 gdb_cv_printf_has_long_long=yes,
1427 gdb_cv_printf_has_long_long=no,
1428 gdb_cv_printf_has_long_long=no)])
1429 if test $gdb_cv_printf_has_long_long = yes; then
1430 AC_DEFINE(PRINTF_HAS_LONG_LONG, 1,
1431 [Define to 1 if the "%ll" format works to print long longs.])
1432 fi
1433
1434 # Check if the compiler and runtime support printing decfloats.
1435
1436 AC_CACHE_CHECK([for decfloat support in printf],
1437 gdb_cv_printf_has_decfloat,
1438 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1439 [[char buf[64];
1440 _Decimal32 d32 = 1.2345df;
1441 _Decimal64 d64 = 1.2345dd;
1442 _Decimal128 d128 = 1.2345dl;
1443 sprintf (buf, "Decimal32: %H\nDecimal64: %D\nDecimal128: %DD", d32, d64, d128);
1444 return (strcmp ("Decimal32: 1.2345\nDecimal64: 1.2345\nDecimal128: 1.2345", buf));]])],
1445 gdb_cv_printf_has_decfloat=yes,
1446 gdb_cv_printf_has_decfloat=no,
1447 gdb_cv_printf_has_decfloat=no)])
1448 if test $gdb_cv_printf_has_decfloat = yes; then
1449 AC_DEFINE(PRINTF_HAS_DECFLOAT, 1,
1450 [Define to 1 if the "%H, %D and %DD" formats work to print decfloats.])
1451 fi
1452
1453 # Check if the compiler supports the `long double' type. We can't use
1454 # AC_C_LONG_DOUBLE because that one does additional checks on the
1455 # constants defined in <float.h> that fail on some systems,
1456 # e.g. FreeBSD/i386 4.7 and OpenBSD/i386 3.6.
1457
1458 AC_CACHE_CHECK([for long double support in compiler], gdb_cv_c_long_double,
1459 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[long double foo;]])],
1460 gdb_cv_c_long_double=yes,
1461 gdb_cv_c_long_double=no)])
1462 if test $gdb_cv_c_long_double = yes; then
1463 AC_DEFINE(HAVE_LONG_DOUBLE, 1,
1464 [Define to 1 if the compiler supports long double.])
1465 fi
1466
1467 # Check if the compiler and runtime support printing long doubles.
1468
1469 AC_CACHE_CHECK([for long double support in printf],
1470 gdb_cv_printf_has_long_double,
1471 [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
1472 [[char buf[16];
1473 long double f = 3.141592653;
1474 sprintf (buf, "%Lg", f);
1475 return (strncmp ("3.14159", buf, 7));]])],
1476 gdb_cv_printf_has_long_double=yes,
1477 gdb_cv_printf_has_long_double=no,
1478 gdb_cv_printf_has_long_double=no)])
1479 if test $gdb_cv_printf_has_long_double = yes; then
1480 AC_DEFINE(PRINTF_HAS_LONG_DOUBLE, 1,
1481 [Define to 1 if the "%Lg" format works to print long doubles.])
1482 fi
1483
1484 # Check if the compiler and runtime support scanning long doubles.
1485
1486 AC_CACHE_CHECK([for long double support in scanf],
1487 gdb_cv_scanf_has_long_double,
1488 [AC_RUN_IFELSE([AC_LANG_PROGRAM(
1489 [[#include <stdio.h>]],
1490 [[char *buf = "3.141592653";
1491 long double f = 0;
1492 sscanf (buf, "%Lg", &f);
1493 return !(f > 3.14159 && f < 3.14160);]])],
1494 gdb_cv_scanf_has_long_double=yes,
1495 gdb_cv_scanf_has_long_double=no,
1496 gdb_cv_scanf_has_long_double=no)])
1497 if test $gdb_cv_scanf_has_long_double = yes; then
1498 AC_DEFINE(SCANF_HAS_LONG_DOUBLE, 1,
1499 [Define to 1 if the "%Lg" format works to scan long doubles.])
1500 fi
1501
1502 case ${host_os} in
1503 aix*)
1504 AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
1505 SAVE_LDFLAGS=$LDFLAGS
1506
1507 case $GCC in
1508 yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
1509 *) gdb_cv_bigtoc=-bbigtoc ;;
1510 esac
1511
1512 LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
1513 AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
1514 LDFLAGS="${SAVE_LDFLAGS}"
1515 ])
1516 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} ${gdb_cv_bigtoc}"
1517 ;;
1518 esac
1519
1520 AC_MSG_CHECKING(for the dynamic export flag)
1521 dynamic_list=false
1522 if test "${gdb_native}" = yes; then
1523 # The dynamically loaded libthread_db needs access to symbols in the gdb
1524 # executable. Older GNU ld supports --export-dynamic but --dynamic-list
1525 # may not be supported there.
1526 old_LDFLAGS="$LDFLAGS"
1527 # Older GNU ld supports --export-dynamic but --dynamic-list it does not.
1528 RDYNAMIC="-Wl,--dynamic-list=${srcdir}/proc-service.list"
1529 LDFLAGS="$LDFLAGS $RDYNAMIC"
1530 if test "${have_libpython}" = no; then
1531 AC_TRY_LINK([], [], [dynamic_list=true])
1532 else
1533 # Workaround http://bugs.python.org/issue4434 where static
1534 # libpythonX.Y.a would get its symbols required for
1535 # pythonX.Y/lib-dynload/*.so modules hidden by -Wl,--dynamic-list.
1536 # Problem does not happen for the recommended libpythonX.Y.so linkage.
1537 old_CFLAGS="$CFLAGS"
1538 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
1539 AC_RUN_IFELSE(
1540 AC_LANG_PROGRAM(
1541 [#include "]${have_libpython}[/Python.h"],
1542 [int err;
1543 Py_Initialize ();
1544 err = PyRun_SimpleString ("import itertools\n");
1545 Py_Finalize ();
1546 return err == 0 ? 0 : 1;]),
1547 [dynamic_list=true], [], [true])
1548 CFLAGS="$old_CFLAGS"
1549 fi
1550 LDFLAGS="$old_LDFLAGS"
1551 fi
1552 if $dynamic_list; then
1553 found="-Wl,--dynamic-list"
1554 RDYNAMIC='-Wl,--dynamic-list=$(srcdir)/proc-service.list'
1555 else
1556 found="-rdynamic"
1557 RDYNAMIC="-rdynamic"
1558 fi
1559 AC_SUBST(RDYNAMIC)
1560 AC_MSG_RESULT($found)
1561
1562 dnl For certain native configurations, we need to check whether thread
1563 dnl support can be built in or not.
1564 dnl
1565 dnl Note that we only want this if we are both native (host == target),
1566 dnl and not doing a canadian cross build (build == host).
1567
1568 if test ${build} = ${host} -a ${host} = ${target} ; then
1569 case ${host_os} in
1570 solaris*)
1571 # See if thread_db library is around for Solaris thread debugging.
1572 # Note that we must explicitly test for version 1 of the library
1573 # because version 0 (present on Solaris 2.4 or earlier) doesn't have
1574 # the same API.
1575 AC_MSG_CHECKING(for Solaris thread debugging library)
1576 if test -f /usr/lib/libthread_db.so.1 ; then
1577 AC_MSG_RESULT(yes)
1578 AC_DEFINE(HAVE_THREAD_DB_LIB, 1,
1579 [Define if using Solaris thread debugging.])
1580 CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
1581 CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
1582 AC_CHECK_LIB(dl, dlopen)
1583 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} $RDYNAMIC"
1584 # Sun randomly tweaked the prototypes in <proc_service.h>
1585 # at one point.
1586 AC_MSG_CHECKING(if <proc_service.h> is old)
1587 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
1588 AC_TRY_COMPILE([
1589 #include <proc_service.h>
1590 ps_err_e ps_pdwrite
1591 (struct ps_prochandle*, psaddr_t, const void*, size_t);
1592 ],, gdb_cv_proc_service_is_old=no,
1593 gdb_cv_proc_service_is_old=yes)
1594 ])
1595 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
1596 if test $gdb_cv_proc_service_is_old = yes; then
1597 AC_DEFINE(PROC_SERVICE_IS_OLD, 1,
1598 [Define if <proc_service.h> on solaris uses int instead of
1599 size_t, and assorted other type changes.])
1600 fi
1601 else
1602 AC_MSG_RESULT(no)
1603 fi
1604 ;;
1605 aix*)
1606 AC_MSG_CHECKING(for AiX thread debugging library)
1607 AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
1608 [AC_TRY_COMPILE([#include <sys/pthdebug.h>],
1609 [#ifndef PTHDB_VERSION_3
1610 #error
1611 #endif],
1612 gdb_cv_have_aix_thread_debug=yes,
1613 gdb_cv_have_aix_thread_debug=no)])
1614 AC_MSG_RESULT($gdb_cv_have_aix_thread_debug)
1615 if test $gdb_cv_have_aix_thread_debug = yes; then
1616 CONFIG_SRCS="${CONFIG_SRCS} aix-thread.c"
1617 CONFIG_OBS="${CONFIG_OBS} aix-thread.o"
1618 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} -lpthdebug"
1619
1620 # Older versions of AIX do not provide the declaration for
1621 # the getthrds function (it appears that it was introduced
1622 # with AIX 6.x).
1623 AC_CHECK_DECLS(getthrds, [], [], [[#include <procinfo.h>]])
1624 fi
1625 ;;
1626 esac
1627 AC_SUBST(CONFIG_LDFLAGS)
1628 fi
1629
1630 dnl See if we have a thread_db header file that has TD_NOTALLOC and
1631 dnl other error codes.
1632 if test "x$ac_cv_header_thread_db_h" = "xyes"; then
1633 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTALLOC],
1634 gdb_cv_thread_db_h_has_td_notalloc,
1635 AC_TRY_COMPILE(
1636 [#include <thread_db.h>],
1637 [int i = TD_NOTALLOC;],
1638 gdb_cv_thread_db_h_has_td_notalloc=yes,
1639 gdb_cv_thread_db_h_has_td_notalloc=no
1640 )
1641 )
1642 AC_CACHE_CHECK([whether <thread_db.h> has TD_VERSION],
1643 gdb_cv_thread_db_h_has_td_version,
1644 AC_TRY_COMPILE(
1645 [#include <thread_db.h>],
1646 [int i = TD_VERSION;],
1647 gdb_cv_thread_db_h_has_td_version=yes,
1648 gdb_cv_thread_db_h_has_td_version=no
1649 )
1650 )
1651 AC_CACHE_CHECK([whether <thread_db.h> has TD_NOTLS],
1652 gdb_cv_thread_db_h_has_td_notls,
1653 AC_TRY_COMPILE(
1654 [#include <thread_db.h>],
1655 [int i = TD_NOTLS;],
1656 gdb_cv_thread_db_h_has_td_notls=yes,
1657 gdb_cv_thread_db_h_has_td_notls=no
1658 )
1659 )
1660 fi
1661 if test "x$gdb_cv_thread_db_h_has_td_notalloc" = "xyes"; then
1662 AC_DEFINE(THREAD_DB_HAS_TD_NOTALLOC, 1,
1663 [Define if <thread_db.h> has the TD_NOTALLOC error code.])
1664 fi
1665 if test "x$gdb_cv_thread_db_h_has_td_version" = "xyes"; then
1666 AC_DEFINE(THREAD_DB_HAS_TD_VERSION, 1,
1667 [Define if <thread_db.h> has the TD_VERSION error code.])
1668 fi
1669 if test "x$gdb_cv_thread_db_h_has_td_notls" = "xyes"; then
1670 AC_DEFINE(THREAD_DB_HAS_TD_NOTLS, 1,
1671 [Define if <thread_db.h> has the TD_NOTLS error code.])
1672 fi
1673
1674 dnl See if we have a sys/syscall header file that has __NR_tkill.
1675 if test "x$ac_cv_header_sys_syscall_h" = "xyes"; then
1676 AC_CACHE_CHECK([whether <sys/syscall.h> has __NR_tkill],
1677 gdb_cv_sys_syscall_h_has_tkill,
1678 AC_TRY_COMPILE(
1679 [#include <sys/syscall.h>],
1680 [int i = __NR_tkill;],
1681 gdb_cv_sys_syscall_h_has_tkill=yes,
1682 gdb_cv_sys_syscall_h_has_tkill=no
1683 )
1684 )
1685 fi
1686 dnl See if we can issue tkill syscall.
1687 if test "x$gdb_cv_sys_syscall_h_has_tkill" = "xyes" && test "x$ac_cv_func_syscall" = "xyes"; then
1688 AC_DEFINE(HAVE_TKILL_SYSCALL, 1, [Define if you support the tkill syscall.])
1689 fi
1690
1691 dnl Check if we can disable the virtual address space randomization.
1692 dnl The functionality of setarch -R.
1693 AC_CHECK_DECLS([ADDR_NO_RANDOMIZE],,, [#include <sys/personality.h>])
1694 define([PERSONALITY_TEST], [AC_LANG_PROGRAM([#include <sys/personality.h>], [
1695 # if !HAVE_DECL_ADDR_NO_RANDOMIZE
1696 # define ADDR_NO_RANDOMIZE 0x0040000
1697 # endif
1698 /* Test the flag could be set and stays set. */
1699 personality (personality (0xffffffff) | ADDR_NO_RANDOMIZE);
1700 if (!(personality (personality (0xffffffff)) & ADDR_NO_RANDOMIZE))
1701 return 1])])
1702 AC_RUN_IFELSE([PERSONALITY_TEST],
1703 [have_personality=true],
1704 [have_personality=false],
1705 [AC_LINK_IFELSE([PERSONALITY_TEST],
1706 [have_personality=true],
1707 [have_personality=false])])
1708 if $have_personality
1709 then
1710 AC_DEFINE([HAVE_PERSONALITY], 1,
1711 [Define if you support the personality syscall.])
1712 fi
1713
1714 dnl Handle optional features that can be enabled.
1715
1716 target_sysroot_reloc=0
1717 AC_ARG_WITH(sysroot,
1718 AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], [search for usr/lib et al within DIR]),
1719 [
1720 case ${with_sysroot} in
1721 yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
1722 *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
1723 esac
1724
1725 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
1726
1727 if test "x$prefix" = xNONE; then
1728 test_prefix=/usr/local
1729 else
1730 test_prefix=$prefix
1731 fi
1732 if test "x$exec_prefix" = xNONE || test "x$exec_prefix" = 'x${prefix}'; then
1733 test_exec_prefix=$test_prefix
1734 else
1735 test_exec_prefix=$exec_prefix
1736 fi
1737 case ${TARGET_SYSTEM_ROOT} in
1738 "${test_prefix}"|"${test_prefix}/"*|\
1739 "${test_exec_prefix}"|"${test_exec_prefix}/"*|\
1740 '${prefix}'|'${prefix}/'*|\
1741 '${exec_prefix}'|'${exec_prefix}/'*)
1742 target_sysroot_reloc=1
1743 ;;
1744 esac
1745 ], [
1746 TARGET_SYSTEM_ROOT=
1747 TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"'
1748 ])
1749 TARGET_SYSTEM_ROOT_DEFINE="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE=$target_sysroot_reloc"
1750 AC_SUBST(TARGET_SYSTEM_ROOT)
1751 AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
1752
1753 GDB_AC_WITH_DIR(SYSTEM_GDBINIT, system-gdbinit,
1754 [automatically load a system-wide gdbinit file],
1755 [])
1756
1757 AC_ARG_ENABLE(werror,
1758 AS_HELP_STRING([--enable-werror], [treat compile warnings as errors]),
1759 [case "${enableval}" in
1760 yes | y) ERROR_ON_WARNING="yes" ;;
1761 no | n) ERROR_ON_WARNING="no" ;;
1762 *) AC_MSG_ERROR(bad value ${enableval} for --enable-werror) ;;
1763 esac])
1764
1765 # Enable -Werror by default when using gcc
1766 if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then
1767 ERROR_ON_WARNING=yes
1768 fi
1769
1770 WERROR_CFLAGS=""
1771 if test "${ERROR_ON_WARNING}" = yes ; then
1772 WERROR_CFLAGS="-Werror"
1773 fi
1774
1775 # The entries after -Wno-pointer-sign are disabled warnings which may
1776 # be enabled in the future, which can not currently be used to build
1777 # GDB.
1778 # NOTE: If you change this list, remember to update
1779 # gdb/doc/gdbint.texinfo.
1780 build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \
1781 -Wformat-nonliteral -Wno-pointer-sign \
1782 -Wno-unused -Wunused-value -Wunused-function \
1783 -Wno-switch -Wno-char-subscripts"
1784
1785 # Enable -Wno-format by default when using gcc on mingw since many
1786 # GCC versions complain about %I64.
1787 case "${host}" in
1788 *-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;;
1789 esac
1790
1791 AC_ARG_ENABLE(build-warnings,
1792 AS_HELP_STRING([--enable-build-warnings], [enable build-time compiler warnings if gcc is used]),
1793 [case "${enableval}" in
1794 yes) ;;
1795 no) build_warnings="-w";;
1796 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1797 build_warnings="${build_warnings} ${t}";;
1798 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1799 build_warnings="${t} ${build_warnings}";;
1800 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1801 esac
1802 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1803 echo "Setting compiler warning flags = $build_warnings" 6>&1
1804 fi])dnl
1805 AC_ARG_ENABLE(gdb-build-warnings,
1806 AS_HELP_STRING([--enable-gdb-build-warnings], [enable GDB specific build-time compiler warnings if gcc is used]),
1807 [case "${enableval}" in
1808 yes) ;;
1809 no) build_warnings="-w";;
1810 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1811 build_warnings="${build_warnings} ${t}";;
1812 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
1813 build_warnings="${t} ${build_warnings}";;
1814 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
1815 esac
1816 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
1817 echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
1818 fi])dnl
1819 WARN_CFLAGS=""
1820 if test "x${build_warnings}" != x -a "x$GCC" = xyes
1821 then
1822 AC_MSG_CHECKING(compiler warning flags)
1823 # Separate out the -Werror flag as some files just cannot be
1824 # compiled with it enabled.
1825 for w in ${build_warnings}; do
1826 case $w in
1827 -Werr*) WERROR_CFLAGS=-Werror ;;
1828 *) # Check that GCC accepts it
1829 saved_CFLAGS="$CFLAGS"
1830 CFLAGS="$CFLAGS $w"
1831 AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
1832 CFLAGS="$saved_CFLAGS"
1833 esac
1834 done
1835 AC_MSG_RESULT(${WARN_CFLAGS} ${WERROR_CFLAGS})
1836 fi
1837 AC_SUBST(WARN_CFLAGS)
1838 AC_SUBST(WERROR_CFLAGS)
1839
1840 # In the Cygwin environment, we need some additional flags.
1841 AC_CACHE_CHECK([for cygwin], gdb_cv_os_cygwin,
1842 [AC_EGREP_CPP(lose, [
1843 #if defined (__CYGWIN__) || defined (__CYGWIN32__)
1844 lose
1845 #endif],[gdb_cv_os_cygwin=yes],[gdb_cv_os_cygwin=no])])
1846
1847
1848 dnl Figure out which of the many generic ser-*.c files the _host_ supports.
1849 SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o"
1850 case ${host} in
1851 *go32* ) SER_HARDWIRE=ser-go32.o ;;
1852 *djgpp* ) SER_HARDWIRE=ser-go32.o ;;
1853 *mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;;
1854 esac
1855 AC_SUBST(SER_HARDWIRE)
1856
1857 # libreadline needs libuser32.a in a cygwin environment
1858 WIN32LIBS=
1859 if test x$gdb_cv_os_cygwin = xyes; then
1860 WIN32LIBS="-luser32"
1861 case "${target}" in
1862 *cygwin*) WIN32LIBS="$WIN32LIBS -limagehlp"
1863 ;;
1864 esac
1865 fi
1866
1867 # The ser-tcp.c module requires sockets.
1868 case ${host} in
1869 *mingw32*)
1870 AC_DEFINE(USE_WIN32API, 1,
1871 [Define if we should use the Windows API, instead of the
1872 POSIX API. On Windows, we use the Windows API when
1873 building for MinGW, but the POSIX API when building
1874 for Cygwin.])
1875 WIN32LIBS="$WIN32LIBS -lws2_32"
1876 ;;
1877 esac
1878 AC_SUBST(WIN32LIBS)
1879
1880 # Add ELF support to GDB, but only if BFD includes ELF support.
1881 OLD_CFLAGS=$CFLAGS
1882 OLD_LDFLAGS=$LDFLAGS
1883 OLD_LIBS=$LIBS
1884 CFLAGS="$CFLAGS -I${srcdir}/../include -I../bfd -I${srcdir}/../bfd"
1885 LDFLAGS="$LDFLAGS -L../bfd -L../libiberty"
1886 intl=`echo $LIBINTL | sed 's,${top_builddir}/,,g'`
1887 # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
1888 if test "$plugins" = "yes"; then
1889 LIBS="-ldl $LIBS"
1890 fi
1891 LIBS="-lbfd -liberty $intl $LIBS"
1892 AC_CACHE_CHECK([for ELF support in BFD], gdb_cv_var_elf,
1893 [AC_TRY_LINK(
1894 [#include <stdlib.h>
1895 #include "bfd.h"
1896 #include "elf-bfd.h"
1897 ],
1898 [bfd *abfd = NULL; bfd_get_elf_phdr_upper_bound (abfd); ],
1899 gdb_cv_var_elf=yes, gdb_cv_var_elf=no)])
1900 if test $gdb_cv_var_elf = yes; then
1901 CONFIG_OBS="$CONFIG_OBS elfread.o"
1902 AC_DEFINE(HAVE_ELF, 1,
1903 [Define if ELF support should be included.])
1904 # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
1905 if test "$plugins" = "yes"; then
1906 OLD_LIBS="-ldl $OLD_LIBS"
1907 fi
1908 fi
1909 CFLAGS=$OLD_CFLAGS
1910 LDFLAGS=$OLD_LDFLAGS
1911 LIBS=$OLD_LIBS
1912
1913 # Add any host-specific objects to GDB.
1914 CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
1915
1916 LIBGUI="../libgui/src/libgui.a"
1917 GUI_CFLAGS_X="-I${srcdir}/../libgui/src"
1918 AC_SUBST(LIBGUI)
1919 AC_SUBST(GUI_CFLAGS_X)
1920
1921 WIN32LDAPP=
1922 AC_SUBST(WIN32LIBS)
1923 AC_SUBST(WIN32LDAPP)
1924
1925 case "${host}" in
1926 *-*-cygwin* | *-*-mingw* )
1927 configdir="win"
1928 ;;
1929 *)
1930 configdir="unix"
1931 ;;
1932 esac
1933
1934 GDBTKLIBS=
1935 if test "${enable_gdbtk}" = "yes"; then
1936
1937 # Gdbtk must have an absolute path to srcdir in order to run
1938 # properly when not installed.
1939 here=`pwd`
1940 cd ${srcdir}
1941 GDBTK_SRC_DIR=`pwd`
1942 cd $here
1943
1944 SC_PATH_TCLCONFIG
1945
1946 # If $no_tk is nonempty, then we can't do Tk, and there is no
1947 # point to doing Tcl.
1948 SC_PATH_TKCONFIG
1949
1950 if test -z "${no_tcl}" -a -z "${no_tk}"; then
1951 SC_LOAD_TCLCONFIG
1952
1953 # Check for in-tree tcl
1954 here=`pwd`
1955 cd ${srcdir}/..
1956 topdir=`pwd`
1957 cd ${here}
1958
1959 intree="no"
1960 if test "${TCL_SRC_DIR}" = "${topdir}/tcl"; then
1961 intree="yes"
1962 fi
1963
1964 # Find Tcl private headers
1965 if test x"${intree}" = xno; then
1966 CY_AC_TCL_PRIVATE_HEADERS
1967 TCL_INCLUDE="${TCL_INCLUDE_SPEC} ${TCL_PRIVATE_INCLUDE}"
1968 TCL_LIBRARY="${TCL_LIB_SPEC}"
1969 TCL_DEPS=""
1970 else
1971 # If building tcl in the same src tree, private headers
1972 # are not needed, but we need to be sure to use the right
1973 # headers library
1974 TCL_INCLUDE="-I${TCL_SRC_DIR}/generic"
1975 TCL_LIBRARY="${TCL_BUILD_LIB_SPEC}"
1976 TCL_DEPS="../tcl/${configdir}${TCL_LIB_FILE}"
1977 fi
1978 AC_SUBST(TCL_INCLUDE)
1979 AC_SUBST(TCL_LIBRARY)
1980 AC_SUBST(TCL_DEPS)
1981
1982 SC_LOAD_TKCONFIG
1983
1984 # Check for in-tree Tk
1985 intree="no"
1986 if test "${TK_SRC_DIR}" = "${topdir}/tk"; then
1987 intree="yes"
1988 fi
1989
1990 # Find Tk private headers
1991 if test x"${intree}" = xno; then
1992 CY_AC_TK_PRIVATE_HEADERS
1993 TK_INCLUDE="${TK_INCLUDE_SPEC} ${TK_PRIVATE_INCLUDE}"
1994 TK_LIBRARY=${TK_LIB_SPEC}
1995 TK_DEPS=""
1996 else
1997 TK_INCLUDE="-I${TK_SRC_DIR}/generic"
1998 TK_LIBRARY="${TK_BUILD_LIB_SPEC}"
1999 TK_DEPS="../tk/${configdir}/${TK_LIB_FILE}"
2000 fi
2001 AC_SUBST(TK_INCLUDE)
2002 AC_SUBST(TK_LIBRARY)
2003 AC_SUBST(TK_DEPS)
2004 AC_SUBST(TK_XINCLUDES)
2005
2006 ENABLE_CFLAGS="${ENABLE_CFLAGS} \$(SUBDIR_GDBTK_CFLAGS)"
2007
2008 # Include some libraries that Tcl and Tk want.
2009 TCL_LIBS='$(LIBGUI) $(TK) $(TCL) $(X11_LDFLAGS) $(X11_LIBS)'
2010 # Yes, the ordering seems wrong here. But it isn't.
2011 # TK_LIBS is the list of libraries that need to be linked
2012 # after Tcl/Tk. Note that this isn't put into LIBS. If it
2013 # were in LIBS then any link tests after this point would
2014 # try to include things like `$(LIBGUI)', which wouldn't work.
2015 GDBTKLIBS="${TCL_LIBS} ${TK_LIBS}"
2016
2017 CONFIG_OBS="${CONFIG_OBS} \$(SUBDIR_GDBTK_OBS)"
2018 CONFIG_DEPS="${CONFIG_DEPS} \$(SUBDIR_GDBTK_DEPS)"
2019 CONFIG_SRCS="${CONFIG_SRCS} \$(SUBDIR_GDBTK_SRCS)"
2020 CONFIG_ALL="${CONFIG_ALL} all-gdbtk"
2021 CONFIG_CLEAN="${CONFIG_CLEAN} clean-gdbtk"
2022 CONFIG_INSTALL="${CONFIG_INSTALL} install-gdbtk"
2023 CONFIG_UNINSTALL="${CONFIG_UNINSTALL} uninstall-gdbtk"
2024
2025 if test x$gdb_cv_os_cygwin = xyes; then
2026 WIN32LIBS="${WIN32LIBS} -lshell32 -lgdi32 -lcomdlg32 -ladvapi32"
2027 WIN32LDAPP="-Wl,--subsystem,console"
2028 CONFIG_OBS="${CONFIG_OBS} gdbres.o"
2029 fi
2030
2031 AC_CONFIG_SUBDIRS(gdbtk)
2032 fi
2033 fi
2034
2035 AC_SUBST(X_CFLAGS)
2036 AC_SUBST(X_LDFLAGS)
2037 AC_SUBST(X_LIBS)
2038 AC_SUBST(GDBTKLIBS)
2039 AC_SUBST(GDBTK_CFLAGS)
2040 AC_SUBST(GDBTK_SRC_DIR)
2041
2042 AC_PATH_X
2043
2044 # Unlike the sim directory, whether a simulator is linked is controlled by
2045 # presence of a gdb_sim definition in the target configure.tgt entry.
2046 # This code just checks for a few cases where we'd like to ignore those
2047 # definitions, even when they're present in the '.mt' file. These cases
2048 # are when --disable-sim is specified, or if the simulator directory is
2049 # not part of the source tree.
2050 #
2051 AC_ARG_ENABLE(sim,
2052 AS_HELP_STRING([--enable-sim], [link gdb with simulator]),
2053 [echo "enable_sim = $enable_sim";
2054 echo "enableval = ${enableval}";
2055 case "${enableval}" in
2056 yes) ignore_sim=false ;;
2057 no) ignore_sim=true ;;
2058 *) ignore_sim=false ;;
2059 esac],
2060 [ignore_sim=false])
2061
2062 if test ! -d "${srcdir}/../sim"; then
2063 ignore_sim=true
2064 fi
2065
2066 SIM=
2067 SIM_OBS=
2068 if test "${ignore_sim}" = "false"; then
2069 if test x"${gdb_sim}" != x ; then
2070 SIM="${gdb_sim}"
2071 SIM_OBS="remote-sim.o"
2072 AC_DEFINE(WITH_SIM, 1, [Define if the simulator is being linked in.])
2073 fi
2074 fi
2075 AC_SUBST(SIM)
2076 AC_SUBST(SIM_OBS)
2077
2078 AC_SUBST(ENABLE_CFLAGS)
2079 AC_SUBST(PROFILE_CFLAGS)
2080
2081 AC_SUBST(CONFIG_OBS)
2082 AC_SUBST(CONFIG_DEPS)
2083 AC_SUBST(CONFIG_SRCS)
2084 AC_SUBST(CONFIG_ALL)
2085 AC_SUBST(CONFIG_CLEAN)
2086 AC_SUBST(CONFIG_INSTALL)
2087 AC_SUBST(CONFIG_UNINSTALL)
2088
2089 # List of host floatformats.
2090 AC_DEFINE_UNQUOTED(GDB_HOST_FLOAT_FORMAT,$gdb_host_float_format,[Host float floatformat])
2091 AC_DEFINE_UNQUOTED(GDB_HOST_DOUBLE_FORMAT,$gdb_host_double_format,[Host double floatformat])
2092 AC_DEFINE_UNQUOTED(GDB_HOST_LONG_DOUBLE_FORMAT,$gdb_host_long_double_format,[Host long double floatformat])
2093
2094 # target_subdir is used by the testsuite to find the target libraries.
2095 target_subdir=
2096 if test "${host}" != "${target}"; then
2097 target_subdir="${target_alias}/"
2098 fi
2099 AC_SUBST(target_subdir)
2100
2101 frags=
2102 if test "${gdb_native}" = "yes"; then
2103 host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
2104 if test ! -f ${host_makefile_frag}; then
2105 AC_MSG_ERROR("*** Gdb does not support native target ${host}")
2106 fi
2107 frags="$frags $host_makefile_frag"
2108 else
2109 host_makefile_frag=/dev/null
2110 fi
2111
2112 AC_SUBST_FILE(host_makefile_frag)
2113 AC_SUBST(frags)
2114
2115 changequote(,)dnl
2116 if test "${gdb_native}" = "yes"; then
2117 # We pick this up from the host configuration file (.mh) because we
2118 # do not have a native configuration Makefile fragment.
2119 nativefile=`sed -n '
2120 s/NAT_FILE[ ]*=[ ]*\([^ ]*\)/\1/p
2121 ' ${host_makefile_frag}`
2122 fi
2123 changequote([,])
2124
2125 if test x"${gdb_osabi}" != x ; then
2126 AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
2127 [Define to the default OS ABI for this configuration.])
2128 fi
2129
2130 # Enable multi-ice-gdb-server.
2131 AC_ARG_ENABLE(multi-ice,
2132 AS_HELP_STRING([--enable-multi-ice], [build the multi-ice-gdb-server]),
2133 [case $enableval in
2134 yes | no)
2135 ;;
2136 *) AC_MSG_ERROR([bad value $enableval for --enable-multi-ice]) ;;
2137 esac])
2138 if test "x$enable_multi_ice" = xyes; then
2139 AC_CONFIG_SUBDIRS(multi-ice)
2140 fi
2141
2142 AC_ARG_ENABLE(gdbserver,
2143 AS_HELP_STRING([--enable-gdbserver],
2144 [automatically build gdbserver (yes/no/auto, default is auto)]),
2145 [case "${enableval}" in
2146 yes| no|auto) ;;
2147 *) AC_MSG_ERROR(bad value ${enableval} for --enable-gdbserver option) ;;
2148 esac],[enable_gdbserver=auto])
2149
2150 # We only build gdbserver automatically in a native configuration, and
2151 # only if the user did not explicitly disable its build.
2152 if test "$gdb_native" = "yes" -a "$enable_gdbserver" != "no"; then
2153 AC_MSG_CHECKING(whether gdbserver is supported on this host)
2154 if test "x$build_gdbserver" = xyes; then
2155 AC_MSG_RESULT(yes)
2156 AC_CONFIG_SUBDIRS(gdbserver)
2157 gdbserver_build_enabled=yes
2158 else
2159 AC_MSG_RESULT(no)
2160 fi
2161 fi
2162
2163 # If the user explicitly request the gdbserver to be built, verify that
2164 # we were in fact able to enable it.
2165 if test "$enable_gdbserver" = "yes" -a "$gdbserver_build_enabled" != "yes"; then
2166 AC_MSG_ERROR(Automatic gdbserver build is not supported for this configuration)
2167 fi
2168
2169 # If nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link
2170 # to an empty version.
2171
2172 files=
2173 links=
2174
2175 rm -f nm.h
2176 if test "${nativefile}" != ""; then
2177 case "${nativefile}" in
2178 nm-*.h ) GDB_NM_FILE="config/${gdb_host_cpu}/${nativefile}" ;;
2179 * ) GDB_NM_FILE="${nativefile}"
2180 esac
2181 files="${files} ${GDB_NM_FILE}"
2182 links="${links} nm.h"
2183 AC_DEFINE_UNQUOTED(GDB_NM_FILE, "${GDB_NM_FILE}", [nativefile])
2184 fi
2185 AC_SUBST(GDB_NM_FILE)
2186
2187 AC_LINK_FILES($files, $links)
2188
2189 dnl Check for exe extension set on certain hosts (e.g. Win32)
2190 AC_EXEEXT
2191
2192 dnl Detect the character set used by this host.
2193 dnl At the moment, we just assume it's UTF-8.
2194 AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8",
2195 [Define to be a string naming the default host character set.])
2196
2197 AC_OUTPUT(Makefile .gdbinit:gdbinit.in doc/Makefile gnulib/Makefile data-directory/Makefile,
2198 [
2199 case x$CONFIG_HEADERS in
2200 xconfig.h:config.in)
2201 echo > stamp-h ;;
2202 esac
2203 ])
2204
2205 exit 0
This page took 0.072902 seconds and 3 git commands to generate.