Can not reproduce an old configure (ABINIT 9.4.2 - OneAPI 2021.2.0)

Hi,
I am trying to install ABINIT in a Intel system using OneAPI.
I faced several problems and, after some tests, I tried to reproduce an old installation I did in 2021, in another machine.
To my surprise, using the same OneAPI version and the same ABINIT version (9.4.2), I could not even configure the compilation in the machine where it succeeded in 2021.
The only relevant change I can remember is the Debian upgrade to the new version (Debian 12).
I made some tests with different results but without success.
I believe the simplest way to ask for help is to show you the original “myconf.ac9” file and the two config.log files (2021 and 2024).
Libxc, HDF5, NetCDF-C, NetCDF-fortran were compiled from source using the same OneAPI (2021.2.0) I am using now.
The message I get now in the screen is:

configure: error: in /home/ogando/ABINIT/abinit-9.4.2/Lixo': configure: error: cannot run C compiled programs. If you meant to cross compile, use –host’.
See `config.log’ for more details

Thank you for your help!
Luis
config-2021.log (279.5 KB)
config-2024.log (55.1 KB)
myconf.ac9 (4.3 KB)

There seems to be a problem with your C compiler, and it is unrelated to Abinit or its dependencies. Lots of things may change on your system when it goes through updates. I would recommend that you reinstall your compilers before trying again to configure and compile Abinit.

1 Like

Hi Antonius,
Thank you very much for your answer.
Actually, I am using the same icc version, but I believe that it is now “pointing to” the most recent version of gcc.
In fact, in the 2021 version of config.log, one can read:
icc version 2021.2.0 (gcc version 8.3.0 compatibility)
While, in the 2024 version of config.log, one can read:
icc version 2021.2.0 (gcc version 12.2.0 compatibility)
Do you know how to make the icc OneAPI “point to” an old gcc version or any other way to circumvent this problem?
Thank you again!
All the best,
Luis

Hi Luis,

What I see from your log file is the following:

/usr/include/stdio.h(223): error: attribute “malloc” does not take arguments

It seems that icc can have some problems with malloc. See this link.

In order to compile icc with a specific version of gcc, you can look at this link. Hope this helps!

Best,
Olivier

Hi Olivier,
Thank you for your help.
The “malloc” error is solved with the following configure parameters:

CC=“mpigcc”
CFLAGS=“-std=c++14”

On the other hand, now I have the following messages on the screen:

configure: WARNING: invalid HDF5 configuration
configure: WARNING: invalid NetCDF configuration
configure: WARNING: NetCDF is not available
configure: WARNING: invalid NetCDF Fortran interface configuration
configure: WARNING: invalid LibXC configuration

I have changed the gcc version used by OneAPI from 12 to 10 and 6, but the above warning messages are the same.
I have attached the new config.log and I would be glad if someone could take a look and give me any hint.
There is one point that I believe should be considered: LIBXC, HDF5, NETCDF-C and NETCDF-FORTRAN were previously compiled using “icc version 2021.2.0 (gcc version 8.3.0 compatibility)”, but, at the moment, I do not have gcc-8 installed in my system.
If someone believes that the new warning messages are due to the different gcc versions (previous gcc-8 for the dependencies and current gcc-12), should I try to recompile the dependencies with gcc-12 or reinstall gcc-8? What would you do first?
Any other hint is welcome.
Thank you again,
Luis

config-mpigcc-12.log (297.0 KB)

Hi Guys,
Is there a way to set LDFLAGS when --enable-hints is in use?
Due to the “malloc” issue pointed by Olivier, I have to use GCC/G++ with --std=c++14 instead of Intel ICC. As a consequence, I have to remove -static-intel from LDFLAGS.
LDFLAGS is set with -static-intel because I am using mpigcc, mpigxx and mpiifort from Intel OneAPI.
Obviously, if I use --disable-hints, I can set LDFLAGS, but I will lose all the other hints, what I would like to avoid.
Any suggestion?
All the best,
Luis