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
        Candidate_v1.7.0
        ChangeBugEmailaddress
        ChangingTestPorts
        ChemicalSpaceEvaluator
        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
        PartialCharges_OrthogonalSummation
        PythonUI_with_named_parameters
        QtGui_reactivate_TimeChanged_changes
        Recreated_GuiChecks
        RotateToPrincipalAxisSystem_UndoRedo
        StoppableMakroAction
        TremoloParser_IncreasedPrecision
        TremoloParser_MultipleTimesteps
        Ubuntu_1604_changes
        stable
      
      
        
          | Last change
 on this file since 0ee9cb3 was             fbf005, checked in by Frederik Heber <heber@…>, 9 years ago | 
        
          | 
HUGE: Extracted libmolecuilder_mpqc that is now linked to poolworker.
 This stops the problems with MemDebug and mpqc when linking against
libLinearAlgebra in debug mode: static global variables in libLinAlg are
allocated using MemDebug (prefixed with a checksum) but are deallocated
using normal libc's free() on exit. This causes an invalid free() as the
ptr given to free points inside the block and not at its start.
The problem comes from mpqc's use of own new and delete implementation. I'm
guessing its reference counting is the culprit. Hence, we need to separate
these two compilations from another in different units/libraries.
Therefore, we have split off libmolecuilder_mpqc, .._mpqc_extract and
additionally place the MPQCJob::Work() implementation inside
libMolecuilderJobs_Work.
libmolecuilder_mpqc contains all MPQC's code in mpqc.cc (and linked
libraries) that is not the main() function.
libmolecuilder_mpqc_extract contains functions that extract results such
as energies, forces, charge grids from the obtained mpqc solution. These
were added by myself to the mpqc code before.
molecuilder_mpqc is then linked against a NoOp .._extract library version.
Thereby, it does not use any of the Molecuilder or related libraries and
does not come in contact with MemDebug.
molecuilder_poolworker however is linked with the full .._extract library
and hence performs these extractions.
poolworker now executes MPQCJob, MPQCCommandJob, and VMGJob and therefore
needs to enforce binding to all of them.
TESTS: renamed molecuilder_mpqc.in to molecuilder_poolworker.in.
 | 
        
          | 
              
Property                 mode
 set to                 100644 | 
        
          | File size:
            1.7 KB | 
      
      
| Rev | Line |  | 
|---|
| [6253ed] | 1 | # | 
|---|
|  | 2 | #    MoleCuilder - creates and alters molecular systems | 
|---|
|  | 3 | #    Copyright (C) 2008-2012 University of Bonn | 
|---|
|  | 4 | # | 
|---|
|  | 5 | #    This program is free software: you can redistribute it and/or modify | 
|---|
|  | 6 | #    it under the terms of the GNU General Public License as published by | 
|---|
|  | 7 | #    the Free Software Foundation, either version 3 of the License, or | 
|---|
|  | 8 | #    (at your option) any later version. | 
|---|
|  | 9 | # | 
|---|
|  | 10 | #    This program is distributed in the hope that it will be useful, | 
|---|
|  | 11 | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|---|
|  | 12 | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
|---|
|  | 13 | #    GNU General Public License for more details. | 
|---|
|  | 14 | # | 
|---|
|  | 15 | #    You should have received a copy of the GNU General Public License | 
|---|
|  | 16 | #    along with this program.  If not, see <http://www.gnu.org/licenses/>. | 
|---|
|  | 17 | # | 
|---|
| [56f73b] | 18 | AT_SETUP([Checking for present MemDebug.hpp include]) | 
|---|
| [5982c5] | 19 | AT_KEYWORDS([CodeCheck MemDebug]) | 
|---|
| [fbf005] | 20 | ok="builder.cpp MemDebug.cpp SubspaceFactorizer.cpp TestRunner.cpp unity.cpp pugixml.cpp MPQCJob_Work.cpp" | 
|---|
| [56f73b] | 21 | echo `pwd` | 
|---|
|  | 22 | echo "${#ok[*]} are ok to not contain MemDebug.hpp: ${ok[0]} ${ok[1]}." | 
|---|
|  | 23 | liste=`find ${abs_top_srcdir}/src -name '*.cpp'` | 
|---|
|  | 24 | for file in $liste | 
|---|
|  | 25 | do | 
|---|
|  | 26 | # check whether its one of the excluded ones | 
|---|
|  | 27 | found=0 | 
|---|
|  | 28 | for item in $ok | 
|---|
|  | 29 | do | 
|---|
|  | 30 | if test "$item" == "`basename $file`" | 
|---|
|  | 31 | then | 
|---|
|  | 32 | found=1 | 
|---|
|  | 33 | break | 
|---|
|  | 34 | fi | 
|---|
|  | 35 | done | 
|---|
| [57c253] | 36 | # no .moc.cpp | 
|---|
|  | 37 | if test ! -z "`echo $file | grep '.moc.cpp'`"; then | 
|---|
|  | 38 | found=1 | 
|---|
|  | 39 | fi | 
|---|
|  | 40 | if test ! -z "`echo $file | grep 'moc_'`"; then | 
|---|
|  | 41 | found=1 | 
|---|
|  | 42 | fi | 
|---|
| [56f73b] | 43 | # if not, check whether it contains the include if its NOT a unit test | 
|---|
|  | 44 | if test -z `echo $file | grep unittests` | 
|---|
|  | 45 | then | 
|---|
|  | 46 | if test $found -eq 0 | 
|---|
|  | 47 | then | 
|---|
|  | 48 | AT_CHECK([egrep -q '^#include.*MemDebug.hpp' $file], 0, [ignore], [ignore], [echo "Could not find MemDebug.hpp include in $file."]) | 
|---|
|  | 49 | fi | 
|---|
|  | 50 | fi | 
|---|
|  | 51 | done | 
|---|
|  | 52 | AT_CLEANUP | 
|---|
       
      
  Note:
 See   
TracBrowser
 for help on using the repository browser.