build failure of darshan-runtime on 32-bit operating system
I tried building Darshan on a 32-bit Linux system (Raspbian--don't judge!) and hit this build error:
mpicc -DDARSHAN_CONFIG_H=\"darshan-runtime-config.h\" -I . -I. -I./../ -g -O2 -D_LARGEFILE64_SOURCE -shared -fpic -DPIC -DDARSHAN_PRELOAD -c lib/darshan-posix.c -o lib/darshan-posix.po In file included from lib/darshan-posix.c:30:0: lib/darshan-posix.c:755:20: error: conflicting types for ‘lseek64’ off_t DARSHAN_DECL(lseek64)(int fd, off_t offset, int whence) ^ ./darshan.h:29:30: note: in definition of macro ‘DARSHAN_DECL’ #define DARSHAN_DECL(__func) __func ^~~~~~ In file included from lib/darshan-posix.c:12:0: /usr/include/unistd.h:348:18: note: previous declaration of ‘lseek64’ was here extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) ^~~~~~~ Makefile:101: recipe for target 'lib/darshan-posix.po' failed make: *** [lib/darshan-posix.po] Error 1
I'm not 100% clear on how
_LARGEFILE64_SOURCE has ever worked on 32-bit vs. 64-bit operating systems so maybe it's a red herring that this error pops up on
lseek64 first. But does Darshan actually support 32-bit OSes these days?