Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
cosmetics in the check of library version vs. header version
[simgrid.git] / src / surf / surf_interface.cpp
index f49641e..8fdc1db 100644 (file)
@@ -339,6 +339,23 @@ static XBT_INLINE void surf_storage_free(void *r)
   delete static_cast<Storage*>(r);
 }
 
   delete static_cast<Storage*>(r);
 }
 
+void sg_version_check(int lib_version_major,int lib_version_minor,int lib_version_patch) {
+    if ((lib_version_major != SIMGRID_VERSION_MAJOR) || (lib_version_minor != SIMGRID_VERSION_MINOR)) {
+      fprintf(stderr,
+                 "FATAL ERROR: Your program was compiled with SimGrid version %d.%d.%d, "
+                 "and then linked against SimGrid %d.%d.%d. Please fix this.\n",
+              SIMGRID_VERSION_MAJOR,SIMGRID_VERSION_MINOR,SIMGRID_VERSION_PATCH,
+                         lib_version_major,lib_version_minor,lib_version_patch);
+      abort();
+    }
+    if (lib_version_patch != SIMGRID_VERSION_PATCH) {
+        fprintf(stderr,
+                 "Warning: Your program was compiled with SimGrid version %d.%d.%d, "
+                 "and then linked against SimGrid %d.%d.%d. Proceeding anyway.\n",
+                SIMGRID_VERSION_MAJOR,SIMGRID_VERSION_MINOR,SIMGRID_VERSION_PATCH,
+                         lib_version_major,lib_version_minor,lib_version_patch);
+    }
+}
 
 void sg_version(int *ver_major,int *ver_minor,int *ver_patch) {
   *ver_major = SIMGRID_VERSION_MAJOR;
 
 void sg_version(int *ver_major,int *ver_minor,int *ver_patch) {
   *ver_major = SIMGRID_VERSION_MAJOR;