[ardb:for-kernelci 16/19] arch/arm/lib/call_with_stack.S:36:13: error: redefinition of 'fpreg' does not match original.

From: kernel test robot
Date: Sat Oct 09 2021 - 00:27:44 EST


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 <lkp@xxxxxxxxx>

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 <ardb@xxxxxxxxxx>
:::::: CC: Ard Biesheuvel <ardb@xxxxxxxxxx>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip