This is the mail archive of the libc-hacker@sourceware.cygnus.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
On Tue, Jan 18, 2000 at 12:31:56PM -0700, Kevin Buettner wrote:
> On Jan 18, 10:47am, H . J . Lu wrote:
> > On Tue, Jan 18, 2000 at 11:43:06AM -0700, Kevin Buettner wrote:
> > > On Jan 18, 10:05am, H . J . Lu wrote:
> > >
> > > > I cannot get today's gdb in CVS to compile on Linux/ia32. It failed on
> > > > i386-linux-nat.c:
> > > >
> > > > /work/gnu/import/gdb/gdb/i386-linux-nat.c: In function `supply_fpregset':
> > > > /work/gnu/import/gdb/gdb/i386-linux-nat.c:215: request for member `st_space' in
> > > > something not a structure or union
> > > > /work/gnu/import/gdb/gdb/i386-linux-nat.c:217: request for member `cwd' in
> > > > something not a structure or union
> > > > /work/gnu/import/gdb/gdb/i386-linux-nat.c:218: request for member `swd' in
> > > > something not a structure or union
> > > > /work/gnu/import/gdb/gdb/i386-linux-nat.c:219: request for member `twd' in
> > > > something not a structure or union
> > > > /work/gnu/import/gdb/gdb/i386-linux-nat.c:220: request for member `fip' in
> > > >
> > > > Any ideas?
> > >
> > > It looks to me like HAVE_PTRACE_GETXFPREGS is getting defined in config.h
> > > when it shouldn't be.
> >
> > I don't think so.
> >
> > # grep HAVE_PTRACE_GETXFPREGS config.h
> > /* #undef HAVE_PTRACE_GETXFPREGS */
>
> My mistake. I was looking at the wrong section of code.
>
> i386-linux-nat.c compiles okay for me.
>
> On my system (a RH6.0 box with few upgrades), I see the following in
> <sys/procfs.h>:
>
> typedef elf_fpregset_t fpregset_t;
>
> In <sys/elf.h>, I see:
>
> typedef struct user_fpregs_struct elf_fpregset_t;
>
> And in <sys/user.h>, I see
>
> struct user_fpregs_struct
> {
> long cwd;
> long swd;
> long twd;
> long fip;
> long fcs;
> long foo;
> long fos;
> long st_space [20];
> };
>
> Is your system set up differently?
>
> Kevin
It turned out that the bug was in the current glibc 2.1.3 in CVS.
Ulrich, gregset_t and fpregset_t in <sys/ucontext.h> are different
from the ones in <sys/procfs.h>. The ones in <sys/procfs.h> are used
by gdb and the ptrace system call. They have different sizes and layout
from the ones in <sys/ucontext.h>.
--
H.J. Lu (hjl@gnu.org)
---
Tue Jan 18 13:19:14 2000 H.J. Lu <hjl@gnu.org>
* sysdeps/unix/sysv/linux/i386/sys/procfs.h: Undo the change
on 1999-11-02 by Ulrich Drepper <drepper@cygnus.com>.
Index: sysdeps/unix/sysv/linux/i386/sys/procfs.h
===================================================================
RCS file: /work/cvs/gnu/glibc-2.1/sysdeps/unix/sysv/linux/i386/sys/procfs.h,v
retrieving revision 1.1.1.2
diff -u -p -r1.1.1.2 procfs.h
--- sysdeps/unix/sysv/linux/i386/sys/procfs.h 1999/11/27 18:42:39 1.1.1.2
+++ sysdeps/unix/sysv/linux/i386/sys/procfs.h 2000/01/18 21:31:19
@@ -27,7 +27,6 @@
#include <signal.h>
#include <sys/time.h>
#include <sys/types.h>
-#include <sys/ucontext.h>
#include <sys/user.h>
#include <sys/elf.h>
@@ -40,6 +39,10 @@ struct elf_siginfo
int si_errno; /* Errno. */
};
+typedef elf_greg_t greg_t;
+typedef elf_gregset_t gregset_t;
+typedef elf_fpregset_t fpregset_t;
+#define NGREG ELF_NGREG
/* Definitions to generate Intel SVR4-like core files. These mostly
have the same names as the SVR4 types with "elf_" tacked on the
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |