[ROOT] MacOS 10.3 linking problem root/pythia or aliroot

From: Constantin Loizides (loizides@ikf.uni-frankfurt.de)
Date: Mon Jan 05 2004 - 19:38:09 MET


Hi, sorry to bother again,
but this time I really think its
a problem:

When trying to use pythia with Root and external
compile libpythia6 or with Aliroot I run
into the "multiple definitions of symbols"
problem (see down), known for the dyld on mac.
The definition of HEPEVT in pythia6x.f and
libEG.so (Hepevt.h) simply clash and
the linker does not simply take
the first defintion and disregards the
second (as e.g. ld on linux does).

I tried to solve it by explicitely
makeing hepevt external in Hepevt.h
but then loading libEG.so fails
with very strange missing symbols
which are in libPythia6.so (which
is loaded first).

Any ideas? I have been browsing
the web, it seems that one has
to work around it by suitably
using "external" but maybe someone
knows of a superior approach?
Maybe not using flat namespaces?

Regards, Constantin


ALIROOT head (with config option to use pythia)
---------------
root [0] gAlice->Init("ConfigPPR.C");
      ****************************************************************
      *                                                              *
      *    You are running AliRoot version NewIO
      *    The cvs tag for the current program is $Name:  $
      *                                                              *
      ****************************************************************
Seed for random number generation= 12345
dlopen error: dlcompat: dyld: aliroot multiple definitions of symbol 
_hepevt_
/prog/root/ali-head/lib/libEG.dylib(TGenerator.o) definition of _hepevt_
/prog/aliroot/ali-head/lib/tgt_Darwin/libpythia6.dylib(single module) 
definition of _hepevt_


ROOT 10.02 and pythia6.221
---------------
gSystem->Load("$PYTHIA6LIB/libPythia6.so"); // Pythia6 library
root [1]    gSystem->Load("libEG.so");
root [2]    gSystem->Load("libEGPythia6.so");
dlopen error: dlcompat: dyld: /prog/root/ali-head/bin/root.exe multiple 
definitions of symbol _hepevt_
/prog/root/ali-head/lib/libEG.so definition of _hepevt_
/prog/pythia6/libPythia6221.dylib(single module) definition of _hepevt_

Load Error: Failed to load Dynamic link library 
/prog/root/ali-head/lib/libEGPythia6.so



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:05 MET