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.
This commit is contained in:
parent
7c619dbdae
commit
12b164e9a9
6 changed files with 11 additions and 87 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
2018-10-01 Gary Benson <gbenson@redhat.com>
|
||||||
|
|
||||||
|
* 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 <gbenson@redhat.com>
|
2018-10-01 Gary Benson <gbenson@redhat.com>
|
||||||
|
|
||||||
* common/gdb_proc_service.h: New file, factored out from...
|
* common/gdb_proc_service.h: New file, factored out from...
|
||||||
|
|
|
@ -622,9 +622,6 @@
|
||||||
/* Additional package description */
|
/* Additional package description */
|
||||||
#undef PKGVERSION
|
#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. */
|
/* Define to 1 if the "%H, %D and %DD" formats work to print decfloats. */
|
||||||
#undef PRINTF_HAS_DECFLOAT
|
#undef PRINTF_HAS_DECFLOAT
|
||||||
|
|
||||||
|
|
41
gdb/configure
vendored
41
gdb/configure
vendored
|
@ -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 "$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; }
|
$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 <sys/procfs.h>
|
|
||||||
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
|
fi
|
||||||
|
|
||||||
# Check if the compiler supports the `long long' type.
|
# Check if the compiler supports the `long long' type.
|
||||||
|
|
|
@ -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(lwpid_t)
|
||||||
BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
|
BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
|
||||||
BFD_HAVE_SYS_PROCFS_TYPE(elf_fpregset_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 <sys/procfs.h>
|
|
||||||
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
|
fi
|
||||||
|
|
||||||
# Check if the compiler supports the `long long' type.
|
# Check if the compiler supports the `long long' type.
|
||||||
|
|
|
@ -21,22 +21,8 @@
|
||||||
|
|
||||||
#include "common/gdb_proc_service.h"
|
#include "common/gdb_proc_service.h"
|
||||||
|
|
||||||
#include "gregset.h"
|
|
||||||
|
|
||||||
struct thread_info;
|
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. */
|
/* GDB specific structure that identifies the target process. */
|
||||||
struct ps_prochandle
|
struct ps_prochandle
|
||||||
{
|
{
|
||||||
|
|
|
@ -173,7 +173,8 @@ ps_lsetregs (struct ps_prochandle *ph, lwpid_t lwpid, const prgregset_t gregset)
|
||||||
process PH and store them in FPREGSET. */
|
process PH and store them in FPREGSET. */
|
||||||
|
|
||||||
ps_err_e
|
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);
|
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_err_e
|
||||||
ps_lsetfpregs (struct ps_prochandle *ph, lwpid_t lwpid,
|
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);
|
struct regcache *regcache = get_ps_regcache (ph, lwpid);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue