Re: [csky-linux:riscv_compat_v8 6/20] arch/arm64/include/asm/compat.h:69:8: error: redefinition of 'struct compat_statfs'

From: Arnd Bergmann
Date: Wed Mar 16 2022 - 09:14:24 EST


On Wed, Mar 16, 2022 at 1:55 PM kernel test robot <lkp@xxxxxxxxx> wrote:
>
> tree: https://github.com/c-sky/csky-linux riscv_compat_v8
> head: 5e16532e9a75c08518ff196285fe079ee12188ae
> commit: 257ecf6f5f6391f6a88aa6fa19e33d09d686e704 [6/20] asm-generic: compat: Cleanup duplicate definitions
> config: arm64-defconfig (https://download.01.org/0day-ci/archive/20220316/202203162054.pQFA2Y1M-lkp@xxxxxxxxx/config)
> compiler: aarch64-linux-gcc (GCC) 11.2.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://github.com/c-sky/csky-linux/commit/257ecf6f5f6391f6a88aa6fa19e33d09d686e704
> git remote add csky-linux https://github.com/c-sky/csky-linux
> git fetch --no-tags csky-linux riscv_compat_v8
> git checkout 257ecf6f5f6391f6a88aa6fa19e33d09d686e704
> # save the config file to linux build tree
> mkdir build_dir
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm64 prepare
>
> 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 arch/arm64/include/asm/stat.h:13,
> from include/linux/stat.h:6,
> from include/linux/sysfs.h:22,
> from include/linux/kobject.h:20,
> from include/linux/of.h:17,
> from include/linux/irqdomain.h:35,
> from include/linux/acpi.h:13,
> from include/acpi/apei.h:9,
> from include/acpi/ghes.h:5,
> from include/linux/arm_sdei.h:8,
> from arch/arm64/kernel/asm-offsets.c:10:
> >> arch/arm64/include/asm/compat.h:69:8: error: redefinition of 'struct compat_statfs'
> 69 | struct compat_statfs {
> | ^~~~~~~~~~~~~
> In file included from arch/arm64/include/asm/compat.h:18,
> from arch/arm64/include/asm/stat.h:13,
> from include/linux/stat.h:6,
> from include/linux/sysfs.h:22,
> from include/linux/kobject.h:20,
> from include/linux/of.h:17,
> from include/linux/irqdomain.h:35,
> from include/linux/acpi.h:13,
> from include/acpi/apei.h:9,
> from include/acpi/ghes.h:5,
> from include/linux/arm_sdei.h:8,
> from arch/arm64/kernel/asm-offsets.c:10:
> include/asm-generic/compat.h:80:8: note: originally defined here
> 80 | struct compat_statfs {

The arch/arm64/include/asm/compat.h header defines its own
compat_statfs structure, but is missing a #define for it ahead of
the #include <asm-generic/compat.h> to prevent the second
definition.

Arnd