Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
add yet another stunt with smpi_simulated_main to provide support for f90
authorAugustin Degomme <degomme@idpann.imag.fr>
Wed, 28 Nov 2012 10:35:49 +0000 (11:35 +0100)
committerAugustin Degomme <degomme@idpann.imag.fr>
Fri, 30 Nov 2012 14:25:55 +0000 (15:25 +0100)
include/smpi/smpi.h
src/smpi/smpi_global.c

index 950d924..aa601ec 100644 (file)
@@ -511,6 +511,7 @@ XBT_PUBLIC(void*) smpi_shared_set_call(const char* func, const char* input, void
 XBT_PUBLIC(int) __attribute__((weak)) smpi_simulated_main__(int argc, char** argv);
 XBT_PUBLIC(int) __attribute__((weak)) MAIN__(void);
 XBT_PUBLIC(int) smpi_main(int (*realmain) (int argc, char *argv[]),int argc, char *argv[]);
+XBT_PUBLIC(void) __attribute__((weak)) user_main__(void);
 
 XBT_PUBLIC(int) smpi_process_index(void);
 
index e1b9909..07b04a1 100644 (file)
@@ -288,10 +288,16 @@ void smpi_global_destroy(void)
 /* With smpiff, the following weak symbols are replaced by those in libf2c */
 int __attribute__((weak)) xargc;
 char** __attribute__((weak)) xargv;
+void __attribute__((weak)) user_main__(){
+  xbt_die("Should not be in this smpi_simulated_main");
+  return;
+}
 
 int __attribute__((weak)) smpi_simulated_main__(int argc, char** argv) {
-  xbt_die("Should not be in this smpi_simulated_main");
-  return 1;
+  smpi_process_init(&argc, &argv);
+  user_main__();
+  //xbt_die("Should not be in this smpi_simulated_main");
+  return 0;
 }
 
 int __attribute__((weak)) main(int argc, char** argv) {