X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fsys_select.in.h;h=11e20f4f7f9ed75b20ba7ed5cb6bbef6a7012572;hb=969fe755730d23ba7ff21ae7511f66067d0a94d8;hp=5a4b7a5a4d9cf37e50614c5d6f3f9a921538957d;hpb=23c6fc446a93d098c9e531234af635316a4386ef;p=gnulib.git diff --git a/lib/sys_select.in.h b/lib/sys_select.in.h index 5a4b7a5a4..11e20f4f7 100644 --- a/lib/sys_select.in.h +++ b/lib/sys_select.in.h @@ -1,5 +1,5 @@ /* Substitute for . - Copyright (C) 2007-2008 Free Software Foundation, Inc. + Copyright (C) 2007-2010 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -15,19 +15,45 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ +# if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +# endif + +/* On OSF/1, and include . + Simply delegate to the system's header in this case. */ +#if @HAVE_SYS_SELECT_H@ && defined __osf__ && (defined _SYS_TYPES_H_ && !defined _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TYPES_H) && defined _OSF_SOURCE + +# define _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TYPES_H +# @INCLUDE_NEXT@ @NEXT_SYS_SELECT_H@ + +#elif @HAVE_SYS_SELECT_H@ && defined __osf__ && (defined _SYS_TIME_H_ && !defined _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TIME_H) && defined _OSF_SOURCE + +# define _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TIME_H +# @INCLUDE_NEXT@ @NEXT_SYS_SELECT_H@ + +#else + #ifndef _GL_SYS_SELECT_H #if @HAVE_SYS_SELECT_H@ -@PRAGMA_SYSTEM_HEADER@ - /* On many platforms, assumes prior inclusion of . */ # include /* On OSF/1 4.0, provides only a forward declaration - of 'struct timeval', and no definition of this type.. */ -# include + of 'struct timeval', and no definition of this type. + But avoid namespace pollution on glibc systems. */ +# ifndef __GLIBC__ +# include +# endif + +/* On Solaris 10, provides an FD_ZERO implementation + that relies on memset(), but without including . + But avoid namespace pollution on glibc systems. */ +# ifndef __GLIBC__ +# include +# endif /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_SYS_SELECT_H@ @@ -43,28 +69,35 @@ # include -# if @HAVE_WINSOCK2_H@ +/* The definition of GL_LINK_WARNING is copied here. */ -# ifdef __cplusplus +# ifdef __cplusplus extern "C" { -# endif +# endif -# if @GNULIB_SELECT@ +# if @GNULIB_SELECT@ +# if @HAVE_WINSOCK2_H@ || @REPLACE_SELECT@ # undef select # define select rpl_select extern int rpl_select (int, fd_set *, fd_set *, fd_set *, struct timeval *); -# else -# undef select -# define select select_used_without_requesting_gnulib_module_select # endif +# elif @HAVE_WINSOCK2_H@ +# undef select +# define select select_used_without_requesting_gnulib_module_select +# elif defined GNULIB_POSIXCHECK +# undef select +# define select(n,r,w,e,t) \ + (GL_LINK_WARNING ("select is not always POSIX compliant - " \ + "use gnulib module select for portability"), \ + select (n, r, w, e, t)) +# endif -# ifdef __cplusplus +# ifdef __cplusplus } -# endif - # endif #endif #endif /* _GL_SYS_SELECT_H */ #endif /* _GL_SYS_SELECT_H */ +#endif /* OSF/1 */