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