#
#===------------------------------------------------------------------------===#
-# Allow an unresolved external reference to the entry point of the
-# Fortran main PROGRAM from main.cc.
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -u __FortranProgram")
-
add_library(FortranRuntime
ISO_Fortran_binding.cc
derived-type.cc
extern "C" {
-void __FortranProgram(); // PROGRAM statement
-
-int main(int argc, const char *argv[], const char *envp[]) {
+void RTNAME(ProgramStart)(int argc, const char *argv[], const char *envp[]) {
Fortran::runtime::argc = argc;
Fortran::runtime::argv = argv;
std::atexit(Fortran::runtime::NotifyOtherImagesOfNormalEnd);
// TODO: Runtime configuration settings from environment
- __FortranProgram();
- return EXIT_SUCCESS;
}
}
#ifndef FORTRAN_RUNTIME_MAIN_H_
#define FORTRAN_RUNTIME_MAIN_H_
+#include "entry-names.h"
+
namespace Fortran::runtime {
extern int argc;
extern const char **argv;
extern const char **envp;
}
+extern "C" {
+void RTNAME(ProgramStart)(int, const char *[], const char *[]);
+}
+
#endif // FORTRAN_RUNTIME_MAIN_H_