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 <[email protected]> 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

Reply via email to