[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL v2 33/37] block: vhdx - add .bdrv_create() suppor
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PULL v2 33/37] block: vhdx - add .bdrv_create() support |
Date: |
Mon, 24 Feb 2014 09:47:07 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Fri, Feb 21, 2014 at 09:15:41AM -0500, Jeff Cody wrote:
> On Fri, Feb 21, 2014 at 01:06:43PM +0100, Alexander Graf wrote:
> >
> > On 08.11.2013, at 11:12, Stefan Hajnoczi <address@hidden> wrote:
> > > /* Header for the region table block */
> > > +#define VHDX_REGION_SIGNATURE 0x69676572 /* "regi" in ASCII */
> > > typedef struct QEMU_PACKED VHDXRegionTableHeader {
> > > uint32_t signature; /* "regi" in ASCII */
> > > uint32_t checksum; /* CRC-32C hash of the 64KB table
> > > */
> > > @@ -238,6 +247,7 @@ typedef uint64_t VHDXBatEntry;
> > > #define VHDX_METADATA_MAX_ENTRIES 2047 /* not including the header */
> > > #define VHDX_METADATA_TABLE_MAX_SIZE \
> > > (VHDX_METADATA_ENTRY_SIZE * (VHDX_METADATA_MAX_ENTRIES+1))
> > > +#define VHDX_METADATA_SIGNATURE 0x617461646174656D /* "metadata" in
> > > ASCII */
> >
> > This is missing a "ULL" tag. There are a few places where compilation of
> > vhdx spawns warnings on 32bit hosts - I haven't checked all of them.
> >
> > 02/21 12:22:14 ERROR| utils:0144| [stderr] block/vhdx.c: In function
> > 'vhdx_open':
> > 02/21 12:22:14 ERROR| utils:0144| [stderr] block/vhdx.c:957: warning:
> > integer constant is too large for 'long' type
> > 02/21 12:22:14 ERROR| utils:0144| [stderr] block/vhdx.c: In function
> > 'vhdx_block_translate':
> > 02/21 12:22:14 ERROR| utils:0144| [stderr] block/vhdx.c:1027: warning:
> > integer constant is too large for 'long' type
> > 02/21 12:22:14 ERROR| utils:0144| [stderr] block/vhdx.c: In function
> > 'vhdx_create_new_metadata':
> > 02/21 12:22:14 ERROR| utils:0144| [stderr] block/vhdx.c:1455: warning:
> > integer constant is too large for 'long' type
> > 02/21 12:22:14 ERROR| utils:0144| [stderr] block/vhdx.c: In function
> > 'vhdx_create':
> > 02/21 12:22:14 ERROR| utils:0144| [stderr] block/vhdx.c:1812: warning:
> > integer constant is too large for 'long' type
> >
Ouch.
> Thanks Alex. I'll put together a 32-bit vm to build with and verify
> everything, and then post patches to fix.
You can save time by configuring with -m32. Make sure you have 32-bit
libs installed on the build machine. That way you can test 32-bit
builds on a 64-bit host without setting up a new machine.
Stefan