On 3/18/25 12:05, Pali Rohár wrote: > PING? > > On Sunday 23 February 2025 19:27:46 Pali Rohár wrote: >> Mike, have you looked at this issue? >> >> On Saturday 15 February 2025 17:51:00 Pali Rohár wrote: >>> On Saturday 15 February 2025 11:41:25 Chuck Lever wrote: >>>> On 2/15/25 11:38 AM, Pali Rohár wrote: >>>>> On Saturday 15 February 2025 11:29:45 Chuck Lever wrote: >>>>>> Hi Pali - >>>>>> >>>>>> On 2/15/25 7:00 AM, Pali Rohár wrote: >>>>>>> Hello, since v6.14-rc1, file nfslocalio.c cannot be compiled with >>>>>>> gcc-8.3 and attached .config file. Same problem is with localio.c. >>>>>> >>>>>> If the interwebs are correct, gcc-8.3 was released in 2014. ISTR that >>>>>> recent releases of the Linux kernel no longer support gcc versions that >>>>>> old. >>>>> >>>>> Hello, I know that this is old version, and I specially used it just to >>>>> check if everything compiles correctly. And it failed. >>>>> >>>>> Per https://docs.kernel.org/process/changes.html the minimal version of >>>>> gcc is 5.1, so I think that compilation with gcc 8.3 should still be >>>>> supported. >>>>> >>>>>> It appears to be snagging on kernel-wide utility helpers, not code >>>>>> specific to NFS. >>>>> >>>>> It looks like that, but only those two nfs files cause compile errors. >>>>> Everything else compiles without problem. So it is quite suspicious and >>>>> maybe it could signal that those helper are used incorrectly in nfs >>>>> code? I'm not sure, I have not investigated it. >>>> >>>> A bisect would be helpful. >>>> >>>> Also, what is the CPU platform architecture? x86_64? >>> >>> Yes, it is x86_64, I hope that all details/configuration is in the >>> .config file. I took generic gcc 8.3 version which was distributed by >>> some debian version. So nothing special. >>> >>>> >>>>>> If that's the case, it might not be possible for us to address this >>>>>> breakage. >>>>>> >>>>>> Adding Mike, who contributed this code. >>>>>> >>>>>>> Error is: >>>>>>> >>>>>>> $ make bzImage >>>>>>> CALL scripts/checksyscalls.sh >>>>>>> DESCEND objtool >>>>>>> INSTALL libsubcmd_headers >>>>>>> CC fs/nfs_common/nfslocalio.o >>>>>>> In file included from ./include/linux/rbtree.h:24, >>>>>>> from ./include/linux/mm_types.h:11, >>>>>>> from ./include/linux/mmzone.h:22, >>>>>>> from ./include/linux/gfp.h:7, >>>>>>> from ./include/linux/umh.h:4, >>>>>>> from ./include/linux/kmod.h:9, >>>>>>> from ./include/linux/module.h:17, >>>>>>> from fs/nfs_common/nfslocalio.c:7: >>>>>>> fs/nfs_common/nfslocalio.c: In function ‘nfs_close_local_fh’: >>>>>>> ./include/linux/rcupdate.h:531:9: error: dereferencing pointer to incomplete type ‘struct nfsd_file’ >>>>>>> typeof(*p) *local = (typeof(*p) *__force)READ_ONCE(p); \ >>>>>>> ^ >>>>>>> ./include/linux/rcupdate.h:650:31: note: in expansion of macro ‘__rcu_access_pointer’ >>>>>>> #define rcu_access_pointer(p) __rcu_access_pointer((p), __UNIQUE_ID(rcu), __rcu) >>>>>>> ^~~~~~~~~~~~~~~~~~~~ >>>>>>> fs/nfs_common/nfslocalio.c:288:10: note: in expansion of macro ‘rcu_access_pointer’ >>>>>>> ro_nf = rcu_access_pointer(nfl->ro_file); >>>>>>> ^~~~~~~~~~~~~~~~~~ >>>>>>> make[4]: *** [scripts/Makefile.build:207: fs/nfs_common/nfslocalio.o] Error 1 >>>>>>> make[3]: *** [scripts/Makefile.build:465: fs/nfs_common] Error 2 >>>>>>> make[2]: *** [scripts/Makefile.build:465: fs] Error 2 >>>>>>> make[1]: *** [/home/pali/develop/kernel.org/linux/Makefile:1994: .] Error 2 >>>>>>> make: *** [Makefile:251: __sub-make] Error 2 >>>>>>> >>>>>>> >>>>>>> $ make fs/nfs/localio.o >>>>>>> CALL scripts/checksyscalls.sh >>>>>>> DESCEND objtool >>>>>>> INSTALL libsubcmd_headers >>>>>>> CC fs/nfs/localio.o >>>>>>> In file included from ./include/linux/rbtree.h:24, >>>>>>> from ./include/linux/mm_types.h:11, >>>>>>> from ./include/linux/mmzone.h:22, >>>>>>> from ./include/linux/gfp.h:7, >>>>>>> from ./include/linux/umh.h:4, >>>>>>> from ./include/linux/kmod.h:9, >>>>>>> from ./include/linux/module.h:17, >>>>>>> from fs/nfs/localio.c:11: >>>>>>> fs/nfs/localio.c: In function ‘nfs_local_open_fh’: >>>>>>> ./include/linux/rcupdate.h:538:9: error: dereferencing pointer to incomplete type ‘struct nfsd_file’ >>>>>>> typeof(*p) *local = (typeof(*p) *__force)READ_ONCE(p); \ >>>>>>> ^ >>>>>>> ./include/linux/rcupdate.h:686:2: note: in expansion of macro ‘__rcu_dereference_check’ >>>>>>> __rcu_dereference_check((p), __UNIQUE_ID(rcu), \ >>>>>>> ^~~~~~~~~~~~~~~~~~~~~~~ >>>>>>> ./include/linux/rcupdate.h:758:28: note: in expansion of macro ‘rcu_dereference_check’ >>>>>>> #define rcu_dereference(p) rcu_dereference_check(p, 0) >>>>>>> ^~~~~~~~~~~~~~~~~~~~~ >>>>>>> fs/nfs/localio.c:275:7: note: in expansion of macro ‘rcu_dereference’ >>>>>>> nf = rcu_dereference(*pnf); >>>>>>> ^~~~~~~~~~~~~~~ >>>>>>> make[4]: *** [scripts/Makefile.build:207: fs/nfs/localio.o] Error 1 >>>>>>> make[3]: *** [scripts/Makefile.build:465: fs/nfs] Error 2 >>>>>>> make[2]: *** [scripts/Makefile.build:465: fs] Error 2 >>>>>>> make[1]: *** [/home/pali/develop/kernel.org/linux/Makefile:1994: .] Error 2 >>>>>>> make: *** [Makefile:251: __sub-make] Error 2 >>>>>>> >>>>>>> >>>>>>> Reproduced from commit 7ff71e6d9239 ("Merge tag 'alpha-fixes-v6.14-rc2' >>>>>>> of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha"). FWIW I'm seeing this issue using gcc-13.3.0-nolibc/x86_64-linux/bin/x86_64-linux-gcc from https://www.kernel.org/pub/tools/crosstool so this isn't just a GCC version issue. My workspace is based on 6.14-rc5 In file included from ./include/linux/rbtree.h:24, from ./include/linux/mm_types.h:11, from ./include/linux/mmzone.h:22, from ./include/linux/gfp.h:7, from ./include/linux/umh.h:4, from ./include/linux/kmod.h:9, from ./include/linux/module.h:17, from fs/nfs/localio.c:11: fs/nfs/localio.c: In function ‘nfs_local_open_fh’: ./include/linux/rcupdate.h:538:9: error: dereferencing pointer to incomplete type ‘struct nfsd_file’ 538 | typeof(*p) *local = (typeof(*p) *__force)READ_ONCE(p); \ | ^ ./include/linux/rcupdate.h:686:2: note: in expansion of macro ‘__rcu_dereference_check’ 686 | __rcu_dereference_check((p), __UNIQUE_ID(rcu), \ | ^~~~~~~~~~~~~~~~~~~~~~~ ./include/linux/rcupdate.h:758:28: note: in expansion of macro ‘rcu_dereference_check’ 758 | #define rcu_dereference(p) rcu_dereference_check(p, 0) | ^~~~~~~~~~~~~~~~~~~~~ fs/nfs/localio.c:275:7: note: in expansion of macro ‘rcu_dereference’ 275 | nf = rcu_dereference(*pnf); | ^~~~~~~~~~~~~~~ make[7]: *** [scripts/Makefile.build:207: fs/nfs/localio.o] Error 1 There is also a Intel kernel test robot report: https://lore.kernel.org/all/202503181317.eiDzfsM0-lkp@xxxxxxxxx/