about summary refs log tree commit diff
path: root/nptl
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2004-12-15 09:16:13 +0000
committerJakub Jelinek <jakub@redhat.com>2004-12-15 09:16:13 +0000
commit0d60d7de5db10af7b1c1574520d3ab3c0f64d530 (patch)
tree55297be0fea4f11809c37ce1573cb7c564c22dcc /nptl
parent1b88b322d45419e79aff6b3b1fc2e59b78d6818d (diff)
downloadglibc-0d60d7de5db10af7b1c1574520d3ab3c0f64d530.tar.gz
glibc-0d60d7de5db10af7b1c1574520d3ab3c0f64d530.tar.xz
glibc-0d60d7de5db10af7b1c1574520d3ab3c0f64d530.zip
Updated to fedora-glibc-20041215T0847
Diffstat (limited to 'nptl')
-rw-r--r--nptl/ChangeLog12
-rw-r--r--nptl/sysdeps/powerpc/tcb-offsets.sym1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S3
-rw-r--r--nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S3
-rw-r--r--nptl/tst-getpid1.c34
5 files changed, 38 insertions, 15 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 981781807b..7d9054481f 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,15 @@
+2004-12-15  Ulrich Drepper  <drepper@redhat.com>
+
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: New file.
+
+2004-12-14  Ulrich Drepper  <drepper@redhat.com>
+
+	* sysdeps/powerpc/tcb-offsets.sym: Add TID.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: New file.
+
+	* tst-getpid1.c: If child crashes, report this first.  Print which
+	signal.
+
 2004-12-09  Ulrich Drepper  <drepper@redhat.com>
 
 	* init.c (__pthread_initialize_minimal_internal): Also unblock
diff --git a/nptl/sysdeps/powerpc/tcb-offsets.sym b/nptl/sysdeps/powerpc/tcb-offsets.sym
index fddd466f08..a9701fb5b7 100644
--- a/nptl/sysdeps/powerpc/tcb-offsets.sym
+++ b/nptl/sysdeps/powerpc/tcb-offsets.sym
@@ -12,3 +12,4 @@
 MULTIPLE_THREADS_OFFSET		thread_offsetof (header.multiple_threads)
 #endif
 PID				thread_offsetof (pid)
+TID				thread_offsetof (tid)
diff --git a/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S b/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
new file mode 100644
index 0000000000..e19579e842
--- /dev/null
+++ b/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
@@ -0,0 +1,3 @@
+#define RESET_PID
+#include <tcb-offsets.h>
+#include <sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S>
diff --git a/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S b/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
new file mode 100644
index 0000000000..f87adf4737
--- /dev/null
+++ b/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
@@ -0,0 +1,3 @@
+#define RESET_PID
+#include <tcb-offsets.h>
+#include <sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S>
diff --git a/nptl/tst-getpid1.c b/nptl/tst-getpid1.c
index 061b48d735..497bebed56 100644
--- a/nptl/tst-getpid1.c
+++ b/nptl/tst-getpid1.c
@@ -1,5 +1,6 @@
 #include <sched.h>
 #include <signal.h>
+#include <string.h>
 #include <stdio.h>
 #include <unistd.h>
 #include <sys/types.h>
@@ -66,20 +67,6 @@ do_test (void)
       }
   while  (si.si_signo != sig || si.si_code != SI_QUEUE);
 
-  if (si.si_int != (int) p)
-    {
-      printf ("expected PID %d, got si_int %d\n", (int) p, si.si_int);
-      kill (p, SIGKILL);
-      return 1;
-    }
-
-  if (si.si_pid != p)
-    {
-      printf ("expected PID %d, got si_pid %d\n", (int) p, (int) si.si_pid);
-      kill (p, SIGKILL);
-      return 1;
-    }
-
   int e;
   if (waitpid (p, &e, __WCLONE) != p)
     {
@@ -89,7 +76,10 @@ do_test (void)
     }
   if (!WIFEXITED (e))
     {
-      puts ("did not terminate correctly");
+      if (WIFSIGNALED (e))
+	printf ("died from signal %s\n", strsignal (WTERMSIG (e)));
+      else
+	puts ("did not terminate correctly");
       return 1;
     }
   if (WEXITSTATUS (e) != 0)
@@ -98,6 +88,20 @@ do_test (void)
       return 1;
     }
 
+  if (si.si_int != (int) p)
+    {
+      printf ("expected PID %d, got si_int %d\n", (int) p, si.si_int);
+      kill (p, SIGKILL);
+      return 1;
+    }
+
+  if (si.si_pid != p)
+    {
+      printf ("expected PID %d, got si_pid %d\n", (int) p, (int) si.si_pid);
+      kill (p, SIGKILL);
+      return 1;
+    }
+
   if (getpid () != mypid)
     {
       puts ("my PID changed");