Re: [PATCH v8 4/4] gpio: xilinx: Utilize for_each_set_clump macro
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date: 2020-06-19 09:05:04
Also in:
linux-gpio, lkml, oe-kbuild-all
On Fri, Jun 19, 2020 at 11:38:59AM +0300, Andy Shevchenko wrote:
On Fri, Jun 19, 2020 at 10:02 AM Syed Nayyar Waris [off-list ref] wrote: ...quoted
quoted
config: sparc64-randconfig-s032-20200615 (attached as .config) compiler: sparc64-linux-gcc (GCC) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.2-rc1-3-g55607964-dirty # save the attached .config to linux build tree make W=1 C=1 ARCH=sparc64 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'...quoted
quoted
sparse warnings: (new ones prefixed by >>)quoted
quoted
include/linux/bitmap.h:639:45: sparse: sparse: shift too big (64) for type unsigned long include/linux/bitmap.h:639:45: sparse: sparse: shift too big (64) for type unsigned longinclude/linux/bitmap.h:594:63: sparse: sparse: shift too big (64) for type unsigned longquoted
quoted
include/linux/bitmap.h:639:45: sparse: sparse: shift too big (64) for type unsigned long include/linux/bitmap.h:638:17: sparse: sparse: invalid access past the end of 'old' (8 8)quoted
It seems to me that to reproduce this warning, I have to use the sparc64 compiler. I have installed 'sparc64-linux-gnu-gcc' on my computer.Sparse is not a compiler.
On x86_64: CHECK drivers/gpio/gpio-xilinx.c include/linux/bitmap.h:639:45: warning: shift too big (64) for type unsigned long include/linux/bitmap.h:639:45: warning: shift too big (64) for type unsigned long include/linux/bitmap.h:594:63: warning: shift too big (64) for type unsigned long include/linux/bitmap.h:639:45: warning: shift too big (64) for type unsigned long include/linux/bitmap.h:638:17: warning: invalid access past the end of 'old' (8 8)
quoted
I have to specify that this compiler needs to be used for build process. How/ Where do I specify this? I have downloaded the config.gz (has config file) and placed it at the root of the linux kernel project tree. But the Makefile STILL has 'gcc' as the compiler. When I build, it is the 'gcc' compiler being used and not 'sparc64-linux-gnu-gcc'. I know I can manually change the Makefile to use sparc64 compiler, but I think there must be some more elegant way to do this, perhaps using make menuconfig?If you wish to run a compilation, download a compiler from [1], and, after adding its bin/ folder to PATH, run make CROSS_COMPILE=sparc64-linux- ARCH=sparc64 ... # first generate .configquoted
Kindly illuminate as to how shall I reproduce the compiler warning.quoted
quoted
803024b6c8a375 Syed Nayyar Waris 2020-06-15 @638 map[index + 1] &= ~BITMAP_LAST_WORD_MASK(start + nbits); 803024b6c8a375 Syed Nayyar Waris 2020-06-15 @639 map[index + 1] |= (value >> space);Hmm... I think I sent a reply [2] where I explained how space can be 64. Do you agree with analysis? [1]: https://mirrors.edge.kernel.org/pub/tools/crosstool/ [2]: https://lore.kernel.org/lkml/20200616081428.GP2428291@smile.fi.intel.com/ (local)
-- With Best Regards, Andy Shevchenko _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel