Cleanup FortranCInterface for PGI and GCC 4.2

This documents the purpose of the extra my_module_.c and mymodule.c
source files, and sorts the symbols.
This commit is contained in:
Brad King 2009-08-05 17:07:36 -04:00
parent 71287734a9
commit edcddb522c
3 changed files with 10 additions and 8 deletions

View File

@ -22,17 +22,17 @@ list(REMOVE_DUPLICATES global_symbols)
# List manglings of module symbol names to try.
set(module_symbols
__my_module_MOD_my_sub # GNU 4.3
__my_module__my_sub # GNU 4.2
__mymodule__mysub # GNU 4.2
__my_module_NMOD_my_sub # VisualAge
__mymodule_MOD_mysub # GNU
__my_module__my_sub # GNU 4.2
__mymodule_MOD_mysub # GNU 4.3
__mymodule_NMOD_mysub # VisualAge
my_module_my_sub_ # PGI 8
__mymodule__mysub # GNU 4.2
my_module$my_sub # HP
my_module_mp_my_sub_ # Intel
mymodule_mysub_ # PGI 8
my_module_my_sub_ # PGI
mymodule$mysub # HP
mymodule_mp_mysub_ # Intel
mymodule_mysub_ # PGI
${FortranCInterface_MODULE_SYMBOLS}
)
list(REMOVE_DUPLICATES module_symbols)
@ -70,7 +70,7 @@ endforeach()
add_library(myfort STATIC mysub.f my_sub.f ${myfort_modules})
# Provide symbols through C but fall back to Fortran.
add_library(symbols STATIC ${symbol_sources} mymodule_.c my_module_.c)
add_library(symbols STATIC mymodule_.c my_module_.c ${symbol_sources})
target_link_libraries(symbols myfort)
# Require symbols through Fortran.

View File

@ -1 +1,2 @@
void my_module_(void){}
/* PGI Fortran wants my_module_ when calling any my_module symbol. */
void my_module_(void) {}

View File

@ -1 +1,2 @@
void mymodule_(void){}
/* PGI Fortran wants mymodule_ when calling any mymodule symbol. */
void mymodule_(void) {}