From: Ilya Zakharevich Date: Mon, 8 Jun 1998 22:07:48 +0000 (-0400) Subject: Combined OS/2 support X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=91643db927ccb70d2639abfb85e226ac0ae6b224;p=p5sagit%2Fp5-mst-13.2.git Combined OS/2 support Message-Id: <199806090207.WAA02015@monk.mps.ohio-state.edu> p4raw-id: //depot/perl@1103 --- diff --git a/os2/Changes b/os2/Changes index 344939c..e2506f5 100644 --- a/os2/Changes +++ b/os2/Changes @@ -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 diff --git a/os2/diff.configure b/os2/diff.configure index 7bdfa6f..62cf1d2 100644 --- a/os2/diff.configure +++ b/os2/diff.configure @@ -27,12 +27,3 @@ 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 diff --git a/os2/os2.c b/os2/os2.c index 94d25e2..d545703 100644 --- 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;