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