mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-27 04:52:05 +08:00
e671cd59d7
In my multi-target branch I ran into problems with GDB's terminal handling that exist in master as well, with multi-inferior debugging. This patch adds a testcase for said problems (gdb.multi/multi-term-settings.exp), fixes the problems, fixes PR gdb/13211 as well (and adds a testcase for that too, gdb.base/interrupt-daemon.exp). The basis of the problem I ran into is the following. Consider a scenario where you have: - inferior 1 - started with "attach", process is running on some other terminal. - inferior 2 - started with "run", process is sharing gdb's terminal. In this scenario, when you stop/resume both inferiors, you want GDB to save/restore the terminal settings of inferior 2, the one that is sharing GDB's terminal. I.e., you want inferior 2 to "own" the terminal (in target_terminal::is_ours/target_terminal::is_inferior sense). Unfortunately, that's not what you get currently. Because GDB doesn't know whether an attached inferior is actually sharing GDB's terminal, it tries to save/restore its settings anyway, ignoring errors. In this case, this is pointless, because inferior 1 is running on a different terminal, but GDB doesn't know better. And then, because it is only possible to have the terminal settings of a single inferior be in effect at a time, or make one inferior/pgrp be the terminal's foreground pgrp (aka, only one inferior can "own" the terminal, ignoring fork children here), if GDB happens to try to restore the terminal settings of inferior 1 first, then GDB never restores the terminal settings of inferior 2. This patch fixes that and a few things more along the way: - Moves enum target_terminal::terminal_state out of the target_terminal class (it's currently private) and makes it a scoped enum so that it can be easily used elsewhere. - Replaces the inflow.c:terminal_is_ours boolean with a target_terminal_state variable. This allows distinguishing is_ours and is_ours_for_output states. This allows finally making child_terminal_ours_1 do something with its "output_only" parameter. - Makes each inferior have its own copy of the is_ours/is_ours_for_output/is_inferior state. - Adds a way for GDB to tell whether the inferior is sharing GDB's terminal. Works best on Linux and Solaris; the fallback works just as well as currently. - With that, we can remove the inf->attach_flag tests from child_terminal_inferior/child_terminal_ours. - Currently target_ops.to_ours is responsible for both saving the current inferior's terminal state, and restoring gdb's state. Because each inferior has its own terminal state (possibly handled by different targets in a multi-target world, even), we need to split the inferior-saving part from the gdb-restoring part. The patch adds a new target_ops.to_save_inferior target method for that. - Adds a new target_terminal::save_inferior() function, so that sequences like: scoped_restore_terminal_state save_state; target_terminal::ours_for_output (); ... restore back inferiors that were target_terminal_state::is_inferior before back to is_inferior, and leaves inferiors that were is_ours alone. - Along the way, this adds a default implementation of target_pass_ctrlc to inflow.c (for inf-child.c), that handles passing the Ctrl-C to a process running on GDB's terminal or to some other process otherwise. - Similarly, adds a new target default implementation of target_interrupt, for the "interrupt" command. The current implementation of this hook in inf-ptrace.c kills the whole process group, but that's incorrect/undesirable because we may not be attached to all processes in the process group. And also, it's incorrect because inferior_process_group() doesn't really return the inferior's real process group id if the inferior is not a process group leader... This is the cause of PR gdb/13211 [1], which this patch fixes. While at it, that target method's "ptid" parameter is eliminated, because it's not really used. - A new test is included that exercises and fixes PR gdb/13211, and also fixes a GDB issue reported on stackoverflow that I ran into while working on this [2]. The problem is similar to PR gdb/13211, except that it also triggers with Ctrl-C. When debugging a daemon (i.e., a process that disconnects from the controlling terminal and is not a process group leader, then Ctrl-C doesn't work, you just can't interrupt the inferior at all, resulting in a hung debug session. The problem is that since the inferior is no longer associated with gdb's session / controlling terminal, then trying to put the inferior in the foreground fails. And so Ctrl-C never reaches the inferior directly. pass_signal is only used when the inferior is attached, but that is not the case here. This is fixed by the new child_pass_ctrlc. Without the fix, the new interrupt-daemon.exp testcase fails with timeout waiting for a SIGINT that never arrives. [1] PR gdb/13211 - Async / Process group and interrupt not working https://sourceware.org/bugzilla/show_bug.cgi?id=13211 [2] GDB not reacting Ctrl-C when after fork() and setsid() https://stackoverflow.com/questions/46101292/gdb-not-reacting-ctrl-c-when-after-fork-and-setsid Note this patch does _not_ fix: - PR gdb/14559 - The 'interrupt' command does not work if sigwait is in use https://sourceware.org/bugzilla/show_bug.cgi?id=14559 - PR gdb/9425 - When using "sigwait" GDB doesn't trap SIGINT. Ctrl+C terminates program when should break gdb. https://sourceware.org/bugzilla/show_bug.cgi?id=9425 The only way to fix that that I know of (without changing the kernel) is to make GDB put inferiors in a separate session (create a pseudo-tty master/slave pair, make the inferior run with the slave as its terminal, and have gdb pump output/input on the master end). gdb/ChangeLog: 2018-01-30 Pedro Alves <palves@redhat.com> PR gdb/13211 * config.in, configure: Regenerate. * configure.ac: Check for getpgid. * go32-nat.c (go32_pass_ctrlc): New. (go32_target): Install it. * inf-child.c (inf_child_target): Install child_terminal_save_inferior, child_pass_ctrlc and child_interrupt. * inf-ptrace.c (inf_ptrace_interrupt): Delete. (inf_ptrace_target): No longer install it. * infcmd.c (interrupt_target_1): Adjust. * inferior.h (child_terminal_save_inferior, child_pass_ctrlc) (child_interrupt): Declare. (inferior::terminal_state): New. * inflow.c (struct terminal_info): Update comments. (inferior_process_group): Delete. (terminal_is_ours): Delete. (gdb_tty_state): New. (child_terminal_init): Adjust. (is_gdb_terminal, sharing_input_terminal_1) (sharing_input_terminal): New functions. (child_terminal_inferior): Adjust. Use sharing_input_terminal. Set the process's actual process group in the foreground if possible. Handle is_ours_for_output/is_ours distinction. Don't mark terminal as the inferior's if not sharing GDB's terminal. Don't check attach_flag. (child_terminal_ours_for_output, child_terminal_ours): Adjust to pass down a target_terminal_state. (child_terminal_save_inferior): New, factored out from ... (child_terminal_ours_1): ... this. Handle target_terminal_state::is_ours_for_output. (child_interrupt, child_pass_ctrlc): New. (inflow_inferior_exit): Clear the inferior's terminal_state. (copy_terminal_info): Copy the inferior's terminal state. (_initialize_inflow): Remove reference to terminal_is_ours. * inflow.h (inferior_process_group): Delete. * nto-procfs.c (nto_handle_sigint, procfs_interrupt): Adjust. * procfs.c (procfs_target): Don't install procfs_interrupt. (procfs_interrupt): Delete. * remote.c (remote_serial_quit_handler): Adjust. (remote_interrupt): Remove ptid parameter. Adjust. * target-delegates.c: Regenerate. * target.c: Include "terminal.h". (target_terminal::terminal_state): Rename to ... (target_terminal::m_terminal_state): ... this. (target_terminal::init): Adjust. (target_terminal::inferior): Adjust to per-inferior terminal_state. (target_terminal::restore_inferior, target_terminal_is_ours_kind): New. (target_terminal::ours, target_terminal::ours_for_output): Use target_terminal_is_ours_kind. (target_interrupt): Remove ptid parameter. Adjust. (default_target_pass_ctrlc): Adjust. * target.h (target_ops::to_terminal_save_inferior): New field. (target_ops::to_interrupt): Remove ptid_t parameter. (target_interrupt): Remove ptid_t parameter. Update comment. (target_pass_ctrlc): Update comment. * target/target.h (target_terminal_state): New scoped enum, factored out of ... (target_terminal::terminal_state): ... here. (target_terminal::inferior): Update comments. (target_terminal::restore_inferior): New. (target_terminal::is_inferior, target_terminal::is_ours) (target_terminal::is_ours_for_output): Adjust. (target_terminal::scoped_restore_terminal_state): Adjust to rename, and call restore_inferior() instead of inferior(). (target_terminal::scoped_restore_terminal_state::m_state): Change type. (target_terminal::terminal_state): Rename to ... (target_terminal::m_terminal_state): ... this and change type. gdb/gdbserver/ChangeLog: 2018-01-30 Pedro Alves <palves@redhat.com> PR gdb/13211 * target.c (target_terminal::terminal_state): Rename to ... (target_terminal::m_terminal_state): ... this. gdb/testsuite/ChangeLog: 2018-01-30 Pedro Alves <palves@redhat.com> PR gdb/13211 * gdb.base/interrupt-daemon.c: New. * gdb.base/interrupt-daemon.exp: New. * gdb.multi/multi-term-settings.c: New. * gdb.multi/multi-term-settings.exp: New.
803 lines
21 KiB
Plaintext
803 lines
21 KiB
Plaintext
/* config.in. Generated from configure.ac by autoheader. */
|
|
|
|
/* Define if building universal (internal helper macro) */
|
|
#undef AC_APPLE_UNIVERSAL_BUILD
|
|
|
|
/* Directories from which to load auto-loaded scripts. */
|
|
#undef AUTO_LOAD_DIR
|
|
|
|
/* Directories safe to hold auto-loaded files. */
|
|
#undef AUTO_LOAD_SAFE_PATH
|
|
|
|
/* Directory of programs. */
|
|
#undef BINDIR
|
|
|
|
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
|
|
systems. This function is required for `alloca.c' support on those systems.
|
|
*/
|
|
#undef CRAY_STACKSEG_END
|
|
|
|
/* Define to 1 if using `alloca.c'. */
|
|
#undef C_ALLOCA
|
|
|
|
/* look for global separate debug info in this path [LIBDIR/debug] */
|
|
#undef DEBUGDIR
|
|
|
|
/* Define if the separate-debug-dir directory should be relocated when GDB is
|
|
moved. */
|
|
#undef DEBUGDIR_RELOCATABLE
|
|
|
|
/* Define to BFD's default architecture. */
|
|
#undef DEFAULT_BFD_ARCH
|
|
|
|
/* Define to BFD's default target vector. */
|
|
#undef DEFAULT_BFD_VEC
|
|
|
|
/* Define to 1 if translation of program messages to the user's native
|
|
language is requested. */
|
|
#undef ENABLE_NLS
|
|
|
|
/* The .gdbinit filename. */
|
|
#undef GDBINIT
|
|
|
|
/* look for global separate data files in this path [DATADIR/gdb] */
|
|
#undef GDB_DATADIR
|
|
|
|
/* Define if the gdb-datadir directory should be relocated when GDB is moved.
|
|
*/
|
|
#undef GDB_DATADIR_RELOCATABLE
|
|
|
|
/* Define to be a string naming the default host character set. */
|
|
#undef GDB_DEFAULT_HOST_CHARSET
|
|
|
|
/* Host double floatformat */
|
|
#undef GDB_HOST_DOUBLE_FORMAT
|
|
|
|
/* Host float floatformat */
|
|
#undef GDB_HOST_FLOAT_FORMAT
|
|
|
|
/* Host long double floatformat */
|
|
#undef GDB_HOST_LONG_DOUBLE_FORMAT
|
|
|
|
/* nativefile */
|
|
#undef GDB_NM_FILE
|
|
|
|
/* Define to the default OS ABI for this configuration. */
|
|
#undef GDB_OSABI_DEFAULT
|
|
|
|
/* Define if self-testing features should be enabled */
|
|
#undef GDB_SELF_TEST
|
|
|
|
/* Define to 1 if you have `alloca', as a function or macro. */
|
|
#undef HAVE_ALLOCA
|
|
|
|
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
|
|
*/
|
|
#undef HAVE_ALLOCA_H
|
|
|
|
/* Define to 1 if you have the `btowc' function. */
|
|
#undef HAVE_BTOWC
|
|
|
|
/* Define to 1 if you have the <cursesX.h> header file. */
|
|
#undef HAVE_CURSESX_H
|
|
|
|
/* Define to 1 if you have the <curses.h> header file. */
|
|
#undef HAVE_CURSES_H
|
|
|
|
/* define if the compiler supports basic C++11 syntax */
|
|
#undef HAVE_CXX11
|
|
|
|
/* Define to 1 if you have the declaration of `ADDR_NO_RANDOMIZE', and to 0 if
|
|
you don't. */
|
|
#undef HAVE_DECL_ADDR_NO_RANDOMIZE
|
|
|
|
/* Define to 1 if you have the declaration of `asprintf', and to 0 if you
|
|
don't. */
|
|
#undef HAVE_DECL_ASPRINTF
|
|
|
|
/* Define to 1 if you have the declaration of `basename(char *)', and to 0 if
|
|
you don't. */
|
|
#undef HAVE_DECL_BASENAME
|
|
|
|
/* Define to 1 if you have the declaration of `ffs', and to 0 if you don't. */
|
|
#undef HAVE_DECL_FFS
|
|
|
|
/* Define to 1 if you have the declaration of `free', and to 0 if you don't.
|
|
*/
|
|
#undef HAVE_DECL_FREE
|
|
|
|
/* Define to 1 if you have the declaration of `getthrds', and to 0 if you
|
|
don't. */
|
|
#undef HAVE_DECL_GETTHRDS
|
|
|
|
/* Define to 1 if you have the declaration of `malloc', and to 0 if you don't.
|
|
*/
|
|
#undef HAVE_DECL_MALLOC
|
|
|
|
/* Define to 1 if you have the declaration of `ptrace', and to 0 if you don't.
|
|
*/
|
|
#undef HAVE_DECL_PTRACE
|
|
|
|
/* Define to 1 if you have the declaration of `realloc', and to 0 if you
|
|
don't. */
|
|
#undef HAVE_DECL_REALLOC
|
|
|
|
/* Define to 1 if you have the declaration of `snprintf', and to 0 if you
|
|
don't. */
|
|
#undef HAVE_DECL_SNPRINTF
|
|
|
|
/* Define to 1 if you have the declaration of `strerror', and to 0 if you
|
|
don't. */
|
|
#undef HAVE_DECL_STRERROR
|
|
|
|
/* Define to 1 if you have the declaration of `strstr', and to 0 if you don't.
|
|
*/
|
|
#undef HAVE_DECL_STRSTR
|
|
|
|
/* Define to 1 if you have the declaration of `strtol', and to 0 if you don't.
|
|
*/
|
|
#undef HAVE_DECL_STRTOL
|
|
|
|
/* Define to 1 if you have the declaration of `strtoll', and to 0 if you
|
|
don't. */
|
|
#undef HAVE_DECL_STRTOLL
|
|
|
|
/* Define to 1 if you have the declaration of `strtoul', and to 0 if you
|
|
don't. */
|
|
#undef HAVE_DECL_STRTOUL
|
|
|
|
/* Define to 1 if you have the declaration of `strtoull', and to 0 if you
|
|
don't. */
|
|
#undef HAVE_DECL_STRTOULL
|
|
|
|
/* Define to 1 if you have the declaration of `strverscmp', and to 0 if you
|
|
don't. */
|
|
#undef HAVE_DECL_STRVERSCMP
|
|
|
|
/* Define to 1 if you have the declaration of `vasprintf', and to 0 if you
|
|
don't. */
|
|
#undef HAVE_DECL_VASPRINTF
|
|
|
|
/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you
|
|
don't. */
|
|
#undef HAVE_DECL_VSNPRINTF
|
|
|
|
/* Define to 1 if you have the <dlfcn.h> header file. */
|
|
#undef HAVE_DLFCN_H
|
|
|
|
/* Define if ELF support should be included. */
|
|
#undef HAVE_ELF
|
|
|
|
/* Define to 1 if you have the <elf_hp.h> header file. */
|
|
#undef HAVE_ELF_HP_H
|
|
|
|
/* Define to 1 if your system has the etext variable. */
|
|
#undef HAVE_ETEXT
|
|
|
|
/* Define to 1 if you have the `fdwalk' function. */
|
|
#undef HAVE_FDWALK
|
|
|
|
/* Define to 1 if you have the `fork' function. */
|
|
#undef HAVE_FORK
|
|
|
|
/* Define if <sys/procfs.h> has fpregset_t. */
|
|
#undef HAVE_FPREGSET_T
|
|
|
|
/* Define to 1 if you have the `getauxval' function. */
|
|
#undef HAVE_GETAUXVAL
|
|
|
|
/* Define to 1 if you have the `getgid' function. */
|
|
#undef HAVE_GETGID
|
|
|
|
/* Define to 1 if you have the `getpagesize' function. */
|
|
#undef HAVE_GETPAGESIZE
|
|
|
|
/* Define to 1 if you have the `getpgid' function. */
|
|
#undef HAVE_GETPGID
|
|
|
|
/* Define to 1 if you have the `getrlimit' function. */
|
|
#undef HAVE_GETRLIMIT
|
|
|
|
/* Define to 1 if you have the `getrusage' function. */
|
|
#undef HAVE_GETRUSAGE
|
|
|
|
/* Define to 1 if you have the `getuid' function. */
|
|
#undef HAVE_GETUID
|
|
|
|
/* Define if <sys/procfs.h> has gregset_t. */
|
|
#undef HAVE_GREGSET_T
|
|
|
|
/* Define if Guile interpreter is being linked in. */
|
|
#undef HAVE_GUILE
|
|
|
|
/* Define if Guile supports manual finalization. */
|
|
#undef HAVE_GUILE_MANUAL_FINALIZATION
|
|
|
|
/* Define if you have the iconv() function. */
|
|
#undef HAVE_ICONV
|
|
|
|
/* Define to 1 if you have the `iconvlist' function. */
|
|
#undef HAVE_ICONVLIST
|
|
|
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
|
#undef HAVE_INTTYPES_H
|
|
|
|
/* Define to 1 if your system has the kinfo_getfile function. */
|
|
#undef HAVE_KINFO_GETFILE
|
|
|
|
/* Define to 1 if your system has the kinfo_getvmmap function. */
|
|
#undef HAVE_KINFO_GETVMMAP
|
|
|
|
/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
|
|
#undef HAVE_LANGINFO_CODESET
|
|
|
|
/* Define if your <locale.h> file defines LC_MESSAGES. */
|
|
#undef HAVE_LC_MESSAGES
|
|
|
|
/* Define if you have the babeltrace library. */
|
|
#undef HAVE_LIBBABELTRACE
|
|
|
|
/* Define if you have the expat library. */
|
|
#undef HAVE_LIBEXPAT
|
|
|
|
/* Define to 1 if you have the `libiconvlist' function. */
|
|
#undef HAVE_LIBICONVLIST
|
|
|
|
/* Define if you have the ipt library. */
|
|
#undef HAVE_LIBIPT
|
|
|
|
/* Define if you have the lzma library. */
|
|
#undef HAVE_LIBLZMA
|
|
|
|
/* Define to 1 if you have the `m' library (-lm). */
|
|
#undef HAVE_LIBM
|
|
|
|
/* Define to 1 if you have the `mcheck' library (-lmcheck). */
|
|
#undef HAVE_LIBMCHECK
|
|
|
|
/* Define if you have the mpfr library. */
|
|
#undef HAVE_LIBMPFR
|
|
|
|
/* Define if Python 2.4 is being used. */
|
|
#undef HAVE_LIBPYTHON2_4
|
|
|
|
/* Define if Python 2.5 is being used. */
|
|
#undef HAVE_LIBPYTHON2_5
|
|
|
|
/* Define if Python 2.6 is being used. */
|
|
#undef HAVE_LIBPYTHON2_6
|
|
|
|
/* Define if Python 2.7 is being used. */
|
|
#undef HAVE_LIBPYTHON2_7
|
|
|
|
/* Define to 1 if you have the <libunwind-ia64.h> header file. */
|
|
#undef HAVE_LIBUNWIND_IA64_H
|
|
|
|
/* Define to 1 if you have the <linux/perf_event.h> header file. */
|
|
#undef HAVE_LINUX_PERF_EVENT_H
|
|
|
|
/* Define to 1 if you have the <locale.h> header file. */
|
|
#undef HAVE_LOCALE_H
|
|
|
|
/* Define to 1 if the compiler supports long double. */
|
|
#undef HAVE_LONG_DOUBLE
|
|
|
|
/* Define to 1 if the system has the type `long long'. */
|
|
#undef HAVE_LONG_LONG
|
|
|
|
/* Define if <sys/procfs.h> has lwpid_t. */
|
|
#undef HAVE_LWPID_T
|
|
|
|
/* Define to 1 if you have the <machine/reg.h> header file. */
|
|
#undef HAVE_MACHINE_REG_H
|
|
|
|
/* Define to 1 if you have the <memory.h> header file. */
|
|
#undef HAVE_MEMORY_H
|
|
|
|
/* Define to 1 if you have the `mkdtemp' function. */
|
|
#undef HAVE_MKDTEMP
|
|
|
|
/* Define to 1 if you have a working `mmap' system call. */
|
|
#undef HAVE_MMAP
|
|
|
|
/* Define to 1 if you have the `monstartup' function. */
|
|
#undef HAVE_MONSTARTUP
|
|
|
|
/* Define to 1 if you have the <ncursesw/ncurses.h> header file. */
|
|
#undef HAVE_NCURSESW_NCURSES_H
|
|
|
|
/* Define to 1 if you have the <ncurses.h> header file. */
|
|
#undef HAVE_NCURSES_H
|
|
|
|
/* Define to 1 if you have the <ncurses/ncurses.h> header file. */
|
|
#undef HAVE_NCURSES_NCURSES_H
|
|
|
|
/* Define to 1 if you have the <ncurses/term.h> header file. */
|
|
#undef HAVE_NCURSES_TERM_H
|
|
|
|
/* Define to 1 if you have the <nlist.h> header file. */
|
|
#undef HAVE_NLIST_H
|
|
|
|
/* Define if you support the personality syscall. */
|
|
#undef HAVE_PERSONALITY
|
|
|
|
/* Define to 1 if you have the `pipe' function. */
|
|
#undef HAVE_PIPE
|
|
|
|
/* Define to 1 if you have the `pipe2' function. */
|
|
#undef HAVE_PIPE2
|
|
|
|
/* Define to 1 if you have the `poll' function. */
|
|
#undef HAVE_POLL
|
|
|
|
/* Define to 1 if you have the <poll.h> header file. */
|
|
#undef HAVE_POLL_H
|
|
|
|
/* Define to 1 if you have the `posix_madvise' function. */
|
|
#undef HAVE_POSIX_MADVISE
|
|
|
|
/* Define to 1 if you have the `pread' function. */
|
|
#undef HAVE_PREAD
|
|
|
|
/* Define to 1 if you have the `pread64' function. */
|
|
#undef HAVE_PREAD64
|
|
|
|
/* Define if <sys/procfs.h> has prfpregset_t. */
|
|
#undef HAVE_PRFPREGSET_T
|
|
|
|
/* Define if <sys/procfs.h> has prgregset32_t. */
|
|
#undef HAVE_PRGREGSET32_T
|
|
|
|
/* Define if <sys/procfs.h> has prgregset_t. */
|
|
#undef HAVE_PRGREGSET_T
|
|
|
|
/* Define to 1 if you have the <proc_service.h> header file. */
|
|
#undef HAVE_PROC_SERVICE_H
|
|
|
|
/* Define if <sys/procfs.h> has psaddr_t. */
|
|
#undef HAVE_PSADDR_T
|
|
|
|
/* Define to 1 if you have the `ptrace64' function. */
|
|
#undef HAVE_PTRACE64
|
|
|
|
/* Define if sys/ptrace.h defines the PTRACE_GETFPXREGS request. */
|
|
#undef HAVE_PTRACE_GETFPXREGS
|
|
|
|
/* Define if sys/ptrace.h defines the PTRACE_GETREGS request. */
|
|
#undef HAVE_PTRACE_GETREGS
|
|
|
|
/* Define to 1 if you have the <ptrace.h> header file. */
|
|
#undef HAVE_PTRACE_H
|
|
|
|
/* Define if sys/ptrace.h defines the PT_GETDBREGS request. */
|
|
#undef HAVE_PT_GETDBREGS
|
|
|
|
/* Define if sys/ptrace.h defines the PT_GETXMMREGS request. */
|
|
#undef HAVE_PT_GETXMMREGS
|
|
|
|
/* Define to 1 if you have the `pt_insn_event' function. */
|
|
#undef HAVE_PT_INSN_EVENT
|
|
|
|
/* Define to 1 if you have the `pwrite' function. */
|
|
#undef HAVE_PWRITE
|
|
|
|
/* Define if Python interpreter is being linked in. */
|
|
#undef HAVE_PYTHON
|
|
|
|
/* Define to 1 if you have the `resize_term' function. */
|
|
#undef HAVE_RESIZE_TERM
|
|
|
|
/* Define to 1 if you have the `sbrk' function. */
|
|
#undef HAVE_SBRK
|
|
|
|
/* Define to 1 if you have the `scm_new_smob' function. */
|
|
#undef HAVE_SCM_NEW_SMOB
|
|
|
|
/* Define to 1 if you have the `setlocale' function. */
|
|
#undef HAVE_SETLOCALE
|
|
|
|
/* Define to 1 if you have the `setns' function. */
|
|
#undef HAVE_SETNS
|
|
|
|
/* Define to 1 if you have the `setpgid' function. */
|
|
#undef HAVE_SETPGID
|
|
|
|
/* Define to 1 if you have the `setpgrp' function. */
|
|
#undef HAVE_SETPGRP
|
|
|
|
/* Define to 1 if you have the `setrlimit' function. */
|
|
#undef HAVE_SETRLIMIT
|
|
|
|
/* Define to 1 if you have the `setsid' function. */
|
|
#undef HAVE_SETSID
|
|
|
|
/* Define to 1 if you have the `sigaction' function. */
|
|
#undef HAVE_SIGACTION
|
|
|
|
/* Define to 1 if you have the `sigaltstack' function. */
|
|
#undef HAVE_SIGALTSTACK
|
|
|
|
/* Define to 1 if you have the <signal.h> header file. */
|
|
#undef HAVE_SIGNAL_H
|
|
|
|
/* Define to 1 if you have the `sigprocmask' function. */
|
|
#undef HAVE_SIGPROCMASK
|
|
|
|
/* Define if sigsetjmp is available. */
|
|
#undef HAVE_SIGSETJMP
|
|
|
|
/* Define to 1 if you have the `sigsetmask' function. */
|
|
#undef HAVE_SIGSETMASK
|
|
|
|
/* Define to 1 if you have the `socketpair' function. */
|
|
#undef HAVE_SOCKETPAIR
|
|
|
|
/* Define to 1 if the system has the type `socklen_t'. */
|
|
#undef HAVE_SOCKLEN_T
|
|
|
|
/* Define to 1 if you have the <stdint.h> header file. */
|
|
#undef HAVE_STDINT_H
|
|
|
|
/* Define to 1 if you have the <stdlib.h> header file. */
|
|
#undef HAVE_STDLIB_H
|
|
|
|
/* Define to 1 if you have the <strings.h> header file. */
|
|
#undef HAVE_STRINGS_H
|
|
|
|
/* Define to 1 if you have the <string.h> header file. */
|
|
#undef HAVE_STRING_H
|
|
|
|
/* Define to 1 if your system has struct lwp. */
|
|
#undef HAVE_STRUCT_LWP
|
|
|
|
/* Define to 1 if `struct ptrace_lwpinfo' is a member of `pl_syscall_code'. */
|
|
#undef HAVE_STRUCT_PTRACE_LWPINFO_PL_SYSCALL_CODE
|
|
|
|
/* Define to 1 if `struct ptrace_lwpinfo' is a member of `pl_tdname'. */
|
|
#undef HAVE_STRUCT_PTRACE_LWPINFO_PL_TDNAME
|
|
|
|
/* Define to 1 if `struct pt_insn' is a member of `enabled'. */
|
|
#undef HAVE_STRUCT_PT_INSN_ENABLED
|
|
|
|
/* Define to 1 if `struct pt_insn' is a member of `resynced'. */
|
|
#undef HAVE_STRUCT_PT_INSN_RESYNCED
|
|
|
|
/* Define to 1 if your system has struct reg in <machine/reg.h>. */
|
|
#undef HAVE_STRUCT_REG
|
|
|
|
/* Define to 1 if `struct reg' is a member of `r_fs'. */
|
|
#undef HAVE_STRUCT_REG_R_FS
|
|
|
|
/* Define to 1 if `struct reg' is a member of `r_gs'. */
|
|
#undef HAVE_STRUCT_REG_R_GS
|
|
|
|
/* Define to 1 if `struct stat' is a member of `st_blksize'. */
|
|
#undef HAVE_STRUCT_STAT_ST_BLKSIZE
|
|
|
|
/* Define to 1 if `struct stat' is a member of `st_blocks'. */
|
|
#undef HAVE_STRUCT_STAT_ST_BLOCKS
|
|
|
|
/* Define to 1 if `struct thread' is a member of `td_pcb'. */
|
|
#undef HAVE_STRUCT_THREAD_TD_PCB
|
|
|
|
/* Define to 1 if `struct user_regs_struct' is a member of `fs_base'. */
|
|
#undef HAVE_STRUCT_USER_REGS_STRUCT_FS_BASE
|
|
|
|
/* Define to 1 if `struct user_regs_struct' is a member of `gs_base'. */
|
|
#undef HAVE_STRUCT_USER_REGS_STRUCT_GS_BASE
|
|
|
|
/* Define to 1 if you have the <sys/debugreg.h> header file. */
|
|
#undef HAVE_SYS_DEBUGREG_H
|
|
|
|
/* Define to 1 if you have the <sys/file.h> header file. */
|
|
#undef HAVE_SYS_FILE_H
|
|
|
|
/* Define to 1 if you have the <sys/filio.h> header file. */
|
|
#undef HAVE_SYS_FILIO_H
|
|
|
|
/* Define to 1 if you have the <sys/ioctl.h> header file. */
|
|
#undef HAVE_SYS_IOCTL_H
|
|
|
|
/* Define to 1 if you have the <sys/param.h> header file. */
|
|
#undef HAVE_SYS_PARAM_H
|
|
|
|
/* Define to 1 if you have the <sys/poll.h> header file. */
|
|
#undef HAVE_SYS_POLL_H
|
|
|
|
/* Define to 1 if you have the <sys/procfs.h> header file. */
|
|
#undef HAVE_SYS_PROCFS_H
|
|
|
|
/* Define to 1 if you have the <sys/ptrace.h> header file. */
|
|
#undef HAVE_SYS_PTRACE_H
|
|
|
|
/* Define to 1 if you have the <sys/reg.h> header file. */
|
|
#undef HAVE_SYS_REG_H
|
|
|
|
/* Define to 1 if you have the <sys/resource.h> header file. */
|
|
#undef HAVE_SYS_RESOURCE_H
|
|
|
|
/* Define to 1 if you have the <sys/select.h> header file. */
|
|
#undef HAVE_SYS_SELECT_H
|
|
|
|
/* Define to 1 if you have the <sys/socket.h> header file. */
|
|
#undef HAVE_SYS_SOCKET_H
|
|
|
|
/* Define to 1 if you have the <sys/stat.h> header file. */
|
|
#undef HAVE_SYS_STAT_H
|
|
|
|
/* Define to 1 if you have the <sys/types.h> header file. */
|
|
#undef HAVE_SYS_TYPES_H
|
|
|
|
/* Define to 1 if you have the <sys/un.h> header file. */
|
|
#undef HAVE_SYS_UN_H
|
|
|
|
/* Define to 1 if you have the <sys/user.h> header file. */
|
|
#undef HAVE_SYS_USER_H
|
|
|
|
/* Define to 1 if you have the <sys/wait.h> header file. */
|
|
#undef HAVE_SYS_WAIT_H
|
|
|
|
/* Define to 1 if you have the <termios.h> header file. */
|
|
#undef HAVE_TERMIOS_H
|
|
|
|
/* Define to 1 if you have the <term.h> header file. */
|
|
#undef HAVE_TERM_H
|
|
|
|
/* Define to 1 if you have the <thread_db.h> header file. */
|
|
#undef HAVE_THREAD_DB_H
|
|
|
|
/* Define to 1 if you have the `ttrace' function. */
|
|
#undef HAVE_TTRACE
|
|
|
|
/* Define to 1 if you have the <unistd.h> header file. */
|
|
#undef HAVE_UNISTD_H
|
|
|
|
/* Define to 1 if you have the `vfork' function. */
|
|
#undef HAVE_VFORK
|
|
|
|
/* Define to 1 if you have the <vfork.h> header file. */
|
|
#undef HAVE_VFORK_H
|
|
|
|
/* Define to 1 if you have the `waitpid' function. */
|
|
#undef HAVE_WAITPID
|
|
|
|
/* Define to 1 if you have the <wait.h> header file. */
|
|
#undef HAVE_WAIT_H
|
|
|
|
/* Define to 1 if you have the `wborder' function. */
|
|
#undef HAVE_WBORDER
|
|
|
|
/* Define to 1 if you have the <windows.h> header file. */
|
|
#undef HAVE_WINDOWS_H
|
|
|
|
/* Define to 1 if `fork' works. */
|
|
#undef HAVE_WORKING_FORK
|
|
|
|
/* Define to 1 if `vfork' works. */
|
|
#undef HAVE_WORKING_VFORK
|
|
|
|
/* Define to 1 if you have the `wresize' function. */
|
|
#undef HAVE_WRESIZE
|
|
|
|
/* Define to 1 if you have the `XML_StopParser' function. */
|
|
#undef HAVE_XML_STOPPARSER
|
|
|
|
/* Define to 1 if your system has the _etext variable. */
|
|
#undef HAVE__ETEXT
|
|
|
|
/* Define to 1 if you have the `_mcleanup' function. */
|
|
#undef HAVE__MCLEANUP
|
|
|
|
/* Path of directory of iconv program. */
|
|
#undef ICONV_BIN
|
|
|
|
/* Define if the iconv directory should be relocated when GDB is moved. */
|
|
#undef ICONV_BIN_RELOCATABLE
|
|
|
|
/* Define as const if the declaration of iconv() needs const. */
|
|
#undef ICONV_CONST
|
|
|
|
/* directory to load the JIT readers from */
|
|
#undef JIT_READER_DIR
|
|
|
|
/* Define if the jit-reader-dir directory should be relocated when GDB is
|
|
moved. */
|
|
#undef JIT_READER_DIR_RELOCATABLE
|
|
|
|
/* Name of this package. */
|
|
#undef PACKAGE
|
|
|
|
/* Define to the address where bug reports for this package should be sent. */
|
|
#undef PACKAGE_BUGREPORT
|
|
|
|
/* Define to the full name of this package. */
|
|
#undef PACKAGE_NAME
|
|
|
|
/* Define to the full name and version of this package. */
|
|
#undef PACKAGE_STRING
|
|
|
|
/* Define to the one symbol short name of this package. */
|
|
#undef PACKAGE_TARNAME
|
|
|
|
/* Define to the home page for this package. */
|
|
#undef PACKAGE_URL
|
|
|
|
/* Define to the version of this package. */
|
|
#undef PACKAGE_VERSION
|
|
|
|
/* Additional package description */
|
|
#undef PKGVERSION
|
|
|
|
/* Define if the prfpregset_t type is broken. */
|
|
#undef PRFPREGSET_T_BROKEN
|
|
|
|
/* Define to 1 if the "%H, %D and %DD" formats work to print decfloats. */
|
|
#undef PRINTF_HAS_DECFLOAT
|
|
|
|
/* Define to 1 if the "%Lg" format works to print long doubles. */
|
|
#undef PRINTF_HAS_LONG_DOUBLE
|
|
|
|
/* Define to 1 if the "%ll" format works to print long longs. */
|
|
#undef PRINTF_HAS_LONG_LONG
|
|
|
|
/* Define to the type of arg 1 for ptrace. */
|
|
#undef PTRACE_TYPE_ARG1
|
|
|
|
/* Define to the type of arg 3 for ptrace. */
|
|
#undef PTRACE_TYPE_ARG3
|
|
|
|
/* Define to the type of arg 4 for ptrace. */
|
|
#undef PTRACE_TYPE_ARG4
|
|
|
|
/* Define to the type of arg 5 for ptrace. */
|
|
#undef PTRACE_TYPE_ARG5
|
|
|
|
/* Define as the return type of ptrace. */
|
|
#undef PTRACE_TYPE_RET
|
|
|
|
/* Define if the python directory should be relocated when GDB is moved. */
|
|
#undef PYTHON_PATH_RELOCATABLE
|
|
|
|
/* Relocated directory for source files. */
|
|
#undef RELOC_SRCDIR
|
|
|
|
/* Bug reporting address */
|
|
#undef REPORT_BUGS_TO
|
|
|
|
/* Define to 1 if the "%Lg" format works to scan long doubles. */
|
|
#undef SCANF_HAS_LONG_DOUBLE
|
|
|
|
/* Define to 1 if the `setpgrp' function takes no argument. */
|
|
#undef SETPGRP_VOID
|
|
|
|
/* The size of `long', as computed by sizeof. */
|
|
#undef SIZEOF_LONG
|
|
|
|
/* The size of `long long', as computed by sizeof. */
|
|
#undef SIZEOF_LONG_LONG
|
|
|
|
/* The size of `unsigned long', as computed by sizeof. */
|
|
#undef SIZEOF_UNSIGNED_LONG
|
|
|
|
/* The size of `unsigned long long', as computed by sizeof. */
|
|
#undef SIZEOF_UNSIGNED_LONG_LONG
|
|
|
|
/* The size of `unsigned __int128', as computed by sizeof. */
|
|
#undef SIZEOF_UNSIGNED___INT128
|
|
|
|
/* If using the C implementation of alloca, define if you know the
|
|
direction of stack growth for your system; otherwise it will be
|
|
automatically deduced at runtime.
|
|
STACK_DIRECTION > 0 => grows toward higher addresses
|
|
STACK_DIRECTION < 0 => grows toward lower addresses
|
|
STACK_DIRECTION = 0 => direction of growth unknown */
|
|
#undef STACK_DIRECTION
|
|
|
|
/* Define to 1 if you have the ANSI C header files. */
|
|
#undef STDC_HEADERS
|
|
|
|
/* automatically load a system-wide gdbinit file */
|
|
#undef SYSTEM_GDBINIT
|
|
|
|
/* Define if the system-gdbinit directory should be relocated when GDB is
|
|
moved. */
|
|
#undef SYSTEM_GDBINIT_RELOCATABLE
|
|
|
|
/* search for usr/lib et al within DIR */
|
|
#undef TARGET_SYSTEM_ROOT
|
|
|
|
/* Define if the sysroot directory should be relocated when GDB is moved. */
|
|
#undef TARGET_SYSTEM_ROOT_RELOCATABLE
|
|
|
|
/* Define if <thread_db.h> has the TD_NOTALLOC error code. */
|
|
#undef THREAD_DB_HAS_TD_NOTALLOC
|
|
|
|
/* Define if <thread_db.h> has the TD_NOTLS error code. */
|
|
#undef THREAD_DB_HAS_TD_NOTLS
|
|
|
|
/* Define if <thread_db.h> has the TD_VERSION error code. */
|
|
#undef THREAD_DB_HAS_TD_VERSION
|
|
|
|
/* Define to 1 if the regex included in libiberty should be used. */
|
|
#undef USE_INCLUDED_REGEX
|
|
|
|
/* Enable extensions on AIX 3, Interix. */
|
|
#ifndef _ALL_SOURCE
|
|
# undef _ALL_SOURCE
|
|
#endif
|
|
/* Enable GNU extensions on systems that have them. */
|
|
#ifndef _GNU_SOURCE
|
|
# undef _GNU_SOURCE
|
|
#endif
|
|
/* Enable threading extensions on Solaris. */
|
|
#ifndef _POSIX_PTHREAD_SEMANTICS
|
|
# undef _POSIX_PTHREAD_SEMANTICS
|
|
#endif
|
|
/* Enable extensions on HP NonStop. */
|
|
#ifndef _TANDEM_SOURCE
|
|
# undef _TANDEM_SOURCE
|
|
#endif
|
|
/* Enable general extensions on Solaris. */
|
|
#ifndef __EXTENSIONS__
|
|
# undef __EXTENSIONS__
|
|
#endif
|
|
|
|
|
|
/* Define if we should use the Windows API, instead of the POSIX API. On
|
|
Windows, we use the Windows API when building for MinGW, but the POSIX API
|
|
when building for Cygwin. */
|
|
#undef USE_WIN32API
|
|
|
|
/* Define if the PPC simulator is being linked in. */
|
|
#undef WITH_PPC_SIM
|
|
|
|
/* Define if --with-python provides a path, either directly or via
|
|
python-config.py --exec-prefix. */
|
|
#undef WITH_PYTHON_PATH
|
|
|
|
/* Define if the simulator is being linked in. */
|
|
#undef WITH_SIM
|
|
|
|
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
|
|
significant byte first (like Motorola and SPARC, unlike Intel). */
|
|
#if defined AC_APPLE_UNIVERSAL_BUILD
|
|
# if defined __BIG_ENDIAN__
|
|
# define WORDS_BIGENDIAN 1
|
|
# endif
|
|
#else
|
|
# ifndef WORDS_BIGENDIAN
|
|
# undef WORDS_BIGENDIAN
|
|
# endif
|
|
#endif
|
|
|
|
/* Number of bits in a file offset, on hosts where this is settable. */
|
|
#undef _FILE_OFFSET_BITS
|
|
|
|
/* Define for large files, on AIX-style hosts. */
|
|
#undef _LARGE_FILES
|
|
|
|
/* Define to 1 if on MINIX. */
|
|
#undef _MINIX
|
|
|
|
/* Define to 2 if the system does not provide POSIX.1 features except with
|
|
this defined. */
|
|
#undef _POSIX_1_SOURCE
|
|
|
|
/* Define to 1 if you need to in order for `stat' and other things to work. */
|
|
#undef _POSIX_SOURCE
|
|
|
|
/* Define to empty if `const' does not conform to ANSI C. */
|
|
#undef const
|
|
|
|
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
|
calls it, or to nothing if 'inline' is not supported under any name. */
|
|
#ifndef __cplusplus
|
|
#undef inline
|
|
#endif
|
|
|
|
/* Define to `int' if <sys/types.h> does not define. */
|
|
#undef pid_t
|
|
|
|
/* Define as `fork' if `vfork' does not work. */
|
|
#undef vfork
|