This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH/RFA] AMD64 nptl support


Elena Zannoni <ezannoni@redhat.com> writes:

> Elena Zannoni writes:
>  > 
>  > This is all it's needed on AMD64 to get NPTL to work. Of course you
>  > need the perfect combination of glibc, glibc-kernheaders and kernel.
>  > 
>  > 
>  > OK?
>  > 
>
> Mark? any comments on this?

Note there is no official maintainer for amd64, so anybody with
approval rights can approve it - and I therefore expect that you can
approve it yourself.  The patch itself looks fine to me,

Andreas

> elena
>
>  > elena
>  > 
>  > 2003-07-09  Elena Zannoni  <ezannoni@redhat.com>
>  > 
>  > 	* x86-64-linux-nat.c (ps_get_thread_area): New function.
>  > 
>  > 
>  > Index: x86-64-linux-nat.c
>  > ===================================================================
>  > RCS file: /cvs/uberbaum/gdb/x86-64-linux-nat.c,v
>  > retrieving revision 1.23
>  > diff -u -p -r1.23 x86-64-linux-nat.c
>  > --- x86-64-linux-nat.c	31 May 2003 18:00:04 -0000	1.23
>  > +++ x86-64-linux-nat.c	9 Jul 2003 14:30:02 -0000
>  > @@ -32,7 +32,17 @@
>  >  #include <sys/debugreg.h>
>  >  #include <sys/syscall.h>
>  >  #include <sys/procfs.h>
>  > +#include <asm/prctl.h>
>  > +/* FIXME ezannoni-2003-07-09: we need <sys/reg.h> to be included after
>  > +   <asm/ptrace.h> because the latter redefines FS and GS for no apparent
>  > +   reason, and those definitions don't match the ones that libpthread_db
>  > +   uses, which come from <sys/reg.h>.  */
>  > +/* ezannoni-2003-07-09: I think this is fixed. The extraneous defs have
>  > +   been removed from ptrace.h in the kernel.  However, better safe than
>  > +   sorry.  */
>  > +#include <asm/ptrace.h>
>  >  #include <sys/reg.h>
>  > +#include "gdb_proc_service.h"
>  >  
>  >  /* Prototypes for supply_gregset etc.  */
>  >  #include "gregset.h"
>  > @@ -332,3 +342,34 @@ x86_64_linux_dr_get_status (void)
>  >  {
>  >    return x86_64_linux_dr_get (DR_STATUS);
>  >  }
>  > +
>  > +extern ps_err_e
>  > +ps_get_thread_area (const struct ps_prochandle *ph,
>  > +                    lwpid_t lwpid, int idx, void **base)
>  > +{
>  > +
>  > +/* This definition comes from prctl.h, but some kernels may not have it.  */
>  > +#ifndef PTRACE_ARCH_PRCTL
>  > +#define PTRACE_ARCH_PRCTL      30
>  > +#endif
>  > +
>  > +  /* FIXME: ezannoni-2003-07-09 see comment above about include file order.
>  > +     We could be getting bogus values for these two.  */
>  > +  gdb_assert (FS < ELF_NGREG);
>  > +  gdb_assert (GS < ELF_NGREG);
>  > +  switch (idx)
>  > +    {
>  > +    case FS:
>  > +      if (ptrace (PTRACE_ARCH_PRCTL, lwpid, base, ARCH_GET_FS) == 0)
>  > +       return PS_OK;
>  > +      break;
>  > +    case GS:
>  > +      if (ptrace (PTRACE_ARCH_PRCTL, lwpid, base, ARCH_GET_GS) == 0)
>  > +       return PS_OK;
>  > +      break;
>  > +    default:                   /* Should not happen.  */
>  > +      return PS_BADADDR;
>  > +    }
>  > +  return PS_ERR;               /* ptrace failed.  */
>  > +}
>  > +
>

Andreas
-- 
 Andreas Jaeger, aj@suse.de, http://www.suse.de/~aj
  SuSE Linux AG, Deutschherrnstr. 15-19, 90429 Nürnberg, Germany
   GPG fingerprint = 93A3 365E CE47 B889 DF7F  FED1 389A 563C C272 A126

Attachment: pgp00000.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]