install client 7.3.2 on linux debian

84 views
Skip to first unread message

Delmotte Stéphane

unread,
Jan 4, 2023, 11:26:27 AM1/4/23
to beegfs-user
Hi

I try to install the beegfs-7.3.2 client on the linux distribution and I always get this error:
/opt/beegfs/src/client/client_module_7/build/../source/common/Common.h:16:10: fatal error: stdarg.h: No such file or directory

I have installed everything I think I need to:
linux-headers-5.18.0-0.deb11.4-amd64
my kernel is : Linux pbil-deb40 5.18.0-0.deb11.4-amd64
if I look for the missing file I find it
/usr/src# find . -name stdarg.h
./linux-headers-5.18.0-0.deb11.4-common/include/linux/stdarg.h

what do I have to do to make it work

thanks
Stéphane




Paolo Oliveri

unread,
Jan 11, 2023, 5:16:33 AM1/11/23
to beegfs-user
Hello,
Since a recent kernel, the position of stdarg.h has been changed.
You have to replace:

#include <stdarg.h>

to

#include <linux/stdarg.h>

in Common.h file.

I'm working on RHEL9 distribution and get into this error when upgrading kernel from

5.14.0-70.13.1.el9_0.x86_64

to

5.14.0-162.6.1.el9_1.0.1.x86_64

i.e. when upgrading from RHEL 9.0 to RHEL 9.1. With the previous kernel the client module built fine.
However, I have other errors during compilation that I am trying to fix without any luck for now, please tell me if in your machine with the editing to Common.h the client module builds correctly.

Paolo Oliveri

unread,
Jan 16, 2023, 3:09:00 AM1/16/23
to beegfs-user
I finally completed kernel module building without errors.
There is another modify due to deprecation of PDE_DATA variable and its sostitution with pde_data. More info here:



So, the editing that I had to do in source code are the following:

sed -i 's|#include <stdarg.h>|//#include <linux/stdarg.h>|g' /opt/beegfs/src/client/client_module_7/source/common/Common.h
sed -i 's/PDE_DATA(const struct inode *)/pde_data(const struct inode *inode)/g' /opt/beegfs/src/client/client_module_7/build/KernelFeatureDetection.mk
sed -i 's/PDE_DATA(/pde_data(/g' /opt/beegfs/src/client/client_module_7/source/filesystem/ProcFs.c

James Hutton

unread,
May 16, 2023, 10:02:01 AM5/16/23
to beegfs-user
I'm trying to get this working on Rocky 9 (5.14.0-162.23.1) and have made the changes that Paolo suggested, but still getting the following errors. Any ideas?

/opt/beegfs/src/client/client_module_7/build/../source/filesystem/ProcFs.c: In function '__ProcFs_mkDir':
/opt/beegfs/src/client/client_module_7/build/../source/filesystem/ProcFs.c:672:17: error: invalid use of undefined type 'struct proc_dir_entry'
  672 |          procDir->data = data;
      |                 ^~
/opt/beegfs/src/client/client_module_7/build/../source/filesystem/ProcFs.c: In function '__ProcFs_getProcDirEntryDataField':
/opt/beegfs/src/client/client_module_7/build/../source/filesystem/ProcFs.c:696:42: error: implicit declaration of function 'PDE' [-Werror=implicit-function-declaration]
  696 |       struct proc_dir_entry* procEntry = PDE(procInode);
      |                                          ^~~
/opt/beegfs/src/client/client_module_7/build/../source/filesystem/ProcFs.c:696:42: warning: initialization of 'struct proc_dir_entry *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
/opt/beegfs/src/client/client_module_7/build/../source/filesystem/ProcFs.c:698:23: error: invalid use of undefined type 'struct proc_dir_entry'
  698 |       return procEntry->data; // (app is stored as ->data in parent dir)
      |                       ^~
/opt/beegfs/src/client/client_module_7/build/../source/filesystem/ProcFs.c: In function '__ProcFs_getProcParentDirEntryDataField':
/opt/beegfs/src/client/client_module_7/build/../source/filesystem/ProcFs.c:719:42: warning: initialization of 'struct proc_dir_entry *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  719 |       struct proc_dir_entry* procEntry = PDE(procInode);
      |                                          ^~~
/opt/beegfs/src/client/client_module_7/build/../source/filesystem/ProcFs.c:721:23: error: invalid use of undefined type 'struct proc_dir_entry'
  721 |       return procEntry->parent->data; // (app is stored as ->data in parent dir)
      |                       ^~
/opt/beegfs/src/client/client_module_7/build/../source/filesystem/ProcFs.c: In function '__ProcFs_getProcDirEntryDataField':
/opt/beegfs/src/client/client_module_7/build/../source/filesystem/ProcFs.c:701:1: error: control reaches end of non-void function [-Werror=return-type]
  701 | }
      | ^
/opt/beegfs/src/client/client_module_7/build/../source/filesystem/ProcFs.c: In function '__ProcFs_getProcParentDirEntryDataField':
/opt/beegfs/src/client/client_module_7/build/../source/filesystem/ProcFs.c:724:1: error: control reaches end of non-void function [-Werror=return-type]
  724 | }
      | ^
Reply all
Reply to author
Forward
0 new messages