runc uses clone() with a combination of flags which we don't support. This commit works it around by ignoring CLONE_PARENT.
[!MERGE] because this is just a crude hack for the very specific application. Signed-off-by: YAMAMOTO Takashi <yamam...@midokura.com> --- linux-user/syscall.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 56a3c37d83..7645ed36e4 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -6553,6 +6553,8 @@ static int do_fork(CPUArchState *env, unsigned int flags, abi_ulong newsp, pthread_mutex_destroy(&info.mutex); pthread_mutex_unlock(&clone_lock); } else { + flags &= ~CLONE_PARENT; /* XXX crude hack for libcontainer. */ + /* if no CLONE_VM, we consider it is a fork */ if (flags & CLONE_INVALID_FORK_FLAGS) { return -TARGET_EINVAL; -- 2.21.1 (Apple Git-122.3)