Combined OS/2 support
Ilya Zakharevich [Mon, 8 Jun 1998 22:07:48 +0000 (18:07 -0400)]
Message-Id: <199806090207.WAA02015@monk.mps.ohio-state.edu>

p4raw-id: //depot/perl@1103

os2/Changes
os2/diff.configure
os2/os2.c

index 344939c..e2506f5 100644 (file)
@@ -164,6 +164,17 @@ after 5.004_03:
        $0 may be edited to longer lengths (at least under OS/2).
        OS2::REXX->loads looks in the OS/2-ish fashion too.
 
+after 5.004_04:
+       Default perl.exe was built with a shorter stack than expected.
+       Strip extensions DLLs too (unless debugging build).
+       ./os2.c being RO could stop cp.
+       When starting scripts, Perl will find them on path (using the same
+         extensions as for -S command-line switch).  If it finds magic
+         `extproc ' or `#!' cookies, it will start the scripts directly.
+       May use `cmd /c more <' as a pager.
+       If a program could not be started, this might have been hidden.
+       End of pipe was closed twice when `open'ing a pipeline.
+
 after 5.004_53:
        Minimal thread support added.  One needs to manually move pthread.h
 
index 7bdfa6f..62cf1d2 100644 (file)
  case "$libs" in
  '') ;;
  *)  for thislib in $libs; do
-@@ -10392,7 +10392,7 @@
-       echo " "
-       echo "Stripping down executable paths..." >&4
-       for file in $loclist $trylist; do
--              eval $file="\$file"
-+              if test X$file != Xln -o X$osname != Xos2; then eval $file="\$file"; fi
-       done
-       ;;
- esac
index 94d25e2..d545703 100644 (file)
--- a/os2/os2.c
+++ b/os2/os2.c
@@ -163,8 +163,11 @@ os2_cond_wait(perl_cond *c, perl_mutex *m)
     if ((rc = DosResetEventSem(*c,&na)) && (rc != ERROR_ALREADY_RESET))
        croak("panic: COND_WAIT-reset: rc=%i", rc);             
     if (m) MUTEX_UNLOCK(m);                                    
-    if (CheckOSError(DosWaitEventSem(*c,SEM_INDEFINITE_WAIT)))
+    if (CheckOSError(DosWaitEventSem(*c,SEM_INDEFINITE_WAIT))
+       && (rc != ERROR_INTERRUPT))
        croak("panic: COND_WAIT: rc=%i", rc);           
+    if (rc == ERROR_INTERRUPT)
+       errno = EINTR;
     if (m) MUTEX_LOCK(m);                                      
 } 
 #endif 
@@ -356,7 +359,7 @@ result(int flag, int pid)
 /* global Argv[] contains arguments. */
 
 int
-do_aspawn(really, flag, execf)
+do_spawn_ve(really, flag, execf)
 SV *really;
 U32 flag;
 U32 execf;