From f58c9bcd23aa191e8071a41450d00dda0d182e34 Mon Sep 17 00:00:00 2001 From: Augustin Degomme Date: Thu, 14 Mar 2013 13:41:04 +0100 Subject: [PATCH] new attempt to stabilize the use of underscores on f90/f77/f2c --- include/smpi/smpi.h | 2 +- src/smpi/smpi_global.c | 2 +- src/smpi/smpicc.in | 2 +- src/smpi/smpif2c.in | 3 ++- src/smpi/smpiff.in | 2 +- 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/include/smpi/smpi.h b/include/smpi/smpi.h index 85338dd29e..b3cfb99f0b 100644 --- a/include/smpi/smpi.h +++ b/include/smpi/smpi.h @@ -519,7 +519,7 @@ XBT_PUBLIC(void*) smpi_shared_set_call(const char* func, const char* input, void /* Fortran specific stuff */ XBT_PUBLIC(int) __attribute__((weak)) smpi_simulated_main_(int argc, char** argv); -XBT_PUBLIC(int) __attribute__((weak)) MAIN_(void); +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); diff --git a/src/smpi/smpi_global.c b/src/smpi/smpi_global.c index c29b2b630d..ab6e4b21e6 100644 --- a/src/smpi/smpi_global.c +++ b/src/smpi/smpi_global.c @@ -307,7 +307,7 @@ int __attribute__((weak)) main(int argc, char** argv) { return smpi_main(smpi_simulated_main_,argc,argv); } -int __attribute__((weak)) MAIN_(){ +int __attribute__((weak)) MAIN__(){ return smpi_main(smpi_simulated_main_,xargc, xargv); }; #endif diff --git a/src/smpi/smpicc.in b/src/smpi/smpicc.in index 03c26b3404..36ddd2b0fb 100755 --- a/src/smpi/smpicc.in +++ b/src/smpi/smpicc.in @@ -6,7 +6,7 @@ INCLUDEARGS="@includeflag@" CMAKE_LINKARGS="-L@libdir@" if [ "@WIN32@" != "1" ]; then - CFLAGS="-Dmain=smpi_simulated_main__" + CFLAGS="-Dmain=smpi_simulated_main_" LINKARGS="-lsimgrid" else CFLAGS="-include @includedir@/smpi/smpi_main.h" diff --git a/src/smpi/smpif2c.in b/src/smpi/smpif2c.in index 2b77445d46..4b99f2b946 100755 --- a/src/smpi/smpif2c.in +++ b/src/smpi/smpif2c.in @@ -55,6 +55,7 @@ foreach my $fortran (@ARGV) { if(/extern \/\* Subroutine \*\//) { $cutext = 1; } + $_ =~ s/(mpi_[\w]*_)_/$1/g; if($cutext) { if(/;$/) { $cutext = 0; @@ -62,7 +63,7 @@ foreach my $fortran (@ARGV) { next; } if(/\/* Main program alias \*\/\s*int\s+.*\s*\(\s*\)\s*{(.*)}/) { - $_ = "int smpi_simulated_main__(int argc, char** argv) { smpi_process_init(&argc, &argv); $1 }\n"; + $_ = "int smpi_simulated_main_(int argc, char** argv) { smpi_process_init(&argc, &argv); $1 }\n"; } print $tmp "$_\n"; } diff --git a/src/smpi/smpiff.in b/src/smpi/smpiff.in index b86184bd96..a77da10e4e 100644 --- a/src/smpi/smpiff.in +++ b/src/smpi/smpiff.in @@ -32,7 +32,7 @@ then do CFILE="${SRCFILE%.f}.c" #echo "$prefix/bin/smpif2c ${SRCFILE} && $prefix/bin/smpicc ${ARGS} ${CFILE} && rm ${CFILE}" - $prefix/bin/smpif2c ${SRCFILE} && $prefix/bin/smpicc ${ARGS} ${CFILE} && rm ${CFILE} + $prefix/bin/smpif2c ${SRCFILE} && $prefix/bin/smpicc ${ARGS} ${CFILE} done else #echo "$prefix/bin/smpicc ${ARGS}" -- 2.20.1