From d66e96ca98cc03b22059763fdab1146af5e5fadb Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Sat, 1 Apr 2023 00:21:16 +0200 Subject: [PATCH] Fix non-MC builds when MC-only dependencies are missing --- src/mc/api/State.hpp | 5 ++++- src/mc/explo/DFSExplorer.cpp | 12 ++++++++++-- src/mc/explo/DFSExplorer.hpp | 11 +++++++++-- src/mc/explo/Exploration.cpp | 3 +++ src/mc/remote/AppSide.cpp | 2 ++ src/mc/remote/CheckerSide.cpp | 6 +++++- src/mc/transition/TransitionComm.cpp | 1 + 7 files changed, 34 insertions(+), 6 deletions(-) diff --git a/src/mc/api/State.hpp b/src/mc/api/State.hpp index 36e7138498..ad39ec5e5d 100644 --- a/src/mc/api/State.hpp +++ b/src/mc/api/State.hpp @@ -9,9 +9,12 @@ #include "src/mc/api/ActorState.hpp" #include "src/mc/api/RemoteApp.hpp" #include "src/mc/api/strategy/Strategy.hpp" -#include "src/mc/sosp/Snapshot.hpp" #include "src/mc/transition/Transition.hpp" +#if SIMGRID_HAVE_MC +#include "src/mc/sosp/Snapshot.hpp" +#endif + namespace simgrid::mc { /* A node in the exploration graph (kind-of) */ diff --git a/src/mc/explo/DFSExplorer.cpp b/src/mc/explo/DFSExplorer.cpp index a51cbd7a07..d2a9b1f6aa 100644 --- a/src/mc/explo/DFSExplorer.cpp +++ b/src/mc/explo/DFSExplorer.cpp @@ -4,13 +4,16 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #include "src/mc/explo/DFSExplorer.hpp" -#include "src/mc/VisitedState.hpp" #include "src/mc/mc_config.hpp" #include "src/mc/mc_exit.hpp" #include "src/mc/mc_private.hpp" #include "src/mc/mc_record.hpp" #include "src/mc/transition/Transition.hpp" +#if SIMGRID_HAVE_MC +#include "src/mc/VisitedState.hpp" +#endif + #include "src/xbt/mmalloc/mmprivate.h" #include "xbt/log.h" #include "xbt/string.hpp" @@ -136,6 +139,7 @@ void DFSExplorer::run() continue; } +#if SIMGRID_HAVE_MC // Backtrack if we are revisiting a state we saw previously while applying state-equality reduction if (visited_state_ != nullptr) { XBT_DEBUG("State already visited (equal to state %ld), exploration stopped on this path.", @@ -145,6 +149,7 @@ void DFSExplorer::run() this->backtrack(); continue; } +#endif // Search for the next transition // next_transition returns a pair in case we want to consider multiple state (eg. during backtrack) @@ -261,10 +266,13 @@ void DFSExplorer::run() dot_output("\"%ld\" -> \"%ld\" [%s];\n", state->get_num(), stack_.back()->get_num(), state->get_transition()->dot_string().c_str()); - } else +#if SIMGRID_HAVE_MC + } else { dot_output("\"%ld\" -> \"%ld\" [%s];\n", state->get_num(), visited_state_->original_num_ == -1 ? visited_state_->num_ : visited_state_->original_num_, state->get_transition()->dot_string().c_str()); +#endif + } } log_state(); } diff --git a/src/mc/explo/DFSExplorer.hpp b/src/mc/explo/DFSExplorer.hpp index c709eddb10..1b0f50e75e 100644 --- a/src/mc/explo/DFSExplorer.hpp +++ b/src/mc/explo/DFSExplorer.hpp @@ -6,9 +6,13 @@ #ifndef SIMGRID_MC_SAFETY_CHECKER_HPP #define SIMGRID_MC_SAFETY_CHECKER_HPP -#include "src/mc/VisitedState.hpp" +#include "src/mc/api/State.hpp" #include "src/mc/explo/Exploration.hpp" +#if SIMGRID_HAVE_MC +#include "src/mc/VisitedState.hpp" +#endif + #include #include #include @@ -100,12 +104,15 @@ private: /** Stack representing the position in the exploration graph */ stack_t stack_; +#if SIMGRID_HAVE_MC VisitedStates visited_states_; std::unique_ptr visited_state_; +#else + void* visited_state_ = nullptr; /* The code uses it to detect whether we are doing stateful MC */ +#endif /** Opened states are states that still contains todo actors. * When backtracking, we pick a state from it*/ - std::priority_queue, std::vector>, OpenedStatesCompare> opened_states_; /** Change current stack_ value to correspond to the one we would have diff --git a/src/mc/explo/Exploration.cpp b/src/mc/explo/Exploration.cpp index 6b8366ef34..6efe84181f 100644 --- a/src/mc/explo/Exploration.cpp +++ b/src/mc/explo/Exploration.cpp @@ -7,7 +7,10 @@ #include "src/mc/mc_config.hpp" #include "src/mc/mc_exit.hpp" #include "src/mc/mc_private.hpp" + +#if SIMGRID_HAVE_MC #include "src/mc/sosp/RemoteProcessMemory.hpp" +#endif #include diff --git a/src/mc/remote/AppSide.cpp b/src/mc/remote/AppSide.cpp index 9efa3081d6..34bb5391be 100644 --- a/src/mc/remote/AppSide.cpp +++ b/src/mc/remote/AppSide.cpp @@ -11,7 +11,9 @@ #include "src/kernel/actor/SimcallObserver.hpp" #include "src/mc/mc_base.hpp" #include "src/mc/mc_config.hpp" +#if SIMGRID_HAVE_MC #include "src/mc/sosp/RemoteProcessMemory.hpp" +#endif #if HAVE_SMPI #include "src/smpi/include/private.hpp" #endif diff --git a/src/mc/remote/CheckerSide.cpp b/src/mc/remote/CheckerSide.cpp index 3937d28955..fb10475bd4 100644 --- a/src/mc/remote/CheckerSide.cpp +++ b/src/mc/remote/CheckerSide.cpp @@ -5,9 +5,13 @@ #include "src/mc/remote/CheckerSide.hpp" #include "src/mc/explo/Exploration.hpp" +#include "xbt/config.hpp" +#include "xbt/system_error.hpp" + +#if SIMGRID_HAVE_MC #include "src/mc/explo/LivenessChecker.hpp" #include "src/mc/sosp/RemoteProcessMemory.hpp" -#include "xbt/system_error.hpp" +#endif #ifdef __linux__ #include diff --git a/src/mc/transition/TransitionComm.cpp b/src/mc/transition/TransitionComm.cpp index 8ae9d207e1..b374f193dc 100644 --- a/src/mc/transition/TransitionComm.cpp +++ b/src/mc/transition/TransitionComm.cpp @@ -10,6 +10,7 @@ #include "xbt/asserts.h" #include "xbt/string.hpp" +#include #include XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_trans_comm, mc_transition, -- 2.20.1