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