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.
else {
print $FH "int boot_compilet() { return 1; }\n";
}
+ close $FH;
my ($obj_file, @lib_files);
eval {