On 04/06/2018 06:54 PM, Marek Marczykowski-Górecki wrote:
On Wed, Mar 28, 2018 at 01:42:47PM -0600, Jim Fehlig wrote:
On 03/27/2018 05:55 PM, Marek Marczykowski-Górecki wrote:
diff --git a/tests/virmocklibxl.c b/tests/virmocklibxl.c
index 747f9f8..28281b6 100644
--- a/tests/virmocklibxl.c
+++ b/tests/virmocklibxl.c
@@ -27,6 +27,7 @@
   # include <sys/stat.h>
   # include <unistd.h>
   # include <libxl.h>
+# include <util/virfile.h>
   # include <xenstore.h>
   # include <xenctrl.h>
@@ -48,6 +49,24 @@ VIR_MOCK_IMPL_RET_ARGS(xc_interface_open,
   }
+VIR_MOCK_IMPL_RET_ARGS(libxl_get_version_info,
+                       const libxl_version_info*,
+                       libxl_ctx *, ctx)
+{
+    static libxl_version_info info;
+
+    memset(&info, 0, sizeof(info));
+
+    return &info;
+    /* silence gcc warning */
+    return real_libxl_get_version_info(ctx);
+}
+
+VIR_MOCK_STUB_RET_ARGS(libxl_get_free_memory,
+                       int, 0,
+                       libxl_ctx *, ctx,
+                       uint32_t *, memkb);
+

This doesn't compile with Xen >= 4.8

In file included from virmocklibxl.c:26:0:
virmocklibxl.c:66:24: error: conflicting types for 'libxl_get_free_memory'
  VIR_MOCK_STUB_RET_ARGS(libxl_get_free_memory,
                         ^
virmock.h:182:13: note: in definition of macro 'VIR_MOCK_STUB_RET_ARGS'
      rettype name(VIR_MOCK_ARGTYPENAMES_UNUSED(__VA_ARGS__)) \
              ^~~~
In file included from virmocklibxl.c:29:0:
/usr/include/libxl.h:1570:5: note: previous declaration of
'libxl_get_free_memory' was here
  int libxl_get_free_memory(libxl_ctx *ctx, uint64_t *memkb);
      ^~~~~~~~~~~~~~~~~~~~~

Using the uint32_t variant works in the libxl driver since we have
-DLIBXL_API_VERSION=0x040400 in LIBXL_CFLAGS. I worked around the
compilation failure with LIBXL_HAVE_MEMKB_64BITS,

I can't reproduce this problem, either with 4.8 or 4.10. Even more, if I
add alternative mock with uint64_t, under #if LIBXL_HAVE_MEMKB_64BITS, I
get compile failure, because of conflicting types (with
libxl_get_free_memory_0x040700)...

Can you confirm it's really a problem, not some mismatching header
versions on your side?

Perhaps I've also made a mistake rebasing some of these patches. Can you pretty please rebase against current master and repost a V7 (adding all the R-B)? If you say it passes 'make check' on 4.5 and 4.10, I'll chase down any problems on my side. Thanks!

Regards,
Jim

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to