Hilko Bengen
2014-Sep-14 15:07 UTC
[Libguestfs] ocamldep -all seems to break builds on platforms without a native compiler
Hi, I have been trying to catch up my Debian packages to the current 1.27 branch of libguestfs (and uploaded those packages to experimental), but apparently the build was broken for architectures where no native OCaml compiler is available because make wanted to build .cmx files -- see <https://buildd.debian.org/status/package.php?p=libguestfs&suite=experimental>. So far mips[1], ppc64el[2], and s390x[3] builds have failed with the same error. It looks like this commit ,---- | commit a3881445efd04d5fe6da29db8b2d62a30088b9d1 | Author: Richard W.M. Jones <rjones@redhat.com> | Date: Mon Sep 1 22:24:14 2014 +0100 | | Use ocamldep -all option. `---- caused the build to break. After reverting it, everything worked fine, at least that's what I found on ppc64el. What does this -all switch do anyhow? It certainly seems that ocamldep and/or ocamlfind documentation are lacking. Cheers, -Hilko [1] https://buildd.debian.org/status/fetch.php?pkg=libguestfs&arch=mipsel&ver=1%3A1.27.44-1&stamp=1410672683 [2] https://buildd.debian.org/status/fetch.php?pkg=libguestfs&arch=ppc64el&ver=1%3A1.27.44-1&stamp=1410649974 [3] https://buildd.debian.org/status/fetch.php?pkg=libguestfs&arch=s390x&ver=1%3A1.27.44-1&stamp=1410650468
Richard W.M. Jones
2014-Sep-14 17:56 UTC
Re: [Libguestfs] ocamldep -all seems to break builds on platforms without a native compiler
On Sun, Sep 14, 2014 at 05:07:57PM +0200, Hilko Bengen wrote:> Hi, > > I have been trying to catch up my Debian packages to the current 1.27 > branch of libguestfs (and uploaded those packages to experimental), but > apparently the build was broken for architectures where no native OCaml > compiler is available because make wanted to build .cmx files -- see > <https://buildd.debian.org/status/package.php?p=libguestfs&suite=experimental>. > > So far mips[1], ppc64el[2], and s390x[3] builds have failed with the same error. > > It looks like this commit > > ,---- > | commit a3881445efd04d5fe6da29db8b2d62a30088b9d1 > | Author: Richard W.M. Jones <rjones@redhat.com> > | Date: Mon Sep 1 22:24:14 2014 +0100 > | > | Use ocamldep -all option. > `---- > > caused the build to break. After reverting it, everything worked fine, > at least that's what I found on ppc64el.Yes, also this commit doesn't actually fix the problem. I still see occasional problems building StringMap. I have reverted this commit.> What does this -all switch do anyhow? It certainly seems that ocamldep > and/or ocamlfind documentation are lacking.Indeed, it doesn't look as if -all is properly documented anywhere. The flag -all seems to add explicit dependencies for things like *.o files. I have attached the difference between ocamldep alone and ocamldep -all in the v2v/ directory. I suspect the answer is simply to add a v2v/stringMap.mli file. Because the Makefile.am has a *.mli -> *.cmi rule, it should cause make to generate the build order correctly. In fact, that's what I'm going to do now. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-df lists disk usage of guests without needing to install any software inside the virtual machine. Supports Linux and Windows. http://people.redhat.com/~rjones/virt-df/
Hilko Bengen
2014-Sep-14 19:25 UTC
Re: [Libguestfs] ocamldep -all seems to break builds on platforms without a native compiler
* Richard W.M. Jones:> Yes, also this commit doesn't actually fix the problem. I still see > occasional problems building StringMap. I have reverted this commit.Here's another patch that should enable the native-code targets only if they can be built. Cheers, -Hilko