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