Bug#950297: libyaml-syck-perl FTCBFS: compiler check too strict

gregor herrmann gregoa at debian.org
Fri Jan 31 15:50:44 GMT 2020


On Fri, 31 Jan 2020 06:22:37 +0100, Helmut Grohne wrote:

> Source: libyaml-syck-perl
> Version: 1.32-1
> Tags: upstream
> User: debian-cross at lists.debian.org
> Usertags: ftcbfs
> 
> libyaml-syck-perl fails to cross build from source even after you
> updated its Build-Depends. It happens to fail while running its
> Makefile.PL:

Hi Helmut,

thanks for your bugreport.
I'm cc'ing Todd (the upstream maintainer of YAML::Syck).
 
> |    dh_auto_configure -a
> |         perl -I/usr/lib/aarch64-linux-gnu/perl/cross-config-5.30.0 Makefile.PL INSTALLDIRS=vendor "OPTIMIZE=-g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2" "LD=aarch64-linux-gnu-gcc -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now"
> | Couldn't load HASCOMPILERsEl9/TESTr0el.so: /<<PKGBUILDDIR>>/HASCOMPILERsEl9/TESTr0el.so: cannot open shared object file: No such file or directory at ./inc/ExtUtils/HasCompiler.pm line 141.
> |  at Makefile.PL line 8.
> | Sorry! YAML::Syck requires a compiler in order to be built.
> | dh_auto_configure: error: perl -I/usr/lib/aarch64-linux-gnu/perl/cross-config-5.30.0 Makefile.PL INSTALLDIRS=vendor "OPTIMIZE=-g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2" "LD=aarch64-linux-gnu-gcc -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now" returned exit code 1
> | make: *** [debian/rules:6: build-arch] Error 25
> | dpkg-buildpackage: error: debian/rules build-arch subprocess returned exit status 2
> 
> libyaml-syck-perl has a inc/ExtUtils/HasCompiler.pm that is used for
> checking whether the compiler can build a loadable module. That fails. I
> think the failure is to be expected, because a cross compiled object
> cannot be loaded into the native perl. Once removing the "exit 1;" from
> Makefile.PL line 11, libyaml-syck-perl cross builds just fine. So it
> really is just this check.
> 
> I'd assume that simply patching it out does not suit well with upstream.
> After all, they put it there for a reason. Unfortunately, I have little
> clue how to express a "if cross compiling" in perl. Do you have any idea
> on how to fix this?

In my understanding, ExtUtils::HasCompiler is there for situations
where the presence of a compiler is not guaranteed.

In Debian, we know that we have a compiler when building packages, so
the check doesn't bring any advantage, and unless I'm missing
something we could just patch it out.

I believe we're already doing this in other packages …
Found an example:
https://salsa.debian.org/perl-team/modules/packages/libmoose-perl/commit/27905e9167b8dbe0a9fc290472877ff1b9d68c7f

> I was also wondering about many warnings during the build:
> | warning: incompatible implicit declaration of built-in function ‘malloc’
> The source does #include <stdlib.h> if HAVE_STDLIB_H is set. This macro
> is set if I_STDLIB is set somewhere, but nothing ever sets it. This
> behaviour is also present in native builds, see e.g.:
> https://buildd.debian.org/status/fetch.php?pkg=libyaml-syck-perl&arch=ppc64el&ver=1.32-1&stamp=1580299988&raw=0
> This hints that something else is broken about configuration of
> libyaml-syck-perl. I'm merely reporting it as this observation here and
> hope that it helps somehow.

Right, something looks not completely right; I hope Todd can make use
of this observation.


Cheers,
gregor

-- 
 .''`.  https://info.comodo.priv.at -- Debian Developer https://www.debian.org
 : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D  85FA BB3A 6801 8649 AA06
 `. `'  Member VIBE!AT & SPI Inc. -- Supporter Free Software Foundation Europe
   `-   
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 963 bytes
Desc: Digital Signature
URL: <http://alioth-lists.debian.net/pipermail/pkg-perl-maintainers/attachments/20200131/88bcf0b3/attachment-0001.sig>


More information about the pkg-perl-maintainers mailing list