mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-23 10:03:47 +08:00
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.
This commit is contained in:
parent
469ca94170
commit
0b03c6f03d
@ -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
|
||||
|
16
gdb/configure
vendored
16
gdb/configure
vendored
@ -13863,6 +13863,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
|
||||
|
@ -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::
|
||||
|
@ -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
|
||||
|
16
gdbserver/configure
vendored
16
gdbserver/configure
vendored
@ -7139,6 +7139,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
|
||||
|
@ -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])
|
||||
|
||||
# ----------------------- #
|
||||
|
@ -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
|
||||
|
16
gdbsupport/configure
vendored
16
gdbsupport/configure
vendored
@ -8152,6 +8152,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
|
||||
|
Loading…
Reference in New Issue
Block a user