This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Explicitly close filehandle in ExtUtils::CBuilder::have_compiler().
authorCraig A. Berry <craigberry@mac.com>
Mon, 13 Dec 2010 13:21:28 +0000 (07:21 -0600)
committerCraig A. Berry <craigberry@mac.com>
Mon, 13 Dec 2010 13:21:28 +0000 (07:21 -0600)
commitef9721fc60cacaeb74316653681a979701a8eb30
tree63d1d4696b4e027a90376d9255f501f6b4dd6dd0
parent7cdf3308efb26eafabf57652e17fccd59e61076e
Explicitly close filehandle in ExtUtils::CBuilder::have_compiler().

A recent change removed the lexical scope that would have caused
the lexical filehandle on the temporary source file to get closed
automatically.  If the filehandle is still open for write, you
can't compile it or delete unless it's open for shared access,
which is not the default on VMS (and deleting an open fle might
be a problem on Windows as well).

Without deleting the .c files, a subsequent make (even after a make
realclean) will identify CBuilder as an XS extension and fail when
it can't compile the non-existent CBuilder.c, which breaks the build
for second and subsequent runs of a smoke test.
cpan/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Base.pm