Re: nfs compile error nfslocalio.o and localio.o since v6.14-rc1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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?


>> 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").
>>
>>
>> -- 
>> Chuck Lever


-- 
Chuck Lever




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux