Messages in this thread | | | Subject | Re: [patch] u64 casts | From | Albert Cahalan <> | Date | 27 Feb 2004 17:16:53 -0500 |
| |
On Fri, 2004-02-27 at 19:18, David Mosberger wrote: > >>>>> On 27 Feb 2004 15:58:42 -0500, Albert Cahalan <albert@users.sourceforge.net> said: > > Albert> Casts are considered harmful, because they bypass > Albert> type checking, but how do you print a u64 value? > Albert> You cast it to "unsigned long long" like this: > > Albert> printk("%llu\n", (unsigned long long)foo); > > Albert> Well, this is silly and ugly. As x86-64 has shown, > Albert> even a 64-bit port can use "long long" for 64-bit > Albert> values. This patch changes all other 64-bit ports. > Albert> It now becomes possible to avoid adding new casts > Albert> all over the place; existing ones may be removed > Albert> if so desired. > > Did you verify that none of the kernel header files that are still > being used by glibc contain declarations based on __u64 or __s64? If > not, your patch breaks user-level code.
Supposing that this is the case, you may get warnings. Well, good, maybe somebody will fix glibc. The data types are obviously the same size, so no data-corrupting errors will result.
Note that x86-64, a 64-bit port using glibc, is just fine with "long long" already.
Also note that /usr/include/asm is a modified copy of kernel headers. It won't be suddenly changing as a result of the patch, even after a kernel upgrade. (the symlink hasn't been OK since libc5 days)
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |