On 08.12.2017 17:34, Daniel P. Berrange wrote: > On Fri, Dec 08, 2017 at 05:29:36PM +0100, David Hildenbrand wrote: >> On 08.12.2017 17:26, Cornelia Huck wrote: >>> On Fri, 8 Dec 2017 17:02:07 +0100 >>> David Hildenbrand <da...@redhat.com> wrote: >>> >>>> We are good enough to boot upstream Linux kernels / Fedora 26/27. That >>>> should be sufficient for now. >>>> >>>> As the QEMU CPU model is migration safe, let's add compatibility code. >>>> Generate the feature list to reduce the chance of messing things up in the >>>> future. >>>> >>>> Signed-off-by: David Hildenbrand <da...@redhat.com> >>>> --- >>>> hw/s390x/s390-virtio-ccw.c | 8 ++++ >>>> target/s390x/cpu.h | 3 ++ >>>> target/s390x/cpu_models.c | 100 >>>> ++++++++++++++++++-------------------------- >>>> target/s390x/cpu_models.h | 1 + >>>> target/s390x/gen-features.c | 87 ++++++++++++++++++++++++++++++++++++++ >>>> 5 files changed, 140 insertions(+), 59 deletions(-) >>> >>> Unfortunately, this patch makes mingw unhappy (x86_64-w64-mingw32 on my >>> F26 laptop): >>> >>> In file included from /home/cohuck/git/qemu/target/s390x/cpu_models.h:17:0, >>> from /home/cohuck/git/qemu/target/s390x/cpu.h:28, >>> from /home/cohuck/git/qemu/hw/s390x/s390-virtio-ccw.c:16: >>> /home/cohuck/git/qemu/hw/s390x/s390-virtio-ccw.c: In function >>> 'ccw_machine_2_12_instance_options': >>> ./gen-features.h:96:35: error: large integer implicitly truncated to >>> unsigned type [-Werror=overflow] >>> #define S390_FEAT_LIST_QEMU_V2_12 >>> 0x3000e918fd6de14fULL,0x000ffffff0000000ULL,0x0000000000000000ULL,0x0000000000000000ULL >>> ^ >>> /home/cohuck/git/qemu/hw/s390x/s390-virtio-ccw.c:728:51: note: in expansion >>> of macro 'S390_FEAT_LIST_QEMU_V2_12' >>> static const S390FeatBitmap qemu_cpu_feat = { >>> S390_FEAT_LIST_QEMU_V2_12 }; >>> ^~~~~~~~~~~~~~~~~~~~~~~~~ >> >> Huh? we have ULL added to all constants, this should not get reported. > > Isn't the problem here the S390FeatBitmap type which is a 'unsigned long', > so not guaranteed to be 64-bits on 32-bit hosts ?
Right, I remember why I needed that ugly hack in cpu_model.c, where we initialize the bitmap from an array (e.g. base_init). Thanks for the hint. > > Regards, > Daniel > -- Thanks, David / dhildenb