msmpi: Avoid Fortran 2008 idioms in Fortran 90 module
`TYPE(*), DIMENSION(..)` is a Fortran 2008 idiom. Using it in this module causes issues downstream in Fortran 90 projects. See, e.g.: https://github.com/ElmerCSC/elmerfem/pull/559 Use an extension of gfortran to mark polymorphic types in a way that is compatible with Fortran 90. Flang doesn't support polymorphic types currently. It fails when trying to use them with an error like the following: ``` error: loc("C:/msys64/home/Markus/test_ignore_flang.f90":43:3): C:/M/B/src/flang-18.1.8.src/lib/Lower/CallInterface.cpp:949: not yet implemented: support for polymorphic types LLVM ERROR: aborting PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace. Stack dump: 0. Program arguments: C:/msys64/clang64/bin/flang -fc1 -triple x86_64-w64-windows-gnu -emit-obj -fcolor-diagnostics -mrelocation-model pic -pic-level 2 -target-cpu x86-64 -mframe-pointer=none -o test_ignore_flang.o -x f95-cpp-input test_ignore_flang.f90 ``` Don't include subroutines with polymorphic types in the MPI module for LLVM Flang for the time being.
This commit is contained in:
@@ -4,7 +4,7 @@ _realname=msmpi
|
||||
pkgbase=mingw-w64-${_realname}
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
pkgver=10.1.1
|
||||
pkgrel=12
|
||||
pkgrel=13
|
||||
pkgdesc="Microsoft MPI SDK (mingw-w64)"
|
||||
arch=('any')
|
||||
mingw_arch=('mingw64' 'ucrt64' 'clang64')
|
||||
@@ -37,7 +37,7 @@ source=(
|
||||
sha256sums=('17086fb1cf949251e4ae1549a06d292c58e468c822cca3ac1851e57e79d8ab20'
|
||||
'baee3f18f38650e7182956baa0d3d8f8e5c26d8603ccee4871a4dbd160c13660'
|
||||
'66185a4d47ca1a27df2340d3d8d28787e72db54b184f20430ed1e1d7c9244371'
|
||||
'35db255509be337b02f6f00c1031c2ee5c5a1bb8780ee2b6ad5c7fced540bd8c'
|
||||
'5fbdb4109bb5d0badf24c4aaeeaa98009d4a7eaf4e595ecfa4bc3e750176299f'
|
||||
'edd76b5096bd31052be13e2d3306d931277d9c983b147ecf8aef0761d4ae8fb3'
|
||||
'126bb8230844ad1de5f7e368c12008d2eea9831cb149b4a6952c775c08b294a2'
|
||||
'fd18184993872fc4eaea825e85f974dca4b020598d838c424c6c112c2328cf2a'
|
||||
@@ -86,7 +86,7 @@ build() {
|
||||
|
||||
# FORTRAN90 MPI modules
|
||||
if [[ ${MINGW_PACKAGE_PREFIX} != *-clang-* || ${MSYSTEM} == CLANG64 ]]; then
|
||||
bin/mpifort -c -Jinclude ${srcdir}/mpi.f90
|
||||
bin/mpifort -c -Jinclude -cpp ${srcdir}/mpi.f90
|
||||
rm mpi.o
|
||||
fi
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user