[Wien] FFTW and ifx/icx issue relevant to WIEN2k
Straus, Daniel B
dstraus at tulane.edu
Tue Sep 2 23:40:31 CEST 2025
I have been troubleshooting the compilation of WIEN2k on a new workstation using the ifx compiler. The main issue I was having was related to compilation errors in 3ddens as well as in lapw1, but the lapw1 compilation errors only occurred when I attempted to link ELPA.
The cause of the compilation errors was FFTW. The configure script included with FFTW version 3.3.10 is not compatible with the new Intel compilers (icx/ifx etc.) unless an additional step is taken; otherwise, icx is unable to link FFTW to the applicable Fortran libraries.
To fix this issue, the FFTW configure script must be updated using autoconf version 2.70 or greater by running the command "autoreconf -if" in the directory where the FFTW tarball was extracted. Once I did this, recompiled FFTW, and then recompiled WIEN2k, there were no compilation errors for 3ddens and lapw1 with ELPA.
This is documented in the ifx release notes (https://www.intel.com/content/www/us/en/developer/articles/release-notes/fortran-compiler/2025.html):
Configure Script Reports: "linking to Fortran libraries from C fails"
Symptom
When compiling with ifx, a ./configure script generated by GNU Autconf reports an error message similar to:
checking for Fortran 77 libraries of ifx... -loopopt=0 -L/lib/../lib64 -L/lib/../lib64/ -L/usr/lib/../lib64 -L/usr/lib/../lib64/ -L/lib64 -L/lib/ -L/usr/lib64 -L/usr/lib -lifport -lifcoremt -limf -lsvml -lm -lipgo -lirc -lpthread -lirc_s -ldl
configure: WARNING: FLIBS does not work
checking for ifx flag to add single underscore to external names... none
checking for dummy main to link with Fortran 77 libraries... unknown
configure: error: in '/path/to/build/dir':
configure: error: linking to Fortran libraries from C fails
See `config.log' for more details
make: *** [build/config.status] Error 1
Examining the config.log file shows that the error causing ./configure to exit was:
ld: cannot find -loopopt=0
Problem
In trying to determine libraries needed to link Fortran code with C or C++ code, GNU Autoconf 2.69 and earlier mistakenly interprets -loopopt=0 in -mllvm -loopopt=0 in verbose compiler output as a linker flag. GNU Autoconf then adds -loopopt=0 to the FLIBS variable, which is passed to the linker. The linker then looks for a non-existent library causing the test to fail.
Solution for Users Downloading Source Code
Please inform the maintainers of packages impacted by this error about the problem and refer them to this release note. Projects vary in how they handle configure scripts; however, some general rules apply. Users who need a solution before the package maintainer can respond can update the configure script themselves. The difficulty of updating depends on how the package is distributed.
To update, first, install GNU Autoconf-2.70 or newer, as described in Solution for Package Maintainers<https://www.intel.com/content/www/us/en/developer/articles/release-notes/fortran-compiler/2025.html#solution-for-package-maintainers>, below.
After installing the updated autoconf in the user's path, packages that distribute the configure.ac file along with the configure script can be updated simply by running:
autoreconf -if
The resulting configure script should be completed without the above error in FLIBS.
It is not uncommon for project maintainers to remove the configure.ac file from a source distribution in a tar or zip archive. In that case, the user usually needs to download the project from its code repository, and build according to the project's instructions. Sometimes a version of the configure script is committed to version control and not automatically regenerated. In that case, either running autoreconf -if as described above, or deleting the configure script often triggers it to be regenerated. Ideally, documentation for the project will describe how to rebuild the configure script.
Solution for Package Maintainers
To prevent users from seeing errors, update to GNU Autoconf to version 2.70 or later and re-generate the project configure script. GNU Autoconf-2.70 was released <https://lists.gnu.org/archive/html/autotools-announce/2020-12/msg00001.html> December 8, 2020. The source code is available via git clone: http://git.sv.gnu.org/r/autoconf.git. GNU Autoconf documentation is available through GNU Autoconf Project Page<https://www.gnu.org/software/autoconf/>.
Daniel Straus
Assistant Professor
Department of Chemistry
Tulane University
5088 Percival Stern Hall
6400 Freret Street
New Orleans, LA 70118
(504) 862-3585
http://straus.tulane.edu/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://zeus.theochem.tuwien.ac.at/pipermail/wien/attachments/20250902/0b3dc6a7/attachment.htm>
More information about the Wien
mailing list