This is an auto-filed bug because dev-perl/Data-Dump-Streamer fails to compile. The issue was originally discovered on amd64, but it may be reproducible on other arches as well. If you think that a different summary clarifies the issue better, feel free to change it. Attached build log and emerge --info. NOTE: If you need further logs, feel free to ask.
Created attachment 639312 [details] build.log build log and emerge --info
No real interesting build code in this, its just using Module::Build as far as I can tell, so its likely ExtUtils::CBuilder ( which is used by Module::Build ), or Module::Build doing it wrong. (Which basically means anything that has a ".xs" file in its source, depends on dev-perl/Module-Build, and ships a Build.PL, will fail the same way)
the "active" code that presents that warning: https://metacpan.org/release/Module-Build/source/lib/Module/Build/Base.pm#L1528-1534 > if ( ! $self->have_c_compiler ) { > $self->log_warn(<<'EOM'); > Warning: ExtUtils::CBuilder not installed or no compiler detected > Proceeding with configuration, but compilation may fail during Build > > EOM > } that is ultimately answered by: https://metacpan.org/release/Module-Build/source/lib/Module/Build/Base.pm#L5314-5315 > my $b = $self->cbuilder; > my $have = $b && eval { $b->have_compiler }; And have_compiler does a test compile in ->compile, which gets its CC from: my @cc = $self->split_like_shell($args{'C++'} ? $cf->{cxx} : $cf->{cc}); ( https://metacpan.org/source/AMBS/ExtUtils-CBuilder-0.280234/lib/ExtUtils/CBuilder/Base.pm#L146-226 ) And $cf is the configuration hash that is built during ExtUtils::CBuilder->new(), which, by default, inherits its value of "cc" from Perl's Config.pm , which _Should_ be the value you get when you do: perl -V:cc *UNLESS* You have CC= explicitly defined in ENV, which will override perl's choice. So please report what `/usr/bin/perl -V:cc` does on a system with this failure. ( It should be a valid CC, and if not, either perl is broken, or the valid CC was removed after building perl ) Though its entirely possible the logic changed since the perl you're using, vs the sources i'm reading, but my diff of the version I'm showing and the one before perl 5.26 is: https://metacpan.org/diff/file?target=AMBS/ExtUtils-CBuilder-0.280234/&source=AMBS%2FExtUtils-CBuilder-0.280224 And there's zero changes in that set that could be imagined to affect this at all.
It seems that overwrite CC does not change it always reports x86_64-pc-linux-gnu-gcc $ /usr/bin/perl -V:cc cc='x86_64-pc-linux-gnu-gcc'; $ export CC="foo" ; /usr/bin/perl -V:cc cc='x86_64-pc-linux-gnu-gcc';
(In reply to Agostino Sarubbo from comment #4) > It seems that overwrite CC does not change it always reports > x86_64-pc-linux-gnu-gcc > > $ /usr/bin/perl -V:cc > cc='x86_64-pc-linux-gnu-gcc'; > > $ export CC="foo" ; /usr/bin/perl -V:cc > cc='x86_64-pc-linux-gnu-gcc'; Setting CC in ENV never changes what `perl -V:cc` does, it always returns the hardcoded config. The only place CC gets respected, is the logic in ExtUtils::CBuilder, which internally replaces perl's default with the value of $ENV{CC} when present. https://metacpan.org/source/AMBS/ExtUtils-CBuilder-0.280234/lib/ExtUtils/CBuilder/Base.pm#L36-39 > while (my ($k,$v) = each %Config) { > $self->{config}{$k} = $v unless exists $self->{config}{$k}; > } > $self->{config}{cc} = $ENV{CC} if defined $ENV{CC}; ( And %Config is the dataset you're seeing with perl -V:cc )
Ah, no, this isn't CC related, this is LD="ld" when it needs to be LD="cc" related. > x86_64-pc-linux-gnu-ld: unrecognised emulation mode: arch=native That's why I can't reproduce this. CCLD shit is harder to fix than AR/CC stuff. Works fine for me with stock perl with only ar,gcc,cc nuked and AR= and CC= defined.
I can reproduce with perl-5.30.3-r1 too
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5bf738c5f0c57446d435263b7e10ab104bdad9f6 commit 5bf738c5f0c57446d435263b7e10ab104bdad9f6 Author: Kent Fredric <kentnl@gentoo.org> AuthorDate: 2020-07-05 21:36:03 +0000 Commit: Kent Fredric <kentnl@gentoo.org> CommitDate: 2020-07-05 21:36:03 +0000 dev-perl/Data-Dump-Streamer: -r bump for EAPI7 + Toolchain love - EAPI7 - Ensure not to break when LD!=CCLD - Ensure CFLAGS passed to compiler Bug: https://bugs.gentoo.org/723222 Package-Manager: Portage-2.3.100, Repoman-2.3.22 Signed-off-by: Kent Fredric <kentnl@gentoo.org> .../Data-Dump-Streamer-2.400.0-r1.ebuild | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+)
commit d5196d6d72969b442b2f050a59ca51eac95df264 Author: Kent Fredric <kentnl@gentoo.org> Date: 2020-08-18 21:14:58 +1200 dev-perl/Data-Dump-Streamer: Cleanup old 2.400.0 Package-Manager: Portage-2.3.103, Repoman-2.3.22 Signed-off-by: Kent Fredric <kentnl@gentoo.org>