cvs commit: src/sys/amd64/amd64 exception.S trap.c src/sys/amd64/include frame.h signal.h ucontext.h

Daniel Eischen eischen at vigrid.com
Tue Oct 14 22:19:49 PDT 2003


On Tue, 14 Oct 2003, Peter Wemm wrote:

> David Xu wrote:
> 
> > >  Modified files:
> > >    sys/amd64/amd64      exception.S trap.c 
> > >    sys/amd64/include    frame.h signal.h ucontext.h 
> > >  Log:
> > >  Pull the tier-2 card one last time and break the get/setcontext and
> > >  sigreturn() ABI and the signal context on the stack.
> ...
> > The change you made to ucontext.h breaks libkse. :-(
> 
> Yep. And probably libc_r as well, but I'm not sure about that one yet.  I'll
> take a shot at patching it up when I get home if nobody beats me to it. :-)

Here's a quick attempt at a fix for libpthread.

-- 
Dan Eischen

%%%%%
Index: context.S
===================================================================
RCS file: /opt/FreeBSD/cvs/src/lib/libpthread/arch/amd64/amd64/context.S,v
retrieving revision 1.3
diff -u -r1.3 context.S
--- context.S	16 Sep 2003 00:00:53 -0000	1.3
+++ context.S	15 Oct 2003 11:00:39 -0000
@@ -79,10 +79,10 @@
  * Where do we define these?
  */
 #define	MC_SIZE			800	/* sizeof mcontext_t */
-#define	MC_LEN_OFFSET		(24*8)	/* offset to mc_len from mcontext */
-#define	MC_FPFMT_OFFSET		(25*8)	/* offset to mc_fpformat from mcontext */
-#define MC_FPFMT_NODEV		0x10000
-#define	MC_OWNEDFP_OFFSET	(26*8)	/* offset to mc_ownedfp from mcontext */
+#define	MC_LEN_OFFSET		(25*8)	/* offset to mc_len from mcontext */
+#define	MC_FPFMT_OFFSET		(26*8)	/* offset to mc_fpformat from mcontext */
+#define	MC_FPFMT_NODEV		0x10000
+#define	MC_OWNEDFP_OFFSET	(27*8)	/* offset to mc_ownedfp from mcontext */
 #define	MC_OWNEDFP_NONE 	0x20000
 #define	MC_OWNEDFP_FPU		0x20001
 #define	MC_OWNEDFP_PCB		0x20002
@@ -104,9 +104,10 @@
 #define	MC_R13		(13 * 8)
 #define	MC_R14		(14 * 8)
 #define	MC_R15		(15 * 8)
-#define	MC_RIP		(19 * 8)
-#define	MC_RFLAGS	(21 * 8)
-#define	MC_RSP		(22 * 8)
+#define	MC_FLAGS	(18 * 8)
+#define	MC_RIP		(20 * 8)
+#define	MC_RFLAGS	(22 * 8)
+#define	MC_RSP		(23 * 8)
 
 /*
  * _amd64_ctx_save(mcontext_t *mcp)

%%%%%



More information about the cvs-src mailing list