bug-gnulib
[Top][All Lists]
Advanced

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

Re: openpty module broken on Solaris


From: Paul Eggert
Subject: Re: openpty module broken on Solaris
Date: Fri, 08 Feb 2013 08:09:53 -0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130106 Thunderbird/17.0.2

Thanks for the diagnosis.  I should have proofread the Jan 31
openpty patch better.  Reuben, if the openpty module is used,
application code should not inspect HAVE_OPENPTY to decide whether
to use openpty -- instead, the idea is that application code can
simply invoke openpty as if it were a GNU platform.

I pushed the following further patch to try to fix this.

---
 ChangeLog | 10 ++++++++++
 m4/pty.m4 | 18 ++++++++----------
 2 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index aee3765..9f1b60f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2013-02-08  Paul Eggert  <address@hidden>
+
+       openpty: fix bug where HAVE_OPENPTY is mistakenly 1
+       Problem reported by Mats Erik Andersson in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-02/msg00051.html>.
+       * m4/pty.m4 (gl_FUNC_OPENPTY): Define HAVE_OPENPTY when the
+       openpty function exists, not merely when we intend to replace it.
+       This corrects the 2013-01-31 patch, which mistakenly defined
+       HAVE_OPENPTY even on hosts that lacked it.
+
 2013-02-07  Paul Eggert  <address@hidden>
 
        secure_getenv: fix include typo
diff --git a/m4/pty.m4 b/m4/pty.m4
index 12e681b..f889831 100644
--- a/m4/pty.m4
+++ b/m4/pty.m4
@@ -98,6 +98,8 @@ AC_DEFUN([gl_FUNC_OPENPTY],
 #endif
 ]])
   if test $ac_cv_have_decl_openpty = yes; then
+    AC_DEFINE([HAVE_OPENPTY], [1],
+      [Define to 1 if the system has the 'openpty' function.])
     dnl The system has openpty.
     dnl Prefer glibc's const-safe prototype, if available.
     AC_CACHE_CHECK([for const-safe openpty signature],
@@ -122,18 +124,14 @@ AC_DEFUN([gl_FUNC_OPENPTY],
         ],
         [gl_cv_func_openpty_const=yes], [gl_cv_func_openpty_const=no])
       ])
-  fi
-  if test $gl_cv_func_openpty_const = yes; then
-    HAVE_OPENPTY=1
+    if test $gl_cv_func_openpty_const != yes; then
+      REPLACE_OPENPTY=1
+    fi
   else
-    dnl We need gnulib's openpty.
+    dnl The system does not have openpty.
+    HAVE_OPENPTY=0
     dnl Prerequisites of lib/openpty.c in this case.
-    AC_CHECK_FUNCS([_getpty posix_openpt], [HAVE_OPENPTY=1], [HAVE_OPENPTY=0])
-    REPLACE_OPENPTY=$HAVE_OPENPTY
-  fi
-  if test $HAVE_OPENPTY = 1; then
-    AC_DEFINE([HAVE_OPENPTY], [1],
-      [Define to 1 if the system has the 'openpty' function.])
+    AC_CHECK_FUNCS([_getpty posix_openpt])
   fi
 ])
 
-- 
1.7.11.7




reply via email to

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