From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1791) id 92815382E071; Thu, 30 Jul 2020 13:27:54 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 92815382E071 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Adhemerval Zanella To: glibc-cvs@sourceware.org Subject: [glibc/azanella/y2038] linux: Add 64-bit time_t support for wait3 X-Act-Checkin: glibc X-Git-Author: Adhemerval Zanella X-Git-Refname: refs/heads/azanella/y2038 X-Git-Oldrev: 9b950ec0cc1b6f496c5389217422540cc114f850 X-Git-Newrev: e1226054d129f99199e59dcfbef1198b9bdd54c1 Message-Id: <20200730132754.92815382E071@sourceware.org> Date: Thu, 30 Jul 2020 13:27:54 +0000 (GMT) X-BeenThere: glibc-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Glibc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2020 13:27:54 -0000 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e1226054d129f99199e59dcfbef1198b9bdd54c1 commit e1226054d129f99199e59dcfbef1198b9bdd54c1 Author: Adhemerval Zanella Date: Fri Jul 24 15:05:19 2020 -0300 linux: Add 64-bit time_t support for wait3 It basically calls the 64-bit time_t wait4 internal symbol. Checked on x86_64-linux-gnu and i686-linux-gnu. Diff: --- include/sys/resource.h | 4 ++++ sysdeps/unix/sysv/linux/wait3.c | 44 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/include/sys/resource.h b/include/sys/resource.h index 64925f257c..2235b020fc 100644 --- a/include/sys/resource.h +++ b/include/sys/resource.h @@ -138,12 +138,16 @@ libc_hidden_proto (__setrlimit); #if __TIMESIZE == 64 # define __getrusage64 __getrusage # define __wait4_time64 __wait4 +# define __wait3_time64 __wait3 #else extern int __getrusage64 (enum __rusage_who who, struct __rusage64 *usage); libc_hidden_proto (__getrusage64) extern pid_t __wait4_time64 (pid_t pid, int *stat_loc, int options, struct __rusage64 *usage); libc_hidden_proto (__wait4_time64) +extern pid_t __wait3_time64 (int *stat_loc, int options, + struct __rusage64 *usage); +libc_hidden_proto (__wait3_time64) #endif #endif #endif diff --git a/sysdeps/unix/sysv/linux/wait3.c b/sysdeps/unix/sysv/linux/wait3.c new file mode 100644 index 0000000000..c05776f7ab --- /dev/null +++ b/sysdeps/unix/sysv/linux/wait3.c @@ -0,0 +1,44 @@ +/* Wait for process to change state, BSD style. Linux version. + Copyright (C) 2020 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 + +pid_t +__wait3_time64 (int *stat_loc, int options, struct __rusage64 *usage) +{ + return __wait4_time64 (WAIT_ANY, stat_loc, options, usage); +} +#if __TIMESIZE != 64 +libc_hidden_def (__wait3_time64) + +pid_t +__wait3 (int *stat_loc, int options, struct rusage *usage) +{ + struct __rusage64 usage64; + pid_t ret = __wait3_time64 (stat_loc, options, + usage != NULL ? &usage64 : NULL); + if (ret > 0 && usage != NULL) + rusage64_to_rusage (&usage64, usage); + + return ret; +} +#endif + +weak_alias (__wait3, wait3)