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 <syednwaris@xxxxxxxxx> wrote: > > ... > > > > 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__' > > ... > > > > sparse warnings: (new ones prefixed by >>) > > > > > > >> 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 long > > > include/linux/bitmap.h:594:63: 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 long > > > >> include/linux/bitmap.h:638:17: sparse: sparse: invalid access past the end of 'old' (8 8) > > > 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) > > 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 .config > > > Kindly illuminate as to how shall I reproduce the compiler warning. > > > > 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@xxxxxxxxxxxxxxxxxx/ -- With Best Regards, Andy Shevchenko