On Mon, 15.12.14 08:01, Ken Werner (k...@linux.vnet.ibm.com) wrote:

> From: Ken Werner <k...@linux.vnet.ibm.com>
> 
> Since the order of the first and second arguments of the raw clone()
> system call is reversed on s390 and cris it needs to be invoked differently.
> 
> Signed-off-by: Ken Werner <k...@linux.vnet.ibm.com>

Hmm, I'd prefer if we could move the definition of this syscall
wrapper into missing.h, and do the per-arch magic there, like we do
for all the other syscalls missing from glibc. Maybe call the function
"raw_clone()" there or so.

Alternatively we could move to the glibc-provided wrapper, but I think
it's nastier to use, since it requires a stack parameter to be
specified.

> @@ -3133,9 +3133,17 @@ int main(int argc, char *argv[]) {
>                          goto finish;
>                  }
>  
> +#if defined(__s390__) || defined(__CRIS)
> +                /* On s390 and cris the order of the first and second 
> arguments
> +                 * of the raw clone() system call is reversed. */
> +                pid = syscall(__NR_clone, NULL, SIGCHLD|CLONE_NEWNS|
> +                                          (arg_share_system ? 0 : 
> CLONE_NEWIPC|CLONE_NEWPID|CLONE_NEWUTS)|
> +                                          (arg_private_network ? 
> CLONE_NEWNET : 0));
> +#else
>                  pid = syscall(__NR_clone, SIGCHLD|CLONE_NEWNS|
>                                            (arg_share_system ? 0 : 
> CLONE_NEWIPC|CLONE_NEWPID|CLONE_NEWUTS)|
>                                            (arg_private_network ? 
> CLONE_NEWNET : 0), NULL);
> +#endif
>                  if (pid < 0) {
>                          if (errno == EINVAL)
>                                  r = log_error_errno(errno, "clone() failed, 
> do you have namespace support enabled in your kernel? (You need UTS, IPC, PID 
> and NET namespacing built in): %m");
> -- 
> 1.7.1
> 
> _______________________________________________
> systemd-devel mailing list
> systemd-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Lennart

-- 
Lennart Poettering, Red Hat
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to