On Fri, 2014-11-21 at 17:16 -0700, Eric Blake wrote: > On 11/20/2014 04:17 PM, Eric Blake wrote: > > On 11/20/2014 08:12 AM, Conrad Meyer wrote: > >> Hi Eric, > >> > >> I think this change breaks build on FreeBSD: > >> > >> CC util/libvirt_util_la-virdbus.lo > >> util/virdbus.c:956:13: error: cast from 'bool *' to 'dbus_bool_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Werror,-Wcast-align] > >> GET_NEXT_VAL(dbus_bool_t, bool_val, bool, "%d"); > >> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > >> util/virdbus.c:858:17: note: expanded from macro 'GET_NEXT_VAL' > >> x = (dbustype *)(*xptrptr + (*narrayptr - 1)); \ > >> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 error generated. > > > > Valid complaint, so I'll have to figure something out to avoid it. :( > > Thanks for the heads up. > > Thanks again for flagging this! > > We had a pre-existing bug. Even something like "a&n" was broken on > encoding, because even though type 'n' (int16_t) promotes to a full > 'int' when parsed via varargs, passing an array of shorts and then > dereferencing it via (int*) will read beyond array bounds. We had a > hole in our testsuite for never testing arrayref with sub-int types, > even before my commit added 'bool *' to the list of sub-int types that > we now need to support. I'm, guessing that this is the same underlying issue as: util/virdbus.c: In function 'virDBusMessageIterDecode': util/virdbus.c:956:346: error: cast increases required alignment of target type [-Werror=cast-align] which we are seeing in the Xen automated tests [0, 1] (on armhf only, probably compiler dependent?). Ian. [0] http://www.chiark.greenend.org.uk/~xensrcts/logs/31787/build-armhf-libvirt/5.ts-libvirt-build.log [1] http://www.chiark.greenend.org.uk/~xensrcts/logs/31787/build-armhf-libvirt/info.html -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list