Re: [ROOT] cxx_repository (templates instantiation) on alpha

From: Stephen J. Gowdy (gowdy@SLAC.stanford.edu)
Date: Fri Mar 08 2002 - 16:35:42 MET


I think with -tlocal each object uses the local version and there should 
be no symbol collisions (not sure what happens with class methods or 
variables). I believe gcc uses a similar method that seems to work 
although it tries to eliminate duplicates at link time.

On Fri, 8 Mar 2002, Damir Buskulic wrote:

> Hi Philippe and Stephen,
> 
> Philippe Canal a écrit :
> > 
> > Hi Damir,
> > 
> > With KCC, a similar possible problem is solved using an option call --one_instantiation_per.
> > Is there something similar for alpha/cxx?
> 
> Yes, there exists such an option. It's called -tlocal, there is no more
> cxx_repository, and I can use it. The problem is that it instantiate
> templates in the local object files. If you have only one (which is the
> case) instantiation in one object file, perfect. If not, I'm not sure
> you won't have a collisison problem.
> So the problem is that I don't think it's possible to change
> Makefile.alphacxx6, rather one has to do it each time. Not very
> convenient.
> I'll try to detect the repository in $ROOTSYS and use a cxx option that
> specifies the repository location.
> 
> Cheers
> 
> Damir
> 
> > 
> > Cheers,
> > Philippe.
> > 
> > -----Original Message-----
> > From: owner-roottalk@pcroot.cern.ch
> > [mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Damir Buskulic
> > Sent: Wednesday, March 06, 2002 12:11 PM
> > To: roottalk@pcroot.cern.ch
> > Subject: [ROOT] cxx_repository (templates instantiation) on alpha
> > 
> > Hi,
> > 
> > I have a problem compiling root 3.03/02 on alpha/cxx. Actually compiling
> > a program that uses
> > root libs. 
> > 
> > I tracked down the problem to be related to the cxx_repository directory
> > created
> > by cxx on alpha, where it puts all the instantiated templates it builds.
> > Since it builds some of these templates in root's compiling, the
> > executables (root.exe,...) code uses this directory contents at link
> > time.
> > But my executables do not have by default access to it. I suppose I can
> > use
> > a link option, but it is really odd.
> > It was not the case in previous ROOT releases.
> > 
> > Is there a way to circumvent the problem or do I need to put a compiler
> > flag that refers
> > to the cxx_repository created in $ROOTSYS ? I would prefer not, since
> > this means that one needs to also copy cxx_repository when doing a gmake
> > install
> > 
> > Cheers
> > 
> > Damir
> > 
> > --
> > =====================================================================
> > | Damir Buskulic                  | Universite de Savoie/LAPP       |
> > |                                 | Chemin de Bellevue, B.P. 110    |
> > | Tel : +33 (0)450091600          | F-74941 Annecy-le-Vieux Cedex   |
> > | e-mail: buskulic@lapp.in2p3.fr  | FRANCE                          |
> > =====================================================================
> > mailto:buskulic@lapp.in2p3.fr
> 
> 

-- 
 /------------------------------------+-------------------------\
|Stephen J. Gowdy                     | SLAC, MailStop 34,       |
|http://www.slac.stanford.edu/~gowdy/ | 2575 Sand Hill Road,     |
|http://calendar.yahoo.com/gowdy      | Menlo Park CA 94025, USA |
|EMail: gowdy@slac.stanford.edu       | Tel: +1 650 926 3144     |
 \------------------------------------+-------------------------/



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:45 MET