Re: [PATCH v2] lib: vsprintf: Add %pa format specifier for phys_addr_t types

Rob Landley
2013-02-07T04:39:48Z

On 01/22/2013 06:14:53 PM, Stepan Moskovchenko wrote:
> Add the %pa format specifier for printing a phys_addr_t
> type and its derivative types (such as resource_size_t),
> since the physical address size on some platforms can vary
> based on build options, regardless of the native integer
> type.
>
> Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>

Ok, I know I'm late to the party, but doesn't LP64 apply here? Are we
really capable of building on a target where "long" and "pointer" are
different sizes? Last I checked the kernel was full of that assumption
because there was an actual standard and we demanded that the compiler
building us comply with it, just like MacOS X and the BSDs do:

Standard:
http://www.unix.org/whitepapers/64bit.html

Rationale:
http://www.unix.org/version2/whatsnew/lp64_wp.html

Insane legacy reasons Windows decided to be "special":
http://blogs.msdn.com/oldnewthing/archive/2005/01/31/363790.aspx

Thus "unsigned long" should by definition be big enough. Using unsigned
long long means you're doing 64 bit math on 32 bit targets for no
apparent reason.

What did I miss?

Rob