We are installing BeeGFS 7.3.3 onto a new server running CentOS 9 Stream.
uname -rv
5.14.0-325.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Jun 9 19:47:16 UTC 2023
When attempting to build the client, the build fails.
Any help for work-arounds that would allow BeeGFS to operate in our environment would be appreciated.
There are updates to the kernel periodically to comply with security requirements, so installing and never updating is not an option.
Below are excerpts from the lengthy output from the attempt to recompile the client.
1. error: redefinition of ‘file_dentry’
/etc/init.d/beegfs-client rebuild
- BeeGFS module autobuild
Building beegfs client module
feature detection gives: -DKERNEL_HAS_SCHED_SIG_H -DKERNEL_HAS_LINUX_STDARG_H
In file included from /opt/beegfs/src/client/client_module_7/build/../source/os/OsDeps.h:4,
from /opt/beegfs/src/client/client_module_7/build/../source/common/Common.h:33,
from /opt/beegfs/src/client/client_module_7/build/../source/os/OsDeps.c:1:
/opt/beegfs/src/client/client_module_7/build/../source/filesystem/FhgfsOps_versions.h:89:30: error: redefinition of ‘file_dentry’
89 | static inline struct dentry *file_dentry(const struct file *file)
| ^~~~~~~~~~~
In file included from /opt/beegfs/src/client/client_module_7/build/../source/filesystem/FhgfsOps_versions.h:7,
from /opt/beegfs/src/client/client_module_7/build/../source/os/OsDeps.h:4,
from /opt/beegfs/src/client/client_module_7/build/../source/common/Common.h:33,
from /opt/beegfs/src/client/client_module_7/build/../source/os/OsDeps.c:1:
./include/linux/fs.h:1363:30: note: previous definition of ‘file_dentry’ with type ‘struct dentry *(const struct file *)’
1363 | static inline struct dentry *file_dentry(const struct file *file)
| ^~~~~~~~~~~
In file included from /opt/beegfs/src/client/client_module_7/build/../source/os/OsDeps.h:4,
from /opt/beegfs/src/client/client_module_7/build/../source/common/Common.h:33,
from /opt/beegfs/src/client/client_module_7/build/../source/os/atomic64.c:1:
/opt/beegfs/src/client/client_module_7/build/../source/filesystem/FhgfsOps_versions.h:89:30: error: redefinition of ‘file_dentry’
89 | static inline struct dentry *file_dentry(const struct file *file)
| ^~~~~~~~~~~
In file included from /opt/beegfs/src/client/client_module_7/build/../source/filesystem/FhgfsOps_versions.h:7,
from /opt/beegfs/src/client/client_module_7/build/../source/os/OsDeps.h:4,
from /opt/beegfs/src/client/client_module_7/build/../source/common/Common.h:33,
from /opt/beegfs/src/client/client_module_7/build/../source/os/atomic64.c:1:
./include/linux/fs.h:1363:30: note: previous definition of ‘file_dentry’ with type ‘struct dentry *(const struct file *)’
1363 | static inline struct dentry *file_dentry(const struct file *file)
2. : error: implicit declaration of function ‘current_kernel_time64’
In file included from /opt/beegfs/src/client/client_module_7/build/../source/os/OsDeps.c:1:
/opt/beegfs/src/client/client_module_7/build/../source/common/Common.h: In function ‘current_fs_time’:
/opt/beegfs/src/client/client_module_7/build/../source/common/Common.h:228:10: error: implicit declaration of function ‘current_kernel_time64’ [-Werror=implicit-function-declaration]
228 | now = current_kernel_time64();
| ^~~~~~~~~~~~~~~~~~~~~
/opt/beegfs/src/client/client_module_7/build/../source/common/Common.h:228:10: error: incompatible types when assigning to type ‘struct timespec64’ from type ‘int’
In file included from /opt/beegfs/src/client/client_module_7/build/../source/os/atomic64.c:1:
/opt/beegfs/src/client/client_module_7/build/../source/common/Common.h: In function ‘current_fs_time’:
In file included from /opt/beegfs/src/client/client_module_7/build/../source/app/config/MountConfig.h:4,
from /opt/beegfs/src/client/client_module_7/build/../source/app/App.h:4,
from /opt/beegfs/src/client/client_module_7/build/../source/net/filesystem/FhgfsOpsCommKit.c:1:
/opt/beegfs/src/client/client_module_7/build/../source/common/Common.h: In function ‘current_fs_time’:
/opt/beegfs/src/client/client_module_7/build/../source/common/Common.h:228:10: error: implicit declaration of function ‘current_kernel_time64’ [-Werror=implicit-function-declaration]
228 | now = current_kernel_time64();
3. error: implicit declaration of function ‘timespec64_trunc’; did you mean ‘timespec64_to_ns’?
/opt/beegfs/src/client/client_module_7/build/../source/common/Common.h:228:10: error: incompatible types when assigning to type ‘struct timespec64’ from type ‘int’
/opt/beegfs/src/client/client_module_7/build/../source/common/Common.h:229:11: error: implicit declaration of function ‘timespec64_trunc’; did you mean ‘timespec64_to_ns’? [-Werror=implicit-function-declaration]
229 | return timespec64_trunc(now, sb->s_time_gran);
| ^~~~~~~~~~~~~~~~
| timespec64_to_ns
/opt/beegfs/src/client/client_module_7/build/../source/common/Common.h:229:11: error: incompatible types when returning type ‘int’ but ‘struct timespec64’ was expected
229 | return timespec64_trunc(now, sb->s_time_gran);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/beegfs/src/client/client_module_7/build/../source/common/Common.h:229:11: error: implicit declaration of function ‘timespec64_trunc’; did you mean ‘timespec64_to_ns’? [-Werror=implicit-function-declaration]
229 | return timespec64_trunc(now, sb->s_time_gran);
| ^~~~~~~~~~~~~~~~
| timespec64_to_ns
4,. error: implicit declaration of function ‘bdi_destroy’; did you mean ‘ida_destroy’?
/opt/beegfs/src/client/client_module_7/build/../source/os/OsCompat.c:70:10: error: implicit declaration of function ‘bdi_destroy’; did you mean ‘ida_destroy’? [-Werror=implicit-function-declaration]
70 | bdi_destroy(bdi);
| ^~~~~~~~~~~
| ida_destroy
5. error: passing argument 1 of ‘generic_permission’ from incompatible pointer type
/opt/beegfs/src/client/client_module_7/build/../source/os/OsCompat.h:84:37: error: passing argument 1 of ‘inode_owner_or_capable’ from incompatible pointer type [-Werror=incompatible-pointer-types]
84 | return inode_owner_or_capable(inode);
| ^~~~~
| |
| const struct inode *
6. error: too few arguments to function ‘inode_owner_or_capable’
In file included from /opt/beegfs/src/client/client_module_7/build/../source/common/toolkit/Serialization.h:27,
from /opt/beegfs/src/client/client_module_7/build/../source/common/net/message/NetMessage.h:6,
from /opt/beegfs/src/client/client_module_7/build/../source/common/net/message/session/rw/ReadLocalFileV2Msg.h:4,
from /opt/beegfs/src/client/client_module_7/build/../source/net/filesystem/FhgfsOpsCommKitVec.c:2:
/opt/beegfs/src/client/client_module_7/build/../source/os/OsCompat.h:84:14: error: too few arguments to function ‘inode_owner_or_capable’
84 | return inode_owner_or_capable(inode);
And ending with :
make[3]: *** [scripts/Makefile.build:297: /opt/beegfs/src/client/client_module_7/build/../source/net/message/NetMessageFactory.o] Error 1
make[3]: *** [scripts/Makefile.build:297: /opt/beegfs/src/client/client_module_7/build/../source/net/filesystem/FhgfsOpsCommKit.o] Error 1
cc1: all warnings being treated as errors
make[3]: *** [scripts/Makefile.build:297: /opt/beegfs/src/client/client_module_7/build/../source/net/filesystem/FhgfsOpsCommKitVec.o] Error 1
cc1: all warnings being treated as errors
make[3]: *** [scripts/Makefile.build:297: /opt/beegfs/src/client/client_module_7/build/../source/net/filesystem/FhgfsOpsRemoting.o] Error 1
make[2]: *** [Makefile:1924: /opt/beegfs/src/client/client_module_7/build/../source] Error 2
make[1]: *** [Makefile:174: module] Error 2
make: *** [AutoRebuild.mk:34: auto_rebuild] Error 2
Thank you very much for the help.
Frank