I've already discussed this on #p5p, but here's a brief recap:
An upcoming change in Solaris will allow 32-bit processes to use more
than 256 stdio filehandles. However with the stdio change in place and
when Solaris is built with gcc, perlio fails to build.
The offending block in PerlIOStdio_invalidate_fileno() is guarded with
"defined(__sun__)". Forte doesn't actually define that symbol, so for
any perl built with Forte the result returned by
PerlIOStdio_invalidate_fileno() is always zero. When built with gcc the
block won't work in any case when FDs > 256 are available.
There are a number of other issues in this code and also in
PerlIOStdio_close(). I'll send a detailed follow-up mail with a list of
issues, but for the meantime here is the proposed patch.
Ta,
--
Alan Burlison
--
Thanks, applied as change #27722 to bleadperl.