binutils-gdb/gdbsupport
Simon Marchi 99624310dd gdb: fall back on sigpending + sigwait if sigtimedwait is not available
The macOS platform does not provide sigtimedwait, so we get:

      CXX    compile/compile.o
    In file included from /Users/smarchi/src/binutils-gdb/gdb/compile/compile.c:46:
    /Users/smarchi/src/binutils-gdb/gdb/../gdbsupport/scoped_ignore_signal.h:69:4: error: use of undeclared identifier 'sigtimedwait'
              sigtimedwait (&set, nullptr, &zero_timeout);
              ^

An alternative to sigtimedwait with a timeout of 0 is to use sigpending,
to first check which signals are pending, and then sigwait, to consume
them.  Since that's slightly more expensive (2 syscalls instead of 1),
keep using sigtimedwait for the platforms that provide it, and fall back
to sigpending + sigwait for the others.

gdbsupport/ChangeLog:

	* scoped_ignore_signal.h (struct scoped_ignore_signal)
	<~scoped_ignore_signal>: Use sigtimedwait if HAVE_SIGTIMEDWAIT
	is defined, else use sigpending + sigwait.

Change-Id: I2a72798337e81dd1bbd21214736a139dd350af87
Co-Authored-By: John Baldwin <jhb@FreeBSD.org>
2021-07-05 09:54:58 -04:00
..
.dir-locals.el gdb: additional settings for emacs in .dir-locals.el 2021-05-17 20:47:46 +01:00
.gitattributes gdb, gdbserver, gdbsupport: add .gitattributes files 2020-03-05 15:59:22 +01:00
acinclude.m4 gdb: move ptrace.m4 to gdbsupport 2020-10-25 21:08:49 -04:00
aclocal.m4 gdb: use AC_PROG_CC_STDC instead of AM_PROG_CC_STDC 2020-10-31 08:30:57 -04:00
agent.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
agent.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
alt-stack.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
array-view.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
ax.def Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
block-signals.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
break-common.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
btrace-common.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
btrace-common.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
buffer.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
buffer.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
byte-vector.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
ChangeLog scoped_ignore_signal: Use sigprocmask+sigtimedwait instead of signal 2021-06-17 16:22:12 +01:00
check-defines.el Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
cleanups.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
cleanups.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
common-debug.cc gdb: add remote_debug_printf 2021-01-22 12:43:27 -05:00
common-debug.h gdbsupport: allow passing format string to scoped_debug_start_end 2021-04-24 19:26:41 -04:00
common-defs.h gnulib: update to 776af40e0 2021-02-05 13:35:20 -05:00
common-exceptions.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
common-exceptions.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
common-gdbthread.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
common-inferior.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
common-inferior.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
common-regcache.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
common-regcache.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
common-types.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
common-utils.cc New memory-tag commands 2021-03-24 14:57:53 -03:00
common-utils.h New memory-tag commands 2021-03-24 14:57:53 -03:00
common.m4 gdbsupport/common.m4: check for sigtimedwait 2021-07-05 09:54:35 -04:00
config.in gdbsupport/common.m4: check for sigtimedwait 2021-07-05 09:54:35 -04:00
configure gdbsupport/common.m4: check for sigtimedwait 2021-07-05 09:54:35 -04:00
configure.ac Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
create-version.sh Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
def-vector.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
default-init-alloc.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
eintr.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
enum-flags.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
environ.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
environ.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
errors.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
errors.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
event-loop.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
event-loop.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
fileio.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
fileio.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
filestuff.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
filestuff.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
filtered-iterator.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
format.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
format.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
forward-scope-exit.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
function-view.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
gdb_assert.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
gdb_binary_search.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
gdb_locale.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
gdb_optional.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
gdb_proc_service.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
gdb_ref_ptr.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
gdb_select.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
gdb_setjmp.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
gdb_signals.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
gdb_splay_tree.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
gdb_string_view.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
gdb_string_view.tcc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
gdb_sys_time.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
gdb_tilde_expand.cc Improve gdb_tilde_expand logic. 2021-01-23 17:17:38 +00:00
gdb_tilde_expand.h Improve gdb_tilde_expand logic. 2021-01-23 17:17:38 +00:00
gdb_unique_ptr.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
gdb_unlinker.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
gdb_vecs.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
gdb_vecs.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
gdb_wait.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
gdb_wait.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
gdb-dlfcn.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
gdb-dlfcn.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
gdb-safe-ctype.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
gdb-sigmask.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
hash_enum.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
host-defs.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
job-control.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
job-control.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
Makefile.am Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
Makefile.in gdbsupport: re-generate configure & friends 2021-05-08 21:27:49 -04:00
netstuff.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
netstuff.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
new-op.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
next-iterator.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
observable.h gdbsupport: allow to specify dependencies between observers 2021-04-27 11:22:32 -04:00
offset-type.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
parallel-for.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
pathstuff.cc gdb: check for empty strings in get_standard_cache_dir/get_standard_config_dir 2021-01-08 13:46:56 -05:00
pathstuff.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
poison.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
preprocessor.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
print-utils.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
print-utils.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
ptid.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
ptid.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
ptrace.m4 Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
README
refcounted-object.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
rsp-low.cc New memory-tag commands 2021-03-24 14:57:53 -03:00
rsp-low.h New memory-tag commands 2021-03-24 14:57:53 -03:00
run-time-clock.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
run-time-clock.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
safe-iterator.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
safe-strerror.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
scope-exit.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
scoped_fd.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
scoped_ignore_signal.h gdb: fall back on sigpending + sigwait if sigtimedwait is not available 2021-07-05 09:54:58 -04:00
scoped_ignore_sigttou.h Don't call sigtimedwait for scoped_ignore_sigttou 2021-06-17 19:39:08 +01:00
scoped_mmap.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
scoped_mmap.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
scoped_restore.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
search.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
search.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
selftest.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
selftest.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
selftest.m4 Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
signals-state-save-restore.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
signals-state-save-restore.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
signals.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
symbol.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
tdesc.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
tdesc.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
thread-pool.cc Use rvalue reference in thread_pool::post_task 2021-04-30 10:04:56 -06:00
thread-pool.h Use rvalue reference in thread_pool::post_task 2021-04-30 10:04:56 -06:00
traits.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
underlying.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
valid-expr.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
version.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
warning.m4 Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
x86-xstate.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
xml-utils.cc Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00
xml-utils.h Update copyright year range in all GDB files 2021-01-01 12:12:21 +04:00

This is a helper library that is used by gdb and gdbserver.

To send patches, follow the gdb patch submission instructions in
../gdb/CONTRIBUTE.  For maintainers, see ../gdb/MAINTAINERS.