From 381c1bae8770dba0aec64002bf75d6f4d2e0c0f5 Mon Sep 17 00:00:00 2001 From: Rafael Garcia-Suarez Date: Fri, 2 May 2003 14:12:08 +0200 Subject: [PATCH] OpenUNIX 8 support Message-Id: <20030502121208.3d235027.rgarciasuarez@free.fr> p4raw-id: //depot/perl@19385 --- Configure | 2 +- ext/Socket/socketpair.t | 3 ++- hints/svr5.sh | 15 ++++++++------- pp_sys.c | 3 +++ 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/Configure b/Configure index 32a0d19..ceb2d2c 100755 --- a/Configure +++ b/Configure @@ -3195,7 +3195,7 @@ EOM mips) osname=mips_osf1 ;; esac ;; - unixware) osname=svr5 + openunix|unixware) osname=svr5 osvers="$4" ;; uts) osname=uts diff --git a/ext/Socket/socketpair.t b/ext/Socket/socketpair.t index 3349f0f..9d86be6 100644 --- a/ext/Socket/socketpair.t +++ b/ext/Socket/socketpair.t @@ -114,7 +114,8 @@ is ($buffer, $expect, "content what we expected?"); ok (shutdown(LEFT, SHUT_WR), "shutdown left for writing"); # This will hang forever if eof is buggy, and alarm doesn't interrupt system # Calls. Hence the child process minder. -{ +SKIP: { + skip "SCO OpenUNIX has a bug with shutdown", 2 if $^O =~ /^svr/; local $SIG{ALRM} = sub { warn "EOF on right took over 3 seconds" }; local $TODO = "Known problems with unix sockets on $^O" if $^O eq 'hpux' || $^O eq 'super-ux'; diff --git a/hints/svr5.sh b/hints/svr5.sh index 47f7aff..63442d2 100644 --- a/hints/svr5.sh +++ b/hints/svr5.sh @@ -1,4 +1,4 @@ -# svr5 hints, System V Release 5.x (UnixWare 7) +# svr5 hints, System V Release 5.x (UnixWare 7, OpenUNIX 8) # mods after mail fm Andy Dougherty # Reworked by hops@sco.com Sept/Oct 1999 for UW7.1 platform support # Boyd Gerber, gerberb@zenez.com 1999/09/21 for threads support. @@ -96,14 +96,13 @@ d_index='undef' d_killpg='undef' d_getprior='undef' d_setprior='undef' d_setlinebuf='undef' d_setregid='undef' d_setreuid='undef' # -- in /usr/lib/libc.so.1 - # Broken C-Shell tests (Thanks to Tye McQueen): # The OS-specific checks may be obsoleted by the this generic test. sh_cnt=`sh -c 'echo /*' | wc -c` csh_cnt=`csh -f -c 'glob /*' 2>/dev/null | wc -c` csh_cnt=`expr 1 + $csh_cnt` if [ "$sh_cnt" -ne "$csh_cnt" ]; then - echo "You're csh has a broken 'glob', disabling..." >&2 + echo "Your csh has a broken 'glob', disabling..." >&2 d_csh='undef' fi @@ -116,9 +115,9 @@ fi uw_ver=`uname -v` uw_isuw=`uname -s 2>&1` -if [ "$uw_isuw" = "UnixWare" ]; then +if [ "$uw_isuw" = "UnixWare" -o "$uw_isuw" = "OpenUNIX" ]; then case $uw_ver in - 7.1*) + 8.*|7.1*) d_csh='undef' d_memcpy='define' d_memset='define' @@ -160,8 +159,10 @@ fi # lddlflags : must tell the linker to output a shared library # use shared perl lib if the user doesn't choose otherwise -if test "x$useshrplib" = "x"; then - useshrplib='true' +if test "$uw_isuw" != "OpenUNIX"; then + if test "x$useshrplib" = "x"; then + useshrplib='true' + fi fi case "$cc" in diff --git a/pp_sys.c b/pp_sys.c index be1675c..11b8edf 100644 --- a/pp_sys.c +++ b/pp_sys.c @@ -2516,6 +2516,9 @@ PP(pp_accept) len = sizeof saddr; /* EPOC somehow truncates info */ setbuf( IoIFP(nstio), NULL); /* EPOC gets confused about sockets */ #endif +#ifdef __SCO_VERSION__ + len = sizeof saddr; /* OpenUNIX 8 somehow truncates info */ +#endif PUSHp((char *)&saddr, len); RETURN; -- 2.7.4