Bug#405411: Patch attached
patch for parisc/hppa arcitecture is attached here now...
--- glibc-2.3.6.ds1/build-tree/glibc-2.3.6/debian/sysdeps/unix/sysv/linux/hppa/clone.S.org 2006-12-29 08:49:25.000000000 +0100
+++ glibc-2.3.6.ds1/build-tree/glibc-2.3.6/debian/sysdeps/unix/sysv/linux/hppa/clone.S 2007-01-01 19:53:00.000000000 +0100
@@ -32,6 +32,11 @@
ENTRY(__clone)
/* FIXME: I have no idea how profiling works on hppa. */
+ /* Save the PIC register. */
+#ifdef PIC
+ stw %r19,-32(%sr0, %sp) /* parent */
+#endif
+
/* Sanity check arguments. */
comib,= 0,%arg0,.Lerror /* no NULL function pointers */
ldi -EINVAL,%ret0
@@ -41,10 +46,8 @@
/* Save the fn ptr and arg on the new stack. */
stwm %arg0,64(%arg1)
stw %arg3,-60(%arg1)
-
- /* Save the PIC register. */
#ifdef PIC
- stw %r19,-32(%sr0, %sp) /* parent */
+ stw %r19,-32(%arg1) /* save PIC on child's stack */
#endif
/* Do the system call */
@@ -88,6 +91,11 @@
bl $$dyncall,%r31
copy %r31,%rp
+ /* Restore PIC register for exit() */
+#ifdef PIC
+ ldw -32(%sr0, %sp), %r19 /* parent */
+#endif
+
bl _exit,%rp
copy %ret0,%arg0
Reply to: