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