diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index d3fba9bfec6..79fe2f9703b 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,10 @@ +2017-01-27 Walfred Tedeschi + + * 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 * linux-aarch32-low.c (arm_breakpoint_kind_from_pc): Use diff --git a/gdb/gdbserver/config.in b/gdb/gdbserver/config.in index b721ea83cf1..34a74434338 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 53c26f39f43..6ae486539f4 100755 --- a/gdb/gdbserver/configure +++ b/gdb/gdbserver/configure @@ -7498,6 +7498,32 @@ _ACEOF fi +# See if 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 +" +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 +" +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 #include diff --git a/gdb/gdbserver/configure.ac b/gdb/gdbserver/configure.ac index d013c219cc7..4ea7913c981 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 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 ]) + + AC_CHECK_TYPES(socklen_t, [], [], [#include #include