From: Gurusamy Sarathy Date: Sun, 27 Feb 2000 17:12:41 +0000 (+0000) Subject: djgpp update (from Laszlo Molnar) X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=706de38c2aa2b981f7071fda099501bf2cc8caeb;p=p5sagit%2Fp5-mst-13.2.git djgpp update (from Laszlo Molnar) p4raw-id: //depot/perl@5288 --- diff --git a/README.dos b/README.dos index 95ab911..e6fc8a9 100644 --- a/README.dos +++ b/README.dos @@ -46,7 +46,7 @@ the world. Like: You need the following files to build perl (or add new modules): - v2/djdev201.zip + v2/djdev202.zip v2/bnu27b.zip v2gnu/gcc2721b.zip v2gnu/bsh1147b.zip @@ -60,17 +60,11 @@ You need the following files to build perl (or add new modules): v2gnu/gawk303b.zip v2misc/csdpmi4b.zip -or any newer version. +or possibly any newer version. =item Pthreads -If you want multithreading support in perl, you need a pthread library -that supports DJGPP. One of them can be found at: - - ftp://ftp.cs.fsu.edu/pub/PART/PTHREADS/pthreads.zip - -But thread support is still in alpha, it may be unstable. For more information -see below. +Thread support is not tested in this version of the djgpp perl. =back @@ -105,7 +99,7 @@ sockets =item * -Unpack the source package F with djtarx. If you want +Unpack the source package F with djtarx. If you want to use long file names under w95, don't forget to use set LFN=y @@ -160,7 +154,7 @@ with: C). You can use the Configure script in non-interactive mode too. When I built my F, I used something like this: - configure.bat -Uuseposix -des + configure.bat -des You can find more info about Configure's command line switches in the F file. @@ -191,9 +185,10 @@ Type: make test -You should see "All tests successful" if you configured a database -manager, and 1 failed test script if not (F). If you -configured POSIX you will see 1 additional failed subtest in F. +If you're lucky you should see "All tests successful". But there can be +a few failed subtests (less than 5 hopefully) depending on some external +conditions (e.g. some subtests fail under linux/dosemu or plain dos +with short filenames only). =head2 Installation @@ -206,64 +201,6 @@ directory structure. Perl.exe and the utilities go into C<($DJDIR)/bin>, and the library goes under C<($DJDIR)/lib/perl5>. The pod documentation goes under C<($DJDIR)/lib/perl5/pod>. -=head2 Threaded perl under dos-djgpp - -Multithreading support is considered alpha, because some of the -tests in C still die with SIGSEGV (patches are welcome). But -if you want to give it a try, here are the necessary steps: - -=over 4 - -=item - -1. You will need a pthread library which supports djgpp. Go, and download -FSU's version from: - - ftp://ftp.cs.fsu.edu/pub/PART/PTHREADS/pthreads.zip - -The latest version is 3.5, released in Feb 98. - -=item - -2. Unzip the file, cd to C and run F. - -=item - -3. Add C or C or C to C -in the F. Note that using these values, multithreading will -NOT be preemptive. This is necessary, since djgpp's libc is not thread safe. - -=item - -4. Apply the following patch: - - *** include/pthread/signal.h~ Wed Feb 4 10:51:24 1998 - --- include/pthread/signal.h Tue Feb 10 22:40:32 1998 - *************** - *** 364,368 **** - --- 364,370 ---- - - #ifndef SA_ONSTACK - + #ifdef SV_ONSTACK - #define SA_ONSTACK SV_ONSTACK - + #endif - #endif /* !SA_ONSTACK */ - -=item - -5. run make (before you do this, you must make sure your C environment -variable does NOT point to bash). - -=item - -6. Install the library and header files into your djgpp directory structure. - -=item - -7. Add C<-Dusethreads> to the commmand line of perl's F. - -=back - =head1 AUTHOR Laszlo Molnar, F diff --git a/djgpp/config.over b/djgpp/config.over index 1f567b4..5c25236 100644 --- a/djgpp/config.over +++ b/djgpp/config.over @@ -30,6 +30,7 @@ repair() -e 's=devel/peek=Devel/Peek='\ -e 's=devel/dprof=Devel/DProf='\ -e 's=sys/sys=Sys/Sys='\ + -e 's=sys/hos=Sys/Hos='\ -e 's=file/=='\ -e 's=File/=='\ -e 's=glob=='\ diff --git a/djgpp/configure.bat b/djgpp/configure.bat index 370f5ed..e7d41d7 100644 --- a/djgpp/configure.bat +++ b/djgpp/configure.bat @@ -33,5 +33,5 @@ echo Running sed... sh djgpp/djgppsed.sh echo Running Configure... -sh Configure -DPERL_EXTERNAL_GLOB %1 %2 %3 %4 %5 %6 %7 %8 %9 +sh Configure %1 %2 %3 %4 %5 %6 %7 %8 %9 :end diff --git a/djgpp/djgpp.c b/djgpp/djgpp.c index 5a8fc5f..c928851 100644 --- a/djgpp/djgpp.c +++ b/djgpp/djgpp.c @@ -122,11 +122,9 @@ convretcode (pTHX_ int rc,char *prog,int fl) if (rc < 0 && ckWARN(WARN_EXEC)) Perl_warner(aTHX_ WARN_EXEC,"Can't %s \"%s\": %s", fl ? "exec" : "spawn",prog,Strerror (errno)); - if (rc > 0) + if (rc >= 0) return rc << 8; - if (rc < 0) - return 255 << 8; - return 0; + return -1; } int diff --git a/hints/dos_djgpp.sh b/hints/dos_djgpp.sh index 7c59428..478c076 100644 --- a/hints/dos_djgpp.sh +++ b/hints/dos_djgpp.sh @@ -3,6 +3,7 @@ # 971015 - archname changed from 'djgpp' to 'dos-djgpp' # 971210 - threads support +# 000222 - added -DPERL_EXTERNAL_GLOB to ccflags archname='dos-djgpp' archobjs='djgpp.o' @@ -39,6 +40,7 @@ case "X$optimize" in optimize="-O2 -malign-loops=2 -malign-jumps=2 -malign-functions=2" ;; esac +ccflags="$ccflags -DPERL_EXTERNAL_GLOB" ldflags='-s' usemymalloc='n' timetype='time_t'