Re: about __BITS_PER_LONG

From: Arnd Bergmann
Date: Mon Apr 11 2011 - 11:25:16 EST


On Monday 11 April 2011, Guan Xuetao wrote:
> --- a/include/asm-generic/bitsperlong.h
> +++ b/include/asm-generic/bitsperlong.h
> @@ -9,7 +9,11 @@
> * to decide it, but rather check a compiler provided macro.
> */
> #ifndef __BITS_PER_LONG
> -#define __BITS_PER_LONG 32
> +# ifdef CONFIG_64BIT
> +# define __BITS_PER_LONG 64
> +# else
> +# define __BITS_PER_LONG 32
> +# endif /* CONFIG_64BIT */
> #endif
>

Unfortunately, this does not work, because the __BITS_PER_LONG definition is meant
for user space. You have to make this depend on a preprocessor macro that
is provided by the compiler based on the command line switches (e.g. -m64) that
a use could pass to the compiler.

In user space, the CONFIG_* symbols are meaningless.

Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/