Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7956 Discussions

what to install for 32 bit and 64 bit builds on 64 bit Linux

Darren_Smith
Beginner
542 Views
Hi,

We have a 64-bit SUSE linux developement box (with Parallel Studio XE
installed), and we want to generate builds targeted at archs ia32 (using -m32)
and x86_64 (native arch).

The 64-bit version of Parallel Studio is not able to generate the 32-bit target:

catastrophic error: Compiler configuration problem encountered. The expected target architecture compiler is missing (12.0-ia32 != 12.0-intel64)
icpc: error #10014: problem during multi-file optimization compilation (code 1)


...and the 32-bit version of Parallel Studio does not install.

So, how do we proceed? Is there some combination of l_ccompxe_[ia32/intel64],
c_studio[ia32/intel64] and parallel_studio_xe_2011_[ia32/intel64] that can be
co-installed on a single 64-bit box to achieve this? And for a co-installation,
should the same install prefix directory be used for each package? (eg, install
them all under /opt/intelxe) ?

Note, we presently have gcc 4.1 installed, and it is able to generate both 32-bit
and 64-bit targets.

Thanks,

Darren

0 Kudos
2 Replies
mecej4
Honored Contributor III
542 Views
>>...and the 32-bit version of Parallel Studio does not install.

That may be the main problem. Unlike earlier versions, the current C and Fortran compilers do not allow cross-compilation. If the 64-bit compiler driver icc is given the -m32 switch, it looks for the 32-bit native compiler .../bin/ia32/mcpcom

On a 64-bit OS, there should be no problem with having both the 32-bit and 64-bit compilers installed, as long as the prerequisites of each are met.I have such an installation on OpenSuse 11.3, and have not had any problems building 32- and 64-bit targets from the 64-bit environment.

This older thread pertains to the 11.1 compiler, but some points raised may be of interest:

http://software.intel.com/en-us/forums/showthread.php?t=75377
0 Kudos
Darren_Smith
Beginner
542 Views
>> On a 64-bit OS, there should be no problem with having both the 32-bit and 64-bit compilers installed,

Yeah, I managed to get this working also. As mentioned, our dev box is SUSE 64-bit, intel cpu. We have gcc fully installed, so to support build of 32-bit and 64-bit targets, I installed:

first: l_ccompxe_ia32_2011.0.084.tgz (to /opt/compilers/intel)
second: parallel_studio_xe_2011_intel64.tgz (to /opt/compilers/intel)

To use the ia32 compiler, you need to first source compilervars.sh ia32, and to use 64-bit compiler source compilervars.sh intel64

One thing I found odd is that if I attempted a cross compile (ie, using -m32 after sourcing intel64, or -m64 after sourcing ia32), the build worked but generated lots of link warnings:

source /opt/compilers/intel/bin/compilervars.sh ia32

icpc -m64 hello_world.cc

ld: skipping incompatible /app/compilers/intel/composerxe-2011.0.084/compiler/lib/ia32/libimf.a when searching for -limf
ld: skipping incompatible /app/compilers/intel/composerxe-2011.0.084/ipp/../compiler/lib/ia32/libimf.a when searching for -limf


0 Kudos
Reply