|
[Rivet] Fwd: Fwd: Re: Small problem linking LCG libRivet to Gaudi algorithm in GaussAlex Grecu Alex.Grecu at cern.chThu Oct 6 20:13:07 BST 2011
Dear all, We're quite eager to use RIVET in the LHCb community (at least in the group that does MC generators studies). As the main developer of the Gaudi component that integrates libRivet into our simulation software, I'm being asked to release my component and I sort of cannot because of the issue that Anton and I discovered and patched. I forward or re-forward you the message below and I hope you can find some spare time to give us/me an answer whether you ran into similar problems with other collaboration frameworks. Recently, I had a 2 and a half hours debugging session and discovered an interesting thing namely, that there seems to be no RTTI information for the LWH AIDA classes in the libRivet compiled by LCG (we use the software provided by GENSER at LHCb). It may be because of the way the AIDA interface is implemented (inlined and with virtual destructors) which makes the compiler strip those type_infos from the library. Unfortunately, the way I see it, there is no alternative, at the moment, but patching RIVET. Your input on this issue would be most valuable for me at this point so please reply! Best regards, Alex Grecu -------- Original Message -------- Subject: Re: Small problem linking LCG libRivet to Gaudi algorithm in Gauss Date: Wed, 7 Sep 2011 14:39:16 +0200 From: Anton Karneyeu <Anton.Karneyeu at cern.ch> To: Rivet <rivet at projects.hepforge.org> CC: Genser <genser-dev at cern.ch> Hi all, yesterday I met with Alex to see the origin of the crash. Segfault happens at this line: http://projects.hepforge.org/rivet/trac/browser/tags/rivet-1.6.0/src/Core/AnalysisHandler.cc#L269 if the type of *hobj is IProfile1D (and if the *hobj is IHistogram1D then all three dynamic_cast work as expected). The reason is not clear for me - looks like compiler bug (gcc 4.3), but can be also due to mismatch between g++ options used to build Rivet in genser repository and g++ options to link with Rivet in LHCb software, or influence of LCG AIDA implementation used in LHCb. So, I prepare a workaround to avoid subsequent dynamic_casts if preceding cast is successful: https://svnweb.cern.ch/trac/GENSER/browser/GENSER3/pkgsrc/MCGenerators/rivet/tags/rivet-1_6_0_p1/patches/patch-aa Rivet build with the patch situated here: /afs/cern.ch/sw/lcg/external/MCGenerators_hepmc2.06.05/rivet/1.6.0.p1/x86_64-slc5-gcc43-opt Alex confirmed the patched version works fine now with LHCb Rivet handler. I am not sure the above patch is a best way to fix the problem and may be there is a better way. Could you have a look? Cheers, Anton -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://www.hepforge.org/lists-archive/rivet/attachments/20111006/48ef8207/attachment.html>
More information about the Rivet mailing list |