avoid autoflushing behavior of fork/system/exec on Solaris (thanks
Gurusamy Sarathy [Thu, 9 Mar 2000 12:54:08 +0000 (12:54 +0000)]
to fflush(NULL) bug)

p4raw-id: //depot/perl@5627

hints/solaris_2.sh
pod/perldelta.pod

index 5a8cbfa..65f8158 100644 (file)
@@ -479,6 +479,29 @@ case "$uselongdouble" in
        ;;
 esac
 
+case "$fflushNULL" in
+"$define"|true|[yY]*)
+       # allow them to force it the other way
+       ;;
+*)
+       # All versions of Solaris appear to have a stdio bug that improperly
+       # flushes the input end of pipes.  So we avoid the autoflush on
+       # fork/system/exec support for now. :-(  See the test case in:
+       #   http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2000-03/msg00373.html
+       # XXX this needs a Configure test so that more such platforms can be
+       # caught automatically.
+       fflushNULL=undef
+       fflushall=undef
+       cat >&4 <<EOM
+
+*** Solaris has a bug that affects input pipes, and so I have disabled
+*** support for automatic flushing on fork/system/exec.  If you want
+*** automatic flushing anyway, rerun Configure again with -DfflushNULL.
+
+EOM
+       ;;
+esac
+
 rm -f try.c try.o try
 # keep that leading tab
        ccisworkshop=''
index 8e62de0..408b48c 100644 (file)
@@ -4,12 +4,6 @@ perldelta - what's new for perl v5.6.0
 
 =head1 DESCRIPTION
 
-This is an unsupported alpha release, meant for intrepid Perl
-developers only.  The included sources may not even build correctly on
-some platforms.  Subscribing to perl5-porters is the best way to
-monitor and contribute to the progress of development releases (see
-http://www.hut.fi/~jhi/perl5-porters.html for info).
-
 This document describes differences between the 5.005 release and this one.
 
 =head1 Incompatible Changes
@@ -986,6 +980,9 @@ was attempted.  This mostly eliminates confusing
 buffering mishaps suffered by users unaware of how Perl internally
 handles I/O.
 
+This is not supported on some platforms like Solaris where a suitably
+correct implementation of fflush(NULL) isn't available.
+
 =head2 Better diagnostics on meaningless filehandle operations
 
 Constructs such as C<< open(<FH>) >> and C<< close(<FH>) >>