Dear colleges, I am trying to compile I/O API 3.2 with intel compiler v2023.2.1 (CC=icc), netcdf 4.7.4 classic, with nocpl, and I am facing the following error:
cd /opt/ohpc/pub/apps/libs/ioapi/ioapi-3.2/Linux2_x86_64ifort; ar rsv libioapi.a m3utilio.o modgctp.o modwrfio.o modmpasfio.o modatts3.o modncfio.o modpdata.o
a - m3utilio.o
a - modgctp.o
a - modwrfio.o
a - modmpasfio.o
a - modatts3.o
a - modncfio.o
a - modpdata.o
ar: Relink `/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin/libimf.so' with `/lib64/libm.so.6' for IFUNC symbol `sincosf'
/bin/sh: line 1: 40671 Segmentation fault (core dumped) ar rsv libioapi.a m3utilio.o modgctp.o modwrfio.o modmpasfio.o modatts3.o modncfio.o modpdata.o
make: *** [Makefile:283: mlib] Error 139
make: Leaving directory '/opt/ohpc/pub/apps/libs/ioapi/ioapi-3.2/ioapi'
make: *** [Makefile:204: all] Error 2
Can you help me fix this issue?
Makeinclude.Linux2_x86_64ifort.txt (1.5 KB)
Makefile.txt (10.0 KB)
log_compile_ioapi.txt (13.4 KB)
I haven’t seen this one before, so much of this is guess-work:
There looks to be a conflict between the Intel libimf.so math library and the system libm.so math library.
First of all, since all your builds use
-Bstatic -static-intel, these shared-object (
.so) libraries shouldn’t be used at all – are the relevant static (
.a) libraries missing on your system (and if soi, where are they)?
Then /lib64 is not the usual place for the libraries – I would expect them to be in /usr/lib64 instead – is this the cause of the problem?
Assuming /opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin/libimf.a exists what happens if you add
-L/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin right after the
-Bstatic -static-intel ? (This might force the use of the (expected) Intel math library and exclude that un-wanted system math library.)
The issue was in the environmental variables.
The modulefile was not setting it correctly, so I got this error.
I had to source the setvars.sh from intel oneAPI to get it done.
Thank you for the help.
Aha – a compiler installation/configure error: I’ll have to remember that.
Sourcing the setvars.sh should have been set up either as part of the installation process (the sysadmin should have done this from /etc/profile.d) or as part of the module load command (on systems that use that for configuring software.
That is right. I had the module load the intel compilers, but it looks like some variables were not loaded.
I am trying to source the setvars.sh inside the module file, but I am facing some issues.
I tried the command
souce_sh "bash", "path/to/setvars.sh" or
souce_sh bash path/to/setvars.sh but I always get an error saying the syntax is wrong.
Do you have some advice on how to do it?
Then this one needs to go to ITS: they have mis-configured the MODULE for this version of the Intel compilers, and they need to fix it.
I’ll talk to the ITS folks.
Thank you so much for your attention and help.