On Sat, Jan 30, 2016 at 08:08:09PM +0100, Helmut Grohne wrote:
> Out of those 5000 source packages, I selected 3000 popular (as in
> popcon) source packages and built them using debomatic (build arch =
> amd64, host arch = ppc64el). (Thanks to Luca Falavigna.) About 1000
> builds were successful (which doesn't imply that the resulting packages
> actually work.) We can conclude that about 4% of Debian can be cross
> built today.
> 
> You can find the build logs at:
> http://subdivi.de/~helmut/debomatic-logs/

Thanks for doing this.

How frequently will these be updated?  It would be nice for people to be
able to upload fixes and see the effects.

It would also be helpful to publish a dd-list so that maintainers can
easily look for their own packages here.

> Processing the logs
> -------------------
> 
> I've hacked up a script that guesses failure reasons by scanning the
> logs with some regular expressions. Common issues are:
> 
>  * (>800) Using the build architecture compiler or linker.

Could you help me understand
http://subdivi.de/~helmut/debomatic-logs/groff_1.22.3-5_ppc64el.build ?
This is reported as "uses build arch compiler", but that is a false
positive because groff intentionally does two build passes, one for the
host architecture and one for the build architecture, so that it can use
its own binaries from the build-architecture pass during a cross-build.

The failure is:

     dh_shlibdeps -a -O--builddirectory=debian/build -O--parallel
  dpkg-shlibdeps: error: couldn't find library libstdc++.so.6 needed by 
debian/groff-base/usr/bin/pic (ELF format: 'elf64-powerpcle'; RPATH: '')
  dpkg-shlibdeps: error: couldn't find library libstdc++.so.6 needed by 
debian/groff-base/usr/bin/preconv (ELF format: 'elf64-powerpcle'; RPATH: '')
  dpkg-shlibdeps: error: couldn't find library libstdc++.so.6 needed by 
debian/groff-base/usr/bin/groff (ELF format: 'elf64-powerpcle'; RPATH: '')
  dpkg-shlibdeps: error: couldn't find library libstdc++.so.6 needed by 
debian/groff-base/usr/bin/troff (ELF format: 'elf64-powerpcle'; RPATH: '')
  dpkg-shlibdeps: error: couldn't find library libstdc++.so.6 needed by 
debian/groff-base/usr/bin/grotty (ELF format: 'elf64-powerpcle'; RPATH: '')
  dpkg-shlibdeps: error: couldn't find library libstdc++.so.6 needed by 
debian/groff-base/usr/bin/grops (ELF format: 'elf64-powerpcle'; RPATH: '')
  dpkg-shlibdeps: error: couldn't find library libstdc++.so.6 needed by 
debian/groff-base/usr/bin/soelim (ELF format: 'elf64-powerpcle'; RPATH: '')
  dpkg-shlibdeps: error: couldn't find library libstdc++.so.6 needed by 
debian/groff-base/usr/bin/eqn (ELF format: 'elf64-powerpcle'; RPATH: '')
  dpkg-shlibdeps: error: couldn't find library libstdc++.so.6 needed by 
debian/groff-base/usr/bin/tbl (ELF format: 'elf64-powerpcle'; RPATH: '')
  dpkg-shlibdeps: error: cannot continue due to the errors listed above
  Note: libraries are not searched in other binary packages that do not have 
any shlibs or symbols file.
  To help dpkg-shlibdeps find private libraries, you might need to use -l.
  dh_shlibdeps: dpkg-shlibdeps -Tdebian/groff-base.substvars 
debian/groff-base/usr/bin/grotty debian/groff-base/usr/bin/grops 
debian/groff-base/usr/bin/eqn debian/groff-base/usr/bin/pic 
debian/groff-base/usr/bin/preconv debian/groff-base/usr/bin/tbl 
debian/groff-base/usr/bin/troff debian/groff-base/usr/bin/soelim 
debian/groff-base/usr/bin/groff returned exit code 2
  debian/rules:3: recipe for target 'binary-arch' failed
  make: *** [binary-arch] Error 2

groff doesn't build-depend on libstdc++-5-dev (which is the correct -dev
package for libstdc++.so.6, despite the confusing naming) because it's
build-essential, and libstdc++-5-dev-ppc64el-cross is likewise
cross-build-essential on ppc64el; I can see it being installed in the
build log.  So why can't dpkg-shlibdeps find it here?

-- 
Colin Watson                                       [cjwat...@debian.org]

Reply via email to