Package: libextutils-hascompiler-perl Version: 0.021-2 Severity: serious This package fails its test suite with perl 5.30.3-2 from unstable.
The reasons are somewhat complicated. The failing test checks that ExtUtils::HasCompiler and ExtUtils::MakeMaker give the same result when trying to build a program that is statically linked with libperl.a. Up until perl 5.30.3-2, this test build failed with ExtUtils::HasCompiler: it checked $Config{useshrplib} and bailed out because it concluded that our libperl is built dynamically and we therefore don't support static linking. On the other hand, the ExtUtils::MakeMaker reference build failed because the package does not build depend on libperl-dev, so libperl.a was not available. With perl 5.30.3-2, #798626 is fixed and $Config{useshrplib} now correctly indicates that static linking is supported. However, the ExtUtils::HasCompiler check does not actually link, so it fails to detect that libperl.a is missing. ExtUtils::MakeMaker still fails in the same way, so the results now disagree. I suggest that we fix this in a way that's compatible with both older and newer perl versions, by adding a build dependency on libperl-dev and patching away the check $Config{useshrplib} check in ExtUtils::HasCompiler::can_compile_static_library() . On Debian we build both static and dynamic versions of libperl, so static builds should be supported. Transcript of the failure below. Note that the warning about perl and Config.pm having 'different ideas about the architecture' is not the cause of this. It is just a warning that we'll handle separately (cf. #962138) # Failed test 'MakeMaker agrees we can compile static' # at t/compare.t line 67. # got: '1' # expected: undef # Couldn't run make test: make[2]: Entering directory '/tmp/BDk9YhPh04' # make[2]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule. # Writing "Makefile.aperl" for this perl # Have /usr/lib/x86_64-linux-gnu/perl-base # Want /usr/lib/x86_64-linux-gnu/perl/5.30 # Your perl and your Config.pm seem to have different ideas about the # architecture they are running on. # Perl thinks: [perl-base] # Config says: [x86_64-linux-gnu-thread-multi] # This may or may not cause problems. Please check your installation of perl # if you have problems building this extension. # Warning: /usr/lib/x86_64-linux-gnu/perl/5.30/../../libperl.a not found # If you're going to build a static perl binary, make sure perl is installed # otherwise ignore this warning # Generating a Unix-style Makefile.aperl # Writing Makefile.aperl for EUHC::Test # Writing MYMETA.yml and MYMETA.json # make -f Makefile.aperl perl # make[3]: Entering directory '/tmp/BDk9YhPh04' # Writing perlmain.c # mv perlmain.ct perlmain.c # x86_64-linux-gnu-gcc -c -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -DVERSION=\"\" -DXS_VERSION=\"\" -fPIC "-I/usr/lib/x86_64-linux-gnu/perl/5.30/CORE" perlmain.c # make[3]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/perl/5.30/../../libperl.a', needed by 'perl'. Stop. # make[3]: Leaving directory '/tmp/BDk9YhPh04' # make[2]: *** [Makefile:956: perl] Error 2 # make[2]: Leaving directory '/tmp/BDk9YhPh04' # Looks like you failed 1 test of 3. -- Niko Tyni nt...@debian.org