Closed ivan-pi closed 1 week ago
Thanks for the report. Fortran was deprecated back in OpenSHMEM v1.4, so we haven't put much time into supporting the latest compilers.
However, I see a note about this in our configure.ac
file:
#The oneAPI ifx compiler requires autoconf 2.70 to support AC_FC_WRAPPERS. If problems, please try ifort or updating autoconf:
#https://community.intel.com/t5/Intel-Fortran-Compiler/ifx-2021-1-beta04-HPC-Toolkit-build-error-with-loopopt/m-p/1184181
Can you please verify that autoconf --version
is less than 2.70, and are you able to update it? If so, I recommend starting with a whole new SOS build directory. If not, can you use ifort
in the meantime?
I can reproduce this and fix it on an Aurora pre-release system (autoconf v2.69 by default) by building these from source: https://ftp.gnu.org/gnu/automake/automake-1.17.tar.gz https://ftp.gnu.org/gnu/autoconf/autoconf-2.72.tar.gz
Thanks for the fast reply. Autoconf version is indeed below 2.70:
$ autoconf --version
autoconf (GNU Autoconf) 2.69
Otherwise I'm using Ubuntu 20.04.6 with Intel oneAPI 2024.0. (The default version for Ubuntu 22.04 is autoconf v2.71.)
Using ifort
will be fine in the meantime. As shown above it isn't too difficult to use oshcc
for final linking and just compile Fortran programs separately with ifx.
I saw the deprecation notice, but I thought I might report the issue just in case someone else encounters the same problem.
Given that the solution is known (upgrade Autoconf) I'll close this.
I get a build error with the new Intel Fortran compiler (ifx):
Hopefully I've read the log correctly, but the failed test is this one:
The failing configuration test appears to be searching for the Fortran main symbol (
MAIN__
). AFAIK it can be found in the compiler libraries folder:This error doesn't occur if I use
FC=mpiifort
(the old compiler).If I just compile manually with ifx (without the oshfort wrapper), everything works as intended:
(in this case one needs to manually add the Intel Fortran runtime libraries)
The file
hello.f90
binds directly with the OpenSHMEM C API: