This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Deprecate union wait and remove support from wait functions [BZ #19613]
- From: Roland McGrath <roland at hack dot frob dot com>
- To: Florian Weimer <fweimer at redhat dot com>
- Cc: GNU C Library <libc-alpha at sourceware dot org>
- Date: Mon, 7 Mar 2016 14:55:10 -0800 (PST)
- Subject: Re: Deprecate union wait and remove support from wait functions [BZ #19613]
- Authentication-results: sourceware.org; auth=none
- References: <56BE07C8 dot 40205 at redhat dot com>
I don't see a rationale for keeping union wait at all if it can be longer
be used with the wait* functions. If we need staged deprecation, then it
should be a staged deprecation of all the features (with the possible
exception of W* macros accepting 'union wait' argument values, which was
always a GNU extension over the 4.3BSD API that specified 'union wait').
Personally I'm OK with just removing it entirely in one cycle.
> [BZ #19613]
> Deprecate union wait and remove union wait * support from W*
> macros in <sys/wait.h>.
The W* macros support arguments of type 'union wait', not 'union wait *'.
> * sunrpc/key_call.c (key_call_keyenvoy): Use int instead of union
> wait.
This one change could and should go in separately first.
> diff --git a/sunrpc/key_call.c b/sunrpc/key_call.c
> index 7ecf6fb..7880ab9 100644
> --- a/sunrpc/key_call.c
> +++ b/sunrpc/key_call.c
> @@ -304,7 +304,7 @@ key_call_keyenvoy (u_long proc, xdrproc_t xdr_arg, char *arg,
> FILE *fargs;
> FILE *frslt;
> sigset_t oldmask, mask;
> - union wait status;
> + int status;
> int pid;
> int success;
> uid_t ruid;
This is insufficient. You need to adjust the use of STATUS as well. This
function is under #ifndef SO_PASSCRED so you'd probably have to do a Hurd
build to see actually get built. If you hand-hacked out the #ifndef for
purposes of compile testing on a Linux configuration, then that would be
good enough for the change to go in.
Thanks,
Roland