From 12b164e9a96f75ffd030d04a7633dfbb64862806 Mon Sep 17 00:00:00 2001 From: Gary Benson Date: Mon, 1 Oct 2018 10:37:39 +0100 Subject: [PATCH] Remove ancient workaround This commit removes a workaround for a bug in glibc 2.1.3, which was released 2000-02-24 and superseded 2000-11-09. gdb/ChangeLog: * gdb_proc_service.h (gdb_prfpregset_t): Remove typedef. * proc-service.c (ps_lgetfpregs, ps_lsetfpregs): Use prfpregset_t instead of gdb_prfpregset_t. * configure.ac (PRFPREGSET_T_BROKEN): Remove check. * configure, config.in: Rebuild. --- gdb/ChangeLog | 8 ++++++++ gdb/config.in | 3 --- gdb/configure | 41 ----------------------------------------- gdb/configure.ac | 27 --------------------------- gdb/gdb_proc_service.h | 14 -------------- gdb/proc-service.c | 5 +++-- 6 files changed, 11 insertions(+), 87 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ce5f826748..12a04eec54 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2018-10-01 Gary Benson + + * gdb_proc_service.h (gdb_prfpregset_t): Remove typedef. + * proc-service.c (ps_lgetfpregs, ps_lsetfpregs): Use + prfpregset_t instead of gdb_prfpregset_t. + * configure.ac (PRFPREGSET_T_BROKEN): Remove check. + * configure, config.in: Rebuild. + 2018-10-01 Gary Benson * common/gdb_proc_service.h: New file, factored out from... diff --git a/gdb/config.in b/gdb/config.in index fc7c85923c..f0d1414352 100644 --- a/gdb/config.in +++ b/gdb/config.in @@ -622,9 +622,6 @@ /* Additional package description */ #undef PKGVERSION -/* Define if the prfpregset_t type is broken. */ -#undef PRFPREGSET_T_BROKEN - /* Define to 1 if the "%H, %D and %DD" formats work to print decfloats. */ #undef PRINTF_HAS_DECFLOAT diff --git a/gdb/configure b/gdb/configure index 4a725f666d..b7c4ff6f29 100755 --- a/gdb/configure +++ b/gdb/configure @@ -14673,47 +14673,6 @@ $as_echo "#define HAVE_ELF_FPREGSET_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_elf_fpregset_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_elf_fpregset_t" >&6; } - - - - if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether prfpregset_t type is broken" >&5 -$as_echo_n "checking whether prfpregset_t type is broken... " >&6; } - if ${gdb_cv_prfpregset_t_broken+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - gdb_cv_prfpregset_t_broken=yes -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - int main () - { - if (sizeof (prfpregset_t) == sizeof (void *)) - return 1; - return 0; - } -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - gdb_cv_prfpregset_t_broken=no -else - gdb_cv_prfpregset_t_broken=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gdb_cv_prfpregset_t_broken" >&5 -$as_echo "$gdb_cv_prfpregset_t_broken" >&6; } - if test $gdb_cv_prfpregset_t_broken = yes; then - -$as_echo "#define PRFPREGSET_T_BROKEN 1" >>confdefs.h - - fi - fi fi # Check if the compiler supports the `long long' type. diff --git a/gdb/configure.ac b/gdb/configure.ac index a469d0a793..7f6a4033c8 100644 --- a/gdb/configure.ac +++ b/gdb/configure.ac @@ -1529,33 +1529,6 @@ if test "$ac_cv_header_sys_procfs_h" = yes; then BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t) BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t) BFD_HAVE_SYS_PROCFS_TYPE(elf_fpregset_t) - - dnl Check for broken prfpregset_t type - - dnl For Linux/i386, glibc 2.1.3 was released with a bogus - dnl prfpregset_t type (it's a typedef for the pointer to a struct - dnl instead of the struct itself). We detect this here, and work - dnl around it in gdb_proc_service.h. - - if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then - AC_MSG_CHECKING(whether prfpregset_t type is broken) - AC_CACHE_VAL(gdb_cv_prfpregset_t_broken, - [AC_TRY_RUN([#include - int main () - { - if (sizeof (prfpregset_t) == sizeof (void *)) - return 1; - return 0; - }], - gdb_cv_prfpregset_t_broken=no, - gdb_cv_prfpregset_t_broken=yes, - gdb_cv_prfpregset_t_broken=yes)]) - AC_MSG_RESULT($gdb_cv_prfpregset_t_broken) - if test $gdb_cv_prfpregset_t_broken = yes; then - AC_DEFINE(PRFPREGSET_T_BROKEN, 1, - [Define if the prfpregset_t type is broken.]) - fi - fi fi # Check if the compiler supports the `long long' type. diff --git a/gdb/gdb_proc_service.h b/gdb/gdb_proc_service.h index 76cc62410f..a968748108 100644 --- a/gdb/gdb_proc_service.h +++ b/gdb/gdb_proc_service.h @@ -21,22 +21,8 @@ #include "common/gdb_proc_service.h" -#include "gregset.h" - struct thread_info; -/* Fix-up some broken systems. */ - -/* Unfortunately glibc 2.1.3 was released with a broken prfpregset_t - type. We let configure check for this lossage, and make - appropriate typedefs here. */ - -#ifdef PRFPREGSET_T_BROKEN -typedef gdb_fpregset_t gdb_prfpregset_t; -#else -typedef prfpregset_t gdb_prfpregset_t; -#endif - /* GDB specific structure that identifies the target process. */ struct ps_prochandle { diff --git a/gdb/proc-service.c b/gdb/proc-service.c index 8340f957a1..dde4e6cd75 100644 --- a/gdb/proc-service.c +++ b/gdb/proc-service.c @@ -173,7 +173,8 @@ ps_lsetregs (struct ps_prochandle *ph, lwpid_t lwpid, const prgregset_t gregset) process PH and store them in FPREGSET. */ ps_err_e -ps_lgetfpregs (struct ps_prochandle *ph, lwpid_t lwpid, gdb_prfpregset_t *fpregset) +ps_lgetfpregs (struct ps_prochandle *ph, lwpid_t lwpid, + prfpregset_t *fpregset) { struct regcache *regcache = get_ps_regcache (ph, lwpid); @@ -188,7 +189,7 @@ ps_lgetfpregs (struct ps_prochandle *ph, lwpid_t lwpid, gdb_prfpregset_t *fpregs ps_err_e ps_lsetfpregs (struct ps_prochandle *ph, lwpid_t lwpid, - const gdb_prfpregset_t *fpregset) + const prfpregset_t *fpregset) { struct regcache *regcache = get_ps_regcache (ph, lwpid); -- 2.34.1