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