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

Re: [Xen-devel] [PATCH] xen: correct definition of uintptr_t on 32-bit platforms.



>>> On 04.06.13 at 16:00, Ian Campbell <Ian.Campbell@xxxxxxxxxx> wrote:
> On Tue, 2013-06-04 at 14:52 +0100, Jan Beulich wrote:
>> >>> On 04.06.13 at 15:16, Ian Campbell <ian.campbell@xxxxxxxxxx> wrote:
>> > Currently uintptr_t is unsigned long for both 32- and 64- bit platforms but
>> > __PRIPTR_PREFIX is just "" on 32-bit leading to:
>> > 
>> >     error: format '%u' expects argument of type 'unsigned int', but 
> argument 
>> > 2 has type 'long unsigned int' [-Werror=format]
>> > 
>> > It was a bit of a tossup between changing __PREPTR_PREFIX and changing the
>> > definition of uintptr_t. I went with the latter since it is consistent with
>> > glibc.
>> 
>> Actually I would much prefer the format string prefix to be changed
>> - like Linux, we're assuming all over the place that pointer and longs
>> are equivalent in size, so creating an association between pointers
>> and ints is much more likely to cause problems than adjusting the
>> format string prefix.
> 
> Can do that if you prefer.
> 
> Would this just push the problem into the code which is compiled for
> both user and hypervisor space (e.g. libelf), uintptr_t would then be
> different in the two environments. I haven't tried it so I don't know
> what the practical impact is.

In user environment the print format should be taken from the
standard C headers just as the uintptr_t definition ought to be.
No risk of collision if done consistently.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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