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 `-
signature.asc
Description: Digital Signature