123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- From db3aaeda1d6b156100d969edb8c0e674bca6b201 Mon Sep 17 00:00:00 2001
- From: Tom Tromey <tromey@adacore.com>
- Date: Wed, 12 May 2021 12:39:22 -0600
- Subject: [PATCH] Fix build on rhES5
- The rhES5 build failed due to an upstream import a while back. The
- bug here is that, while the 'personality' function exists,
- ADDR_NO_RANDOMIZE is only defined in <linux/personality.h>, not
- <sys/personality.h>.
- However, <linux/personality.h> does not declare the 'personality'
- function, and <sys/personality.h> and <linux/personality.h> cannot
- both be included.
- This patch restores one of the removed configure checks and updates
- the code to check it.
- We had this as a local patch at AdaCore, because it seemed like there
- was no interest upstream. However, now it turns out that this fixes
- PR build/28555, so I'm sending it now.
- [Upstream: https://sourceware.org/git?p=binutils-gdb.git;h=0b03c6f03d51f441d999e0cee92f81af543d9373]
- Signed-off-by: Peter Seiderer <ps.report@gmx.net>
- ---
- gdb/config.in | 4 ++++
- gdb/configure | 16 ++++++++++++++++
- gdb/nat/linux-personality.c | 4 ++++
- gdbserver/config.in | 4 ++++
- gdbserver/configure | 16 ++++++++++++++++
- gdbsupport/common.m4 | 5 +++++
- gdbsupport/config.in | 4 ++++
- gdbsupport/configure | 16 ++++++++++++++++
- 8 files changed, 69 insertions(+)
- diff --git a/gdb/config.in b/gdb/config.in
- index 2c30504..776bee9 100644
- --- a/gdb/config.in
- +++ b/gdb/config.in
- @@ -96,6 +96,10 @@
- /* 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
- diff --git a/gdb/configure b/gdb/configure
- index 5d89635..27e3194 100755
- --- a/gdb/configure
- +++ b/gdb/configure
- @@ -13838,6 +13838,22 @@ fi
- done
-
-
- + # This is needed for RHEL 5 and uclibc-ng < 1.0.39.
- + # These did not define ADDR_NO_RANDOMIZE in sys/personality.h,
- + # only in linux/personality.h.
- + ac_fn_c_check_decl "$LINENO" "ADDR_NO_RANDOMIZE" "ac_cv_have_decl_ADDR_NO_RANDOMIZE" "#include <sys/personality.h>
- +"
- +if test "x$ac_cv_have_decl_ADDR_NO_RANDOMIZE" = xyes; then :
- + ac_have_decl=1
- +else
- + ac_have_decl=0
- +fi
- +
- +cat >>confdefs.h <<_ACEOF
- +#define HAVE_DECL_ADDR_NO_RANDOMIZE $ac_have_decl
- +_ACEOF
- +
- +
- ac_fn_c_check_decl "$LINENO" "strstr" "ac_cv_have_decl_strstr" "$ac_includes_default"
- if test "x$ac_cv_have_decl_strstr" = xyes; then :
- ac_have_decl=1
- diff --git a/gdb/nat/linux-personality.c b/gdb/nat/linux-personality.c
- index 9ce345b..27999fd 100644
- --- a/gdb/nat/linux-personality.c
- +++ b/gdb/nat/linux-personality.c
- @@ -22,6 +22,10 @@
-
- #include <sys/personality.h>
-
- +# if !HAVE_DECL_ADDR_NO_RANDOMIZE
- +# define ADDR_NO_RANDOMIZE 0x0040000
- +# endif /* ! HAVE_DECL_ADDR_NO_RANDOMIZE */
- +
- /* See comment on nat/linux-personality.h. */
-
- maybe_disable_address_space_randomization::
- diff --git a/gdbserver/config.in b/gdbserver/config.in
- index cf06c56..c9258b3 100644
- --- a/gdbserver/config.in
- +++ b/gdbserver/config.in
- @@ -31,6 +31,10 @@
- /* 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
- diff --git a/gdbserver/configure b/gdbserver/configure
- index b227167..d399d71 100755
- --- a/gdbserver/configure
- +++ b/gdbserver/configure
- @@ -7131,6 +7131,22 @@ fi
- done
-
-
- + # This is needed for RHEL 5 and uclibc-ng < 1.0.39.
- + # These did not define ADDR_NO_RANDOMIZE in sys/personality.h,
- + # only in linux/personality.h.
- + ac_fn_c_check_decl "$LINENO" "ADDR_NO_RANDOMIZE" "ac_cv_have_decl_ADDR_NO_RANDOMIZE" "#include <sys/personality.h>
- +"
- +if test "x$ac_cv_have_decl_ADDR_NO_RANDOMIZE" = xyes; then :
- + ac_have_decl=1
- +else
- + ac_have_decl=0
- +fi
- +
- +cat >>confdefs.h <<_ACEOF
- +#define HAVE_DECL_ADDR_NO_RANDOMIZE $ac_have_decl
- +_ACEOF
- +
- +
- ac_fn_c_check_decl "$LINENO" "strstr" "ac_cv_have_decl_strstr" "$ac_includes_default"
- if test "x$ac_cv_have_decl_strstr" = xyes; then :
- ac_have_decl=1
- diff --git a/gdbsupport/common.m4 b/gdbsupport/common.m4
- index 901c454..56a355e 100644
- --- a/gdbsupport/common.m4
- +++ b/gdbsupport/common.m4
- @@ -55,6 +55,11 @@ AC_DEFUN([GDB_AC_COMMON], [
- ptrace64 sbrk setns sigaltstack sigprocmask \
- setpgid setpgrp getrusage getauxval sigtimedwait])
-
- + # This is needed for RHEL 5 and uclibc-ng < 1.0.39.
- + # These did not define ADDR_NO_RANDOMIZE in sys/personality.h,
- + # only in linux/personality.h.
- + AC_CHECK_DECLS([ADDR_NO_RANDOMIZE],,, [#include <sys/personality.h>])
- +
- AC_CHECK_DECLS([strstr])
-
- # ----------------------- #
- diff --git a/gdbsupport/config.in b/gdbsupport/config.in
- index f46e261..6945a62 100644
- --- a/gdbsupport/config.in
- +++ b/gdbsupport/config.in
- @@ -28,6 +28,10 @@
- /* 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
- diff --git a/gdbsupport/configure b/gdbsupport/configure
- index a9dd02c..243a03f 100755
- --- a/gdbsupport/configure
- +++ b/gdbsupport/configure
- @@ -8144,6 +8144,22 @@ fi
- done
-
-
- + # This is needed for RHEL 5 and uclibc-ng < 1.0.39.
- + # These did not define ADDR_NO_RANDOMIZE in sys/personality.h,
- + # only in linux/personality.h.
- + ac_fn_c_check_decl "$LINENO" "ADDR_NO_RANDOMIZE" "ac_cv_have_decl_ADDR_NO_RANDOMIZE" "#include <sys/personality.h>
- +"
- +if test "x$ac_cv_have_decl_ADDR_NO_RANDOMIZE" = xyes; then :
- + ac_have_decl=1
- +else
- + ac_have_decl=0
- +fi
- +
- +cat >>confdefs.h <<_ACEOF
- +#define HAVE_DECL_ADDR_NO_RANDOMIZE $ac_have_decl
- +_ACEOF
- +
- +
- ac_fn_c_check_decl "$LINENO" "strstr" "ac_cv_have_decl_strstr" "$ac_includes_default"
- if test "x$ac_cv_have_decl_strstr" = xyes; then :
- ac_have_decl=1
- --
- 2.33.1
|