Hi, 在 2020/7/31 16:30, Naresh Kamboju 写道: > 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; > | 0a3a4497a1de <"compat: lift compat_s64 and compat_u64 to <linux/compat.h>"> has removed the compat_s64 and compat_u64. Thanks, Shaokun ^~~~~~~~~~ > ../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 > > . >