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

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

aiofm_l_
Beginner
795 Views

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!

0 Kudos
8 Replies
TimP
Honored Contributor III
795 Views

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.

0 Kudos
aiofm_l_
Beginner
795 Views

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!

0 Kudos
SergeyKostrov
Valued Contributor II
795 Views
>>...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.
0 Kudos
aiofm_l_
Beginner
795 Views

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

0 Kudos
TimP
Honored Contributor III
795 Views

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.

0 Kudos
aiofm_l_
Beginner
795 Views

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.

0 Kudos
TimP
Honored Contributor III
795 Views

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.

0 Kudos
aiofm_l_
Beginner
795 Views

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?

0 Kudos
Reply