Author: aurel32
Date: 2009-05-09 23:08:53 +0000 (Sat, 09 May 2009)
New Revision: 3474

Removed:
   glibc-package/branches/eglibc-2.10/debian/patches/mips/cvs-context.diff
Modified:
   glibc-package/branches/eglibc-2.10/debian/changelog
   glibc-package/branches/eglibc-2.10/debian/patches/series
Log:
    - Remove debian/patches/mips/cvs-context.diff (merged).



Modified: glibc-package/branches/eglibc-2.10/debian/changelog
===================================================================
--- glibc-package/branches/eglibc-2.10/debian/changelog 2009-05-09 23:07:40 UTC 
(rev 3473)
+++ glibc-package/branches/eglibc-2.10/debian/changelog 2009-05-09 23:08:53 UTC 
(rev 3474)
@@ -17,8 +17,8 @@
     - Remove debian/patches/hurd-i386/cvs-get_pc_thunk.diff (merged).
     - Remove debian/patches/hurd-i386/cvs-strerror_l.diff (merged).
     - Remove debian/patches/hurd-i386/cvs-rtld.diff (merged).
+    - Remove debian/patches/mips/cvs-context.diff (merged).
 
-
  -- Aurelien Jarno <[email protected]>  Tue, 05 May 2009 09:57:43 +0200
 
 eglibc (2.9-13) unstable; urgency=low

Deleted: glibc-package/branches/eglibc-2.10/debian/patches/mips/cvs-context.diff
===================================================================
--- glibc-package/branches/eglibc-2.10/debian/patches/mips/cvs-context.diff     
2009-05-09 23:07:40 UTC (rev 3473)
+++ glibc-package/branches/eglibc-2.10/debian/patches/mips/cvs-context.diff     
2009-05-09 23:08:53 UTC (rev 3474)
@@ -1,1019 +0,0 @@
-2009-04-18  Maciej W. Rozycki  <[email protected]>
-    
-       * sysdeps/unix/sysv/linux/mips/getcontext.S: New file.
-       * sysdeps/unix/sysv/linux/mips/makecontext.S: New file.
-       * sysdeps/unix/sysv/linux/mips/setcontext.S: New file.
-       * sysdeps/unix/sysv/linux/mips/swapcontext.S: New file.
-       * sysdeps/unix/sysv/linux/mips/sys/ucontext.h (mcontext_t):
-       Update comment.
-       * sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h: New file.
-       * sysdeps/unix/sysv/linux/mips/ucontext_i.sym: New file.
-       * sysdeps/unix/sysv/linux/mips/Makefile (gen-as-const-headers):
-       Add ucontext_i.sym.
-
-2009-04-15  Maciej W. Rozycki  <[email protected]>
-    
-       * sysdeps/mips/sys/fpregdef.h: Update for new ABIs.
-
-diff --git a/sysdeps/unix/sysv/linux/mips/Makefile 
b/sysdeps/unix/sysv/linux/mips/Makefile
-index 110fccb..162f1b9 100644
---- a/ports/sysdeps/unix/sysv/linux/mips/Makefile
-+++ b/ports/sysdeps/unix/sysv/linux/mips/Makefile
-@@ -135,3 +135,7 @@ sysdep_routines += dl-static
- sysdep-rtld-routines += dl-static
- endif
- endif
-+
-+ifeq ($(subdir),stdlib)
-+gen-as-const-headers += ucontext_i.sym
-+endif
-diff --git a/sysdeps/unix/sysv/linux/mips/getcontext.S 
b/sysdeps/unix/sysv/linux/mips/getcontext.S
-new file mode 100644
-index 0000000..1e77467
---- /dev/null
-+++ b/ports/sysdeps/unix/sysv/linux/mips/getcontext.S
-@@ -0,0 +1,149 @@
-+/* Save current context.
-+   Copyright (C) 2009 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+   Contributed by Maciej W. Rozycki <[email protected]>.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
-+   02110-1301, USA.  */
-+
-+#include <sysdep.h>
-+#include <sys/asm.h>
-+#include <sys/fpregdef.h>
-+#include <sys/regdef.h>
-+
-+#include "ucontext_i.h"
-+
-+/* int getcontext (ucontext_t *ucp) */
-+
-+      .text
-+LOCALSZ = 0
-+MASK = 0x00000000
-+#ifdef __PIC__
-+LOCALSZ = 1                                           /* save gp */
-+# if _MIPS_SIM != _ABIO32
-+MASK = 0x10000000
-+# endif
-+#endif
-+FRAMESZ = ((LOCALSZ * SZREG) + ALSZ) & ALMASK
-+GPOFF = FRAMESZ - (1 * SZREG)
-+
-+NESTED (__getcontext, FRAMESZ, ra)
-+      .mask   MASK, 0
-+      .fmask  0x00000000, 0
-+
-+#ifdef __PIC__
-+      SETUP_GP
-+
-+      move    a2, sp
-+# define _SP a2
-+
-+# if _MIPS_SIM != _ABIO32
-+      move    a3, gp
-+#  define _GP a3
-+# endif
-+
-+      PTR_ADDIU sp, -FRAMESZ
-+      SETUP_GP64 (GPOFF, __getcontext)
-+      SAVE_GP (GPOFF)
-+
-+#else  /* ! __PIC__ */
-+# define _SP sp
-+# define _GP gp
-+
-+#endif /* ! __PIC__ */
-+
-+#ifdef PROF
-+      .set    noat
-+      move    AT, ra
-+      jal     _mcount
-+      .set    at
-+#endif
-+
-+      /* Store a magic flag.  */
-+      li      v1, 1
-+      REG_S   v1, (0 * SZREG + MCONTEXT_GREGS)(a0)    /* zero */
-+
-+      REG_S   s0, (16 * SZREG + MCONTEXT_GREGS)(a0)
-+      REG_S   s1, (17 * SZREG + MCONTEXT_GREGS)(a0)
-+      REG_S   s2, (18 * SZREG + MCONTEXT_GREGS)(a0)
-+      REG_S   s3, (19 * SZREG + MCONTEXT_GREGS)(a0)
-+      REG_S   s4, (20 * SZREG + MCONTEXT_GREGS)(a0)
-+      REG_S   s5, (21 * SZREG + MCONTEXT_GREGS)(a0)
-+      REG_S   s6, (22 * SZREG + MCONTEXT_GREGS)(a0)
-+      REG_S   s7, (23 * SZREG + MCONTEXT_GREGS)(a0)
-+#if ! defined (__PIC__) || _MIPS_SIM != _ABIO32
-+      REG_S   _GP, (28 * SZREG + MCONTEXT_GREGS)(a0)
-+#endif
-+      REG_S   _SP, (29 * SZREG + MCONTEXT_GREGS)(a0)
-+      REG_S   fp, (30 * SZREG + MCONTEXT_GREGS)(a0)
-+      REG_S   ra, (31 * SZREG + MCONTEXT_GREGS)(a0)
-+      REG_S   ra, MCONTEXT_PC(a0)
-+
-+#ifdef __mips_hard_float
-+# if _MIPS_SIM == _ABI64
-+      s.d     fs0, (24 * SZREG + MCONTEXT_FPREGS)(a0)
-+      s.d     fs1, (25 * SZREG + MCONTEXT_FPREGS)(a0)
-+      s.d     fs2, (26 * SZREG + MCONTEXT_FPREGS)(a0)
-+      s.d     fs3, (27 * SZREG + MCONTEXT_FPREGS)(a0)
-+      s.d     fs4, (28 * SZREG + MCONTEXT_FPREGS)(a0)
-+      s.d     fs5, (29 * SZREG + MCONTEXT_FPREGS)(a0)
-+      s.d     fs6, (30 * SZREG + MCONTEXT_FPREGS)(a0)
-+      s.d     fs7, (31 * SZREG + MCONTEXT_FPREGS)(a0)
-+
-+# else  /* _MIPS_SIM != _ABI64 */
-+      s.d     fs0, (20 * SZREG + MCONTEXT_FPREGS)(a0)
-+      s.d     fs1, (22 * SZREG + MCONTEXT_FPREGS)(a0)
-+      s.d     fs2, (24 * SZREG + MCONTEXT_FPREGS)(a0)
-+      s.d     fs3, (26 * SZREG + MCONTEXT_FPREGS)(a0)
-+      s.d     fs4, (28 * SZREG + MCONTEXT_FPREGS)(a0)
-+      s.d     fs5, (30 * SZREG + MCONTEXT_FPREGS)(a0)
-+
-+# endif /* _MIPS_SIM != _ABI64 */
-+
-+      cfc1    v1, fcr31
-+      sw      v1, MCONTEXT_FPC_CSR(a0)
-+#endif /* __mips_hard_float */
-+
-+/* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
-+      li      a3, _NSIG8
-+      PTR_ADDU a2, a0, UCONTEXT_SIGMASK
-+      move    a1, zero
-+      li      a0, SIG_BLOCK
-+
-+      li      v0, SYS_ify (rt_sigprocmask)
-+      syscall
-+      bnez    a3, 99f
-+
-+#ifdef __PIC__
-+      RESTORE_GP64
-+      PTR_ADDIU sp, FRAMESZ
-+#endif
-+      move    v0, zero
-+      jr      ra
-+
-+99:
-+#ifdef __PIC__
-+      PTR_LA  t9, JUMPTARGET (__syscall_error)
-+      RESTORE_GP64
-+      PTR_ADDIU sp, FRAMESZ
-+      jr      t9
-+
-+#else  /* ! __PIC__ */
-+
-+      j       JUMPTARGET (__syscall_error)
-+#endif /* ! __PIC__ */
-+PSEUDO_END (__getcontext)
-+
-+weak_alias (__getcontext, getcontext)
-diff --git a/sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h 
b/sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h
-new file mode 100644
-index 0000000..edf8d45
---- /dev/null
-+++ b/ports/sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h
-@@ -0,0 +1,10 @@
-+/* Linux kernel RT signal frame. */
-+typedef struct kernel_rt_sigframe
-+  {
-+    uint32_t rs_ass[4];
-+    uint32_t rs_code[2];
-+    struct siginfo rs_info;
-+    struct ucontext rs_uc;
-+    uint32_t rs_altcode[8] __attribute__ ((__aligned__ (1 << 7)));
-+  }
-+kernel_rt_sigframe_t;
-diff --git a/sysdeps/unix/sysv/linux/mips/makecontext.S 
b/sysdeps/unix/sysv/linux/mips/makecontext.S
-new file mode 100644
-index 0000000..cceee3f
---- /dev/null
-+++ b/ports/sysdeps/unix/sysv/linux/mips/makecontext.S
-@@ -0,0 +1,189 @@
-+/* Modify saved context.
-+   Copyright (C) 2009 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+   Contributed by Maciej W. Rozycki <[email protected]>.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
-+   02110-1301, USA.  */
-+
-+#include <sysdep.h>
-+#include <sys/asm.h>
-+#include <sys/fpregdef.h>
-+#include <sys/regdef.h>
-+
-+#include "ucontext_i.h"
-+
-+/* int makecontext (ucontext_t *ucp, (void *func) (), int argc, ...) */
-+
-+      .text
-+LOCALSZ = 0
-+ARGSZ = 0
-+MASK = 0x00000000
-+#ifdef __PIC__
-+LOCALSZ = 1                                           /* save gp */
-+#endif
-+#if _MIPS_SIM != _ABIO32
-+ARGSZ = 5                                             /* save a3-a7 */
-+# ifdef __PIC__
-+MASK = 0x10000000
-+# endif
-+#endif
-+FRAMESZ = (((ARGSZ + LOCALSZ) * SZREG) + ALSZ) & ALMASK
-+GPOFF = FRAMESZ - ((ARGSZ + 1) * SZREG)
-+#if _MIPS_SIM != _ABIO32
-+A3OFF = FRAMESZ - (5 * SZREG)                         /* callee-allocated */
-+A4OFF = FRAMESZ - (4 * SZREG)
-+A5OFF = FRAMESZ - (3 * SZREG)
-+A6OFF = FRAMESZ - (2 * SZREG)
-+A7OFF = FRAMESZ - (1 * SZREG)
-+NARGREGS = 8
-+#else
-+A3OFF = FRAMESZ + (3 * SZREG)                         /* caller-allocated */
-+NARGREGS = 4
-+#endif
-+
-+NESTED (__makecontext, FRAMESZ, ra)
-+      .mask   MASK, -(ARGSZ * SZREG)
-+      .fmask  0x00000000, 0
-+
-+98:
-+#ifdef __PIC__
-+      SETUP_GP
-+#endif
-+
-+      PTR_ADDIU sp, -FRAMESZ
-+
-+#ifdef __PIC__
-+      SETUP_GP64 (GPOFF, __makecontext)
-+      SAVE_GP (GPOFF)
-+#endif
-+
-+#ifdef PROF
-+      .set    noat
-+      move    AT, ra
-+      jal     _mcount
-+      .set    at
-+#endif
-+
-+      /* Store args to be passed.  */
-+      REG_S   a3, A3OFF(sp)
-+#if _MIPS_SIM != _ABIO32
-+      REG_S   a4, A4OFF(sp)
-+      REG_S   a5, A5OFF(sp)
-+      REG_S   a6, A6OFF(sp)
-+      REG_S   a7, A7OFF(sp)
-+#endif
-+
-+      /* Store a magic flag.  */
-+      li      v1, 1
-+      REG_S   v1, (0 * SZREG + MCONTEXT_GREGS)(a0)    /* zero */
-+
-+      /* Set up the stack.  */
-+      PTR_L   t0, STACK_SP(a0)
-+      PTR_L   t2, STACK_SIZE(a0)
-+      PTR_ADDIU t1, sp, A3OFF
-+      PTR_ADDU t0, t2
-+      and     t0, ALMASK
-+      blez    a2, 2f                                  /* no arguments */
-+
-+      /* Store register arguments.  */
-+      PTR_ADDIU t2, a0, MCONTEXT_GREGS + 4 * SZREG
-+      move    t3, zero
-+0:
-+      addiu   t3, 1
-+      REG_L   v1, (t1)
-+      PTR_ADDIU t1, SZREG
-+      REG_S   v1, (t2)
-+      PTR_ADDIU t2, SZREG
-+      bgeu    t3, a2, 2f                              /* all done */
-+      bltu    t3, NARGREGS, 0b                        /* next */
-+
-+      /* Make room for stack arguments.  */
-+      PTR_SUBU t2, a2, t3
-+      PTR_SLL t2, 3
-+      PTR_SUBU t0, t2
-+      and     t0, ALMASK
-+
-+      /* Store stack arguments.  */
-+      move    t2, t0
-+1:
-+      addiu   t3, 1
-+      REG_L   v1, (t1)
-+      PTR_ADDIU t1, SZREG
-+      REG_S   v1, (t2)
-+      PTR_ADDIU t2, SZREG
-+      bltu    t3, a2, 1b                              /* next */
-+
-+2:
-+#if _MIPS_SIM == _ABIO32
-+      /* Make room for a0-a3 storage.  */
-+      PTR_ADDIU t0, -(NARGSAVE * SZREG)
-+#endif
-+      PTR_L   v1, UCONTEXT_LINK(a0)
-+#ifdef __PIC__
-+      PTR_ADDIU t9, 99f - 98b
-+#else
-+      PTR_LA  t9, 99f
-+#endif
-+      REG_S   t0, (29 * SZREG + MCONTEXT_GREGS)(a0)   /* sp */
-+      REG_S   v1, (16 * SZREG + MCONTEXT_GREGS)(a0)   /* s0 */
-+#ifdef __PIC__
-+      REG_S   gp, (17 * SZREG + MCONTEXT_GREGS)(a0)   /* s1 */
-+#endif
-+      REG_S   t9, (31 * SZREG + MCONTEXT_GREGS)(a0)   /* ra */
-+      REG_S   a1, MCONTEXT_PC(a0)
-+
-+#ifdef __PIC__
-+      RESTORE_GP64
-+      PTR_ADDIU sp, FRAMESZ
-+#endif
-+      jr      ra
-+
-+99:
-+#ifdef __PIC__
-+      move    gp, s1
-+#endif
-+      move    a0, zero
-+      beqz    s0, 0f
-+
-+      /* setcontext (ucp) */
-+      move    a0, s0
-+#ifdef __PIC__
-+      PTR_LA  t9, JUMPTARGET (__setcontext)
-+      jalr    t9
-+# if _MIPS_SIM == _ABIO32
-+      move    gp, s1
-+# endif
-+#else
-+      jal     JUMPTARGET (__setcontext)
-+#endif
-+      move    a0, v0
-+
-+0:
-+      /* exit (a0) */
-+#ifdef __PIC__
-+      PTR_LA  t9, HIDDEN_JUMPTARGET (exit)
-+      jalr    t9
-+#else
-+      jal     HIDDEN_JUMPTARGET (exit)
-+#endif
-+
-+      /* You don't exist, you won't feel anything.  */
-+1:
-+      lb      zero, (zero)
-+      b       1b
-+PSEUDO_END (__makecontext)
-+
-+weak_alias (__makecontext, makecontext)
-diff --git a/sysdeps/unix/sysv/linux/mips/setcontext.S 
b/sysdeps/unix/sysv/linux/mips/setcontext.S
-new file mode 100644
-index 0000000..186f3a7
---- /dev/null
-+++ b/ports/sysdeps/unix/sysv/linux/mips/setcontext.S
-@@ -0,0 +1,192 @@
-+/* Set current context.
-+   Copyright (C) 2009 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+   Contributed by Maciej W. Rozycki <[email protected]>.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
-+   02110-1301, USA.  */
-+
-+#include <sysdep.h>
-+#include <sys/asm.h>
-+#include <sys/fpregdef.h>
-+#include <sys/regdef.h>
-+
-+#include "ucontext_i.h"
-+
-+/* int setcontext (const ucontext_t *ucp) */
-+
-+      .text
-+LOCALSZ = 0
-+ARGSZ = 0
-+MASK = 0x00000000
-+#ifdef __PIC__
-+LOCALSZ = 1                                           /* save gp */
-+#endif
-+#if _MIPS_SIM != _ABIO32
-+ARGSZ = 1                                             /* save a0 */
-+# ifdef __PIC__
-+MASK = 0x10000000
-+# endif
-+#endif
-+FRAMESZ = (((ARGSZ + LOCALSZ) * SZREG) + ALSZ) & ALMASK
-+GPOFF = FRAMESZ - ((ARGSZ + 1) * SZREG)
-+#if _MIPS_SIM != _ABIO32
-+A0OFF = FRAMESZ - (1 * SZREG)                         /* callee-allocated */
-+#else
-+A0OFF = FRAMESZ + (0 * SZREG)                         /* caller-allocated */
-+#endif
-+
-+NESTED (__setcontext, FRAMESZ, ra)
-+      .mask   MASK, -(ARGSZ * SZREG)
-+      .fmask  0x00000000, 0
-+
-+#ifdef __PIC__
-+      SETUP_GP
-+#endif
-+
-+      PTR_ADDIU sp, -FRAMESZ
-+
-+#ifdef __PIC__
-+      SETUP_GP64 (GPOFF, __setcontext)
-+      SAVE_GP (GPOFF)
-+#endif
-+
-+#ifdef PROF
-+      .set    noat
-+      move    AT, ra
-+      jal     _mcount
-+      .set    at
-+#endif
-+
-+      /* Check for the magic flag.  */
-+      li      v0, 1
-+      REG_L   v1, (0 * SZREG + MCONTEXT_GREGS)(a0)    /* zero */
-+      bne     v0, v1, 98f
-+
-+      REG_S   a0, A0OFF(sp)
-+
-+/* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, NULL, _NSIG8) */
-+      li      a3, _NSIG8
-+      move    a2, zero
-+      PTR_ADDU a1, a0, UCONTEXT_SIGMASK
-+      li      a0, SIG_SETMASK
-+
-+      li      v0, SYS_ify (rt_sigprocmask)
-+      syscall
-+      bnez    a3, 99f
-+
-+      REG_L   v0, A0OFF(sp)
-+
-+#ifdef __mips_hard_float
-+# if _MIPS_SIM == _ABI64
-+      l.d     fs0, (24 * SZREG + MCONTEXT_FPREGS)(v0)
-+      l.d     fs1, (25 * SZREG + MCONTEXT_FPREGS)(v0)
-+      l.d     fs2, (26 * SZREG + MCONTEXT_FPREGS)(v0)
-+      l.d     fs3, (27 * SZREG + MCONTEXT_FPREGS)(v0)
-+      l.d     fs4, (28 * SZREG + MCONTEXT_FPREGS)(v0)
-+      l.d     fs5, (29 * SZREG + MCONTEXT_FPREGS)(v0)
-+      l.d     fs6, (30 * SZREG + MCONTEXT_FPREGS)(v0)
-+      l.d     fs7, (31 * SZREG + MCONTEXT_FPREGS)(v0)
-+
-+# else  /* _MIPS_SIM != _ABI64 */
-+      l.d     fs0, (20 * SZREG + MCONTEXT_FPREGS)(v0)
-+      l.d     fs1, (22 * SZREG + MCONTEXT_FPREGS)(v0)
-+      l.d     fs2, (24 * SZREG + MCONTEXT_FPREGS)(v0)
-+      l.d     fs3, (26 * SZREG + MCONTEXT_FPREGS)(v0)
-+      l.d     fs4, (28 * SZREG + MCONTEXT_FPREGS)(v0)
-+      l.d     fs5, (30 * SZREG + MCONTEXT_FPREGS)(v0)
-+
-+# endif /* _MIPS_SIM != _ABI64 */
-+
-+      lw      v1, MCONTEXT_FPC_CSR(v0)
-+      ctc1    v1, fcr31
-+#endif /* __mips_hard_float */
-+
-+      /* Note the contents of argument registers will be random
-+         unless makecontext() has been called.  */
-+      REG_L   a0, (4 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   a1, (5 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   a2, (6 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   a3, (7 * SZREG + MCONTEXT_GREGS)(v0)
-+#if _MIPS_SIM != _ABIO32
-+      REG_L   a4, (8 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   a5, (9 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   a6, (10 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   a7, (11 * SZREG + MCONTEXT_GREGS)(v0)
-+#endif
-+
-+      REG_L   s0, (16 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   s1, (17 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   s2, (18 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   s3, (19 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   s4, (20 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   s5, (21 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   s6, (22 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   s7, (23 * SZREG + MCONTEXT_GREGS)(v0)
-+#if ! defined (__PIC__) || _MIPS_SIM != _ABIO32
-+      REG_L   gp, (28 * SZREG + MCONTEXT_GREGS)(v0)
-+#endif
-+      REG_L   sp, (29 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   fp, (30 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   ra, (31 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   t9, MCONTEXT_PC(v0)
-+
-+      move    v0, zero
-+      jr      t9
-+
-+98:
-+      /* This is a context obtained from a signal handler.
-+         Perform a full restore by pushing the context
-+         passed onto a simulated signal frame on the stack
-+         and call the signal return syscall as if a signal
-+         handler exited normally.  */
-+      PTR_ADDIU sp, -((RT_SIGFRAME_SIZE + ALSZ) & ALMASK)
-+
-+      /* Only ucontext is referred to from rt_sigreturn,
-+         copy it.  */
-+      PTR_ADDIU t1, sp, RT_SIGFRAME_UCONTEXT
-+      li      t3, ((UCONTEXT_SIZE + SZREG - 1) / SZREG) - 1
-+0:
-+      REG_L   t2, (a0)
-+      PTR_ADDIU a0, SZREG
-+      REG_S   t2, (t1)
-+      PTR_ADDIU t1, SZREG
-+      .set    noreorder
-+      bgtz    t3, 0b
-+       addiu  t3, -1
-+      .set    reorder
-+
-+/* rt_sigreturn () -- no arguments, sp points to struct rt_sigframe.  */
-+      li      v0, SYS_ify (rt_sigreturn)
-+      syscall
-+
-+      /* Restore the stack and fall through to the error
-+         path.  Successful rt_sigreturn never returns to
-+         its calling place.  */
-+      PTR_ADDIU sp, ((RT_SIGFRAME_SIZE + ALSZ) & ALMASK)
-+99:
-+#ifdef __PIC__
-+      PTR_LA  t9, JUMPTARGET (__syscall_error)
-+      RESTORE_GP64
-+      PTR_ADDIU sp, FRAMESZ
-+      jr      t9
-+
-+#else  /* ! __PIC__ */
-+
-+      j       JUMPTARGET (__syscall_error)
-+#endif /* ! __PIC__ */
-+PSEUDO_END (__setcontext)
-+
-+weak_alias (__setcontext, setcontext)
-diff --git a/sysdeps/unix/sysv/linux/mips/swapcontext.S 
b/sysdeps/unix/sysv/linux/mips/swapcontext.S
-new file mode 100644
-index 0000000..b0b8417
---- /dev/null
-+++ b/ports/sysdeps/unix/sysv/linux/mips/swapcontext.S
-@@ -0,0 +1,212 @@
-+/* Save and set current context.
-+   Copyright (C) 2009 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+   Contributed by Maciej W. Rozycki <[email protected]>.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
-+   02110-1301, USA.  */
-+
-+#include <sysdep.h>
-+#include <sys/asm.h>
-+#include <sys/fpregdef.h>
-+#include <sys/regdef.h>
-+
-+#include "ucontext_i.h"
-+
-+/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */
-+
-+      .text
-+LOCALSZ = 0
-+ARGSZ = 0
-+MASK = 0x00000000
-+#ifdef __PIC__
-+LOCALSZ = 1                                           /* save gp */
-+#endif
-+#if _MIPS_SIM != _ABIO32
-+ARGSZ = 1                                             /* save a1 */
-+# ifdef __PIC__
-+MASK = 0x10000000
-+# endif
-+#endif
-+FRAMESZ = (((ARGSZ + LOCALSZ) * SZREG) + ALSZ) & ALMASK
-+GPOFF = FRAMESZ - ((ARGSZ + 1) * SZREG)
-+#if _MIPS_SIM != _ABIO32
-+A1OFF = FRAMESZ - (1 * SZREG)                         /* callee-allocated */
-+#else
-+A1OFF = FRAMESZ + (1 * SZREG)                         /* caller-allocated */
-+#endif
-+
-+NESTED (__swapcontext, FRAMESZ, ra)
-+      .mask   MASK, -(ARGSZ * SZREG)
-+      .fmask  0x00000000, 0
-+
-+#ifdef __PIC__
-+      SETUP_GP
-+
-+      move    a2, sp
-+# define _SP a2
-+
-+# if _MIPS_SIM != _ABIO32
-+      move    a3, gp
-+#  define _GP a3
-+# endif
-+
-+      PTR_ADDIU sp, -FRAMESZ
-+      SETUP_GP64 (GPOFF, __swapcontext)
-+      SAVE_GP (GPOFF)
-+
-+#else  /* ! __PIC__ */
-+# define _SP sp
-+# define _GP gp
-+
-+#endif /* ! __PIC__ */
-+
-+#ifdef PROF
-+      .set    noat
-+      move    AT, ra
-+      jal     _mcount
-+      .set    at
-+#endif
-+
-+      /* Store a magic flag.  */
-+      li      v1, 1
-+      REG_S   v1, (0 * SZREG + MCONTEXT_GREGS)(a0)    /* zero */
-+
-+      REG_S   s0, (16 * SZREG + MCONTEXT_GREGS)(a0)
-+      REG_S   s1, (17 * SZREG + MCONTEXT_GREGS)(a0)
-+      REG_S   s2, (18 * SZREG + MCONTEXT_GREGS)(a0)
-+      REG_S   s3, (19 * SZREG + MCONTEXT_GREGS)(a0)
-+      REG_S   s4, (20 * SZREG + MCONTEXT_GREGS)(a0)
-+      REG_S   s5, (21 * SZREG + MCONTEXT_GREGS)(a0)
-+      REG_S   s6, (22 * SZREG + MCONTEXT_GREGS)(a0)
-+      REG_S   s7, (23 * SZREG + MCONTEXT_GREGS)(a0)
-+#if ! defined (__PIC__) || _MIPS_SIM != _ABIO32
-+      REG_S   _GP, (28 * SZREG + MCONTEXT_GREGS)(a0)
-+#endif
-+      REG_S   _SP, (29 * SZREG + MCONTEXT_GREGS)(a0)
-+      REG_S   fp, (30 * SZREG + MCONTEXT_GREGS)(a0)
-+      REG_S   ra, (31 * SZREG + MCONTEXT_GREGS)(a0)
-+      REG_S   ra, MCONTEXT_PC(a0)
-+
-+#ifdef __mips_hard_float
-+# if _MIPS_SIM == _ABI64
-+      s.d     fs0, (24 * SZREG + MCONTEXT_FPREGS)(a0)
-+      s.d     fs1, (25 * SZREG + MCONTEXT_FPREGS)(a0)
-+      s.d     fs2, (26 * SZREG + MCONTEXT_FPREGS)(a0)
-+      s.d     fs3, (27 * SZREG + MCONTEXT_FPREGS)(a0)
-+      s.d     fs4, (28 * SZREG + MCONTEXT_FPREGS)(a0)
-+      s.d     fs5, (29 * SZREG + MCONTEXT_FPREGS)(a0)
-+      s.d     fs6, (30 * SZREG + MCONTEXT_FPREGS)(a0)
-+      s.d     fs7, (31 * SZREG + MCONTEXT_FPREGS)(a0)
-+
-+# else  /* _MIPS_SIM != _ABI64 */
-+      s.d     fs0, (20 * SZREG + MCONTEXT_FPREGS)(a0)
-+      s.d     fs1, (22 * SZREG + MCONTEXT_FPREGS)(a0)
-+      s.d     fs2, (24 * SZREG + MCONTEXT_FPREGS)(a0)
-+      s.d     fs3, (26 * SZREG + MCONTEXT_FPREGS)(a0)
-+      s.d     fs4, (28 * SZREG + MCONTEXT_FPREGS)(a0)
-+      s.d     fs5, (30 * SZREG + MCONTEXT_FPREGS)(a0)
-+
-+# endif /* _MIPS_SIM != _ABI64 */
-+
-+      cfc1    v1, fcr31
-+      sw      v1, MCONTEXT_FPC_CSR(a0)
-+#endif /* __mips_hard_float */
-+
-+      REG_S   a1, A1OFF(sp)
-+
-+/* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, &oucp->uc_sigmask, _NSIG8) 
*/
-+      li      a3, _NSIG8
-+      PTR_ADDU a2, a0, UCONTEXT_SIGMASK
-+      PTR_ADDU a1, a1, UCONTEXT_SIGMASK
-+      li      a0, SIG_SETMASK
-+
-+      li      v0, SYS_ify (rt_sigprocmask)
-+      syscall
-+      bnez    a3, 99f
-+
-+      REG_L   v0, A1OFF(sp)
-+
-+#ifdef __mips_hard_float
-+# if _MIPS_SIM == _ABI64
-+      l.d     fs0, (24 * SZREG + MCONTEXT_FPREGS)(v0)
-+      l.d     fs1, (25 * SZREG + MCONTEXT_FPREGS)(v0)
-+      l.d     fs2, (26 * SZREG + MCONTEXT_FPREGS)(v0)
-+      l.d     fs3, (27 * SZREG + MCONTEXT_FPREGS)(v0)
-+      l.d     fs4, (28 * SZREG + MCONTEXT_FPREGS)(v0)
-+      l.d     fs5, (29 * SZREG + MCONTEXT_FPREGS)(v0)
-+      l.d     fs6, (30 * SZREG + MCONTEXT_FPREGS)(v0)
-+      l.d     fs7, (31 * SZREG + MCONTEXT_FPREGS)(v0)
-+
-+# else  /* _MIPS_SIM != _ABI64 */
-+      l.d     fs0, (20 * SZREG + MCONTEXT_FPREGS)(v0)
-+      l.d     fs1, (22 * SZREG + MCONTEXT_FPREGS)(v0)
-+      l.d     fs2, (24 * SZREG + MCONTEXT_FPREGS)(v0)
-+      l.d     fs3, (26 * SZREG + MCONTEXT_FPREGS)(v0)
-+      l.d     fs4, (28 * SZREG + MCONTEXT_FPREGS)(v0)
-+      l.d     fs5, (30 * SZREG + MCONTEXT_FPREGS)(v0)
-+
-+# endif /* _MIPS_SIM != _ABI64 */
-+
-+      lw      v1, MCONTEXT_FPC_CSR(v0)
-+      ctc1    v1, fcr31
-+#endif /* __mips_hard_float */
-+
-+      /* Note the contents of argument registers will be random
-+         unless makecontext() has been called.  */
-+      REG_L   a0, (4 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   a1, (5 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   a2, (6 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   a3, (7 * SZREG + MCONTEXT_GREGS)(v0)
-+#if _MIPS_SIM != _ABIO32
-+      REG_L   a4, (8 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   a5, (9 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   a6, (10 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   a7, (11 * SZREG + MCONTEXT_GREGS)(v0)
-+#endif
-+
-+      REG_L   s0, (16 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   s1, (17 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   s2, (18 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   s3, (19 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   s4, (20 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   s5, (21 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   s6, (22 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   s7, (23 * SZREG + MCONTEXT_GREGS)(v0)
-+#if ! defined (__PIC__) || _MIPS_SIM != _ABIO32
-+      REG_L   gp, (28 * SZREG + MCONTEXT_GREGS)(v0)
-+#endif
-+      REG_L   sp, (29 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   fp, (30 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   ra, (31 * SZREG + MCONTEXT_GREGS)(v0)
-+      REG_L   t9, MCONTEXT_PC(v0)
-+
-+      move    v0, zero
-+      jr      t9
-+
-+99:
-+#ifdef __PIC__
-+      PTR_LA  t9, JUMPTARGET (__syscall_error)
-+      RESTORE_GP64
-+      PTR_ADDIU sp, FRAMESZ
-+      jr      t9
-+
-+#else  /* ! __PIC__ */
-+
-+      j       JUMPTARGET (__syscall_error)
-+#endif /* ! __PIC__ */
-+PSEUDO_END (__swapcontext)
-+
-+weak_alias (__swapcontext, swapcontext)
-diff --git a/sysdeps/unix/sysv/linux/mips/sys/ucontext.h 
b/sysdeps/unix/sysv/linux/mips/sys/ucontext.h
-index ac496f3..251f0c8 100644
---- a/ports/sysdeps/unix/sysv/linux/mips/sys/ucontext.h
-+++ b/ports/sysdeps/unix/sysv/linux/mips/sys/ucontext.h
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1997, 1998, 2000, 2003, 2004, 2006 Free Software
-+/* Copyright (C) 1997, 1998, 2000, 2003, 2004, 2006, 2009 Free Software
-    Foundation, Inc.  This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -56,12 +56,9 @@ typedef struct fpregset {
- #if _MIPS_SIM == _ABIO32
- /* Earlier versions of glibc for mips had an entirely different
-    definition of mcontext_t, that didn't even resemble the
--   corresponding kernel data structure.  Since all legitimate uses of
--   ucontext_t in glibc mustn't have accessed anything beyond
--   uc_mcontext and, even then, taking a pointer to it, casting it to
--   sigcontext_t, and accessing it as such, which is what it has always
--   been, this can still be rectified.  Fortunately, makecontext,
--   [gs]etcontext et all have never been implemented.  */
-+   corresponding kernel data structure.  Fortunately, makecontext,
-+   [gs]etcontext et all were not implemented back then, so this can
-+   still be rectified.  */
- typedef struct
-   {
-     unsigned int regmask;
-diff --git a/sysdeps/unix/sysv/linux/mips/ucontext_i.sym 
b/sysdeps/unix/sysv/linux/mips/ucontext_i.sym
-new file mode 100644
-index 0000000..f14b886
---- /dev/null
-+++ b/ports/sysdeps/unix/sysv/linux/mips/ucontext_i.sym
-@@ -0,0 +1,52 @@
-+#include <inttypes.h>
-+#include <signal.h>
-+#include <stddef.h>
-+#include <sys/ucontext.h>
-+
-+#include <kernel_rt_sigframe.h>
-+
-+-- Constants used by the rt_sigprocmask call.
-+
-+SIG_BLOCK
-+SIG_SETMASK
-+
-+_NSIG8                                (_NSIG / 8)
-+
-+-- Offsets of the fields in the kernel rt_sigframe_t structure.
-+#define rt_sigframe(member)   offsetof (kernel_rt_sigframe_t, member)
-+
-+RT_SIGFRAME_UCONTEXT          rt_sigframe (rs_uc)
-+
-+RT_SIGFRAME_SIZE              sizeof (kernel_rt_sigframe_t)
-+
-+-- Offsets of the fields in the ucontext_t structure.
-+#define ucontext(member)      offsetof (ucontext_t, member)
-+#define stack(member)         ucontext (uc_stack.member)
-+#define mcontext(member)      ucontext (uc_mcontext.member)
-+
-+UCONTEXT_FLAGS                        ucontext (uc_flags)
-+UCONTEXT_LINK                 ucontext (uc_link)
-+UCONTEXT_STACK                        ucontext (uc_stack)
-+UCONTEXT_MCONTEXT             ucontext (uc_mcontext)
-+UCONTEXT_SIGMASK              ucontext (uc_sigmask)
-+
-+STACK_SP                      stack (ss_sp)
-+STACK_SIZE                    stack (ss_size)
-+STACK_FLAGS                   stack (ss_flags)
-+
-+MCONTEXT_GREGS                        mcontext (gregs)
-+MCONTEXT_FPREGS                       mcontext (fpregs)
-+MCONTEXT_MDHI                 mcontext (mdhi)
-+MCONTEXT_HI1                  mcontext (hi1)
-+MCONTEXT_HI2                  mcontext (hi2)
-+MCONTEXT_HI3                  mcontext (hi3)
-+MCONTEXT_MDLO                 mcontext (mdlo)
-+MCONTEXT_LO1                  mcontext (lo1)
-+MCONTEXT_LO2                  mcontext (lo2)
-+MCONTEXT_LO3                  mcontext (lo3)
-+MCONTEXT_PC                   mcontext (pc)
-+MCONTEXT_FPC_CSR              mcontext (fpc_csr)
-+MCONTEXT_USED_MATH            mcontext (used_math)
-+MCONTEXT_DSP                  mcontext (dsp)
-+
-+UCONTEXT_SIZE                 sizeof (ucontext_t)
-diff --git a/ports/sysdeps/mips/sys/fpregdef.h 
b/ports/sysdeps/mips/sys/fpregdef.h
-index 3781152..d6c72bb 100644
---- a/ports/sysdeps/mips/sys/fpregdef.h
-+++ b/ports/sysdeps/mips/sys/fpregdef.h
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1991, 92, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
-+/* Copyright (C) 1991,92,94,95,96,97,98,2009 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -19,19 +19,52 @@
- #ifndef _SYS_FPREGDEF_H
- #define _SYS_FPREGDEF_H
- 
--/*
-- * These definitions only cover the R3000-ish 16/32 register model.
-- * But we're trying to be R3000 friendly anyway ...
-- */
--#define fv0   $f0      /* return value */
--#define fv0f  $f1
-+#include <sgidefs.h>
-+
-+/* Commonalities first, individualities next...  */
-+
-+#define fv0   $f0     /* return value */
- #define fv1   $f2
-+
-+#if _MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIN32
-+#define fs0   $f20    /* callee saved */
-+#define fs1   $f22
-+#define fs2   $f24
-+#define fs3   $f26
-+#define fs4   $f28
-+#define fs5   $f30
-+#endif /* _MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIN32 */
-+
-+#if _MIPS_SIM == _ABI64 || _MIPS_SIM == _ABIN32
-+#define fa0   $f12    /* argument registers */
-+#define fa1   $f13
-+#define fa2   $f14
-+#define fa3   $f15
-+#define fa4   $f16
-+#define fa5   $f17
-+#define fa6   $f18
-+#define fa7   $f19
-+
-+#define ft0   $f4     /* caller saved */
-+#define ft1   $f5
-+#define ft2   $f6
-+#define ft3   $f7
-+#define ft4   $f8
-+#define ft5   $f9
-+#define ft6   $f10
-+#define ft7   $f11
-+#endif /* _MIPS_SIM == _ABI64 || _MIPS_SIM == _ABIN32 */
-+
-+#if _MIPS_SIM == _ABIO32
-+#define fv0f  $f1     /* return value, high part */
- #define fv1f  $f3
--#define fa0   $f12     /* argument registers */
-+
-+#define fa0   $f12    /* argument registers */
- #define fa0f  $f13
- #define fa1   $f14
- #define fa1f  $f15
--#define ft0   $f4      /* caller saved */
-+
-+#define ft0   $f4     /* caller saved */
- #define ft0f  $f5
- #define ft1   $f6
- #define ft1f  $f7
-@@ -43,19 +76,44 @@
- #define ft4f  $f17
- #define ft5   $f18
- #define ft5f  $f19
--#define fs0   $f20     /* callee saved */
--#define fs0f  $f21
--#define fs1   $f22
-+
-+#define fs0f  $f21    /* callee saved, high part */
- #define fs1f  $f23
--#define fs2   $f24
- #define fs2f  $f25
--#define fs3   $f26
- #define fs3f  $f27
--#define fs4   $f28
- #define fs4f  $f29
--#define fs5   $f30
- #define fs5f  $f31
-+#endif /* _MIPS_SIM == _ABIO32 */
-+
-+#if _MIPS_SIM == _ABI64
-+#define ft8   $f20    /* caller saved */
-+#define ft9   $f21
-+#define ft10  $f22
-+#define ft11  $f23
-+#define ft12  $f1
-+#define ft13  $f3
-+
-+#define fs0   $f24    /* callee saved */
-+#define fs1   $f25
-+#define fs2   $f26
-+#define fs3   $f27
-+#define fs4   $f28
-+#define fs5   $f29
-+#define fs6   $f30
-+#define fs7   $f31
-+#endif /* _MIPS_SIM == _ABI64 */
-+
-+#if _MIPS_SIM == _ABIN32
-+#define ft8   $f21    /* caller saved */
-+#define ft9   $f23
-+#define ft10  $f25
-+#define ft11  $f27
-+#define ft12  $f29
-+#define ft13  $f31
-+#define ft14  $f1
-+#define ft15  $f3
-+#endif /* _MIPS_SIM == _ABIN32 */
- 
--#define fcr31 $31      /* FPU status register */
-+#define fcr31 $31     /* FPU status register */
- 
- #endif /* sys/fpregdef.h */

Modified: glibc-package/branches/eglibc-2.10/debian/patches/series
===================================================================
--- glibc-package/branches/eglibc-2.10/debian/patches/series    2009-05-09 
23:07:40 UTC (rev 3473)
+++ glibc-package/branches/eglibc-2.10/debian/patches/series    2009-05-09 
23:08:53 UTC (rev 3474)
@@ -112,7 +112,6 @@
 
 mips/local-lazy-eval.diff
 mips/local-r10k.diff
-mips/cvs-context.diff
 
 powerpc/local-sysconf.diff
 


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to