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

> Source: libyaml-syck-perl
> Version: 1.32-1
> Tags: upstream
> User: debian-cr...@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
   `-   

Attachment: signature.asc
Description: Digital Signature

Reply via email to