bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: dup2 on old platforms


From: Bruno Haible
Subject: Re: dup2 on old platforms
Date: Sun, 24 Apr 2011 14:02:39 +0200
User-agent: KMail/1.9.9

Here's a similar proposed patch for dup2:


2011-04-24  Bruno Haible  <address@hidden>

        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.

============================ modules/dup2-obsolete ============================
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:
<unistd.h>

License:
LGPLv2+

Maintainer:
Bruno Haible
============================= m4/dup2-obsolete.m4 =============================
# 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.
  :
])
===============================================================================
--- doc/posix-functions/dup2.texi.orig  Sun Apr 24 14:00:27 2011
+++ doc/posix-functions/dup2.texi       Sun Apr 24 13:36:29 2011
@@ -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 @@
 extremely large targets, which interferes with using
 @code{dup2(fd,fd)==fd)} as the minimal @code{EBADF} filter:
 FreeBSD 6.1, Cygwin 1.5.
address@hidden itemize
 
+Portability problems fixed by Gnulib module @code{dup2-obsolete}:
address@hidden
 @item
 This function is missing on some older platforms.
 @end itemize
--- m4/dup2.m4.orig     Sun Apr 24 14:00:27 2011
+++ m4/dup2.m4  Sun Apr 24 14:00:09 2011
@@ -8,11 +8,17 @@
 [
   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 <unistd.h>
--- modules/dup2.orig   Sun Apr 24 14:00:27 2011
+++ modules/dup2        Sun Apr 24 13:33:17 2011
@@ -7,6 +7,7 @@
 
 Depends-on:
 unistd
+dup2-obsolete
 
 configure.ac:
 gl_FUNC_DUP2

-- 
In memoriam Siamanto <http://en.wikipedia.org/wiki/Siamanto>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]