diff options
-rw-r--r-- | build.py | 1 | ||||
-rw-r--r-- | compilers.py | 8 | ||||
-rw-r--r-- | test cases/fortran/6 dynamic/dynamic.f95 | 17 | ||||
-rw-r--r-- | test cases/fortran/6 dynamic/main.f95 | 6 | ||||
-rw-r--r-- | test cases/fortran/6 dynamic/meson.build | 4 |
5 files changed, 36 insertions, 0 deletions
@@ -630,6 +630,7 @@ class SharedLibrary(BuildTarget): self.prefix = environment.get_shared_lib_prefix() self.suffix = environment.get_shared_lib_suffix() self.importsuffix = environment.get_import_lib_suffix() + self.filename = self.prefix + self.name + '.' + self.suffix def process_kwargs(self, kwargs, environment): super().process_kwargs(kwargs, environment) diff --git a/compilers.py b/compilers.py index 37b8c09..92437e1 100644 --- a/compilers.py +++ b/compilers.py @@ -1260,6 +1260,14 @@ class FortranCompiler(): def get_language(self): return self.language + def get_pic_args(self): + if self.gcc_type == GCC_MINGW: + return [] # On Windows gcc defaults to fpic being always on. + return ['-fPIC'] + + def get_std_shared_lib_link_args(self): + return ['-shared'] + def needs_static_linker(self): return True diff --git a/test cases/fortran/6 dynamic/dynamic.f95 b/test cases/fortran/6 dynamic/dynamic.f95 new file mode 100644 index 0000000..e78a406 --- /dev/null +++ b/test cases/fortran/6 dynamic/dynamic.f95 @@ -0,0 +1,17 @@ +module dynamic + implicit none + + private + public :: hello + + interface hello + module procedure say + end interface hello + +contains + + subroutine say + print *, "Hello, hello..." + end subroutine say + +end module dynamic diff --git a/test cases/fortran/6 dynamic/main.f95 b/test cases/fortran/6 dynamic/main.f95 new file mode 100644 index 0000000..cb3a53f --- /dev/null +++ b/test cases/fortran/6 dynamic/main.f95 @@ -0,0 +1,6 @@ +program main + use dynamic + implicit none + + call hello() +end program main diff --git a/test cases/fortran/6 dynamic/meson.build b/test cases/fortran/6 dynamic/meson.build new file mode 100644 index 0000000..53edaf6 --- /dev/null +++ b/test cases/fortran/6 dynamic/meson.build @@ -0,0 +1,4 @@ +project('dynamic_fortran', 'fortran') + +dynamic = shared_library('dynamic', 'dynamic.f95') +executable('test_exe', 'main.f95', link_with : dynamic) |