The %lu format string is different depending on the host architecture
which causes builds like the debian-armhf-cross build to fail. Use the
correct PRi64 format string.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
hw/block/xen-block.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c
index be28b63442..a636487b3e 100644
--- a/hw/block/xen-block.c
+++ b/hw/block/xen-block.c
@@ -215,7 +215,7 @@ static void xen_block_realize(XenDevice *xendev, Error **errp)
xen_device_backend_printf(xendev, "sector-size", "%u",
conf->logical_block_size);
- xen_device_backend_printf(xendev, "sectors", "%lu",
+ xen_device_backend_printf(xendev, "sectors", "%"PRIi64,
blk_getlength(conf->blk) /
conf->logical_block_size);
--
2.17.1
> -----Original Message----- > From: Alex Bennée [mailto:alex.bennee@linaro.org] > Sent: 16 January 2019 12:14 > To: peter.maydell@linaro.org > Cc: qemu-devel@nongnu.org; Alex Bennée <alex.bennee@linaro.org>; Stefano > Stabellini <sstabellini@kernel.org>; Anthony Perard > <anthony.perard@citrix.com>; Paul Durrant <Paul.Durrant@citrix.com>; Kevin > Wolf <kwolf@redhat.com>; Max Reitz <mreitz@redhat.com>; open list:X86 > <xen-devel@lists.xenproject.org>; open list:Block layer core <qemu- > block@nongnu.org> > Subject: [PATCH] hw/block/xen: use proper format string for printing > sectors > > The %lu format string is different depending on the host architecture > which causes builds like the debian-armhf-cross build to fail. Use the > correct PRi64 format string. > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> This does the same thing as "xen: Fix format string" from Philippe, but this variant is better... Reviewed-by: Paul Durrant <paul.durrant@citrix.com> > --- > hw/block/xen-block.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c > index be28b63442..a636487b3e 100644 > --- a/hw/block/xen-block.c > +++ b/hw/block/xen-block.c > @@ -215,7 +215,7 @@ static void xen_block_realize(XenDevice *xendev, Error > **errp) > > xen_device_backend_printf(xendev, "sector-size", "%u", > conf->logical_block_size); > - xen_device_backend_printf(xendev, "sectors", "%lu", > + xen_device_backend_printf(xendev, "sectors", "%"PRIi64, > blk_getlength(conf->blk) / > conf->logical_block_size); > > -- > 2.17.1
On 1/16/19 1:19 PM, Paul Durrant wrote: >> -----Original Message----- >> From: Alex Bennée [mailto:alex.bennee@linaro.org] >> Sent: 16 January 2019 12:14 >> To: peter.maydell@linaro.org >> Cc: qemu-devel@nongnu.org; Alex Bennée <alex.bennee@linaro.org>; Stefano >> Stabellini <sstabellini@kernel.org>; Anthony Perard >> <anthony.perard@citrix.com>; Paul Durrant <Paul.Durrant@citrix.com>; Kevin >> Wolf <kwolf@redhat.com>; Max Reitz <mreitz@redhat.com>; open list:X86 >> <xen-devel@lists.xenproject.org>; open list:Block layer core <qemu- >> block@nongnu.org> >> Subject: [PATCH] hw/block/xen: use proper format string for printing >> sectors >> >> The %lu format string is different depending on the host architecture >> which causes builds like the debian-armhf-cross build to fail. Use the >> correct PRi64 format string. >> >> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > > This does the same thing as "xen: Fix format string" from Philippe, but this variant is better... OK. Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> > > Reviewed-by: Paul Durrant <paul.durrant@citrix.com> > >> --- >> hw/block/xen-block.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c >> index be28b63442..a636487b3e 100644 >> --- a/hw/block/xen-block.c >> +++ b/hw/block/xen-block.c >> @@ -215,7 +215,7 @@ static void xen_block_realize(XenDevice *xendev, Error >> **errp) >> >> xen_device_backend_printf(xendev, "sector-size", "%u", >> conf->logical_block_size); >> - xen_device_backend_printf(xendev, "sectors", "%lu", >> + xen_device_backend_printf(xendev, "sectors", "%"PRIi64, >> blk_getlength(conf->blk) / >> conf->logical_block_size); >> >> -- >> 2.17.1 >
On 16/01/2019 12:13, Alex Bennée wrote: > The %lu format string is different depending on the host architecture > which causes builds like the debian-armhf-cross build to fail. Use the > correct PRi64 format string. > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > --- > hw/block/xen-block.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c > index be28b63442..a636487b3e 100644 > --- a/hw/block/xen-block.c > +++ b/hw/block/xen-block.c > @@ -215,7 +215,7 @@ static void xen_block_realize(XenDevice *xendev, Error **errp) > > xen_device_backend_printf(xendev, "sector-size", "%u", > conf->logical_block_size); > - xen_device_backend_printf(xendev, "sectors", "%lu", > + xen_device_backend_printf(xendev, "sectors", "%"PRIi64, PRIu64. You've changed the signed-ness of what gets printed. ~Andrew
Andrew Cooper <andrew.cooper3@citrix.com> writes: > On 16/01/2019 12:13, Alex Bennée wrote: >> The %lu format string is different depending on the host architecture >> which causes builds like the debian-armhf-cross build to fail. Use the >> correct PRi64 format string. >> >> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> >> --- >> hw/block/xen-block.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c >> index be28b63442..a636487b3e 100644 >> --- a/hw/block/xen-block.c >> +++ b/hw/block/xen-block.c >> @@ -215,7 +215,7 @@ static void xen_block_realize(XenDevice *xendev, Error **errp) >> >> xen_device_backend_printf(xendev, "sector-size", "%u", >> conf->logical_block_size); >> - xen_device_backend_printf(xendev, "sectors", "%lu", >> + xen_device_backend_printf(xendev, "sectors", "%"PRIi64, > > PRIu64. > > You've changed the signed-ness of what gets printed. I was deliberate as: int64_t blk_getlength(BlockBackend *blk); although I have to admit a signed block length doesn't make much sense to me. At least it isn't going to overflow and will show-up if the block length is ever negative. > > ~Andrew -- Alex Bennée
> -----Original Message----- > From: Alex Bennée [mailto:alex.bennee@linaro.org] > Sent: 17 January 2019 08:21 > To: Andrew Cooper <Andrew.Cooper3@citrix.com> > Cc: peter.maydell@linaro.org; Kevin Wolf <kwolf@redhat.com>; Stefano > Stabellini <sstabellini@kernel.org>; open list:Block layer core <qemu- > block@nongnu.org>; qemu-devel@nongnu.org; Max Reitz <mreitz@redhat.com>; > Paul Durrant <Paul.Durrant@citrix.com>; Anthony Perard > <anthony.perard@citrix.com>; open list:X86 <xen- > devel@lists.xenproject.org> > Subject: Re: [Xen-devel] [PATCH] hw/block/xen: use proper format string > for printing sectors > > > Andrew Cooper <andrew.cooper3@citrix.com> writes: > > > On 16/01/2019 12:13, Alex Bennée wrote: > >> The %lu format string is different depending on the host architecture > >> which causes builds like the debian-armhf-cross build to fail. Use the > >> correct PRi64 format string. > >> > >> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > >> --- > >> hw/block/xen-block.c | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > >> > >> diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c > >> index be28b63442..a636487b3e 100644 > >> --- a/hw/block/xen-block.c > >> +++ b/hw/block/xen-block.c > >> @@ -215,7 +215,7 @@ static void xen_block_realize(XenDevice *xendev, > Error **errp) > >> > >> xen_device_backend_printf(xendev, "sector-size", "%u", > >> conf->logical_block_size); > >> - xen_device_backend_printf(xendev, "sectors", "%lu", > >> + xen_device_backend_printf(xendev, "sectors", "%"PRIi64, > > > > PRIu64. > > > > You've changed the signed-ness of what gets printed. > > I was deliberate as: > int64_t blk_getlength(BlockBackend *blk); > > although I have to admit a signed block length doesn't make much sense > to me. At least it isn't going to overflow and will show-up if the block > length is ever negative. Yes, that's a much better failure mode than some weird huge number of sectors. Paul > > > > > ~Andrew > > > -- > Alex Bennée
On Wed, 16 Jan 2019 at 12:13, Alex Bennée <alex.bennee@linaro.org> wrote: > > The %lu format string is different depending on the host architecture > which causes builds like the debian-armhf-cross build to fail. Use the > correct PRi64 format string. > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > --- > hw/block/xen-block.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c > index be28b63442..a636487b3e 100644 > --- a/hw/block/xen-block.c > +++ b/hw/block/xen-block.c > @@ -215,7 +215,7 @@ static void xen_block_realize(XenDevice *xendev, Error **errp) > > xen_device_backend_printf(xendev, "sector-size", "%u", > conf->logical_block_size); > - xen_device_backend_printf(xendev, "sectors", "%lu", > + xen_device_backend_printf(xendev, "sectors", "%"PRIi64, > blk_getlength(conf->blk) / > conf->logical_block_size); > Applied to master as a build fix, thanks. -- PMM
© 2016 - 2025 Red Hat, Inc.