On Fri, 31 Jul 2020 at 09:38, Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote: > > Hi all, > > On Fri, 31 Jul 2020 10:46:52 +0800 Shaokun Zhang <zhangshaokun@xxxxxxxxxxxxx> wrote: > > > > There's a build failure on arm64: > > > > In file included from ./include/linux/compat.h:17:0, > > 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/linux/fs.h: In function ‘vfs_whiteout’: > > ./include/linux/fs.h:1709:32: error: ‘S_IFCHR’ undeclared (first use in this function) > > return vfs_mknod(dir, dentry, S_IFCHR | WHITEOUT_MODE, WHITEOUT_DEV); > > ^ > > ./include/linux/fs.h:1709:32: note: each undeclared identifier is reported only once for each > > function it appears in > > ./include/linux/fs.h: At top level: > > ./include/linux/fs.h:1855:46: warning: ‘struct kstat’ declared inside parameter list > > int (*getattr) (const struct path *, struct kstat *, u32, unsigned int); > > ^ > > ./include/linux/fs.h:1855:46: warning: its scope is only this definition or declaration, which is > > probably not what you want > > ./include/linux/fs.h: In function ‘__mandatory_lock’: > > ./include/linux/fs.h:2325:25: error: ‘S_ISGID’ undeclared (first use in this function) > > return (ino->i_mode & (S_ISGID | S_IXGRP)) == S_ISGID; > > ^ > > ./include/linux/fs.h:2325:35: error: ‘S_IXGRP’ undeclared (first use in this function) > > return (ino->i_mode & (S_ISGID | S_IXGRP)) == S_ISGID; > > ^ > > ./include/linux/fs.h: In function ‘invalidate_remote_inode’: > > ./include/linux/fs.h:2588:6: error: implicit declaration of function ‘S_ISREG’ > > [-Werror=implicit-function-declaration] > > if (S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) || > > ^ > > ./include/linux/fs.h:2588:32: error: implicit declaration of function ‘S_ISDIR’ > > [-Werror=implicit-function-declaration] > > if (S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) || > > ^ > > ./include/linux/fs.h:2589:6: error: implicit declaration of function ‘S_ISLNK’ > > [-Werror=implicit-function-declaration] > > S_ISLNK(inode->i_mode)) > > ^ > > ./include/linux/fs.h: In function ‘execute_ok’: > > ./include/linux/fs.h:2768:26: error: ‘S_IXUGO’ undeclared (first use in this function) > > return (inode->i_mode & S_IXUGO) || S_ISDIR(inode->i_mode); > > Presumably caused by commit > > b902bfb3f0e9 ("arm64: stop using <asm/compat.h> directly") I have reverted this commit b902bfb3f0e9 ("arm64: stop using <asm/compat.h> directly") and rebuilt arm64 failed due to below errors/warnings. make -sk KBUILD_BUILD_USER=TuxBuild -C/linux -j16 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- HOSTCC=gcc CC="sccache aarch64-linux-gnu-gcc" O=build Image # In file included 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/stat.h:20:2: error: unknown type name ‘compat_u64’ 20 | compat_u64 st_dev; | ^~~~~~~~~~ ../arch/arm64/include/asm/stat.h:31:2: error: unknown type name ‘compat_u64’ 31 | compat_u64 st_rdev; | ^~~~~~~~~~ ../arch/arm64/include/asm/stat.h:34:2: error: unknown type name ‘compat_s64’ 34 | compat_s64 st_size; | ^~~~~~~~~~ ../arch/arm64/include/asm/stat.h:36:2: error: unknown type name ‘compat_u64’ 36 | compat_u64 st_blocks; /* Number of 512-byte blocks allocated. */ | ^~~~~~~~~~ ../arch/arm64/include/asm/stat.h:47:2: error: unknown type name ‘compat_u64’ 47 | compat_u64 st_ino; | ^~~~~~~~~~ make[2]: *** [../scripts/Makefile.build:114: arch/arm64/kernel/asm-offsets.s] Error 1 - Naresh