On Sat, 12 Jun 2021 00:08:43 +0800 kernel test robot <lkp@xxxxxxxxx> wrote: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master > head: 25fe90f43fa312213b653dc1f12fd2d80f855883 > commit: df2de13a32afec989c0e735beb3bc391b3de1dbd [7435/9209] mm, slub: change run-time assertion in kmalloc_index() to compile-time > config: sparc-randconfig-r005-20210611 (attached as .config) > compiler: sparc64-linux-gcc (GCC) 9.3.0 > reproduce (this is a W=1 build): > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > chmod +x ~/bin/make.cross > # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=df2de13a32afec989c0e735beb3bc391b3de1dbd > git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git > git fetch --no-tags linux-next master > git checkout df2de13a32afec989c0e735beb3bc391b3de1dbd > # save the attached .config to linux build tree > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=sparc > > If you fix the issue, kindly add following tag as appropriate > Reported-by: kernel test robot <lkp@xxxxxxxxx> > > All errors (new ones prefixed by >>): > > In file included from <command-line>: > In function 'kmalloc_index', > inlined from 'kmalloc_node' at include/linux/slab.h:572:20, > inlined from 'bpf_map_kmalloc_node.isra.0.part.0' at include/linux/bpf.h:1319:9: > >> include/linux/compiler_types.h:328:38: error: call to '__compiletime_assert_236' declared with attribute error: unexpected size in kmalloc_index() > 328 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) > | ^ > include/linux/compiler_types.h:309:4: note: in definition of macro '__compiletime_assert' > 309 | prefix ## suffix(); \ > | ^~~~~~ > include/linux/compiler_types.h:328:2: note: in expansion of macro '_compiletime_assert' > 328 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) > | ^~~~~~~~~~~~~~~~~~~ > include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert' > 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) > | ^~~~~~~~~~~~~~~~~~ > include/linux/slab.h:389:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' > 389 | BUILD_BUG_ON_MSG(1, "unexpected size in kmalloc_index()"); > | ^~~~~~~~~~~~~~~~ > This log doesn't show which .c file was being compiled at the time. Can this info be included? For me, it was kernel/bpf/local_storage.c. I don't see anything wrong with the code. Did this gcc simply screw up __builtin_constant_p()?