/* Ltrace Test : trace-clone.c.
   Objectives  : Verify that ltrace can trace to child process after
   clone called.

   This file was written by Yao Qi <qiyao@cn.ibm.com>.  */
#define _GNU_SOURCE
#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>
#include <sched.h>
#include <unistd.h>

int child ()
{
  sleep(1);
  return 0;
}

typedef int (* myfunc)();

#define STACK_SIZE 1024

int main ()
{
  pid_t pid;
  static __attribute__ ((aligned (16))) char stack[STACK_SIZE];

#ifdef __ia64__
  pid = __clone2((myfunc)&child, stack, STACK_SIZE, CLONE_FS, NULL);
#else
  pid = clone((myfunc)&child, stack + STACK_SIZE, CLONE_FS, NULL);
#endif
  if (pid < 0)
    {
      perror("clone called failed");
      exit (1);
    }
  
  return 0;
}
