From: Bruno Haible Date: Mon, 25 Apr 2011 17:45:09 +0000 (+0200) Subject: dup2: Remove check for dup2, unless supporting old obsolete platforms. X-Git-Tag: v0.1~2911 X-Git-Url: http://erislabs.net/gitweb/?a=commitdiff_plain;h=4a2a66e4454be259d3c6c29a34e625dc1b70bd7f;p=gnulib.git dup2: Remove check for dup2, unless supporting old obsolete platforms. * modules/dup2-obsolete: New file. * m4/dup2-obsolete.m4: New file. * m4/dup2.m4 (gl_FUNC_DUP2): Don't check whether dup2 exists if gl_FUNC_DUP2_OBSOLETE is not also defined. * modules/dup2 (Depends-on): Add dup2-obsolete. * doc/posix-functions/dup2.texi: Mention module dup2-obsolete. --- diff --git a/ChangeLog b/ChangeLog index 2a4d9fedf..d35d077b8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,15 @@ 2011-04-25 Bruno Haible + dup2: Remove check for dup2, unless supporting old obsolete platforms. + * modules/dup2-obsolete: New file. + * m4/dup2-obsolete.m4: New file. + * m4/dup2.m4 (gl_FUNC_DUP2): Don't check whether dup2 exists if + gl_FUNC_DUP2_OBSOLETE is not also defined. + * modules/dup2 (Depends-on): Add dup2-obsolete. + * doc/posix-functions/dup2.texi: Mention module dup2-obsolete. + +2011-04-25 Bruno Haible + strnlen: Avoid memchr related link error on old obsolete platforms. * modules/memchr-obsolete: New file. * m4/memchr-obsolete.m4: New file. diff --git a/doc/posix-functions/dup2.texi b/doc/posix-functions/dup2.texi index fc1e3595a..6054c303b 100644 --- a/doc/posix-functions/dup2.texi +++ b/doc/posix-functions/dup2.texi @@ -4,9 +4,9 @@ POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/dup2.html} -Gnulib module: dup2 +Gnulib module: dup2 or dup2-obsolete -Portability problems fixed by Gnulib: +Portability problems fixed by either Gnulib module @code{dup2} or @code{dup2-obsolete}: @itemize @item This function always returns 0 for success on some platforms: @@ -34,7 +34,10 @@ This function returns @code{EMFILE} instead of @code{EBADF} for extremely large targets, which interferes with using @code{dup2(fd,fd)==fd)} as the minimal @code{EBADF} filter: FreeBSD 6.1, Cygwin 1.5. +@end itemize +Portability problems fixed by Gnulib module @code{dup2-obsolete}: +@itemize @item This function is missing on some older platforms. @end itemize diff --git a/m4/dup2-obsolete.m4 b/m4/dup2-obsolete.m4 new file mode 100644 index 000000000..881649882 --- /dev/null +++ b/m4/dup2-obsolete.m4 @@ -0,0 +1,11 @@ +# dup2-obsolete.m4 serial 1 +dnl Copyright (C) 2011 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_DUP2_OBSOLETE], +[ + dnl The real code is in dup2.m4. + : +]) diff --git a/m4/dup2.m4 b/m4/dup2.m4 index def263b87..b8794c27b 100644 --- a/m4/dup2.m4 +++ b/m4/dup2.m4 @@ -8,11 +8,17 @@ AC_DEFUN([gl_FUNC_DUP2], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) - AC_CHECK_FUNCS_ONCE([dup2 fcntl]) - if test $ac_cv_func_dup2 = no; then - HAVE_DUP2=0 - AC_LIBOBJ([dup2]) - else + m4_ifdef([gl_FUNC_DUP2_OBSOLETE], [ + AC_CHECK_FUNCS_ONCE([dup2]) + if test $ac_cv_func_dup2 = no; then + HAVE_DUP2=0 + AC_LIBOBJ([dup2]) + fi + ], [ + AC_DEFINE([HAVE_DUP2], [1], [Define to 1 if you have the 'dup2' function.]) + ]) + AC_CHECK_FUNCS_ONCE([fcntl]) + if test $HAVE_DUP2 = 1; then AC_CACHE_CHECK([whether dup2 works], [gl_cv_func_dup2_works], [AC_RUN_IFELSE([ AC_LANG_PROGRAM([[#include diff --git a/modules/dup2 b/modules/dup2 index cea1a974b..17cafd1c6 100644 --- a/modules/dup2 +++ b/modules/dup2 @@ -7,6 +7,7 @@ m4/dup2.m4 Depends-on: unistd +dup2-obsolete configure.ac: gl_FUNC_DUP2 diff --git a/modules/dup2-obsolete b/modules/dup2-obsolete new file mode 100644 index 000000000..ba71bb97c --- /dev/null +++ b/modules/dup2-obsolete @@ -0,0 +1,28 @@ +Description: +dup2() function for old platforms. + +Status: +obsolete + +Notice: +This module is obsolete. + +Files: +m4/dup2-obsolete.m4 + +Depends-on: +dup2 + +configure.ac: +gl_FUNC_DUP2_OBSOLETE + +Makefile.am: + +Include: + + +License: +LGPLv2+ + +Maintainer: +Bruno Haible