After the failure of the home server for one of the groups, some code that referenced CERNLIB was no longer running. We were getting errors like this:
/cpv/code/CERNLIB/2005/lib/libpacklib.a(cfclos.o)(.text+0xa): In function `cfclos_': : undefined reference to `rfio_close' /cpv/code/CERNLIB/2005/lib/libpacklib.a(cfget.o)(.text+0x30): In function `cfget_': : undefined reference to `rfio_read' /cpv/code/CERNLIB/2005/lib/libpacklib.a(cfget.o)(.text+0x5a): In function `cfget_': : undefined reference to `serrno' /cpv/code/CERNLIB/2005/lib/libpacklib.a(cfget.o)(.text+0x63): In function `cfget_': : undefined reference to `rfio_errno' /cpv/code/CERNLIB/2005/lib/libpacklib.a(cfget.o)(.text+0x7d): In function `cfget_': : undefined reference to `rfio_perror' /cpv/code/CERNLIB/2005/lib/libpacklib.a(cfput.o)(.text+0x2b): In function `cfput_': : undefined reference to `rfio_write' /cpv/code/CERNLIB/2005/lib/libpacklib.a(cfput.o)(.text+0x37): In function `cfput_':
The error has to do with the library libpacklib.a. After googling a bit, I took a closer look at this library and found that it was actually a symbolic link to libpacklib_shift.a. In that same directory, there was also a libpacklib_noshift.a. My searches turned up that this libshift had to do with the tape library at CERN. Since we were not at CERN, we did not need this. So I just deleted the link (and another one for libpacklib-shift.a) and recreated it as below.
Original settings:
[root@host lib]# ll libpack* lrwxrwxrwx 1 root root 18 Oct 29 08:23 libpacklib.a -> libpacklib_shift.a -rw-r--r-- 1 root root 7752622 Mar 29 2006 libpacklib_noshift.a -rw-r--r-- 1 root root 7774098 Mar 29 2006 libpacklib_shift.a lrwxrwxrwx 1 root root 18 Oct 29 08:23 libpacklib-shift.a -> libpacklib_shift.a
My changes:
[root@host lib]# rm libpacklib.a rm: remove symbolic link `libpacklib.a'? y [root@host lib]# ln -s libpacklib_noshift.a libpacklib.a [root@host lib]# rm libpacklib-shift.a rm: remove symbolic link `libpacklib-shift.a'? y [root@host lib]# ll libpack* lrwxrwxrwx 1 root root 20 Oct 29 08:35 libpacklib.a -> libpacklib_noshift.a -rw-r--r-- 1 root root 7752622 Mar 29 2006 libpacklib_noshift.a -rw-r--r-- 1 root root 7774098 Mar 29 2006 libpacklib_shift.a
After this, the code compiled correctly again. Some people were still using the 2004 CERNLIB, so I made the change there as well. (Though here, there wasn’t a symbolic link, but the libpacklib-shift.a file was just copied to libpacklib.a. I renamed it and created a symbolic link.)
[root@host lib]# ll libpack* -rw-r--r-- 1 owner cpv 7734466 Jul 22 2004 libpacklib.a -rw-r--r-- 1 owner cpv 7712940 Jul 28 2004 libpacklib_noshift.a -rw-r--r-- 1 owner cpv 7734466 Jul 22 2004 libpacklib-shift.a [root@host lib]# mv libpacklib.a libpacklib.a.OLD [root@host lib]# ln -s libpacklib_noshift.a libpacklib.a [root@host lib]# ll libpack* lrwxrwxrwx 1 root root 20 Oct 29 08:47 libpacklib.a -> libpacklib_noshift.a -rw-r--r-- 1 owner cpv 7734466 Jul 22 2004 libpacklib.a.OLD -rw-r--r-- 1 owner cpv 7712940 Jul 28 2004 libpacklib_noshift.a -rw-r--r-- 1 owner cpv 7734466 Jul 22 2004 libpacklib-shift.a