From: Rainer Jung <[email protected]>
> The file defined "_POSIX_C_SOURCE 2", which results in strcasecmp no
> longer being defined. Adding "-D__EXTENSIONS__" activates all compatible
> extensions (on Solaris) and resolves this, if "_POSIX_C_SOURCE 2" is not
> defined. The Configure entry for Solaris debug already contains
> -D__EXTENSIONS__. One might only set "_POSIX_C_SOURCE 2" for the
> platform that needs it. In apps.c it says:
>
> /* On VMS, you need to define this to get
> the declaration of fileno(). The value
> 2 is to make sure no function defined
> in POSIX-2 is left undefined. */
>
> but then sets it unconditionally for all platforms.
For the record, on (my handy) VMS (system), <stdio.h> says:
[...]
/*
** ISO POSIX-1 Extensions
*/
#if defined(_POSIX_C_SOURCE) || !defined(_ANSI_C_SOURCE)
int (fileno) (__FILE *__stream);
__FILE_ptr32 fdopen(int __file_desc, const char *__mode);
#endif
[...]
And <decc$types.h> (included by practically everything, including
<stdio.h> and <types.h>) says:
[...]
/*
** Set up feature test macros
*/
# if defined _XOPEN_SOURCE_EXTENDED && !defined _XOPEN_SOURCE
# define _XOPEN_SOURCE
# endif
# if defined _XOPEN_SOURCE
# if !defined _POSIX_C_SOURCE
# define _POSIX_C_SOURCE 2
# endif
# if _POSIX_C_SOURCE < 2
# undef _POSIX_C_SOURCE
# define _POSIX_C_SOURCE 2
# endif
# endif
# if defined _POSIX_SOURCE
# if !defined _POSIX_C_SOURCE
# define _POSIX_C_SOURCE 1
# endif
# if _POSIX_C_SOURCE < 1
# undef _POSIX_C_SOURCE /* Use _POSIX_C_SOURCE with a value of 1 */
# define _POSIX_C_SOURCE 1 /* instead of _POSIX_SOURCE (obsolete) */
# endif
# endif
# if defined _POSIX_C_SOURCE && !defined _ANSI_C_SOURCE
# define _ANSI_C_SOURCE
# endif
[...]
I've tested nothing, so I know nothing, but it appears that defining
_XOPEN_SOURCE_EXTENDED (or _XOPEN_SOURCE) before processing any of the
system header files, for example, might be about as effective at
exposing fileno() as defining _POSIX_C_SOURCE directly. Around here,
_XOPEN_SOURCE_EXTENDED seems usually to get more things enabled, not
disabled, so it might be safer eleswhere, too.
------------------------------------------------------------------------
Steven M. Schweda sms@antinode-info
382 South Warwick Street (+1) 651-699-9818
Saint Paul MN 55105-2547
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [email protected]
Automated List Manager [email protected]