bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: declare getusershell in unistd.h


From: Jim Meyering
Subject: Re: declare getusershell in unistd.h
Date: Mon, 20 Oct 2008 12:19:51 +0200

Bruno Haible <address@hidden> wrote:
>> 2008-10-18  Bruno Haible  <address@hidden>
>>
>>      * lib/unistd.in.h (getusershell, setusershell, endusershell): New
>>      declarations.
>>      * lib/getusershell.c: Include unistd.h.
>>      * m4/getusershell.m4 (gl_FUNC_GETUSERSHELL): Require
>>      gl_UNISTD_H_DEFAULTS and AC_USE_SYSTEM_EXTENSIONS. Set
>>      HAVE_GETUSERSHELL.
>>      * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_GETUSERSHELL
>>      and HAVE_GETUSERSHELL.
>>      * modules/getusershell (Depends-on): Add unistd, extensions.
>>      (configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR.
>>      (Include): Specify <unistd.h>.
>>      * modules/unistd (Makefile.am): Substitute GNULIB_GETUSERSHELL and
>>      HAVE_GETUSERSHELL.
>
> Applied.
>
> I now see that coreutils/src/su.c has this:
>
>
> /* Hide any system prototype for getusershell.
>    This is necessary because some Cray systems have a conflicting
>    prototype (returning `int') in <unistd.h>.  */
> #define getusershell _getusershell_sys_proto_
>
> #include "system.h"
> #include "getpass.h"
>
> #undef getusershell
>
>
> If Cray systems are still a portability target, the current idiom for this
> kind of problem is to add
>   #define getusershell rpl_getusershell
> in unistd.in.h.

AFAIK, the affected versions of Unicos are no longer in use,
so I wouldn't bother.

At first I removed those declarations from su.c,
but then the ones from the system unistd.h were
not visible on recent Linux.
Combine that with the fact that coreutils is getting
out of the business of maintaining su.c, I opted
not to change it at all.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]