X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Ffcntl.in.h;h=a1d9e230878f9a3473f60c49d0618495debe0ba4;hb=fbe6ced5d2fdadeeea4194725d05a52cf3b5ebd7;hp=34ea1cfc81978afe6da33734d165b0ce4525f536;hpb=38f87b03c2763bb2af05ae98905b0ac8ba55b3eb;p=gnulib.git diff --git a/lib/fcntl.in.h b/lib/fcntl.in.h index 34ea1cfc8..a1d9e2308 100644 --- a/lib/fcntl.in.h +++ b/lib/fcntl.in.h @@ -1,6 +1,6 @@ /* Like , but with non-working flags defined to 0. - Copyright (C) 2006-2009 Free Software Foundation, Inc. + Copyright (C) 2006-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 @@ -25,8 +25,9 @@ /* Special invocation convention. */ #include -#include -#include +#ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems. */ +# include +#endif #@INCLUDE_NEXT@ @NEXT_FCNTL_H@ #else @@ -35,19 +36,24 @@ #ifndef _GL_FCNTL_H #include -#include -#include +#ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems. */ +# include +#endif /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_FCNTL_H@ #ifndef _GL_FCNTL_H #define _GL_FCNTL_H +#ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems. */ +# include +#endif -/* The definition of GL_LINK_WARNING is copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ +/* The definition of _GL_WARN_ON_USE is copied here. */ + /* Declare overridden functions. */ @@ -59,14 +65,16 @@ extern "C" { # if @REPLACE_FCNTL@ # undef fcntl # define fcntl rpl_fcntl +# endif +# if !@HAVE_FCNTL@ || @REPLACE_FCNTL@ extern int fcntl (int fd, int action, ...); # endif #elif defined GNULIB_POSIXCHECK # undef fcntl -# define fcntl \ - (GL_LINK_WARNING ("fcntl is not always POSIX compliant - " \ - "use gnulib module fcntl for portability"), \ - fcntl) +# if HAVE_RAW_DECL_FCNTL +_GL_WARN_ON_USE (fcntl, "fcntl is not always POSIX compliant - " + "use gnulib module fcntl for portability"); +# endif #endif #if @GNULIB_OPEN@ @@ -77,10 +85,9 @@ extern int open (const char *filename, int flags, ...) _GL_ARG_NONNULL ((1)); # endif #elif defined GNULIB_POSIXCHECK # undef open -# define open \ - (GL_LINK_WARNING ("open is not always POSIX compliant - " \ - "use gnulib module open for portability"), \ - open) +/* Assume open is always declared. */ +_GL_WARN_ON_USE (open, "open is not always POSIX compliant - " + "use gnulib module open for portability"); #endif #if @GNULIB_OPENAT@ @@ -94,24 +101,24 @@ extern int openat (int fd, char const *file, int flags, /* mode_t mode */ ...) # endif #elif defined GNULIB_POSIXCHECK # undef openat -# define openat \ - (GL_LINK_WARNING ("openat is not portable - " \ - "use gnulib module openat for portability"), \ - openat) +# if HAVE_RAW_DECL_OPENAT +_GL_WARN_ON_USE (openat, "openat is not portable - " + "use gnulib module openat for portability"); +# endif #endif #ifdef __cplusplus } #endif -/* Fix up the FD_* macros. */ +/* Fix up the FD_* macros, only known to be missing on mingw. */ #ifndef FD_CLOEXEC # define FD_CLOEXEC 1 #endif /* Fix up the supported F_* macros. Intentionally leave other F_* - macros undefined. */ + macros undefined. Only known to be missing on mingw. */ #ifndef F_DUPFD_CLOEXEC # define F_DUPFD_CLOEXEC 0x40000000 @@ -121,6 +128,14 @@ extern int openat (int fd, char const *file, int flags, /* mode_t mode */ ...) # define GNULIB_defined_F_DUPFD_CLOEXEC 0 #endif +#ifndef F_DUPFD +# define F_DUPFD 1 +#endif + +#ifndef F_GETFD +# define F_GETFD 2 +#endif + /* Fix up the O_* macros. */ #if !defined O_DIRECT && defined O_DIRECTIO