From: Gabriel Corona Date: Mon, 14 Sep 2015 10:09:31 +0000 (+0200) Subject: [mc] Fix SimGridMC when SMPI is disabled X-Git-Tag: v3_12~219 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/04dab60fb0a697e6e4e88956753ecd96b9d28bca [mc] Fix SimGridMC when SMPI is disabled Disable parts of the code which use SMPI symbols and are useless if we don't have SMPI. --- diff --git a/src/mc/ObjectInformation.hpp b/src/mc/ObjectInformation.hpp index 8ada283b53..21c3a0456e 100644 --- a/src/mc/ObjectInformation.hpp +++ b/src/mc/ObjectInformation.hpp @@ -88,7 +88,11 @@ public: bool privatized() const { +#ifdef HAVE_SMPI return this->executable() && smpi_privatize_global_variables; +#else + return false; +#endif } void* base_address() const; diff --git a/src/mc/mc_checkpoint.cpp b/src/mc/mc_checkpoint.cpp index 7f4a8218e1..8821fbb1ca 100644 --- a/src/mc/mc_checkpoint.cpp +++ b/src/mc/mc_checkpoint.cpp @@ -83,6 +83,7 @@ static void MC_region_restore(mc_mem_region_t region) namespace simgrid { namespace mc { +#ifdef HAVE_SMPI simgrid::mc::RegionSnapshot privatized_region( RegionType region_type, void *start_addr, void* permanent_addr, size_t size ) @@ -112,6 +113,7 @@ simgrid::mc::RegionSnapshot privatized_region( region.privatized_data(std::move(data)); return std::move(region); } +#endif } } @@ -128,12 +130,14 @@ static void MC_snapshot_add_region(int index, mc_snapshot_t snapshot, else if (type == simgrid::mc::RegionType::Heap) xbt_assert(!object_info, "Unexpected object info for heap region."); - const bool privatization_aware = object_info && object_info->privatized(); - simgrid::mc::RegionSnapshot region; + +#ifdef HAVE_SMPI + const bool privatization_aware = object_info && object_info->privatized(); if (privatization_aware && MC_smpi_process_count()) region = simgrid::mc::privatized_region(type, start_addr, permanent_addr, size); else +#endif region = simgrid::mc::region(type, start_addr, permanent_addr, size); region.object_info(object_info); @@ -535,8 +539,10 @@ static std::vector MC_get_current_fds(pid_t pid) } link[res] = '\0'; +#ifdef HAVE_SMPI if(smpi_is_privatisation_file(link)) continue; +#endif // This is (probably) the DIR* we are reading: // TODO, read all the file entries at once and close the DIR.* diff --git a/src/mc/mc_process.cpp b/src/mc/mc_process.cpp index f66e9d1fe3..a39caa5e76 100644 --- a/src/mc/mc_process.cpp +++ b/src/mc/mc_process.cpp @@ -525,6 +525,7 @@ const void *Process::read_bytes(void* buffer, std::size_t size, std::shared_ptr const& info = this->find_object_info_rw((void*)address.address()); // Segment overlap is not handled. +#ifdef HAVE_SMPI if (info.get() && info.get()->privatized()) { if (process_index < 0) xbt_die("Missing process index"); @@ -544,6 +545,7 @@ const void *Process::read_bytes(void* buffer, std::size_t size, size_t offset = address.address() - (std::uint64_t)info->start_rw; address = remote((char*)privatisation_region.address + offset); } +#endif } if (this->is_self()) { diff --git a/src/mc/mc_smx.cpp b/src/mc/mc_smx.cpp index 643726e64d..7b760772c2 100644 --- a/src/mc/mc_smx.cpp +++ b/src/mc/mc_smx.cpp @@ -212,6 +212,7 @@ const char* MC_smx_process_get_name(smx_process_t p) return info->name; } +#ifdef HAVE_SMPI int MC_smpi_process_count(void) { if (mc_mode == MC_MODE_CLIENT) @@ -223,6 +224,7 @@ int MC_smpi_process_count(void) return res; } } +#endif unsigned long MC_smx_get_maxpid(void) {