Mercurial > hg > octave-kai > gnulib-hg
changeset 12476:4d9ecf602cb6
getsubopt: work around cygwin bug
On cygwin, compiling with -DGNULIB_POSIXCHECK failed because
the getsubopt link warning definition interfered with the
inclusion of the system header. The fix, as always in these
types of problems, is to ensure that system headers are
completely included before doing any overrides.
* lib/stdlib.in.h (includes): Move unistd inclusion sooner, to
avoid conflicting with system getsubopt.
* doc/posix-functions/getsubopt.texi (getsubopt): Document the
bug.
Signed-off-by: Eric Blake <ebb9@byu.net>
author | Eric Blake <ebb9@byu.net> |
---|---|
date | Mon, 21 Dec 2009 11:14:18 -0700 |
parents | 93deb54acc5b |
children | 72b9e03189fd |
files | ChangeLog doc/posix-functions/getsubopt.texi lib/stdlib.in.h |
diffstat | 3 files changed, 16 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2009-12-22 Eric Blake <ebb9@byu.net> + getsubopt: work around cygwin bug + * lib/stdlib.in.h (includes): Move unistd inclusion sooner, to + avoid conflicting with system getsubopt. + * doc/posix-functions/getsubopt.texi (getsubopt): Document the + bug. + getopt: synchronize from glibc * lib/getopt.c (_getopt_initialize, _getopt_internal_r): Swap parameter order. Adjust all callers.
--- a/doc/posix-functions/getsubopt.texi +++ b/doc/posix-functions/getsubopt.texi @@ -9,6 +9,10 @@ Portability problems fixed by Gnulib: @itemize @item +This function is declared in @code{unistd.h} instead of +@code{stdlib.h} on some platforms: +Cygwin 1.7.1. +@item This function is missing on some platforms: mingw, BeOS. @end itemize
--- a/lib/stdlib.in.h +++ b/lib/stdlib.in.h @@ -66,6 +66,12 @@ }; #endif +#if @GNULIB_MKSTEMP@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK +/* On MacOS X 10.3, only <unistd.h> declares mkstemp. */ +/* On Cygwin 1.7.1, only <unistd.h> declares getsubopt. */ +# include <unistd.h> +#endif + /* The definition of GL_LINK_WARNING is copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ @@ -266,9 +272,6 @@ set. */ # define mkstemp rpl_mkstemp extern int mkstemp (char * /*template*/) _GL_ARG_NONNULL ((1)); -# else -/* On MacOS X 10.3, only <unistd.h> declares mkstemp. */ -# include <unistd.h> # endif #elif defined GNULIB_POSIXCHECK # undef mkstemp