aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/gdbserver/ChangeLog7
-rw-r--r--gdb/gdbserver/config.in6
-rwxr-xr-xgdb/gdbserver/configure26
-rw-r--r--gdb/gdbserver/configure.ac7
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>