binutils-gdb/gdbsupport
Pedro Alves 4655f8509f Don't run personality syscall at configure time; don't check it at all
Currently, in order to tell whether support for disabling address
space randomization on Linux is available, GDB checks if the
personality syscall works, at configure time.  I.e., it does a run
test, instead of a compile/link test:

  AC_RUN_IFELSE([PERSONALITY_TEST],
		[have_personality=true],
		[have_personality=false],

This is a bit bogus, because the machine the build is done on may not
(and is when you consider distro gdbs) be the machine that eventually
runs gdb.  It would be better if this were a compile/link test
instead, and then at runtime, GDB coped with the personality syscall
failing.  Actually, GDB already copes.

One environment where this is problematic is building GDB in a Docker
container -- by default, Docker runs the container with seccomp, with
a profile that disables the personality syscall.  You can tell Docker
to use a less restricted seccomp profile, but I think we should just
fix it in GDB.

"man 2 personality" says:

       This system call first appeared in Linux 1.1.20 (and thus first
       in a stable kernel release with Linux 1.2.0); library support
       was added in glibc 2.3.

...

       ADDR_NO_RANDOMIZE (since Linux 2.6.12)
              With this flag set, disable address-space-layout randomization.

glibc 2.3 was released in 2002.
Linux 2.6.12 was released in 2005.

The original patch that added the configure checks was submitted in
2008.  The first version of the patch that was submitted to the list
called personality from common code:

 https://sourceware.org/pipermail/gdb-patches/2008-June/058204.html

and then was moved to Linux-specific code:

 https://sourceware.org/pipermail/gdb-patches/2008-June/058209.html

Since HAVE_PERSONALITY is only checked in Linux code, and
ADDR_NO_RANDOMIZE exists for over 15 years, I propose just completely
removing the configure checks.

If for some odd reason, some remotely modern system still needs a
configure check, then we can revert this commit but drop the
AC_RUN_IFELSE in favor of always doing the AC_LINK_IFELSE
cross-compile fallback.

gdb/ChangeLog:

	* linux-nat.c (linux_nat_target::supports_disable_randomization):
	Remove references to HAVE_PERSONALITY.
	* nat/linux-personality.c: Remove references to HAVE_PERSONALITY.
	(maybe_disable_address_space_randomization)
	(~maybe_disable_address_space_randomizatio): Remove references to
	HAVE_PERSONALITY.
	* config.in, configure: Regenerate.

gdbserver/ChangeLog:

	* linux-low.cc:
	(linux_process_target::supports_disable_randomization): Remove
	reference to HAVE_PERSONALITY.
	* config.in, configure: Regenerate.

gdbsupport/ChangeLog:

	* common.m4 (personality test): Remove.
2021-05-08 13:45:36 +01:00
..
.dir-locals.el Update copyright year range in all GDB files 2021-01-01 12:12:21 +04: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 Don't run personality syscall at configure time; don't check it at all 2021-05-08 13:45:36 +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 Don't run personality syscall at configure time; don't check it at all 2021-05-08 13:45:36 +01:00
config.in Require kinfo_get_file and kinfo_get_vmmap for FreeBSD hosts. 2020-09-16 11:40:05 -07:00
configure gdbsupport: replace AC_TRY_COMPILE in common.m4 2020-10-31 08:31:00 -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 Update copyright year range in all GDB files 2021-01-01 12:12:21 +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_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.