rpms/glibc/devel glibc-s390-mangling.patch, NONE, 1.1 glibc.spec, 1.198, 1.199
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Mon Jan 2 11:58:27 UTC 2006
- Previous message (by thread): rpms/glibc/devel .cvsignore, 1.126, 1.127 glibc-fedora.patch, 1.117, 1.118 glibc.spec, 1.197, 1.198 sources, 1.148, 1.149
- Next message (by thread): rpms/net-snmp/devel net-snmp.spec,1.60,1.61
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: jakub
Update of /cvs/dist/rpms/glibc/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv2980
Modified Files:
glibc.spec
Added Files:
glibc-s390-mangling.patch
Log Message:
2.3.90-24
glibc-s390-mangling.patch:
s390/s390-32/__longjmp.c | 28 ++++++++++++++++++----------
s390/s390-32/setjmp.S | 7 ++++---
s390/s390-64/__longjmp.c | 27 ++++++++++++++++++---------
s390/s390-64/setjmp.S | 7 ++++---
unix/sysv/linux/s390/s390-32/sysdep.h | 2 ++
unix/sysv/linux/s390/s390-64/sysdep.h | 2 ++
6 files changed, 48 insertions(+), 25 deletions(-)
--- NEW FILE glibc-s390-mangling.patch ---
2006-01-02 Jakub Jelinek <jakub at redhat.com>
* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h (PTR_MANGLE2):
Define.
* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h (PTR_MANGLE2):
Likewise.
* sysdeps/s390/s390-32/__longjmp.c (__longjmp): Demangle also %r15.
* sysdeps/s390/s390-64/__longjmp.c (__longjmp): Likewise.
* sysdeps/s390/s390-32/setjmp.S (__sigsetjmp): Mangle also %r15.
* sysdeps/s390/s390-64/setjmp.S (__sigsetjmp): Likewise.
--- libc/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h.jj 2005-12-30 09:04:17.000000000 +0100
+++ libc/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h 2005-12-30 12:28:59.000000000 +0100
@@ -275,6 +275,8 @@
# define PTR_MANGLE(reg, tmpreg) \
ear tmpreg,%a0; \
x reg,STACK_GUARD(tmpreg)
+# define PTR_MANGLE2(reg, tmpreg) \
+ x reg,STACK_GUARD(tmpreg)
# define PTR_DEMANGLE(reg, tmpreg) PTR_MANGLE (reg, tmpreg)
# else
# define PTR_MANGLE(var) \
--- libc/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h.jj 2005-12-30 09:04:17.000000000 +0100
+++ libc/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h 2005-12-30 12:43:26.000000000 +0100
@@ -277,6 +277,8 @@
sllg tmpreg,tmpreg,32; \
ear tmpreg,%a1; \
xg reg,STACK_GUARD(tmpreg)
+# define PTR_MANGLE2(reg, tmpreg) \
+ xg reg,STACK_GUARD(tmpreg)
# define PTR_DEMANGLE(reg, tmpreg) PTR_MANGLE (reg, tmpreg)
# else
# define PTR_MANGLE(var) \
--- libc/sysdeps/s390/s390-32/__longjmp.c.jj 2005-12-30 09:04:16.000000000 +0100
+++ libc/sysdeps/s390/s390-32/__longjmp.c 2005-12-30 12:27:24.000000000 +0100
@@ -29,24 +29,32 @@
void
__longjmp (__jmp_buf env, int val)
{
+ register int r2 __asm ("%r2") = val == 0 ? 1 : val;
#ifdef PTR_DEMANGLE
- register uintptr_t r5 __asm ("%r5") = THREAD_GET_POINTER_GUARD ();
+ register uintptr_t r3 __asm ("%r3") = THREAD_GET_POINTER_GUARD ();
+ register void *r1 __asm ("%r1") = (void *) __jmp_buf;
#endif
/* Restore registers and jump back. */
- asm volatile ("lr %%r2,%0\n\t" /* PUT val in grp 2. */
- "ld %%f6,48(%1)\n\t"
+ asm volatile ("ld %%f6,48(%1)\n\t"
"ld %%f4,40(%1)\n\t"
- "lm %%r6,%%r15,0(%1)\n\t"
#ifdef PTR_DEMANGLE
- "xr %%r14,%2\n\t"
-#endif
+ "lm %%r6,%%r13,0(%1)\n\t"
+ "lm %%r4,%%r5,32(%1)\n\t"
+ "xr %%r4,%2\n\t"
+ "xr %%r5,%2\n\t"
+ "lr %%r15,%r5\n\t"
+ "br %%r4"
+#else
+ "lm %%r6,%%r15,0(%1)\n\t"
"br %%r14"
- : : "r" (val == 0 ? 1 : val),
- "a" (env)
+#endif
+ : : "r" (r2),
#ifdef PTR_DEMANGLE
- , "r" (r5)
+ "r" (r1), "r" (r3)
+#else
+ "a" (env)
#endif
- : "2" );
+ );
/* Avoid `volatile function does return' warnings. */
for (;;);
--- libc/sysdeps/s390/s390-32/setjmp.S.jj 2005-12-30 09:04:16.000000000 +0100
+++ libc/sysdeps/s390/s390-32/setjmp.S 2005-12-30 12:31:49.000000000 +0100
@@ -32,9 +32,10 @@ ENTRY(__sigsetjmp)
#ifdef PTR_MANGLE
stm %r6,%r13,0(%r2) /* store registers in jmp_buf */
lr %r4,%r14
- PTR_MANGLE (%r4, %r5)
- st %r4,32(%r2)
- st %r15,36(%r2)
+ lr %r5,%r15
+ PTR_MANGLE (%r4, %r1)
+ PTR_MANGLE2 (%r5, %r1)
+ stm %r4,%r5,32(%r2)
#else
stm %r6,%r15,0(%r2) /* store registers in jmp_buf */
#endif
--- libc/sysdeps/s390/s390-64/__longjmp.c.jj 2005-12-30 09:04:16.000000000 +0100
+++ libc/sysdeps/s390/s390-64/__longjmp.c 2005-12-30 12:38:10.000000000 +0100
@@ -29,26 +29,35 @@
void
__longjmp (__jmp_buf env, int val)
{
+ register long int r2 __asm ("%r2") = val == 0 ? 1 : val;
#ifdef PTR_DEMANGLE
- register uintptr_t r5 __asm ("%r5") = THREAD_GET_POINTER_GUARD ();
+ register uintptr_t r3 __asm ("%r3") = THREAD_GET_POINTER_GUARD ();
+ register void *r1 __asm ("%r1") = (void *) __jmp_buf;
#endif
/* Restore registers and jump back. */
- asm volatile ("lgr %%r2,%0\n\t" /* Put val in grp 2. */
- "ld %%f7,104(%1)\n\t"
+ asm volatile ("ld %%f7,104(%1)\n\t"
"ld %%f5,96(%1)\n\t"
"ld %%f3,88(%1)\n\t"
"ld %%f1,80(%1)\n\t"
- "lmg %%r6,%%r15,0(%1)\n\t"
#ifdef PTR_DEMANGLE
"xgr %%r14,%2\n\t"
-#endif
+ "lmg %%r6,%%r13,0(%1)\n\t"
+ "lmg %%r4,%%r5,64(%1)\n\t"
+ "xgr %%r4,%2\n\t"
+ "xgr %%r5,%2\n\t"
+ "lgr %%r15,%r5\n\t"
+ "br %%r4"
+#else
+ "lmg %%r6,%%r15,0(%1)\n\t"
"br %%r14"
- : : "r" (val == 0 ? 1 : val),
- "a" (env)
+#endif
+ : : "r" (r2),
#ifdef PTR_DEMANGLE
- , "r" (r5)
+ "r" (r1), "r" (r3)
+#else
+ "a" (env)
#endif
- : "2" );
+ );
/* Avoid `volatile function does return' warnings. */
for (;;);
--- libc/sysdeps/s390/s390-64/setjmp.S.jj 2005-12-30 09:04:16.000000000 +0100
+++ libc/sysdeps/s390/s390-64/setjmp.S 2005-12-30 12:42:25.000000000 +0100
@@ -31,9 +31,10 @@ ENTRY(__sigsetjmp)
#ifdef PTR_MANGLE
stmg %r6,%r13,0(%r2) /* Store registers in jmp_buf. */
lgr %r4,%r14
- PTR_MANGLE (%r4, %r5)
- stg %r4,64(%r2)
- stg %r15,72(%r2)
+ lgr %r5,%r15
+ PTR_MANGLE (%r4, %r1)
+ PTR_MANGLE2 (%r4, %r1)
+ stmg %r4,%r5,64(%r2)
#else
stmg %r6,%r15,0(%r2) /* Store registers in jmp_buf. */
#endif
Index: glibc.spec
===================================================================
RCS file: /cvs/dist/rpms/glibc/devel/glibc.spec,v
retrieving revision 1.198
retrieving revision 1.199
diff -u -r1.198 -r1.199
--- glibc.spec 2 Jan 2006 11:34:49 -0000 1.198
+++ glibc.spec 2 Jan 2006 11:58:25 -0000 1.199
@@ -33,6 +33,7 @@
Patch0: %{glibcname}-fedora.patch
Patch1: %{name}-ppc-assume.patch
Patch2: %{name}-ia64-lib64.patch
+Patch3: glibc-s390-mangling.patch
Buildroot: %{_tmppath}/glibc-%{PACKAGE_VERSION}-root
Obsoletes: zoneinfo, libc-static, libc-devel, libc-profile, libc-headers,
Obsoletes: gencat, locale, ldconfig, locale-ja, glibc-profile
@@ -240,6 +241,7 @@
%patch2 -p1
%endif
%endif
+%patch3 -p1
# Hack till glibc-kernheaders get updated, argh
mkdir asm
- Previous message (by thread): rpms/glibc/devel .cvsignore, 1.126, 1.127 glibc-fedora.patch, 1.117, 1.118 glibc.spec, 1.197, 1.198 sources, 1.148, 1.149
- Next message (by thread): rpms/net-snmp/devel net-snmp.spec,1.60,1.61
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-cvs-commits
mailing list