LLNL / UnifyFS

UnifyFS: A file system for burst buffers
Other
106 stars 31 forks source link

build failure with newest glibc #687

Closed roblatham00 closed 2 years ago

roblatham00 commented 3 years ago

System information

Type Version/Name
Operating System Ubuntu
OS Version 21.04
Architecture x86_64
UnifyFS Version devel

Describe the problem you're observing

Fails to compile, complaining about _STAT_VER

Describe how to reproduce the problem

% gcc --version
gcc (Ubuntu 10.3.0-1ubuntu1) 10.3.0
% /lib32/libc.so.6
GNU C Library (Ubuntu GLIBC 2.33-0ubuntu5) release release version 2.33.
% ../configure --prefix=/home/robl/soft/unify MPICC=/home/robl/work/soft/mpich/bin/mpicc
make

Include any warning or errors or releveant debugging data

make[3]: Entering directory '/home/robl/work/build/unify/client/src'
  CC       libunifyfs_la-unifyfs-sysio.lo
/home/robl/work/UnifyFS/client/src/unifyfs-sysio.c: In function ‘__wrap___xstat’:
/home/robl/work/UnifyFS/client/src/unifyfs-sysio.c:824:21: error: ‘_STAT_VER’ undeclared (first use in this function)
  824 |         if (vers != _STAT_VER) {
      |                     ^~~~~~~~~
/home/robl/work/UnifyFS/client/src/unifyfs-sysio.c:824:21: note: each undeclared identifier is reported only once for each function it appears in
/home/robl/work/UnifyFS/client/src/unifyfs-sysio.c: In function ‘__wrap___lxstat’:
/home/robl/work/UnifyFS/client/src/unifyfs-sysio.c:845:21: error: ‘_STAT_VER’ undeclared (first use in this function)
  845 |         if (vers != _STAT_VER) {
      |                     ^~~~~~~~~
/home/robl/work/UnifyFS/client/src/unifyfs-sysio.c: In function ‘__wrap___fxstat’:
/home/robl/work/UnifyFS/client/src/unifyfs-sysio.c:866:21: error: ‘_STAT_VER’ undeclared (first use in this function)
  866 |         if (vers != _STAT_VER) {
      |                     ^~~~~~~~~

I guess _STAT_VER no longer exists in glibc headers?

rgmiller commented 3 years ago

It appears that starting in v2.33, glibc changed how they implement the *stat() functions. It looks like they've gotten rid of their internal, "private" implementations that included a version parameter.

Handling this is going to be a little tricky. I think we're probably going to have to check at compile time to see which version of glibc UnifyFS is being compiled against.

roblatham00 commented 2 years ago

fixed by #694