Changeset cb98f1


Ignore:
Timestamp:
Mar 2, 2017, 2:01:50 PM (8 years ago)
Author:
Frederik Heber <heber@…>
Branches:
Action_Thermostats, Add_AtomRandomPerturbation, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_StructOpt_integration_tests, AutomationFragmentation_failures, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_ChronosMutex, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, GeometryObjects, Gui_displays_atomic_force_velocity, IndependentFragmentGrids_IntegrationTest, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, RotateToPrincipalAxisSystem_UndoRedo, StoppableMakroAction, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, Ubuntu_1604_changes, stable
Children:
290c8e
Parents:
dfeb7c
git-author:
Frederik Heber <heber@…> (02/20/17 09:46:50)
git-committer:
Frederik Heber <heber@…> (03/02/17 14:01:50)
Message:

FIX: One Definition Rule violation by mpqc.

  • mpqc.cc implements MPQCJob::Work() a second time (other in MPQCJob.cpp), this violates ODR and did so far work out of sheer luck. This was brough to surface by making a debian package.
  • Now, we extracted MPQCJob::Work() into a separate library.
Location:
src
Files:
1 added
17 edited

Legend:

Unmodified
Added
Removed
  • src/Actions/unittests/Makefile.am

    rdfeb7c rcb98f1  
    3030if CONDJOBMARKET
    3131ACTIONLIBS += \
    32         ../libMolecuilderJobs.la
     32        ../libMolecuilderJobs.la \
     33        ../libMolecuilderJobs_Work.la
    3334endif
    3435
  • src/Analysis/unittests/Makefile.am

    rdfeb7c rcb98f1  
    3434if CONDJOBMARKET
    3535ANALYSISLIBS += \
    36         ../libMolecuilderJobs.la
     36        ../libMolecuilderJobs.la \
     37        ../libMolecuilderJobs_Work.la
    3738endif
    3839ANALYSISLIBS += \
  • src/Descriptors/unittests/Makefile.am

    rdfeb7c rcb98f1  
    2424if CONDJOBMARKET
    2525DESCRIPTORLIBS += \
    26         ../libMolecuilderJobs.la
     26        ../libMolecuilderJobs.la \
     27        ../libMolecuilderJobs_Work.la
    2728endif
    2829DESCRIPTORLIBS += \
  • src/Filling/unittests/Makefile.am

    rdfeb7c rcb98f1  
    4141if CONDJOBMARKET
    4242FILLINGLIBS += \
    43         ../libMolecuilderJobs.la
     43        ../libMolecuilderJobs.la \
     44        ../libMolecuilderJobs_Work.la
    4445endif
    4546FILLINGLIBS += \
  • src/Fragmentation/Homology/unittests/Makefile.am

    rdfeb7c rcb98f1  
    5151HomologyContainerUnitTest_LDADD = $(FRAGMENTATIONHOMOLOGYLIBS)
    5252#       ../libMolecuilderUI.la \
    53   ../libMolecuilderJobsGrid.la \
     53        ../libMolecuilderJobsGrid.la \
    5454        ${CodePatterns_LIBS} \
    55   $(BOOST_SERIALIZATION_LDFLAGS) $(BOOST_SERIALIZATION_LIBS) \
     55        $(BOOST_SERIALIZATION_LDFLAGS) $(BOOST_SERIALIZATION_LIBS) \
    5656        $(BOOST_LIB)
    5757
  • src/Graph/unittests/Makefile.am

    rdfeb7c rcb98f1  
    2626if CONDJOBMARKET
    2727GRAPHLIBS += \
    28         ../libMolecuilderJobs.la
     28        ../libMolecuilderJobs.la \
     29        ../libMolecuilderJobs_Work.la
    2930endif
    3031GRAPHLIBS += \
  • src/Jobs/MPQCJob.cpp

    rdfeb7c rcb98f1  
    4545
    4646#include <limits>
    47 #include <sstream>
    4847
    4948#include "CodePatterns/Assert.hpp"
     
    8483{}
    8584
    86 FragmentResult::ptr MPQCJob::Work()
    87 {
    88   // instantiate empty data
    89   const MPQCData data;
    90   std::stringstream returnstream;
    91   boost::archive::text_oarchive oa(returnstream);
    92   oa << data;
    93 
    94   // create the result
    95   FragmentResult::ptr ptr( new FragmentResult(getId(), returnstream.str()) );
    96   if (data.desired_accuracy != 0.) {
    97     ptr->exitflag = data.accuracy < data.desired_accuracy ? 0 : 1;
    98     if (ptr->exitflag != 0)
    99       ELOG(1, "Job #" << ptr->getId() << " failed to reach desired accuracy.");
    100   } else {
    101     LOG(3, "INFO: No precision returned from MPQC job, not checking.");
    102   }
    103 
    104   return ptr;
    105 }
    106 
    10785// we need to explicitly instantiate the serialization functions as
    10886// its is only serialized through its base class FragmentJob
  • src/Jobs/Makefile.am

    rdfeb7c rcb98f1  
    5555endif
    5656
    57 lib_LTLIBRARIES += libMolecuilderJobs.la
     57lib_LTLIBRARIES += \
     58        libMolecuilderJobs.la
     59noinst_LTLIBRARIES += \
     60        libMolecuilderJobs_Work.la
    5861libMolecuilderJobs_la_includedir = $(includedir)/MoleCuilder/
    5962nobase_libMolecuilderJobs_la_include_HEADERS = $(JOBSHEADER)
    6063libMolecuilderJobs_la_CPPFLAGS = $(AM_CPPFLAGS) ${BOOST_CPPFLAGS} ${CodePatterns_CFLAGS} ${JobMarket_CFLAGS} -Dvmg_float=double -Dvmg_int=int $(VMG_CFLAGS)
     64libMolecuilderJobs_Work_la_CPPFLAGS = $(AM_CPPFLAGS) ${BOOST_CPPFLAGS} ${CodePatterns_CFLAGS} ${JobMarket_CFLAGS} -Dvmg_float=double -Dvmg_int=int $(VMG_CFLAGS)
    6165libMolecuilderJobs_la_LDFLAGS = $(AM_LDFLAGS) \
    6266  $(BOOST_IOSTREAMS_LDFLAGS) \
    6367  $(BOOST_SERIALIZATION_LDFLAGS) \
    6468  $(BOOST_SYSTEM_LDFLAGS)
     69libMolecuilderJobs_Work_la_LDFLAGS = $(AM_LDFLAGS)
    6570if CONDJOBMARKET
    6671libMolecuilderJobs_la_LDFLAGS += \
     72  $(JobMarket_LDFLAGS)
     73libMolecuilderJobs_Work_la_LDFLAGS += \
    6774  $(JobMarket_LDFLAGS)
    6875endif
     
    8390if CONDJOBMARKET
    8491libMolecuilderJobs_la_LIBADD += \
     92  $(JobMarket_LIBS)
     93libMolecuilderJobs_Work_la_LIBADD = \
    8594  $(JobMarket_LIBS)
    8695endif
     
    105114## which are already listed elsewhere in a _HEADERS variable assignment.
    106115libMolecuilderJobs_la_SOURCES = $(JOBSSOURCE)
     116libMolecuilderJobs_Work_la_SOURCES = Jobs/MPQCJob_Work.cpp
    107117
    108118## Instruct libtool to include ABI version information in the generated shared
  • src/Jobs/unittests/Makefile.am

    rdfeb7c rcb98f1  
    2020        ../libMolecuilder.la \
    2121        ../libMolecuilderJobs.la \
     22        ../libMolecuilderJobs_Work.la \
    2223        ../libMolecuilderFragmentationContainers.la \
    2324        ../libMolecuilderFragmentationSummation.la \
  • src/LinkedCell/unittests/Makefile.am

    rdfeb7c rcb98f1  
    4343if CONDJOBMARKET
    4444linkedcellUnitTest_LDADD += \
    45         ../libMolecuilderJobs.la
     45        ../libMolecuilderJobs.la \
     46        ../libMolecuilderJobs_Work.la
    4647endif
    4748linkedcellUnitTest_LDADD += \
     
    7172if CONDJOBMARKET
    7273LinkedCell_ControllerUnitTest_LDADD += \
    73         ../libMolecuilderJobs.la
     74        ../libMolecuilderJobs.la \
     75        ../libMolecuilderJobs_Work.la
    7476endif
    7577LinkedCell_ControllerUnitTest_LDADD += \
     
    8587if CONDJOBMARKET
    8688LinkedCell_ModelUnitTest_LDADD += \
    87         ../libMolecuilderJobs.la
     89        ../libMolecuilderJobs.la \
     90        ../libMolecuilderJobs_Work.la
    8891endif
    8992LinkedCell_ModelUnitTest_LDADD += \
     
    100103if CONDJOBMARKET
    101104LinkedCell_ViewUnitTest_LDADD += \
    102         ../libMolecuilderJobs.la
     105        ../libMolecuilderJobs.la \
     106        ../libMolecuilderJobs_Work.la
    103107endif
    104108LinkedCell_ViewUnitTest_LDADD += \
  • src/Makefile.am

    rdfeb7c rcb98f1  
    417417        libMolecuilderFragmentation.la \
    418418        libMolecuilderJobs.la \
     419        libMolecuilderJobs_Work.la \
    419420        libMolecuilderFragmentationSummation.la \
    420421        libMolecuilderFragmentation_KeysetsContainer.la \
     
    431432PoolWorker_LDADD = \
    432433        libMolecuilderJobs.la \
     434        libMolecuilderJobs_Work.la \
    433435        libMolecuilderFragmentationSummation.la \
    434436        ${JobMarket_PoolWorker_LIBS} \
     
    443445Server_LDADD = \
    444446        libMolecuilderJobs.la \
     447        libMolecuilderJobs_Work.la \
    445448        libMolecuilderFragmentationSummation.la \
    446449        ${JobMarket_Server_LIBS} \
  • src/Parser/unittests/Makefile.am

    rdfeb7c rcb98f1  
    4141if CONDJOBMARKET
    4242PARSERLIBS += \
    43         ../libMolecuilderJobs.la
     43        ../libMolecuilderJobs.la \
     44        ../libMolecuilderJobs_Work.la
    4445endif
    4546PARSERLIBS += \
  • src/Tesselation/unittests/Makefile.am

    rdfeb7c rcb98f1  
    2828if CONDJOBMARKET
    2929TESSELATIONLIBS += \
    30         ../libMolecuilderJobs.la
     30        ../libMolecuilderJobs.la \
     31        ../libMolecuilderJobs_Work.la
    3132endif
    3233TESSELATIONLIBS += \
  • src/UIElements/CommandLineUI/unittests/Makefile.am

    rdfeb7c rcb98f1  
    2424if CONDJOBMARKET
    2525CommandLineParser_ActionRegistry_ConsistencyUnitTest_LDADD += \
    26         ../libMolecuilderJobs.la
     26        ../libMolecuilderJobs.la \
     27        ../libMolecuilderJobs_Work.la
    2728endif
    2829CommandLineParser_ActionRegistry_ConsistencyUnitTest_LDADD += \
  • src/UIElements/Makefile.am

    rdfeb7c rcb98f1  
    295295        libMolecuilderFragmentation_getFromKeyset.la \
    296296        libMolecuilderFragmentation.la \
    297         libMolecuilderJobs.la
     297        libMolecuilderJobs.la \
     298        libMolecuilderJobs_Work.la
    298299       
    299300if CONDJOBMARKET
  • src/UIElements/Menu/unittests/Makefile.am

    rdfeb7c rcb98f1  
    2424if CONDJOBMARKET
    2525MENULIBS += \
    26         ../libMolecuilderJobs.la
     26        ../libMolecuilderJobs.la \
     27        ../libMolecuilderJobs_Work.la
    2728endif
    2829MENULIBS += \
  • src/unittests/Makefile.am

    rdfeb7c rcb98f1  
    132132if CONDJOBMARKET
    133133ALLLIBS += \
    134         ../libMolecuilderJobs.la
     134        ../libMolecuilderJobs.la \
     135        ../libMolecuilderJobs_Work.la
    135136endif
    136137ALLLIBS += \
Note: See TracChangeset for help on using the changeset viewer.