use posix_openpt() rather than trying to open /dev/ptmx

This commit is contained in:
naddy 2012-12-13 15:43:11 +00:00
parent 8e267a77b4
commit c345a41e95
3 changed files with 35 additions and 5 deletions

View File

@ -1,9 +1,9 @@
# $OpenBSD: Makefile,v 1.60 2012/03/29 13:38:13 sthen Exp $
# $OpenBSD: Makefile,v 1.61 2012/12/13 15:43:11 naddy Exp $
COMMENT= Data Display Debugger, graphical front-end for GDB, etc
DISTNAME= ddd-3.3.12
REVISION = 3
REVISION= 4
CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_GNU:=ddd/}
@ -14,19 +14,23 @@ PERMIT_PACKAGE_CDROM= Yes
PERMIT_PACKAGE_FTP= Yes
PERMIT_DISTFILES_CDROM= Yes
PERMIT_DISTFILES_FTP= Yes
WANTLIB= ICE SM X11 Xaw Xau Xdmcp Xext Xmu Xpm Xt c m z stdc++ \
Xft Xrender expat fontconfig freetype ncurses \
pthread-stubs xcb jpeg png Xm
MODULES= converters/libiconv
LIB_DEPENDS= x11/openmotif
REGRESS_IS_INTERACTIVE=x11
VMEM_WARNING= Yes
USE_GMAKE= Yes
USE_LIBTOOL= Yes
USE_GROFF = Yes
CONFIGURE_STYLE=gnu
AUTOCONF_VERSION=2.61
CONFIGURE_STYLE=autoconf
CONFIGURE_ENV= CPPFLAGS="${CPPFLAGS} -I${LOCALBASE}/include" \
CXXFLAGS="${CXXFLAGS}"
MAKE_ENV+=MOTIFLIB='-L${LOCALBASE}/lib -lXm'
@ -40,8 +44,6 @@ WANTLIB += elf
SEPARATE_BUILD= Yes
LIB_DEPENDS+= x11/openmotif
CONFIGURE_ARGS= --with-readline-libraries=/usr/lib
MAKE_FLAGS= MAINTAINER="'${MAINTAINER}'"

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-configure_ac,v 1.1 2012/12/13 15:43:11 naddy Exp $
--- configure.ac.orig Thu Dec 13 16:07:03 2012
+++ configure.ac Thu Dec 13 16:07:04 2012
@@ -854,6 +854,8 @@ ICE_CHECK_DECL(pclose, stdio.h)
AH_TEMPLATE([HAVE_PCLOSE_DECL],[Define if pclose is declared in stdio.h.])
ICE_CHECK_DECL(popen, stdio.h)
AH_TEMPLATE([HAVE_POPEN_DECL],[Define if popen is declared in stdio.h.])
+ICE_CHECK_DECL(posix_openpt, stdlib.h)
+AH_TEMPLATE([HAVE_GETPT_DECL],[Define if posix_openpt is declared in stdlib.h.])
ICE_CHECK_DECL(ptrace, unistd.h sys/ptrace.h)
AH_TEMPLATE([HAVE_PTRACE_DECL],[Define if ptrace is declared in unistd.h sys/ptrace.h.])
ICE_CHECK_DECL(ptsname, stdlib.h)

View File

@ -0,0 +1,16 @@
$OpenBSD: patch-ddd_TTYAgent_C,v 1.1 2012/12/13 15:43:11 naddy Exp $
--- ddd/TTYAgent.C.orig Thu Dec 13 16:07:28 2012
+++ ddd/TTYAgent.C Thu Dec 13 16:10:02 2012
@@ -476,7 +476,11 @@ void TTYAgent::open_master()
// ("UNIX98"). Based on SVR4, and thus possibly streams based.
master = -1;
-#if HAVE_GETPT
+#if HAVE_POSIX_OPENPT
+ master = posix_openpt(O_RDWR|O_NOCTTY);
+ if (master < 0)
+ _raiseIOMsg("posix_openpt");
+#elif HAVE_GETPT
// On systems with GNU libc 2.1, getpt() returns a new file
// descriptor for the next available master pseudo-terminal. This
// function is a GNU extension.