Instead of using fork(), call syscall(__NR_fork) in step-fork.c
to avoid looping on powerpc arch in libc.

Signed-off-by: Veaceslav Falico <vfal...@redhat.com>
---

--- a/ptrace-tests/tests/step-fork.c    2009-12-01 17:17:14.000000000 +0100
+++ b/ptrace-tests/tests/step-fork.c    2009-12-01 18:35:15.000000000 +0100
@@ -29,6 +29,7 @@
 #include <unistd.h>
 #include <sys/wait.h>
 #include <string.h>
+#include <sys/syscall.h>
 #include <signal.h>
 
 #ifndef PTRACE_SINGLESTEP
@@ -78,7 +79,12 @@ main (int argc, char **argv)
        sigprocmask (SIG_BLOCK, &mask, NULL);
        ptrace (PTRACE_TRACEME);
        raise (SIGUSR1);
-       if (fork () == 0)
+
+       /*
+        * Can't use fork() directly because on powerpc it loops inside libc 
under
+        * PTRACE_SINGLESTEP. See 
http://marc.info/?l=linux-kernel&m=125927241130695
+        */
+       if (syscall(__NR_fork) == 0)
          {
            read (-1, NULL, 0);
            _exit (22);

Reply via email to