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