[Rivet] compile error and patch: OSX 10.6.8 or more std C++ compiler

Andy Buckley andy.buckley at ed.ac.uk
Fri Mar 15 15:07:12 GMT 2013


Yep, also fixed in trunk! Seems that Linux is tolerant to this, while
current Macs are more correct.

Andy


On 15/03/13 15:35, William Hamish Bell wrote:
> Hi Andy,
> 
> Is
> 
> Making all in .
>   CCLD   libRivet.la
> ld: duplicate symbol Rivet::BinnedHistogram<double>::BinnedHistogram()in Tools/.libs/libRivetTools.a(lt1-libRivetTools_la-BinnedHistogram.o) and Tools/.libs/libRivetTools.a(libRivetTools_la-BinnedHistogram.o)
> collect2: ld returned 1 exit status
> make[2]: *** [libRivet.la] Error 1
> make[1]: *** [all-recursive] Error 1
> make: *** [all-recursive] Error 1
> 
> also solved in the trunk? (OSX linking error once the compile error previously mentioned is fixed.)
> 
> Thanks and best regards,
> 
> Will
> 
> On Mar 15, 2013, at 3:25 PM, Andy Buckley wrote:
> 
>> Hi Will,
>>
>> We've already solved this one on trunk... soon to be 1.8.3. Thanks
>> anyway :-)
>>
>> We're currently debating whether or not we can add some other helper
>> functions for the b-tagging/decay lepton exclusion that we talked about,
>> so you *may* also get some of that functionality as a surprise gift in
>> 1.8.3, if we can agree on the Right (TM) way to do it!
>>
>> Andy
>>
>>
>> On 15/03/13 15:18, William Hamish Bell wrote:
>>> Hi,
>>>
>>> Compilation of Rivet 1.8.2 fails on OSX 10.6.8:
>>>
>>> [wbell at pb-d-128-141-35-96 ~]$ ./rivet-bootstrap --prefix="/opt/rivet/1.8.2/macosx106-x86_64-gcc-4.2" --with-gsl=/opt/local --with-boost=/opt/local
>>> Getting http://www.hepforge.org/archive/rivet/Rivet-1.8.2.tar.gz
>>> Not overwriting tarball at /Users/wbell/downloads/Rivet-1.8.2.tar.gz
>>> Configuring in /Users/wbell/build/Rivet-1.8.2: ./configure --prefix=/opt/rivet/1.8.2/macosx106-x86_64-gcc-4.2  --with-lcgtag=i386-mac106-gcc42-opt --with-hepmc=/opt/rivet/1.8.2/macosx106-x86_64-gcc-4.2 --with-boost=/opt/local --with-fastjet=/opt/rivet/1.8.2/macosx106-x86_64-gcc-4.2 --disable-pdfmanual --with-gsl=/opt/local
>>>
>>> Building in /Users/wbell/build/Rivet-1.8.2: make -j2 && make -j2 install
>>> Making all in src
>>> Making all in Core
>>>  CXX    libRivetCore_la-Jet.lo
>>>  CXX    libRivetCore_la-Event.lo
>>>  CXX    libRivetCore_la-Particle.lo
>>>  CXX    libRivetCore_la-ParticleName.lo
>>>  CXX    libRivetCore_la-ProjectionApplier.lo
>>>  CXX    libRivetCore_la-Projection.lo
>>>  CXX    libRivetCore_la-Analysis.lo
>>>  CXX    libRivetCore_la-AnalysisLoader.lo
>>>  CXX    libRivetCore_la-AnalysisInfo.lo
>>>  CXX    libRivetCore_la-AnalysisHandler.lo
>>>  CXX    libRivetCore_la-Run.lo
>>>  CXX    libRivetCore_la-ProjectionHandler.lo
>>>  CXX    libRivetCore_la-HistoHandler.lo
>>>  CXXLD  libRivetCore.la
>>> Making all in Projections
>>>  CXX    BeamThrust.lo
>>>  CXX    Beam.lo
>>>  CXX    ChargedFinalState.lo
>>>  CXX    ChargedLeptons.lo
>>>  CXX    CentralEtHCM.lo
>>>  CXX    ClusteredPhotons.lo
>>>  CXX    DISFinalState.lo
>>>  CXX    DISKinematics.lo
>>>  CXX    DISLepton.lo
>>>  CXX    FastJets.lo
>>>  CXX    FinalState.lo
>>>  CXX    FoxWolframMoments.lo
>>>  CXX    FParameter.lo
>>>  CXX    HadronicFinalState.lo
>>>  CXX    NonHadronicFinalState.lo
>>>  CXX    Hemispheres.lo
>>>  CXX    IdentifiedFinalState.lo
>>>  CXX    InitialQuarks.lo
>>>  CXX    InvMassFinalState.lo
>>>  CXX    JetAlg.lo
>>>  CXX    JetShape.lo
>>>  CXX    LeadingParticlesFinalState.lo
>>>  CXX    LeptonClusters.lo
>>>  CXX    MergedFinalState.lo
>>>  CXX    MissingMomentum.lo
>>>  CXX    Multiplicity.lo
>>>  CXX    NeutralFinalState.lo
>>>  CXX    ParisiTensor.lo
>>>  CXX    PVertex.lo
>>>  CXX    Sphericity.lo
>>>  CXX    Spherocity.lo
>>>  CXX    SVertex.lo
>>>  CXX    Thrust.lo
>>>  CXX    TotalVisibleMomentum.lo
>>>  CXX    TriggerCDFRun0Run1.lo
>>>  CXX    TriggerCDFRun2.lo
>>>  CXX    TriggerUA5.lo
>>>  CXX    UnstableFinalState.lo
>>>  CXX    VetoedFinalState.lo
>>>  CXX    VisibleFinalState.lo
>>>  CXX    WFinder.lo
>>>  CXX    ZFinder.lo
>>>  CXXLD  libRivetProjections.la
>>> Making all in Tools
>>> Making all in yaml-cpp
>>>  CXX    emitterstate.lo
>>>  CXX    aliascontent.lo
>>>  CXX    map.lo
>>>  CXX    parser.lo
>>>  CXX    scanscalar.lo
>>>  CXX    sequence.lo
>>>  CXX    stream.lo
>>>  CXX    parserstate.lo
>>>  CXX    scalar.lo
>>>  CXX    emitterutils.lo
>>>  CXX    iterator.lo
>>>  CXX    node.lo
>>>  CXX    scantag.lo
>>>  CXX    conversion.lo
>>>  CXX    null.lo
>>>  CXX    regex.lo
>>>  CXX    scanner.lo
>>>  CXX    simplekey.lo
>>>  CXX    tag.lo
>>>  CXX    emitter.lo
>>>  CXX    exp.lo
>>>  CXX    ostream.lo
>>>  CXX    scantoken.lo
>>>  CXXLD  libyaml-cpp.la
>>>  CXX    libRivetTools_la-Logging.lo
>>>  CXX    libRivetTools_la-RivetAIDA.lo
>>> In file included from ../../include/LWH/Histogram1D.h:10,
>>>                 from ../../include/LWH/HistogramFactory.h:9,
>>>                 from ../../include/LWH/AnalysisFactory.h:10,
>>>                 from RivetAIDA.cc:6:
>>> ../../include/LWH/Axis.h: In member function 'virtual int LWH::Axis::coordToIndex(double) const':
>>> ../../include/LWH/Axis.h:118: error: 'isnan' was not declared in this scope
>>>  CXX    libRivetTools_la-RivetPaths.lo
>>> ../../include/Rivet/Math/MathHeader.hh: At global scope:
>>> ../../include/Rivet/Math/MathHeader.hh:44: warning: 'Rivet::MAXINT' defined but not used
>>> make[3]: *** [libRivetTools_la-RivetAIDA.lo] Error 1
>>> make[3]: *** Waiting for unfinished jobs....
>>> make[2]: *** [all-recursive] Error 1
>>> make[1]: *** [all-recursive] Error 1
>>> make: *** [all-recursive] Error 1
>>>
>>> --------------
>>>
>>> where the gsl and boost libraries were make using macports.
>>>
>>> The fix is very simple
>>>
>>>    assert( ! std::isnan(coord) );
>>>
>>> rather than
>>>
>>>    assert( ! isnan(coord) );
>>>
>>> In the C++ standard isnan should be inside std.  Therefore, the LINUX compiler gcc43 is just being sloppy.  Would it be possible to put this fix in?
>>>
>>> Thanks and best regards,
>>>
>>> Will
>>> _______________________________________________
>>> Rivet mailing list
>>> Rivet at projects.hepforge.org
>>> http://www.hepforge.org/lists/listinfo/rivet
>>>
>>
>>
>> -- 
>> Dr Andy Buckley, Royal Society University Research Fellow
>> Particle Physics Expt Group, University of Edinburgh
>>
>> The University of Edinburgh is a charitable body, registered in
>> Scotland, with registration number SC005336.
>>
> 
> 


-- 
Dr Andy Buckley, Royal Society University Research Fellow
Particle Physics Expt Group, University of Edinburgh

The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



More information about the Rivet mailing list