Re: [Qemu-devel] [PATCH V15 0/9] libqblock qemu block layer library

2013-01-28 Thread Paolo Bonzini
Il 28/01/2013 03:13, Wenchao Xia ha scritto:
 Sorry for that, do you know how to enable these extra checks?
 I used default configuration by ./configure and did not check out
 this errors.

Probably you need to upgrade to a newer version of GCC.

Paolo



Re: [Qemu-devel] [PATCH V15 0/9] libqblock qemu block layer library

2013-01-27 Thread Wenchao Xia
Sorry for that, do you know how to enable these extra checks?
I used default configuration by ./configure and did not check out
this errors.
 Hi,
 
 Thank you for submitting your patch series.  This patch breaks the build
 by causing make to fail.  Here's the output:
 
GEN   i386-softmmu/config-devices.mak
GEN   x86_64-softmmu/config-devices.mak
GEN   alpha-softmmu/config-devices.mak
GEN   arm-softmmu/config-devices.mak
GEN   cris-softmmu/config-devices.mak
GEN   lm32-softmmu/config-devices.mak
GEN   m68k-softmmu/config-devices.mak
GEN   microblaze-softmmu/config-devices.mak
GEN   microblazeel-softmmu/config-devices.mak
GEN   mips-softmmu/config-devices.mak
GEN   mipsel-softmmu/config-devices.mak
GEN   mips64-softmmu/config-devices.mak
GEN   ppc-softmmu/config-devices.mak
GEN   ppcemb-softmmu/config-devices.mak
GEN   mips64el-softmmu/config-devices.mak
GEN   or32-softmmu/config-devices.mak
GEN   ppc64-softmmu/config-devices.mak
GEN   sh4-softmmu/config-devices.mak
GEN   sh4eb-softmmu/config-devices.mak
GEN   sparc64-softmmu/config-devices.mak
GEN   sparc-softmmu/config-devices.mak
GEN   s390x-softmmu/config-devices.mak
GEN   xtensa-softmmu/config-devices.mak
GEN   xtensaeb-softmmu/config-devices.mak
GEN   unicore32-softmmu/config-devices.mak
GEN   i386-linux-user/config-devices.mak
GEN   x86_64-linux-user/config-devices.mak
GEN   alpha-linux-user/config-devices.mak
GEN   arm-linux-user/config-devices.mak
GEN   cris-linux-user/config-devices.mak
GEN   m68k-linux-user/config-devices.mak
GEN   microblaze-linux-user/config-devices.mak
GEN   microblazeel-linux-user/config-devices.mak
GEN   armeb-linux-user/config-devices.mak
GEN   mips-linux-user/config-devices.mak
GEN   or32-linux-user/config-devices.mak
GEN   mipsel-linux-user/config-devices.mak
GEN   ppc-linux-user/config-devices.mak
GEN   ppc64-linux-user/config-devices.mak
GEN   ppc64abi32-linux-user/config-devices.mak
GEN   sh4-linux-user/config-devices.mak
GEN   sh4eb-linux-user/config-devices.mak
GEN   sparc-linux-user/config-devices.mak
GEN   sparc64-linux-user/config-devices.mak
GEN   sparc32plus-linux-user/config-devices.mak
GEN   unicore32-linux-user/config-devices.mak
GEN   s390x-linux-user/config-devices.mak
GEN   config-host.h
GEN   qemu-options.def
GEN   qmp-commands.h
GEN   qapi-types.h
GEN   qapi-visit.h
GEN   trace/generated-tracers.h
GEN   tests/test-qapi-types.h
GEN   tests/test-qapi-visit.h
GEN   tests/test-qmp-commands.h
GEN   config-all-devices.mak
lt CC libqblock/libqblock.lo
lt CC stubs/arch-query-cpu-def.lo
lt CC libqblock/libqblock-error.lo
lt CC stubs/clock-warp.lo
lt CC stubs/cpu-get-icount.lo
lt CC stubs/cpu-get-clock.lo
lt CC stubs/fdset-add-fd.lo
lt CC stubs/fdset-find-fd.lo
lt CC stubs/fdset-remove-fd.lo
lt CC stubs/fdset-get-fd.lo
lt CC stubs/get-fd.lo
lt CC stubs/get-vm-name.lo
lt CC stubs/migr-blocker.lo
lt CC stubs/mon-is-qmp.lo
lt CC stubs/iothread-lock.lo
lt CC stubs/mon-printf.lo
lt CC stubs/mon-print-filename.lo
lt CC stubs/mon-protocol-event.lo
lt CC stubs/mon-set-error.lo
lt CC stubs/reset.lo
lt CC stubs/slirp.lo
lt CC stubs/sysbus.lo
lt CC stubs/vm-stop.lo
lt CC stubs/vmstate.lo
 libqblock/libqblock.c: In function 'qb_create':
 libqblock/libqblock.c:485:39: error: comparison between 
 'QBlockFormatOptionsSDPreAlloc' and 'enum QBlockFormatOptionsVDIPreAlloc' 
 [-Werror=enum-compare]
 libqblock/libqblock.c:337:29: error: variable 'o_raw' set but not used 
 [-Werror=unused-but-set-variable]
 cc1: all warnings being treated as errors
 make: *** [libqblock/libqblock.lo] Error 1
 make: *** Waiting for unfinished jobs
 
 
 Regards,
 
 Anthony Liguori
 


-- 
Best Regards

Wenchao Xia




Re: [Qemu-devel] [PATCH V15 0/9] libqblock qemu block layer library

2013-01-25 Thread Anthony Liguori
Hi,

Thank you for submitting your patch series.  This patch breaks the build
by causing make to fail.  Here's the output:

  GEN   i386-softmmu/config-devices.mak
  GEN   x86_64-softmmu/config-devices.mak
  GEN   alpha-softmmu/config-devices.mak
  GEN   arm-softmmu/config-devices.mak
  GEN   cris-softmmu/config-devices.mak
  GEN   lm32-softmmu/config-devices.mak
  GEN   m68k-softmmu/config-devices.mak
  GEN   microblaze-softmmu/config-devices.mak
  GEN   microblazeel-softmmu/config-devices.mak
  GEN   mips-softmmu/config-devices.mak
  GEN   mipsel-softmmu/config-devices.mak
  GEN   mips64-softmmu/config-devices.mak
  GEN   ppc-softmmu/config-devices.mak
  GEN   ppcemb-softmmu/config-devices.mak
  GEN   mips64el-softmmu/config-devices.mak
  GEN   or32-softmmu/config-devices.mak
  GEN   ppc64-softmmu/config-devices.mak
  GEN   sh4-softmmu/config-devices.mak
  GEN   sh4eb-softmmu/config-devices.mak
  GEN   sparc64-softmmu/config-devices.mak
  GEN   sparc-softmmu/config-devices.mak
  GEN   s390x-softmmu/config-devices.mak
  GEN   xtensa-softmmu/config-devices.mak
  GEN   xtensaeb-softmmu/config-devices.mak
  GEN   unicore32-softmmu/config-devices.mak
  GEN   i386-linux-user/config-devices.mak
  GEN   x86_64-linux-user/config-devices.mak
  GEN   alpha-linux-user/config-devices.mak
  GEN   arm-linux-user/config-devices.mak
  GEN   cris-linux-user/config-devices.mak
  GEN   m68k-linux-user/config-devices.mak
  GEN   microblaze-linux-user/config-devices.mak
  GEN   microblazeel-linux-user/config-devices.mak
  GEN   armeb-linux-user/config-devices.mak
  GEN   mips-linux-user/config-devices.mak
  GEN   or32-linux-user/config-devices.mak
  GEN   mipsel-linux-user/config-devices.mak
  GEN   ppc-linux-user/config-devices.mak
  GEN   ppc64-linux-user/config-devices.mak
  GEN   ppc64abi32-linux-user/config-devices.mak
  GEN   sh4-linux-user/config-devices.mak
  GEN   sh4eb-linux-user/config-devices.mak
  GEN   sparc-linux-user/config-devices.mak
  GEN   sparc64-linux-user/config-devices.mak
  GEN   sparc32plus-linux-user/config-devices.mak
  GEN   unicore32-linux-user/config-devices.mak
  GEN   s390x-linux-user/config-devices.mak
  GEN   config-host.h
  GEN   qemu-options.def
  GEN   qmp-commands.h
  GEN   qapi-types.h
  GEN   qapi-visit.h
  GEN   trace/generated-tracers.h
  GEN   tests/test-qapi-types.h
  GEN   tests/test-qapi-visit.h
  GEN   tests/test-qmp-commands.h
  GEN   config-all-devices.mak
  lt CC libqblock/libqblock.lo
  lt CC stubs/arch-query-cpu-def.lo
  lt CC libqblock/libqblock-error.lo
  lt CC stubs/clock-warp.lo
  lt CC stubs/cpu-get-icount.lo
  lt CC stubs/cpu-get-clock.lo
  lt CC stubs/fdset-add-fd.lo
  lt CC stubs/fdset-find-fd.lo
  lt CC stubs/fdset-remove-fd.lo
  lt CC stubs/fdset-get-fd.lo
  lt CC stubs/get-fd.lo
  lt CC stubs/get-vm-name.lo
  lt CC stubs/migr-blocker.lo
  lt CC stubs/mon-is-qmp.lo
  lt CC stubs/iothread-lock.lo
  lt CC stubs/mon-printf.lo
  lt CC stubs/mon-print-filename.lo
  lt CC stubs/mon-protocol-event.lo
  lt CC stubs/mon-set-error.lo
  lt CC stubs/reset.lo
  lt CC stubs/slirp.lo
  lt CC stubs/sysbus.lo
  lt CC stubs/vm-stop.lo
  lt CC stubs/vmstate.lo
libqblock/libqblock.c: In function 'qb_create':
libqblock/libqblock.c:485:39: error: comparison between 
'QBlockFormatOptionsSDPreAlloc' and 'enum QBlockFormatOptionsVDIPreAlloc' 
[-Werror=enum-compare]
libqblock/libqblock.c:337:29: error: variable 'o_raw' set but not used 
[-Werror=unused-but-set-variable]
cc1: all warnings being treated as errors
make: *** [libqblock/libqblock.lo] Error 1
make: *** Waiting for unfinished jobs


Regards,

Anthony Liguori




[Qemu-devel] [PATCH V15 0/9] libqblock qemu block layer library

2013-01-24 Thread Wenchao Xia
  These patches introduce libqblock API, make subdir-libqblock and make
check-libqblock could build this library.
Functionalities:
 1 create a new image.
 2 sync access of an image.
 3 basic image information retrieving such as backing file.
 4 detect if a sector is allocated in an image.
Supported Formats:
 ALL using file protocols.

  Patch 1 to 3 prepares qemu to accept libqblock.

v2:
  Insert reserved bytes into union.
  Use uint64_t instead of size_t, offset.
  Use const char * in filename pointer.
  Initialization function removed and it was automatically executed when
library is loaded.
  Added compile flag visibility=hidden, to avoid name space pollution.
  Structure naming style changed.
  Using byte unit instead of sector for every API.
  Added a member in image static information structure, to report logical
sector size, which is always 512 now.
  Read and write API can take request not aligned to 512 now. It returns the
byte number that have succeed in operation, but now either negative value
or the number requested would be returned, because qemu block sync I/O API
would not return such number.
  Typo fix due to comments and improved documents.

v3:
  Removed the code about OOM error, introduced GError.
  Used a table to map from string to enum types about format.
  Use typedef for every structure.
  Improved the gcc compiler macro to warn if gcc was not used.
  Global variable name changed with prefix libqb_.
  The struct QBlockStaticInfo was changed to folder full format related
information inside, and a new member with pointers pointing to the mostly used
members, such as backing file, virt size, was added. This would allow the user
to get full information about how it is created in the future.
  Each patch in the serial can work with qemu now.
  Typo fixes.

v4:
  Renamed QBroker to QBlockContext.
  Removed tool objs out of libqblock.
  Added a check in initialization about structure size for ABI.
  Added a new helper API to duplicate protocol information, helps to open files
in a backing file chain.
  Check-libqblock will not rebuild libqblock every time now.
  Test case file renamed to libqblock-[FMT].c.
  Test use gtest framework now.
  Test do random creation of test file now, added check for information API in
it.
  Test do random sync io instead of fixed offset io now.
  Test accept one parameter about where to place the test image, now it is
./tests/libqblock/test_images.

v5:
  Makefile of libqblock was adjusted to be similar as libcacard, added spec
file and install section.
  Removed warning when GCC was not found.
  Structure names were changed to better ones.
  Removed the union typedef that contain reserved bytes to reduce the folder
depth.
  Some format related enum options was changed to better name.
  Added accessors about image static information, hide indirect accessing
member detail in the structure.
  Test Makefile do not create diretory now, test case create it themself.
  Test build system do not use libtool now, and removed qtest-obj-y in its
dependency, make check will automatically execute test anyway now.
  Removed ifeq ($(LIBTOOL),) in Makefile.

v6:
  Remove address pointer member in image static info structure.

v7:
  Support out of tree building.

v8:
  Fix a bug in out of tree building.

v9:
  Rebase and splitted out small fix patch for qemu.

v10:
  Rebased to upstream, adjusted libqblock build system according to Paolo's
comments.

v11:
  Adjusting code in patch 4 to 7, details are in the child patch's commit
message.

v12:
  Split a patch to add a function in stubs, other change are in patch 4 to 7
commit messages.

v13:
  Moved another function into stubs, added xml rule in tests/makefile, little
changes in patch 4, 6, 7.

v14:
  all: Rebased.
  1/10, 2/10: automatically call subdir's clean command if subdir's Makefile
added $SUBDIR_CLEAN_RULES, so tests/Makefile do not need to be always included,
libqblock's rule can also use it.
  3/10: seperated patch for configure support, modified as libcacard's style.
  4/10: modifed as libcacard's rule.
  5/10: seperated patch, also changed a bit to be a mirror as libcacard's rule.
  8/10: use bdrv_pread/bdrv_pwrite, instead of handling the buf allignment by
libqblock itself. Removed libqblock-aio.c because most function are in
block-obj-y now.
  9/10: seperated patch, use LINK instead of custom LT_LINK rule, and now
libqblock.la is a dependence in the link rule of test program, to make
LINK invoke libtool.

v15:
  1/9: merged from 1/10, 2/10 of previous version, and use dependce of clean
in sub Makefile instead of a intermedia variable.
  2/9: drop $TOOLS adding in libqblock's Makefile, the rule is added in all.
  3/9: drop libqblock-y in Makefile.objs, directly add them in libqblock's
Makfile.
  6/9: use __visibility__ in special public marking macro, change macro name
to LIBQB_DLL_PUBLIC to avoid confilict in name space, use sizeof(uint64_t)
instead of magic number 8 in reserved member, spelling fix. Date of