Fortran Compiler Using -m32

Fortran Compiler Using -m32

carla.b.franklin@nasa.gov's picture

We have the 64-bit Intel compiler installed on a 64-bit machine running Centos . I thought I could add the -m32 to the "ifort" command to get a 32-bit executable, but I get the following error:

catastrophic error: Compiler configuration problem encountered. The expected target architecture compiler is missing (12.1-ia32 != 12.1-intel64)

Can you help me fix the problem?
Thanks.

4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Steve Lionel (Intel)'s picture

-m32 would cause the ifort driver to invoke the 32-bit compiler, which you don't have installed. You'll need to install the 32-bit compiler to make -m32 work. Please read the compiler release notes for details on what 32-bit Linux components you may need to find and install.

Steve
TimP (Intel)'s picture

The release notes describe the requirements only loosely. I found the first step was to install the 32-bit glibc-devel .rpm for the distribution you are running. Then it was necessary to upgrade to 32- and 64-bit g++ of the same CentOS release version (both gcc and gcc-g++ rpms), or you can build the combined 32- and 64-bit g++ from the gcc source version of your choice. Once you have g++ -m32 working, you can install the ifort ia32. Needless to say, you would wind up with an installation which doesn't match exactly what was used for ifort validation testing, without the advantages of an up to date gcc-g++-gfortran.
ifort works with any recent g++, even the 4.7.0 which was released yesterday, but icpc 12.1 wiill work only up through g++-4.6.3.

Steve Lionel (Intel)'s picture

Linux is a little maze of twisty distros, all different. The release notes cannot possibly provide exact detail for each distro and version what might be needed for doing 32-bit compiles on a 64-bit Linux, and any such advice would probably be obsoleted by a new version of a distro. CentOS is not even listed as a supported distro. The release notes do say:

Development for a 32-bit on a 64-bit host may require optional library components
(ia32-libs, lib32gcc1, lib32stdc++6, libc6-dev-i386, gcc-multilib) to be installed from your
Linux distribution.

Steve

Login to leave a comment.