Archive for October, 2010

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