tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 6bd343537461b57f3efe5dfc5fc193a232dfef1e commit: d4f26ed66a53be57567bf71d60e80a116cec34e1 [4535/6266] ARC: Emulate one-byte cmpxchg config: arc-randconfig-r016-20230816 (https://download.01.org/0day-ci/archive/20240416/202404160503.zFIp77TO-lkp@xxxxxxxxx/config) compiler: arceb-elf-gcc (GCC) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240416/202404160503.zFIp77TO-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202404160503.zFIp77TO-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): In file included from include/linux/bitops.h:68, from include/linux/log2.h:12, from kernel/bounds.c:13: arch/arc/include/asm/bitops.h: In function '__fls': arch/arc/include/asm/bitops.h:137:17: error: implicit declaration of function '__builtin_arc_fls'; did you mean '__builtin_arc_flag'? [-Werror=implicit-function-declaration] 137 | return __builtin_arc_fls(x); | ^~~~~~~~~~~~~~~~~ | __builtin_arc_flag In file included from arch/arc/include/asm/atomic.h:31, from include/linux/atomic.h:7, from include/asm-generic/bitops/lock.h:5, from arch/arc/include/asm/bitops.h:188: arch/arc/include/asm/atomic64-arcv2.h: At top level: arch/arc/include/asm/atomic64-arcv2.h:13:3: error: conflicting types for 'atomic64_t'; have 'struct <anonymous>' 13 | } atomic64_t; | ^~~~~~~~~~ In file included from include/linux/page-flags.h:9, from kernel/bounds.c:10: include/linux/types.h:184:3: note: previous declaration of 'atomic64_t' with type 'atomic64_t' 184 | } atomic64_t; | ^~~~~~~~~~ In file included from arch/arc/include/asm/atomic.h:13: include/linux/atomic/atomic-arch-fallback.h: In function 'raw_atomic_cmpxchg': >> arch/arc/include/asm/cmpxchg.h:73:27: error: implicit declaration of function 'cmpxchg_emu_u8' [-Werror=implicit-function-declaration] 73 | __flags = cmpxchg_emu_u8((volatile u8 *)_p_, _o_, _n_); \ | ^~~~~~~~~~~~~~ include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg' 55 | #define raw_cmpxchg arch_cmpxchg | ^~~~~~~~~~~~ include/linux/atomic/atomic-arch-fallback.h:2026:16: note: in expansion of macro 'raw_cmpxchg' 2026 | return raw_cmpxchg(&v->counter, old, new); | ^~~~~~~~~~~ In file included from arch/arc/include/uapi/asm/byteorder.h:14, from include/asm-generic/bitops/le.h:6, from arch/arc/include/asm/bitops.h:192: include/linux/byteorder/big_endian.h: At top level: include/linux/byteorder/big_endian.h:8:2: warning: #warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN [-Wcpp] 8 | #warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN | ^~~~~~~ cc1: some warnings being treated as errors make[3]: *** [scripts/Makefile.build:117: kernel/bounds.s] Error 1 make[3]: Target 'prepare' not remade because of errors. make[2]: *** [Makefile:1197: prepare0] Error 2 make[2]: Target 'prepare' not remade because of errors. make[1]: *** [Makefile:240: __sub-make] Error 2 make[1]: Target 'prepare' not remade because of errors. make: *** [Makefile:240: __sub-make] Error 2 make: Target 'prepare' not remade because of errors. vim +/cmpxchg_emu_u8 +73 arch/arc/include/asm/cmpxchg.h 62 63 #define arch_cmpxchg(ptr, old, new) \ 64 ({ \ 65 volatile __typeof__(ptr) _p_ = (ptr); \ 66 __typeof__(*(ptr)) _o_ = (old); \ 67 __typeof__(*(ptr)) _n_ = (new); \ 68 __typeof__(*(ptr)) _prev_; \ 69 unsigned long __flags; \ 70 \ 71 switch(sizeof((_p_))) { \ 72 case 1: \ > 73 __flags = cmpxchg_emu_u8((volatile u8 *)_p_, _o_, _n_); \ 74 _prev_ = (__typeof__(*(ptr)))__flags; \ 75 break; \ 76 break; \ 77 case 4: \ 78 /* \ 79 * spin lock/unlock provide the needed smp_mb() \ 80 * before/after \ 81 */ \ 82 atomic_ops_lock(__flags); \ 83 _prev_ = *_p_; \ 84 if (_prev_ == _o_) \ 85 *_p_ = _n_; \ 86 atomic_ops_unlock(__flags); \ 87 break; \ 88 default: \ 89 BUILD_BUG(); \ 90 } \ 91 \ 92 _prev_; \ 93 }) 94 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki