> -----Original Message----- > From: Arnd Bergmann [mailto:arnd@xxxxxxxx] > Sent: Monday, April 11, 2011 11:25 PM > To: Guan Xuetao > Cc: linux-kernel@xxxxxxxxxxxxxxx; linux-arch@xxxxxxxxxxxxxxx > Subject: Re: about __BITS_PER_LONG > > 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. However, there is no conflict between the definition depending on a preprocessor macro and the definition of asm-generic header. > > In user space, the CONFIG_* symbols are meaningless. Yes, that's the problem. I have not notice it before. So, only one value can be reserved in such circumstances. > > Arnd Thanks & Regards. Guan Xuetao -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html