diff options
-rw-r--r-- | gdb/gdbserver/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/gdbserver/config.in | 6 | ||||
-rwxr-xr-x | gdb/gdbserver/configure | 26 | ||||
-rw-r--r-- | gdb/gdbserver/configure.ac | 7 |
4 files changed, 46 insertions, 0 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index d3fba9b..79fe2f9 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,10 @@ +2017-01-27 Walfred Tedeschi <walfred.tedeschi@intel.com> + + * configure.ac: Check if the fs_base and gs_base members of + `struct user_regs_struct' exist. + * config.in: Regenerated. + * configure: Likewise. + 2017-01-09 Antoine Tremblay <antoine.tremblay@ericsson.com> * linux-aarch32-low.c (arm_breakpoint_kind_from_pc): Use diff --git a/gdb/gdbserver/config.in b/gdb/gdbserver/config.in index b721ea8..34a7443 100644 --- a/gdb/gdbserver/config.in +++ b/gdb/gdbserver/config.in @@ -238,6 +238,12 @@ /* Define to 1 if `struct stat' is a member of `st_blocks'. */ #undef HAVE_STRUCT_STAT_ST_BLOCKS +/* 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 the target supports __sync_*_compare_and_swap */ #undef HAVE_SYNC_BUILTINS diff --git a/gdb/gdbserver/configure b/gdb/gdbserver/configure index 53c26f3..6ae4865 100755 --- a/gdb/gdbserver/configure +++ b/gdb/gdbserver/configure @@ -7498,6 +7498,32 @@ _ACEOF fi +# See if <sys/user.h> supports the %fs_base and %gs_base amd64 segment +# registers. Older amd64 Linux's don't have the fs_base and gs_base +# members of `struct user_regs_struct'. +ac_fn_c_check_member "$LINENO" "struct user_regs_struct" "fs_base" "ac_cv_member_struct_user_regs_struct_fs_base" "#include <sys/user.h> +" +if test "x$ac_cv_member_struct_user_regs_struct_fs_base" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_USER_REGS_STRUCT_FS_BASE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct user_regs_struct" "gs_base" "ac_cv_member_struct_user_regs_struct_gs_base" "#include <sys/user.h> +" +if test "x$ac_cv_member_struct_user_regs_struct_gs_base" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_USER_REGS_STRUCT_GS_BASE 1 +_ACEOF + + +fi + + + ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" "#include <sys/types.h> #include <sys/socket.h> diff --git a/gdb/gdbserver/configure.ac b/gdb/gdbserver/configure.ac index d013c21..4ea7913 100644 --- a/gdb/gdbserver/configure.ac +++ b/gdb/gdbserver/configure.ac @@ -163,6 +163,13 @@ AC_CHECK_DECLS([strerror, perror, vasprintf, vsnprintf]) AC_CHECK_MEMBERS([struct stat.st_blocks, struct stat.st_blksize]) +# See if <sys/user.h> supports the %fs_base and %gs_bas amd64 segment registers. +# Older amd64 Linux's don't have the fs_base and gs_base members of +# `struct user_regs_struct'. +AC_CHECK_MEMBERS([struct user_regs_struct.fs_base, struct user_regs_struct.gs_base], + [], [], [#include <sys/user.h>]) + + AC_CHECK_TYPES(socklen_t, [], [], [#include <sys/types.h> #include <sys/socket.h> |