ifx (2021.1-beta04) HPC Toolkit build error with -loopopt

TCE Options

TCE Level: 

TCE Open Date: 

Thursday, February 13, 2020 - 08:45

ifx (2021.1-beta04) HPC Toolkit build error with -loopopt


Hello,

I posted this earlier in the Fortran Compilers sub-forum link, but it seems that it is not specific for oneAPI releases. The link to that post is here: https://software.intel.com/en-us/forums/intel-fortran-compiler/topic/848820. I will restate the issue here:

The PI of an HPC tool, Score-P, contacted me earlier today regarding an error discovered in the most recent beta of the HPC Toolkit with the Fortran compiler. The issue appears to be a conflict between Autoconf and the -loopopt option supplied to configure where the the -l is interpreted as a cue to link with the library oopopt.  The full description of the text the PI sent to me regarding the error is enclosed below. I downloaded the reproducer pointed to towards end of message, and I ran it using ifx with the Beta 04 on one of the gpu only DPCPP dev cloud machines,  and I encounter the same issue with -loopopt. The team is in Europe, and I do not know the specifics of their machine, but it is certainly Linux:

I just tried your new beta compilers in the context of Score-P. I ran into a problem with the Fortran compiler and autoconf, which I will describe below. Would it be possible for you to forward this report to the compiler developers?

Here the problem description:

ifx (2021.1-beta04) fails on autoconf (2.69) macros AC_F77_WRAPPERS/AC_FC_WRAPPERS [1] due to xfortcom's default option '-loopopt=0'

The command 

ifx -o conftest -g -v conftest.f'

calls 

/opt/intel/inteloneapi/compiler/2021.1-beta04/linux/bin/xfortcom    -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all "-verify nomodule" -main-file-name conftest.f -target-cpu x86-64 -target-linker-version 2.30 -debug-info-kind=limited -dwarf-version=4 -mllvm -debug-line-version=2 -dwarf-column-info -D__unix__ -D__unix -D__linux__ -D__linux -D__gnu_linux__ -Dunix -Dlinux -D__ELF__ -D__x86_64 -D__x86_64__ -D__amd64 -D__amd64__ -D__INTEL_COMPILER_BUILD_DATE=20200118 -I/opt/intel/inteloneapi/tbb/2021.1-beta04/env/../include -I/opt/intel/inteloneapi/mpi/2021.1-beta04//include -I/opt/intel/inteloneapi/compiler/2021.1-beta04/linux/include -I/opt/intel/inteloneapi/compiler/2021.1-beta04/linux/compiler/include/intel64 -I/opt/intel/inteloneapi/compiler/2021.1-beta04/linux/compiler/include -I/usr/local/include -I/usr/include -I/usr/include/x86_64-linux-gnu -O0 -fveclib=SVML -fno-inline -fno-inline-functions -mllvm -loopopt=0 -mllvm -enable-lv -mllvm -disable-hir-generate-mkl-call -mllvm -intel-libirc-allowed -o /tmp/ifxWAvMeA.o -D__INTEL_COMPILER=201900 -D__INTEL_COMPILER_UPDATE=0 -D__unix__ -D__unix -D__linux__ -D__linux -D__gnu_linux__ -Dunix -Dlinux -D__ELF__ -D__x86_64 -D__x86_64__ -D__amd64 -D__amd64__ -D__INTEL_COMPILER_BUILD_DATE=20200118 -I. -I/opt/intel/inteloneapi/tbb/2021.1-beta04/env/../include -I/opt/intel/inteloneapi/mpi/2021.1-beta04//include -I/opt/intel/inteloneapi/compiler/2021.1-beta04/linux/include -I/opt/intel/inteloneapi/compiler/2021.1-beta04/linux/compiler/include/intel64 -I/opt/intel/inteloneapi/compiler/2021.1-beta04/linux/compiler/include -I/usr/local/include -I/usr/include -I/usr/include/x86_64-linux-gnu "-fp_modbits honor_f32_conversion" "-fp_modbits honor_f64_conversion" -O0 -g2 "-reentrancy threaded" -simd -offload_host conftest.f


Note the '-loopopt=0'. AC_F77_WRAPPERS/AC_FC_WRAPPERS identify this option as a library:

checking for Fortran libraries of ifx...  -loopopt=0 -L/opt/intel/inteloneapi/tbb/2021.1-beta04/env/../lib/intel64/gcc4.8 -L/opt/intel/inteloneapi/mpi/2021.1-beta04//libfabric/lib -L/opt/intel/inteloneapi/mpi/2021.1-beta04//lib/release -L/opt/intel/inteloneapi/mpi/2021.1-beta04//lib -L/opt/intel/inteloneapi/compiler/2021.1-beta04/linux/lib -L/opt/intel/inteloneapi/compiler/2021.1-beta04/linux/compiler/lib/intel64_lin -L/opt/intel/inteloneapi/mpi/2021.1-beta04//libfabric/lib/../lib/ -L/opt/intel/inteloneapi/mpi/2021.1-beta04//lib/../lib/ -L/opt/intel/inteloneapi/compiler/2021.1-beta04/linux/lib/../lib/ -L/usr/lib/gcc/x86_64-linux-gnu/7/ -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/ -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/ -L/lib/x86_64-linux-gnu/ -L/lib/../lib64 -L/lib/../lib/ -L/usr/lib/x86_64-linux-gnu/ -L/usr/lib/../lib/ -L/opt/intel/inteloneapi/tbb/2021.1-beta04/env/../lib/intel64/gcc4.8/ -L/opt/intel/inteloneapi/mpi/2021.1-beta04//libfabric/lib/ -L/opt/intel/inteloneapi/mpi/2021.1-beta04//lib/release/ -L/opt/intel/inteloneapi/mpi/2021.1-beta04//lib/ -L/opt/intel/inteloneapi/compiler/2021.1-beta04/linux/lib/ -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../ -L/lib64 -L/lib/ -L/usr/lib -lifport -lifcoremt -limf -lsvml -lm -lipgo -lirc -lpthread -lirc_s -ldl

When using these Fortran libraries in icx invocations the linker complains:

ld: cannot find -loopopt=0

Note that everything works fine with the 'old' ifort, also provided by the oneAPI package.

Would it be possible to rename '-loopopt' such that it doesn't start with '-l'? '-loopopt' seems to be a non-public option, at least it is not documented in 'ifx -help'. Thus renaming might cause no harm.

Please find a minimal reproducer until 2020-02-27 here: https://gigamove.rz.rwth-aachen.de/d/id/75hs9S9jCCLR2Y

Use like this:
tar xf loopopt.tar.gz
mkdir loopopt/_build
cd  loopopt/_build
../configure CC=icx FC=ifx F77=ifx

Your advice will be appreciated, and I will pass it on to the developers, as well as let them know about this forum.

Regards,

-Rashawn

6 posts / 0 new

If I rename the xfortcom option -loopopt=0 to -qloopopt=0, the configure script succeeds. I tested the renaming with the following change to the reproducer's configure script, see https://gigamove.rz.rwth-aachen.de/d/id/75hs9S9jCCLR2Y

--- configure.orig	2020-02-14 10:33:42.827806795 +0000
+++ configure	2020-02-14 10:43:27.197241895 +0000
@@ -3525,7 +3525,7 @@
     ac_fc_v_output=`echo $ac_fc_v_output | sed 's/"//g'` ;;
 esac
 
-
+ac_fc_v_output=$(echo $ac_fc_v_output | sed 's/-loopopt=0/-qloopopt=0/g')
 
 ac_cv_fc_libs=
 

A renaming of -loopopt would be highly appreciated. Patching autoconf instead would also be a solution. But as the development of autoconf is basically on halt for several years now, this change is unlikely to reach the interested audience.

Thanks,
Christian


The team is in Europe, and I do not know the specifics of their machine, but it is certainly Linux:

I work under Linux in a docker container based on the Intel provided Dockerfile. The compiler version is 2021.1-beta04.

Thanks,
Christian


Hi Rashawn,

We can run ./configure with ifort, you can use ../configure CC=icx FC=ifort F77=ifort command on beta04 toolkitbut we cannot run it with ifx it's giving the same error We have transferred this issue with ifx to our compiler team.

Thank You

-Abhishek


Good day Abhishek,

Thank you for confirming that ifort will work. I will pass this on to the users and let them know this ifx issue has been transferred to the compiler team.

Best regards,

-Rashawn


Since this issue was also raised on the Fortran Forum and it is a Fortran issue, let's continue the discussion on the Fortran Forum

Leave a Comment

Please sign in to add a comment. Not a member? Join today