From Bugzilla Helper: User-Agent: Mozilla/4.75 [en] (X11; U; Linux 2.2.16-22 i686) binaries compiled with Lahey fortran lf95 complain: ./a.out: error while loading shared libraries: /usr/local/lf9555/lib/libfj9i6.so.1: undefined symbol: fstat However, they run when compiled statically. Suspect bug in glibc Reproducible: Always Steps to Reproduce: 1. lf95 test.f 2. ./a.out 3. Actual Results: /a.out: error while loading shared libraries: /usr/local/lf9555/lib/libfj9i6.so.1: undefined symbol: fstat lf95 is working well under RH7.0 with glibc-2.2-5
No, the problem is in Lahey libraries. Each library should have its own private copies of stat/fstat/lstat/mknod if not all their occurences are inlined. Current glibc just enforces this. Either request the libraries to be recompiled, or link things with additional objects which will as workaround export those symbols until this is fixed in Lahey, something like: #include <sys/stat.h> #undef fstat #undef __fstat int __fstat (int fd, struct stat *buf) { return __fxstat (_STAT_VER, fd, buf); } extern int fstat (int fd, struct stat *buf) __attribute__((weak, alias("__fstat"))); and similarly for other functions.