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