Subject: | EU::MM in Perl 5 blead throwing 'printf on closed filehandle' warnings |
ExtUtils::MakeMaker is frequently invoked while running 'make' during the Perl 5 build process. Today I happened to spot warnings like this in the output of 'make':
#####
./miniperl -Ilib make_ext.pl lib/auto/Unicode/Collate/Collate.so MAKE="make" LIBPERL_A=libperl.a LINKTYPE=dynamic
Making header files for XS...
printf() on closed filehandle $fh_h at /home/jkeenan/gitwork/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm line 1233.
print() on closed filehandle $fh_h at /home/jkeenan/gitwork/perl/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm line 1234.
make[1]: Entering directory '/home/jkeenan/gitwork/perl/cpan/Unicode-Collate'
#####
I have observed these warnings in the output of 'make' at the following recent commits embedded in filenames:
#####
$ zgrep -l 'closed filehandle' *.txt.gz
2ce8ebb919.freebsd.maketp.output.txt.gz
5fd7c63cc7.freebsd.maketp.output.txt.gz
ec5a5b629f.freebsd.make.output.txt.gz
$ zgrep -l 'closed filehandle' *.txt.gz
blead.2ce8ebb919.linux.clang-10.debugging.maketp.output.txt.gz
blead.2ce8ebb919.linux.clang-10.maketp.output.txt.gz
blead.2ce8ebb919.linux.clang-10.threaded.maketp.output.txt.gz
blead.2ce8ebb919.linux.unthreaded.maketp.output.txt.gz
blead.c49e90e1c5.linux.g++-9.3.0.maketp.output.txt.gz
#####
The earliest of these commits is:
#####
commit ec5a5b629f2f5a9b63b27eb6d71233781d32ae61
Author: Tony Cook <tony@develop-help.com>
AuthorDate: Tue Oct 27 11:36:46 2020
Commit: Tony Cook <tony@develop-help.com>
CommitDate: Wed Nov 4 23:47:30 2020
#####
That suggests that the source of the warnings was the last sync-into-blead of EU-MM prior to Nov 4. That would be version 7.52 or possibly 7.48:
#####
uthor: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
AuthorDate: Wed Nov 4 15:34:01 2020
Commit: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
CommitDate: Wed Nov 4 15:34:01 2020
Update ExtUtils-MakeMaker to CPAN version 7.52
[DELTA]
7.52 Wed 4 Nov 19:49:43 GMT 2020
--
Author: Todd Rinaldo <toddr@cpan.org>
AuthorDate: Mon Oct 5 15:40:53 2020
Commit: Todd Rinaldo <toddr@cpan.org>
CommitDate: Tue Oct 6 15:37:32 2020
Update ExtUtils-MakeMaker to CPAN version 7.48
#####
Now, the lines referenced in the warnings in the 'make' output have not changed since 2016-03-16.
#####
880b77c77 (Derek Lamb 2016-03-16 12:15:29 -0600 1233) printf "Generating a %s %s\n", $self->make_type, $finalname if $Verbose || !$self->{PARENT};
880b77c77 (Derek Lamb 2016-03-16 12:15:29 -0600 1234) print "Writing $finalname for $self->{NAME}\n" if $Verbose || !$self->{PARENT};
#####
So some other change must have caused these lines to be reached.
Can you investigate?
Thank you very much.
Jim Keenan