cygwin-1.7.28 getpwent header declaration changes ?
Marco Atzeri
marco.atzeri@gmail.com
Sun Feb 9 20:06:00 GMT 2014
On 06/02/2014 10:01, Corinna Vinschen wrote:
> On Feb 6 08:29, Marco Atzeri wrote:
>> on cygwin-1.7.28 64 bit but not on cygwin-1.7.27,
>> (only system difference) compiling octave I see:
>>
>> ----------------------------------------------------------------
>> /pub/devel/octave/octave-3.8.0-2/src/octave-3.8.0/liboctave/system/oct-passwd.cc
>> :114:25: error: '::getpwent' has not been declared
>> return octave_passwd (::getpwent (), msg);
>> ^
>> [...]
>> Is something slightly changed in the relative system headers ?
>
> I don't know anything about octave, but what has changed is that newlib
> is finally introducing BSD-like visibility macros. The pwd.h header now
> contains this:
>
> #if __XSI_VISIBLE >= 500
> struct passwd *getpwent (void);
> void setpwent (void);
> void endpwent (void);
> #endif
>
> The default settings per the sys/cdefs.h header are:
>
> #define __POSIX_VISIBLE 200809
> #define __XSI_VISIBLE 700
> #define __BSD_VISIBLE 1
> #define __ISO_C_VISIBLE 2011
>
> unless your environment defines one of
>
> _XOPEN_SOURCE
> _POSIX_C_SOURCE
> _ANSI_SOURCE
> _C99_SOURCE
> _C11_SOURCE
> _GNU_SOURCE
>
> Have a look at the end of /usr/include/sys/cdefs.h, it explains things.
>
>
> Corinna
>
probably I am missing something obvious, but should not
/usr/include/sys/cdefs.h
be included in some way in
/usr/include/pwd.h
to make working the
#if __XSI_VISIBLE >= 500
struct passwd *getpwent (void);
void setpwent (void);
void endpwent (void);
#endif
?
Regards
Marco
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin
mailing list