I believe I've encountered a problem with AFS. We've
started using the "template" feature of the latest C++ compilers. When
this feature is in use, the compiler may have to build ("instantiate")
certain objects at load time. (This stuff is actually done by a
program called 'ptlink') For some reason this is failing when I try to
do a build, with the build taking place on the AFS disks.

Here is what happens at load time:

    CC[ptlink] locked repository [0] ...
    CC[ptlink] read name map file list [0] ...
    CC[ptlink] read in all objects and archives [7] ...
    CC[ptlink] finished link simulation to pick up undefineds [1] ...
    CC[ptlink] made list of unique template class names [0] ...

    CC[ptlink] now looking at template Matrix<CCLComplex<double> > [0] ...
    CC[ptlink] wrote instantiation file \
          Matrix__pt__22_19CCLComplex__pt__2_d.cc [0] ...
    CC[ptlink] rebuilt header file cache [1] ...
    CC[ptlink] did dependency check on 
          Matrix__pt__22_19CCLComplex__pt__2_d.cc (missing object) [0] ...
    CC[ptlink] CC line is: /usr/lang/CC-3.0.1 -c -ptr./ptrepository       \
          +T/tmp/CC.08143.1.d/instfile -I/usr/lang/SC2.0.1/include/CC_413 \
          -I../.././src/ctr -I../.././libs/CCL  -D__cplusplus=1  -DBSD    \
          -internal -Bstatic -O4 -nolib -Qoption ld -M -fnonstd -cg89     \
          -ptv -Bstatic -limsl -llapack -lblas -lm -lansi -lC -lc +a1     \
          Matrix__pt__22_19CCLComplex__pt__2_d.cc [0] ...
    CC[SRCS = test.cc Matrix.cc CCLComplex.cc


ptlink] fatal error: could not move  \
          Matrix__pt__22_19CCLComplex__pt__2_d.o \
               --> ./ptrepository/Matrix__pt__22_19CCLComplex__pt__2_d.o
    Compilation failed

It appears that everything built OK, but that things fail when the
ptlink tries to move the resulting object into the "repository"
directory (it caches all of these objects in this directory so that it
doesn't have to rebuild them every time that you do a load). I don't
have the source to 'ptlink' and so I have no idea what it is actually
trying to do here. 

The make file is simple:
SRCS = test.cc Matrix.cc CCLComplex.cc

FLAGS = -I. -ptv

test1:
        rm -rf ptrepository
        CC +T $(FLAGS) -o test1 $(SRCS)



Has anyone else experienced this problem with C++ and AFS? Any suggestions?


-----------------------------------------------------------------------------
Michael Ganzberger           |  Distributed Computing Group
Lawrence Livermore Nat. Lab. |  National Energy Research SuperComputer Center
P.O. Box 5509 L-561          |  E-mail (internet)  [EMAIL PROTECTED]
Livermore Ca. 94550          |  Phone   (510) 423-2674,  FAX  (510) 422-0435
-----------------------------------------------------------------------------


Reply via email to