tree: git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git for-kernelci head: f7296306098662beeec45001fb949d2f9f4239d3 commit: 81de60b03a22a36ab920948a6584aa6ec05fe88f [16/19] ARM: memcpy: use frame pointer as unwind anchor config: arm-buildonly-randconfig-r002-20211008 (attached as .config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 30caca39f401ae17927439c0a0bd6d1b1916dd6a) 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 # install arm cross compiling tool for clang build # apt-get install binutils-arm-linux-gnueabi # https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/commit/?id=81de60b03a22a36ab920948a6584aa6ec05fe88f git remote add ardb git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git git fetch --no-tags ardb for-kernelci git checkout 81de60b03a22a36ab920948a6584aa6ec05fe88f # save the attached .config to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): >> arch/arm/lib/call_with_stack.S:36:13: error: redefinition of 'fpreg' does not match original. fpreg .req r7 ^ vim +/fpreg +36 arch/arm/lib/call_with_stack.S 2d81f1fe81b753 Will Deacon 2011-06-08 12 2d81f1fe81b753 Will Deacon 2011-06-08 13 /* 2d81f1fe81b753 Will Deacon 2011-06-08 14 * void call_with_stack(void (*fn)(void *), void *arg, void *sp) 2d81f1fe81b753 Will Deacon 2011-06-08 15 * 2d81f1fe81b753 Will Deacon 2011-06-08 16 * Change the stack to that pointed at by sp, then invoke fn(arg) with 2d81f1fe81b753 Will Deacon 2011-06-08 17 * the new stack. e45123e7f2f5fd Ard Biesheuvel 2021-09-17 18 * e45123e7f2f5fd Ard Biesheuvel 2021-09-17 19 * The sequence below follows the APCS frame convention for frame pointer e45123e7f2f5fd Ard Biesheuvel 2021-09-17 20 * unwinding, and implements the unwinder annotations needed by the EABI e45123e7f2f5fd Ard Biesheuvel 2021-09-17 21 * unwinder. e45123e7f2f5fd Ard Biesheuvel 2021-09-17 22 */ e45123e7f2f5fd Ard Biesheuvel 2021-09-17 23 e45123e7f2f5fd Ard Biesheuvel 2021-09-17 24 #if defined(CONFIG_THUMB2_KERNEL) || \ e45123e7f2f5fd Ard Biesheuvel 2021-09-17 25 (defined(CONFIG_UNWINDER_FRAME_POINTER) && defined(CONFIG_CC_IS_CLANG)) e45123e7f2f5fd Ard Biesheuvel 2021-09-17 26 /* e45123e7f2f5fd Ard Biesheuvel 2021-09-17 27 * Thumb-2 builds must use R7 as the frame pointer due to the way our unwind e45123e7f2f5fd Ard Biesheuvel 2021-09-17 28 * info based unwinder is constructed. e45123e7f2f5fd Ard Biesheuvel 2021-09-17 29 * e45123e7f2f5fd Ard Biesheuvel 2021-09-17 30 * The code below uses the GCC idiom for managing the frame pointer in the e45123e7f2f5fd Ard Biesheuvel 2021-09-17 31 * function prologue and epilogue, which Clang does not support. So the best we e45123e7f2f5fd Ard Biesheuvel 2021-09-17 32 * can do here is not touch the frame pointer at all: this will simply omit e45123e7f2f5fd Ard Biesheuvel 2021-09-17 33 * this frame when unwinding the call stack. So use R7 in this case as well, e45123e7f2f5fd Ard Biesheuvel 2021-09-17 34 * and leave R11 unmodified. 2d81f1fe81b753 Will Deacon 2011-06-08 35 */ e45123e7f2f5fd Ard Biesheuvel 2021-09-17 @36 fpreg .req r7 e45123e7f2f5fd Ard Biesheuvel 2021-09-17 37 #else e45123e7f2f5fd Ard Biesheuvel 2021-09-17 38 fpreg .req fp e45123e7f2f5fd Ard Biesheuvel 2021-09-17 39 #endif e45123e7f2f5fd Ard Biesheuvel 2021-09-17 40 :::::: The code at line 36 was first introduced by commit :::::: e45123e7f2f5fd88d16a53e80d13cfe181a74901 ARM: call_with_stack: add unwind support :::::: TO: Ard Biesheuvel :::::: CC: Ard Biesheuvel --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org