[Top][All Lists]
[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>