[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] uint64_aligned_t not compatible across gcc versions



One more point here: The addition of this type and XEN_GUEST_HANDLE_64(),
as it turns out, makes things more complicated/unreliable in the compatibility
stuff rather then helping the situation: Since we need to force 4-byte
alignment on uint64_t (and possible derived types) fields, we have to use
#pragma pack() framing the entire (generated) compatibility headers.
However, #pragma pack() takes precendence over attribute((aligned())), and
hence there is no easy way to force 8-byte alignment on uint64_aligned_t
fields. The only option I currently have is to
(a) exclude sysctl.h and domctl.h from the processing (which is probably
intended, but opens the possibility of unintentionally introducing fields of
types that need translation, which would go undetected at build time), and
(b) assume that no other header uses this type, or depends on the 8-byte
alignment forced on __guest_handle_64_XXX.
Both are maintenance-wise bad in my opinion. Ideas?

Jan

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.