a problem when install intel 32bit compiler on 64bit Linux

a problem when install intel 32bit compiler on 64bit Linux

I have a problem when install intel 32bit compiler on 64bit Linux (Ubuntu 12.04)OS.

I did installed ia32-lib, but when I install intel 32bit compiler, it still said this lib is missing.

The installed ia32-lib located at: by coomand of find /lib/* -name libstd*

/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.a
/usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.so
/usr/lib/i386-linux-gnu/libstdc++.so.5
/usr/lib/i386-linux-gnu/libstdc++.so.5.0.7
/usr/lib/i386-linux-gnu/libstdc++.so.6.0.16
/usr/lib/i386-linux-gnu/libstdc++.so.6

How could I let intel compiler knows their location?

Many thanks!

9 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

I would expect the Intel compiler to find the libraries by a command such as

g++ -m32 -print-search-dirs

So it would be sufficient to install the 32-bit gcc compatible with your Ubuntu.

Icc 12.0 was the first to recognize the special Ubuntu setup, so there were additional steps documented (on the corresponding forum, before it was changed) about 11.1 on Ubuntu.

Many thanks for your repy!

I checked the intel install path include :/usr/lib/i386-linux-gnu/

but when I reinstall intel compiler, lt stil said 32-bit lib not found.

Realy puzzeled!

>>...when I reinstall intel compiler, lt stil said 32-bit lib not found...

Please provide for review:

- Source codes of your test
- Complete command line ( all options ) of the compiler you've used to compile the test
- Build output with all compilation and linker errors

Thanks in advance.

Many thanks for your reply!
What I did are:
1) follow intel webside instruction, install
     apt-get install build-essential
     apt-get install gcc-multilib
     apt-get install rpm
     apt-get install ia32-libs  (only needed if you install the 32bit compiler)
     apt-get install openjdk-6-jre-headless
   before install parallel_studio_xe_2013_update3

2) However,in the installation, it still said
"
fail to collect analysis data.
-- Intel(R) Composer XE 2013 Update 3 for Linux*: 32-bit libraries not found
"
the detail is here:
32-bit libraries not found on this system.
This product release requires the presence of 32-bit compatibility libraries
when running on Intel(R) 64 architecture  One or more of these libraries
could not be found:
    libstdc++ (including libstdc++6)
    glibc
    libgcc
Without these libraries, the compiler will not function properly.  Please refer
to Release Notes for more information.

3) Base on your suggestion, I checked the path.

type find:  /usr/lib* -name libstdc*
output are:
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16
/usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.so
/usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.a
/usr/lib/i386-linux-gnu/libstdc++.so.5
/usr/lib/i386-linux-gnu/libstdc++.so.6
/usr/lib/i386-linux-gnu/libstdc++.so.5.0.7
/usr/lib/i386-linux-gnu/libstdc++.so.6.0.16

type: g++ -m32 -print-search-dirs
output are:
install: /usr/lib/gcc/x86_64-linux-gnu/4.6/
programs: =/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../x86_64-linux-gnu/bin/i386-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../x86_64-linux-gnu/bin/
libraries: =/usr/lib/gcc/x86_64-linux-gnu/4.6/32/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../x86_64-linux-gnu/lib/x86_64-linux-gnu/4.6/32/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../x86_64-linux-gnu/lib/i386-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../x86_64-linux-gnu/lib/../lib32/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/4.6/32/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../i386-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib32/:/lib/x86_64-linux-gnu/4.6/32/:/lib/i386-linux-gnu/:/lib/../lib32/:/usr/lib/x86_64-linux-gnu/4.6/32/:/usr/lib/i386-linux-gnu/:/usr/lib/../lib32/:/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../x86_64-linux-gnu/lib/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../x86_64-linux-gnu/lib/i386-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../x86_64-linux-gnu/lib/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../i386-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../:/lib/x86_64-linux-gnu/4.6/:/lib/i386-linux-gnu/:/lib/:/usr/lib/x86_64-linux-gnu/4.6/:/usr/lib/i386-linux-gnu/:/usr/lib
It looks the ia32-libs path is already included in intel searching path, is that right?

4) I tested just ignore this Missing optional pre-requisites, and continue finishing the installation.
   and tested using icc to compile single zlib, it failed.
Pleas help me about this, I realy need to use 32bit compiler on 64bit systems

In another post it was reported that icc ia32 installer reported that Ubuntu and Debian 64-bit aren't supported for the 32-bit compiler.  The evident reason would be that these distros place 64-bit libraries where LSB specifies 32-bit libraries would exist.  If that is the problem, you could reorganize with symlinks to make 32-bit compilers work with standard paths, but you would break the 64-bit path scheme of these distros.

It did look from your reply that i386 paths exist down the list of where icpc should be searching.  So I guess you might want to file a problem report pointing this out and asking whether it shouldn't be able to sort this out.

Could you show me how to do symlinks for my case?

ln -s /usr/lib/i386-linux-gnu/  /usr/lib/x86_64-linux-gnu/; like this? Is there something else need to do?

Sorry, I am not linux expert.

Thanks in advance.

You probably need to remove Intel compilers using their uninstall scripts (e.g. find /opt/intel/ -name uninstall* followed by sudo <whichever_unstall>

You would rename the directories which don't conform to LSB, e.g.

sudo mv /usr/lib /usr/lib64 (assuming there is nothing there now)

sudo ln -s /usr/lib32 /usr/lib

and possibly others (I don't intend to try this myself).  Just be sure you can get back to where you started (after again uninstalling the intel compiler) in case it cause problems. 

Try out g++ -m32 (the 64-bit one will probably be broken)

and then install icc over. with over-ride of warnings.

Obviously, this isn't supported, and may not work.  It will almost surely make some 64-bit stuff fail.

Many thanks for your suggestion.

It seems too risky to do so.
Is there any other way to install 32bit compiler on 64bit Ubuntu?
Or I have to change to another Linux system for this?

Leave a Comment

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