Resolves the following error. Similar to libguestfs commit 489b14b75e5f30010d8a8c8d3a10ecc52b629563 /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /usr/lib64/ocaml/guestfs/libmlguestfs.a(libguestfsocaml_a-guestfs-c.o): in function `guestfs_finalize': /home/abuild/rpmbuild/BUILD/libguestfs-1.44.2/ocaml/guestfs-c.c:86: undefined reference to `rpl_free' /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/abuild/rpmbuild/BUILD/libguestfs-1.44.2/ocaml/guestfs-c.c:88: undefined reference to `rpl_free' /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /usr/lib64/ocaml/guestfs/libmlguestfs.a(libguestfsocaml_a-guestfs-c.o): in function `guestfs_int_ocaml_set_event_callback': /home/abuild/rpmbuild/BUILD/libguestfs-1.44.2/ocaml/guestfs-c.c:239: undefined reference to `rpl_free' /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /usr/lib64/ocaml/guestfs/libmlguestfs.a(libguestfsocaml_a-guestfs-c.o): in function `guestfs_int_ocaml_delete_event_callback': /home/abuild/rpmbuild/BUILD/libguestfs-1.44.2/ocaml/guestfs-c.c:266: undefined reference to `rpl_free' /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /usr/lib64/ocaml/guestfs/libmlguestfs.a(libguestfsocaml_a-guestfs-c.o): in function `guestfs_int_ocaml_event_to_string': /home/abuild/rpmbuild/BUILD/libguestfs-1.44.2/ocaml/guestfs-c.c:290: undefined reference to `rpl_free' /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /usr/lib64/ocaml/guestfs/libmlguestfs.a(libguestfsocaml_a-guestfs-c-actions.o):/home/abuild/rpmbuild/BUILD/libguestfs-1.44.2/ocaml/guestfs-c-actions.c:1188: more undefined references to `rpl_free' follow collect2: error: ld returned 1 exit status File "caml_startup", line 1: Error: Error during linking Index: virt-v2v-1.44.0/gnulib/lib/free.c =================================================================== --- /dev/null +++ virt-v2v-1.44.0/gnulib/lib/free.c @@ -0,0 +1,53 @@ +/* Make free() preserve errno. + + Copyright (C) 2003, 2006, 2009-2021 Free Software Foundation, Inc. + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + +/* written by Paul Eggert */ + +#include + +/* Specification. */ +#include + +/* A function definition is only needed if HAVE_FREE_POSIX is not defined. */ +#if !HAVE_FREE_POSIX + +# include + +void +rpl_free (void *p) +# undef free +{ +# if defined __GNUC__ && !defined __clang__ + /* An invalid GCC optimization + + would optimize away the assignments in the code below, when link-time + optimization (LTO) is enabled. Make the code more complicated, so that + GCC does not grok how to optimize it. */ + int err[2]; + err[0] = errno; + err[1] = errno; + errno = 0; + free (p); + errno = err[errno == 0]; +# else + int err = errno; + free (p); + errno = err; +# endif +} + +#endif Index: virt-v2v-1.44.0/gnulib/lib/Makefile.am =================================================================== --- virt-v2v-1.44.0.orig/gnulib/lib/Makefile.am +++ virt-v2v-1.44.0/gnulib/lib/Makefile.am @@ -35,7 +35,8 @@ libgnu_la_SOURCES = \ xstrtoll.c \ xstrtoul.c \ xstrtoull.c \ - xstrtoumax.c + xstrtoumax.c \ + free.c libutils_la_CFLAGS = \ $(WARN_CFLAGS) $(WERROR_CFLAGS) \ $(GCC_VISIBILITY_HIDDEN)