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/


_______________________________________________
Wien mailing list
[email protected]
http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
SEARCH the MAILING-LIST at:  
http://www.mail-archive.com/[email protected]/index.html

Reply via email to