From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29562 invoked by alias); 14 Nov 2019 14:47:19 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 29469 invoked by uid 89); 14 Nov 2019 14:47:19 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-21.6 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy= X-HELO: mail-qt1-f193.google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Z6SLZq1tm477cM4QN+7XZKMHajeWyJcEu7ySStf5JPU=; b=hlqNVYFT/jYX6JFgE9etFbB02TejWo83gyJr84b5JHwBH/PWuvGmBJDSf30V9pzXT6 n+af0I/VnofR4MB8tMHqZT5N7OVq1xfJKcj9N5QniwtUmHT2X06zTMEX1+WH6YqwLu/q Jp6JNSSu7pcIAz5HIPVTZJU4Dg14yLXYPmfVRxyy2xPGXgwQ1axkieiLnUgIZhsu/e8r GQBWUBdlKMWoVPqqb2WgcU/i/aWAluOLNa42ZganDQ7ghSKXi9h8p/5T0oqXGQemvx+3 J7uhuCiVP8MefllL16AIQNQ2yD4Um5BGDXNK4PJKuY1kxrQm8sDSK6tBkfHLbANalDuJ SkQQ== Return-Path: From: Adhemerval Zanella To: libc-alpha@sourceware.org Cc: Alistair Francis , alistair23@gmail.com Subject: [PATCH 4/7] Implement wait in terms of waitpid Date: Thu, 14 Nov 2019 14:47:00 -0000 Message-Id: <20191114144704.19002-4-adhemerval.zanella@linaro.org> In-Reply-To: <20191114144704.19002-1-adhemerval.zanella@linaro.org> References: <20191114144704.19002-1-adhemerval.zanella@linaro.org> X-SW-Source: 2019-11/txt/msg00554.txt.bz2 The posix implementation is used as default and both bsd and linux version are removed. It simplifies the implementation for architectures that does not provide either __NR_waitpid or __NR_wait4. Checked on x86_64-linux-gnu and powerpc64le-linux-gnu. --- posix/wait.c | 6 +----- sysdeps/posix/wait.c | 30 ----------------------------- sysdeps/unix/bsd/wait.c | 32 ------------------------------- sysdeps/unix/sysv/linux/wait.c | 35 ---------------------------------- 4 files changed, 1 insertion(+), 102 deletions(-) delete mode 100644 sysdeps/posix/wait.c delete mode 100644 sysdeps/unix/bsd/wait.c delete mode 100644 sysdeps/unix/sysv/linux/wait.c diff --git a/posix/wait.c b/posix/wait.c index 0acd1e4926..908e15030a 100644 --- a/posix/wait.c +++ b/posix/wait.c @@ -16,16 +16,12 @@ . */ #include -#include /* Wait for a child to die. When one does, put its status in *STAT_LOC and return its process ID. For errors, return (pid_t) -1. */ __pid_t __wait (int *stat_loc) { - __set_errno (ENOSYS); - return -1; + return __waitpid (WAIT_ANY, (int *) stat_loc, 0); } -stub_warning (wait) - weak_alias (__wait, wait) diff --git a/sysdeps/posix/wait.c b/sysdeps/posix/wait.c deleted file mode 100644 index 573aa47a6d..0000000000 --- a/sysdeps/posix/wait.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include - - -/* Wait for a child to die. When one does, put its status in *STAT_LOC - and return its process ID. For errors, return (pid_t) -1. */ -__pid_t -__libc_wait (int *stat_loc) -{ - return __waitpid (WAIT_ANY, (int *) stat_loc, 0); -} - -weak_alias (__libc_wait, __wait) -weak_alias (__libc_wait, wait) diff --git a/sysdeps/unix/bsd/wait.c b/sysdeps/unix/bsd/wait.c deleted file mode 100644 index 3207d96330..0000000000 --- a/sysdeps/unix/bsd/wait.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -#include -#include - -/* Wait for a child to die. When one does, put its status in *STAT_LOC - and return its process ID. For errors, return (pid_t) -1. */ -__pid_t -__libc_wait (int *stat_loc) -{ - return __wait4 (WAIT_ANY, stat_loc, 0, (struct rusage *) NULL); -} - -weak_alias (__libc_wait, __wait) -weak_alias (__libc_wait, wait) diff --git a/sysdeps/unix/sysv/linux/wait.c b/sysdeps/unix/sysv/linux/wait.c deleted file mode 100644 index c2385c752e..0000000000 --- a/sysdeps/unix/sysv/linux/wait.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -#include -#include -#include - -/* Wait for a child to die. When one does, put its status in *STAT_LOC - and return its process ID. For errors, return (pid_t) -1. */ -pid_t -__libc_wait (int *stat_loc) -{ - pid_t result = SYSCALL_CANCEL (wait4, WAIT_ANY, stat_loc, 0, - (struct rusage *) NULL); - return result; -} - -weak_alias (__libc_wait, __wait) -weak_alias (__libc_wait, wait) -- 2.17.1