[Libguestfs] The issue about code coverage for libguestfs

Yongkui Guo yoguo at redhat.com
Fri Sep 8 12:50:34 UTC 2017


> On Fri, Sep 01, 2017 at 04:28:52AM -0400, Yongkui Guo wrote:
> > >  stamp-mlguestfs: libguestfsocaml.a $(guestfs_cmm)
> > >          $(OCAMLMKLIB) -o mlguestfs \
> > >            $(libguestfsocaml_a_OBJECTS) guestfs.cmo \
> > >            $(LDFLAGS) \
> > >            $(LTLIBINTL) \
> > > -         -L../lib/.libs -lguestfs
> > > +         -L../lib/.libs -lguestfs \
> > > +         -L../gnulib/lib/.libs -lgnu
> [...]
> > ocamlmklib -o mlguestfs \
> >   libguestfsocaml_a-guestfs-c.o libguestfsocaml_a-guestfs-c-actions.o
> >   libguestfsocaml_a-guestfs-c-errnos.o
> >   ../common/utils/libguestfsocaml_a-utils.o guestfs.cmo \
> >   -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld \
> 
> The problem is unrelated to the patch.
> 
> $(LDFLAGS) are added to the ocamlmklib command, but ocamlmklib only
> understands a limited subset of linker flags, including -L but not
> including -Wl.
> 
> Possibly something like this might work:
> 
>  stamp-mlguestfs: libguestfsocaml.a $(guestfs_cmm)
>          $(OCAMLMKLIB) -o mlguestfs \
>            $(libguestfsocaml_a_OBJECTS) guestfs.cmo \
> -          $(LDFLAGS) \
> +          -ldopt '$(LDFLAGS)' \
>            $(LTLIBINTL) \
>           -L../lib/.libs -lguestfs
> 
> (in all the places where $(LDFLAGS) is passed to ocamlmklib).
> 

Unfortunately, it still didn't work well. Should I need to modify Makefile.am in /home/mockbuild/rpmbuild/BUILD/libguestfs-1.36.5/ocaml/examples?
-------------------------------------------------
ocamlfind ocamlc -g -annot  -warn-error CDEFLMPSUVYZX-3 -package unix -c guestfs.ml -o guestfs.cmo
ocamlfind ocamlopt -g -annot  -warn-error CDEFLMPSUVYZX-3 -package unix -c guestfs.ml -o guestfs.cmx
rm -f libguestfsocaml.a
ar cr libguestfsocaml.a libguestfsocaml_a-guestfs-c.o libguestfsocaml_a-guestfs-c-actions.o libguestfsocaml_a-guestfs-c-errnos.o ../common/utils/libguestfsocaml_a-utils.o 
ranlib libguestfsocaml.a
ocamlmklib -o mlguestfs \
  libguestfsocaml_a-guestfs-c.o libguestfsocaml_a-guestfs-c-actions.o libguestfsocaml_a-guestfs-c-errnos.o ../common/utils/libguestfsocaml_a-utils.o guestfs.cmo \
  -ldopt '-fprofile-arcs -ftest-coverage -lgcov' \
   \
  -L../lib/.libs -lguestfs \
          -L../gnulib/lib/.libs -lgnu
ocamlmklib -o mlguestfs \
  libguestfsocaml_a-guestfs-c.o libguestfsocaml_a-guestfs-c-actions.o libguestfsocaml_a-guestfs-c-errnos.o ../common/utils/libguestfsocaml_a-utils.o guestfs.cmx \
  -ldopt '-fprofile-arcs -ftest-coverage -lgcov' \
   \
  -L../lib/.libs -lguestfs \
          -L../gnulib/lib/.libs -lgnu
touch stamp-mlguestfs
Warning: Element Unix.error not found
make[2]: Leaving directory `/home/mockbuild/rpmbuild/BUILD/libguestfs-1.36.5/ocaml'
Making all in ocaml/examples
make[2]: Entering directory `/home/mockbuild/rpmbuild/BUILD/libguestfs-1.36.5/ocaml/examples'
ocamlfind ocamlopt -cclib -L../../lib/.libs -package unix -linkpkg \
          -warn-error A -I .. mlguestfs.cmxa create_disk.ml -o create_disk
ocamlfind ocamlopt -cclib -L../../lib/.libs -package unix -linkpkg \
          -warn-error A -I .. mlguestfs.cmxa debug_logging.ml -o debug_logging
/usr/bin/ld: cannot find -lgnu
collect2: error: ld returned 1 exit status
File "caml_startup", line 1:
Error: Error during linking
make[2]: *** [debug_logging] Error 2
make[2]: *** Waiting for unfinished jobs....
-------------------------------------------------

 




More information about the Libguestfs mailing list